プログラマー速攻入門関連の記事です。
全体を見たい方はこちらへどうぞ。
ここまで電卓開発を数回推奨してきましたが、
もう少し補助輪が必要かと思いますので書いてみました。
プログラムの書き方などについては一切触れません。
さ、元気よく行きましょう。
制約事項と心構え
職業プログラマー(もしくは職業プログラマーを目指す)なら以下を意識してやってください。
趣味プログラマーなら意識してもしなくても結構です。
制約事項
使用可能工数:80時間
実施にあたって時間は2週間(10日×8時間=80時間)使っても良いです。
プロジェクトなのできちんと時間を計ってやってくださいね。
金額はIT企業に依頼すれば50~80万円程度の時間ですね。
今回は50万円(1人月160時間あたり100万円)で受注できたという想定でいきます。
電卓にこの金額を出す人はいませんが目安です。
一応お断りしておきますが僕に納品されても受け取りませんし
お金も払いませんので悪しからず。
心構え
黒字必達でお願いします。
少し掘り下げて考えてみます。
大卒の基本給が22万円くらい(21年現在)ですから人件費は1万円/日ちょっとですね。
今回は1万円想定でいきましょう。
業態によりますが一般に経費等を考慮すると給料の3倍稼いでやっと利益が出ると言われています。
1日8時間で3万円の出費ですね。時間通りに終えられれば2万円分の黒字。
消化工数と利益の早見表を以下につけておきます。
消化工数(時間) | 総支出(万円) | 利益(万円) |
---|---|---|
80 | 30 | 20 |
100 | 37.5 | 12.5 |
120 | 45 | 5 |
140 | 52.5 | -2.5 |
160 | 60 | -10 |
油断すると札束をつけて出荷することになります。
気を付けてくださいね。
では、参りましょう。
要件定義
概要
整数10桁同士の四則演算に対応する電卓を作成する。
目的(ゴール)
簡単なアプリケーション(電卓)を1つ自力で作り上げてプログラマー入門を果たす。
機能一覧
- 0~9までの数値入力ができること(今回小数点は不要)
- 被演算数(A×BのAの方)の入力状況が可視化されていること
- 演算数(A×BのBの方)の入力状況が可視化されていること
- 足し算ができること
- 引き算ができること
- 割り算ができること(四捨五入・切り捨てのいずれでも良い)
- 掛け算ができること
- 値をクリアすることができること
- おもしろ機能を何か一つ以上つけること(自由)
手順
コーディング規約を理解する
まず、コーディング規約とは何かについて調べてみてください。
ここでのコーディング規約は以下の通りとします。
- ボタンのコントロールはbuttonからはじめ、数値ボタンの場合は数値と一致させる、その他×などの機能については分かりやすい命名にしておくこと。
- 変数名やクラス名は半角英数を用いること、ひらがなやカタカナ、漢字などは使用しない
- メンバー変数名(調べること)は_(アンダースコア)と大文字から始めること(例:_Calculator)
- プロパティ名(C# プロパティなどで調べること)は大文字から始めること(例:Calculator)
- 関数内で使用するローカル変数は全て小文字から始めること(例:Calculator)
- 関数ヘッダ(コメント)は全ての関数につけること。VisualStudioが標準で提供しているコメント機能を使用すること。
- 全ての処理にコメントをつけること
開発する
- ボタンを配置する
- 0~9ボタンを配置する
- ÷×+-のボタンを配置する
- =ボタンを配置する
- 数値表示用テキストボックスを配置する
- 各数値ボタンを押した場合の処理を作成する
- 0のボタンを押した場合の処理を作成する
- 1のボタンを押した場合の処理を作成する
- 2のボタンを押した場合の処理を作成する
- 3のボタンを押した場合の処理を作成する
- 4のボタンを押した場合の処理を作成する
- 5のボタンを押した場合の処理を作成する
- 6のボタンを押した場合の処理を作成する
- 7のボタンを押した場合の処理を作成する
- 8のボタンを押した場合の処理を作成する
- 9のボタンを押した場合の処理を作成する
- 各四則演算ボタンを押した場合の処理を作成する
- +のボタンを押した場合の処理を作成する
- =のボタンを押した場合の処理を作成する
- -のボタンを押した場合の処理を作成する
- ÷のボタンを押した場合の処理を作成する
- ×のボタンを押した場合の処理を作成する
- クリアボタンを押した場合の処理を作成する
- クリアボタンを押した場合の処理を作成する
- 四則演算を扱うクラスを作成し四則演算の処理をクラス内で行う
テストする
- 画面を最大化してみる
- 0のボタンを押しまくってみる
- +,-,÷,=,クリアのボタンを押しまくってみる
- 0除算をしてみる
- 0 – 999999999をやってみる
- 9999999999 + 9999999999 = をやってみる
問題があった場合は何が問題かを考えて自力で対策してください。
変数の型の範囲は一度調べておくと良いでしょう。
変数の範囲を意識して開発できるとちょこっとだけ上級者です。
テストについて少し学ぶ
後はご自身でテスト内容を考えてテストしていってください。
今回は目的がプログラマー入門ですのでテストは簡単なもので結構です。
テストに関する概念を一読ください。
- ブラックボックステスト
- ホワイトボックステスト
- 境界値分析
- カバレッジ
ちょっとブレイク(黒集団の伝説)
以下の話は、ピープルウェアという本に出てくる僕の好きな話の抜粋です。
初めのうちは、テストチームが流す意地の悪い情け容赦ない
テストプログラムもほんの冗談で、
他人のプログラムをコケさせては喜んでいる程度だった。
だが、そのうちに冗談ではなくなってきた。
チームメンバーは破壊者のイメージをもちはじめた。
コーディングだけでなく、みんなの一日の予定を破壊した。
ミスを引き出すために、途方もなく無茶なことをした。
バッファに過負荷をかけ、空ファイル同士を比較し、とんでもない順序で入力した。
黒集団が作ったテストプログラムの元で、
自分のプログラムが誤作動するのを見て、
大の大人が思わず泣きだしたぐらいである。
悪く思われれば思われるほど、それを楽しんだ。
ピープルウェア やる気こそプロジェクト成功の鍵 (19章 黒集団の伝説)より抜粋
|
テストも極めるとこうなるみたいですね。
まとめ
いかがでしたでしょうか?
電卓の再発明という途轍もなく不毛なプロジェクトです。
超後追いの劣化版ですので、こんなものにお金を払う人はいません。
しかし、お金をかせぐことができる技術を習得しました。
ここからはこの技術の使い方次第です。
ようこそ、プログラマーの世界へ。
ハローワールドですね。
おわり
コメントを残す