文化・芸術・クリエイティブ実験室 / 上野・浅草 / WEB/IT/インバウンド
おはようございます!ブックキュレーターの永田です。
先日Twitterで、5年ほど前にケイツー・インタラクティブでお仕事してくれてた方が『エンジニアになるなら「リーダブルコード」は最初に読んでおいた方がいい本』、のようなツイートをしていたのを見かけました。
り、リーダブルコードってなんだろう?ちょっと気になり本屋さんへGO!! さらっと立ち読み、冒頭のある記述に惹かれて迷わず購入してしまいました。
コードは理解しやすくなければならないとの観点から、読者のコードをより良くするための方法が書かれています。
例えば、そのコードを書いた思考の背景を、変数の名前の付け方やコメントの書き方次第で記録に残すことが出来ます。そうすれば次にコードを読む人(半年後の自分かも知れない)に、コードがもたらす機能を、より正確にわかりやすく伝えることが可能になります。
親切な記述がコードを編集する際の混乱を防ぎ、効率的なコーディング作業が行える、ということを事例を交えながらわかりやすく解説しています。
プログラムを書かれる方の中には、半年後に改めてコードを見た時に、『おいっ誰だっ!?これ書いたの!』っと思った経験がある方もいるのではないでしょうか?半年前の短納期の案件で書いたあのファイルを開かなければならないのか・・・
ドキドキしちゃうことたまにあります ^^
購入を決めたのは、この本の冒頭にこんなことが書かれていたからでした。
もしかすると、こんなふうに考えているかもしれないね。「他の人が理解できるって、誰が得するんだよ?このコードを使っているのはオレだけなんだぞ!」でもね、たとえ君一人のプロジェクトだったとしても、この目標には取り組むだけの価値があるんだ。「他の人」というのは、自分のコードに見覚えのない6か月後の「君自身」かもしれない。
半年前の自分、よく頑張ったっ!!っと言えるコード、これは結構大事ですよね。
変数名や関数名で後々何をやっているのかコードを追って考え続けなければわからないモノよりも、変数や関数の名前を見てコードの処理が想像できる、そんなコードは本当にクリエイティブで利益率の高いコードだと思います。
カギとなる考え
コードは他の人が最短時間で理解できるように書かなければいけない
話は変わりますが、僕も変数名を決めるときに一定のルールを持たしています。それはスコープの範囲、つまり変数の影響範囲がわかるようにすることです。
例えば、
function smartPhoneNumber(){・・・//javascript
等と作った場合、そのスコープ範囲内であれば、
var spNumDistance;
などと、spNum = smartPhoneNumber の影響範囲内(スマートフォンでの挙動を意識していると想定できる)で「Distance」距離に関わるものだとイメージ出来ます。これはそのままHTMLやCSSとの連携も出来るとても便利な考え方です。
WEBサイトを作るのにひと昔前はXHTMLが主流でした。XMLからの派生ということもあり、僕は名前空間を非常に意識しながらWEBサイトを構築していました。そのセマンティックな考え方は、そのままシームレスにプログラムに引き渡されます。フロントサイドエンジニアであれば、まず最初に意識した方がいい思考と僕は感じています。
カギとなる考え
名前に情報を詰め込む。
ここで重要なのは名前は象徴的なものでは無く、具体的であった方がいいということです。それと、ちょっと英語力も必要かもしれませんね。
リーダブルコードを読んでみて、いかがだったでしょうか?コードが分厚くなってしまって、バシバシ削除しコードをまとめてスッキリさせたはいいけど、半年後にドッキリした経験を思い出し変な汗をかきました。コードは短いだけが親切なわけではなく、『読みやすい』『理解しやすい』がとても大切・・・。
いやいや、改めて初心を取り戻しいろいろ考えさせてくれる一冊でした。
それではまた。
こんにちは、K2代表の永田です。 数年前から IoT (Internet of Things) をどうにかしたいと思い...
ケイツー・インタラクティブの出来ること