脱プログラム初心者に送る、要件をプログラムにするときのコツを Sagasoon。
今回は、細かな技術をご紹介するわけではないです。
どちらかというと、「脱初心者な考え」といったらいいでしょうか。
脱初心者としてすべきこととして「要件の落とし方が読みやすいコードを書く」ということを、順を追って書いていきます。
全3回に分けて、具体的に書いていきますので、脱初心者を目指している方、是非読んでください。


前置き
お仕事などでプログラムを組む場合、「ご要望」(要件)というのが付きまといます。
たとえばですが、
配列の内容をソートして、上位10件だけ、そこに書いてある数式で集計しておいて
という依頼があるとしましょうか。
この依頼は、プログラムコード上での話をお願いしてますよね。
指示してくだすった方は、おそらくプログラムが分かっていて、全体構造も頭に入っている方なんでしょうね。
ただ、通常、そんな「要望」は来ないです。
売り上げ上位10人について、傾向分析した結果を出してくれ
みたいな、お話できます。
要望を持った人が「やりたいこと」というのは、「プログラムでこうつくってくれ」じゃないですからね。
そんな話をもとにして、プログラムをどう組めば幸せなのか、少し書いておきたいと思います。
お客様は外国人。我々はプログラムに翻訳をする技術者
こちらは「プログラム言語」を話す立場。
要件を言ってくるお客さんは、違う言語を話す外国人。
私は、そう思ってプログラムを組みます。
ですので、お客様が話す言葉を、我々は翻訳するってことです。
翻訳家として大事なこと
ある種、我々は技術者というか翻訳家なわけです。
翻訳家にとって大事なことはなんですかね?
例えば、大事なことを2つ挙げるとすると、こんなことでしょうか。
- 正しく翻訳されてる
- どの言葉(要件)が、どこのプログラムになってるか分かること
「正しく翻訳されている」というのは当たり前ですかね。違うことしてたら大変ですね。
2個目の話も、皆さん気を付けることが多いかもです。
「プログラムにコメントを入れる」という行為をするかと思います。
「この処理は、こうゆうことだからね」的なものから、「この要件について書いてるからね」というところもありますよね。
ですので、この2件はたいてい意識してプログラムしている(コーディングしている)と思います。
脱初心者として、もう一歩踏み込む
前項目で記載した2つのことにあわせて、もう1つ観点を入れると「脱初心者」になれます。
間違いないです。
何を何に翻訳しているか、分かるようにしておく
たとえば、
要望 を どんな要望にかみ砕いたか
とか
要望 を どんな実装にしたか
と言ったらいいでしょうか。
例えば、お客さんが何かを追加要望してくる時、プログラムのどの部分であるかなんて意識することはないです。
「要件」で伝えた内容に対して、言葉を追加してきますよね。
毎回その言葉を聞いて、どこに該当することだろうとやっていては、すごく疲れます。
だったら、最初から、
要望が実装に直結している書き方をしておく
のがいいです。
念のために言っておきますが、汎用性のない、要望だけをプログラムしました的な作りをしてほしいと言ってるわけではないですからね。
あくまでも「入口」のお話です。
まとめ
第一回目、いかがだったでしょうか?
脱初心者のコーディング方法のコツを、私なりに考えることを1点とりあげて記載してみました。
さて、今後あと2本続きます。
第二回目は、もう少し具体的に図式化して内容をお伝えしていきます。
第三回目は、その内容を、コーディングにどう反映するかをお伝えするつもりです。
尚、こういったコーディングの方法が分かってくると、いわゆる設計レベルのことや、UMLなどのシステムの図式化などが、とても入りやすくなるかと思います。
是非、脱初心者を狙う方は、真似してみてくださいませ。


コメント