basyo(){
古池や
蛙飛びこむ
水の音
}
新人研修を受けていた時のことです。
シンプルにコンソールに文字列を出力する関数に、私は「basyo」と名付けました。
上の例は松尾芭蕉の有名な句であったので、それを出力する関数は「芭蕉」がふさわしいと思いました。
それが、どうしたことでしょう...。
コードレビューを経て、私の関数は、「outputString()」のような、
はたまた「printToConsole()」だか、なんだったか、
えー、とにかく記憶に残らない、つまらない名前にされてしまったのです...。
ああ、なんてところに来てしまったんだ!と、私は思いました。
社会では、オリジナリティーなんてのは、ぜんぜん要求されていないんだ。
このまま創造性を失って社会の歯車になるんだ。
なってしまうんだ......!
************************************************
「リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック」においては、
「basyo」と「OutputString」だと、「OutputString」の方が良いコードであるとされます。
「basyo」だと、何をする関数かよく分からないからです(場所?芭蕉?バショウ?)。
関数は、名前を見ただけで何を表すものか、すぐに理解できなくてはなりません。
研修の時ならまだいいかも知れませんが、本番でbasyo()なんてのに出くわした日には、
感心するどころかディスプレイを叩き割りたくなるに違いありません。
それは、1年後に自分の書いたコードを見直した私自身かも知れません。
余計なところでオリジナリティーを出さなくても、
創造性を発揮できる機会はちゃんとあります。
システムの設計思想、美しい画面構成、無駄のないUI、
// 余計なブログ記事の執筆、
絶対にそういう機会が来ます。
弊社のとあるお仕事では、OSの再起動をかけるための内製ソフトの名前が「phoenix.exe」です。
(普段、どういうモチベーションで仕事をしているのか分かりやすいですね。)
「リーダブルコード」には、
「コードをきれいに保とう。プログラマーと地球に優しくしよう!」
みたいな精神論から一歩踏み込んで「でも、どうやって?」という実践的なテクニックが記されています。
たとえば「LIMIT」のかわりに「MAX」で定義すれば、その値まで含むのか、含まないのか分かる、
といったことが書かれているわけです。
コメントの書き方について、コードから読み取れない、こうなった「経緯」を
書いても良いというのが非常に良かったので、業務にも取り入れています。
// この記事はそろそろブログ記事がほしいな......という社内担当者からの要請に基づき書かれている
「本当はこうしたかったんだけど前のコードがどうで、ああで、こうせざるを得なかった」
そんな背景も読んでいて嬉しい。
むしろ、それはコードからは分からないので知っておきたい、そんな情報を書いておくのにも使えるんですね。
「リーダブルコード」は語り口も軽妙で非常に楽しい本ですのでオススメです。
/*
「技術読書感想文」は、名著を読んで、あわよくば経費として会社に買ってもらおうという
目論見のシリーズだったのですが、1回目で飽きてしばらく放置していました。
(最近では、書籍をすんなり買ってもらえるんですよね!)
起承転結があるわけじゃないので、いつでも・やめられるという利点があります。
とはいえ、5回くらいはないと棚としてかっこがつかないかな......。
*/
あとは、
『ハッカーと画家』
『銀の弾などない - ソフトウェアエンジニアリングの本質と偶有的事項』
あたりを読んでおきたいですね。
何故かというと、もちろん、タイトルがかっこいいからです。
私も、
「コホン、えー、妊婦さんを10人集めても、1か月で赤ちゃんが産まれるわけじゃないんだよ?」
みたいなことを言いたい。言ってみたいからです。
私のディスプレイが叩き割られる日も近いかもしれない。
あと、なんか、有名な本はみんな良いって言ってるし。
こうやって他人の評価ばかり気にして自分で思考しない人間が増えていくんでしょうか?
嘆かわしいことですね。
でも、「みんなが良い」って言ってるから「良い」わけじゃないぞ、
っていうのはあんまりない例外への警句であって、わざわざいうわけではないけど、
9割くらいはいいんです。フツウの関数で。
何のとりえもなくても優しくて人様に迷惑をかけない関数になってくれれば......。
あと、やることが一つで責任の所在がはっきりしてれば......。
************************************************
オーム社/Dustin Boswell、Trevor Foucher 著、角 征典 訳
「リーダブルコード - より良いコードを書くためのシンプルで実践的なテクニック」
発行元:オライリー・ジャパン
原書:The Art of Readable Code
2012年06月発売
Written by Y氏
Copyright © Hokkaido Electronics Corporation.