プログラマー速攻入門 – 電卓開発プロジェクト


プログラマー速攻入門関連の記事です。
全体を見たい方はこちらへどうぞ。

ここまで電卓開発を数回推奨してきましたが、
もう少し補助輪が必要かと思いますので書いてみました。
プログラムの書き方などについては一切触れません。

さ、元気よく行きましょう。

制約事項と心構え

職業プログラマー(もしくは職業プログラマーを目指す)なら以下を意識してやってください。
趣味プログラマーなら意識してもしなくても結構です。

制約事項

使用可能工数: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章 黒集団の伝説)より抜粋

テストも極めるとこうなるみたいですね。

まとめ

いかがでしたでしょうか?

電卓の再発明という途轍もなく不毛なプロジェクトです。
超後追いの劣化版ですので、こんなものにお金を払う人はいません。
しかし、お金をかせぐことができる技術を習得しました。
ここからはこの技術の使い方次第です。

ようこそ、プログラマーの世界へ。
ハローワールドですね。

おわり

AIアート C# DXの設計書 Git GitHub GitHubサーベイ MovingWordpress Python stablediffusion Twapi Visual Studio VSCode Wordpress WPF ソフトウェア開発実演 ツール データサイエンス フォロワーを増やしたい ブログ収益化 ブログ記事整理プロジェクト プログラマーとは プログラミング プロジェクトマネジメント ワードプレスの引っ越し 僕が会社をやめた理由


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です