第2話 二回目のプログラミング!
俺は、以前のプロジェクトで開発を行っていた際に、既存のプログラムでお茶目なコードを見た。
『アタタタタタタッ』そんな言葉がプログラムの中に刻まれていたのである。
開発、すなわちプログラミングでは、皆さんのイメージ通り暗号のような文字列を並べていくわけだが、一点、皆さんのイメージと違うところは、プログラマはあの暗号を一瞬では読み解けないというところだ。
映画に出てくる天才ハッカーは大抵、暗号のような文字列を一瞬だけ確認しては、目にも止まらないスピードでキーボードを叩いているが、現実はそんなに甘くない。
バグ修正など、プログラムを修正する場合には、10分かけて暗号を読み、15分かけてわからない暗号をグーグルで調べ、40分かけてバグの直し方を調べて、インターネットに書いてあるコードをコピペしてみる。
みなさんお分かりだろうか。
上記のバグ修正の場合、一度もキーボードを使用していないということを...。(注意:少々筆者の偏見で話を盛っています)
少々脱線したが、筆者が伝えたいのは、いくらプログラマといえど、自分ではなく他人が書いたプログラムを解読するにはそれなりの時間がかかってしまうということだ。
ではどうすれば、ほかの人が読んだときに理解しやすいプログラムを書くことができるだろうか。
方法は何通りかあるが、その中の一つに『コメント文』というものがある。
コメント文とは、その名の通り、コメントを書いた文である。
例として、下記のプログラムがあったとしよう。
result = customerData.getAbcdefg(name);
これだけの情報では、どんなプログラマでも何をしている処理なのか、全く読み取ることができない。
では、下記ならばどうだろう。
//お客さんの名前(name)を指定して、そのお客さんの好きな食べ物の名前をresultに設定するよ★ミ
result = customerData.getAbcdefg(name);
いかがだろうか?
これならば、プログラミングがわからない方でも何となく、お客さんの名前(name)を指定して、そのお客さんの好きな食べ物の名前をresultに設定している★ミ処理なのではないかと想像がついたのではないだろうか。
このように、プログラムの中に好きなコメントを残せる仕組みのことをコメント文という。
今回は、コメント文に翻弄された金子新人の体験記である。
「金子君、ちょっといいかな」
上司Aは「ちょっとこっちに来てほしいんだけど」と手招きする。
「はい、なんでしょうか」
次の作業に関する指示だろうか。
すかさず、できる部下をアピールすべくPCをスリープモードにし、メモ帳を携えて上司Aの席に向かう。
「はい、どのようなご用件でしょうか」
上司はディスプレイに移るWBS(作業の計画書のようなもの)を見せながら説明を始める。
「最近はテストばかり任せてたけど、そろそろプログラムを書きたくなってきた頃合いだろう」
おおお、上司Aわかっていらっしゃる。
「今やってもらっているこの作業なんだけど、これが終わったら次はここの開発があるから、これを金子君に着手してほしいんだけど大丈夫?」
あいあいさー!
「はい、もちろんです。○○機能の機能追加の開発ですね。承知しました。」
「じゃあよろしくね。今の作業が終わったら少し機能の説明をするから、俺に声かけて」
「承知しました」
そんなこんなで、久しぶりにプログラミングの作業を任せてもらえることになった。
なんだかんだいって、新人研修の後、初めて着任したプロジェクトではプログラムを書かせてもらう機会も多かったが、このプロジェクトに入ってからは初めてだ。
研修と最初のプロジェクトの経験を生かして、ばりばりコードの開発をするぞ!
ほどなくして金子君は開発、すなわちプログラミングの作業に着手する。
ふむふむ、設計書を確認して処理の内容は理解できたぞ。
プログラムはっと...。
うーん、なるほど、何となく理解できるけど、コメント文が全部英語だ。
そういえばこのシステムはもともとオフショア(海外に開発を委託すること)で作られたんだったっけか。
まあ任せておきなさい。
私の手で、もっとシンプルで分かりやすい、素晴らしいプログラムにしてみせましょう。
――一週間後――
「上司Aさん。プログラムが完成しました。ソースレビュー(書いたプログラムを確認してもらうこと)をお願いします」
「おっ、金子君。少し難しいと思っていたんだけど、思ったよりも早くできたんだね。それじゃ、確認するから、ほかの作業をしてて」
どやっ。
「承知しました!(にっこり)」
よしっ、我ながらスムーズにかついいプログラムが書けたのではないか。
これは、評価が上がること待ったなしだな。(にんまり)
――数時間後――
「金子君、ちょっといいかな」
上司Aはいつものように手招きする。
「はい、今行きます」
上司Aの席までたどり着くと、上司Aは腕を組み、椅子を左右にくるくるしながらディスプレイを見つめている。
「金子君、さっきのコードレビューなんだけどさ」
おっ、これは、俺のプログラムをみて、驚愕しているのだろうか。
なかなかいいコードを書きよる...と。
俺はワクワクしながら続きを待つ。
「処理の内容はいいと思うんだけどさぁ...」
だけどさぁ?
気になる語尾に、自然と体が強張っていく。
「コメント文が日本語なんだよね」
「日本語...、ではダメなんでしょうか?」
「ちゃんと、コーディング規約(プログラムの書き方のルール的なもの)見てくれた?」
「えっ、あっ、そっ、そういえばちゃんと見ていなかったかもしれ...です...」
「このプロジェクトではコメント文は英語っていう決まりなんだよね」
「はぁ、そうでしたか(落胆)」
「すみません、すぐに直します」
俺は肩をがっくし落としたまま自席に戻ろうとする。
「ちょっと金子君、あとひとつ指摘があるんだけどさ」
まだあるのか、と力なく振り返ると、上司Aはプログラムの一部を指さしながら続ける。
「この『アタタタタタタッ』ってなによ」
「あっ、それはボタンを連打すると処理がおかしくなってしまうので、連打させないようにする処理です」
「いやいや、下に『(連打を防ぐ処理を呼び出す)』って書いてあるからわかるけどさ。アタタタタタタッはいらないでしょ」
「えっ、だっ、以前のプロジェクトでも既存のプログラムでそんなコメント文を見たので、ついつい真似を...」
「あーなるほどね」と上司A。
「金子君が前に所属していたプロジェクトは自社製品の開発だからいいけど、今回のプロジェクトはお客さんのシステムを改修してるんだから、あんまり変なコメントは残さないでよ」
「す、すみません...」
その後、金子新人はシンプルかつ的確なコメント文を残してゆく有能プログラマへの道を駆け上がっていくのであった。
また、同時にGoogle翻訳のプロフェッショナルになっていったことは言うまでもない。
金子君は今日もコーディング規約を参考に、プログラミングに励んでいる。
めでたしめでたし。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます