Undocumented...
  2012/07/23 #ssmjp
      th0x0472
お約束


Twitter @th0x0472
フォローするときはよく考えて。
アンフォローはお気軽に。

Blog http://th0x0472.at.webry.info/
ところで


 みなさん、コード書いてますか?

Shell script, C/C++, Python, Perl, Ruby,
   C#, Java, Assembler, Java Script,
       Visual Basic, VBScript, etc...
                (並び順に深い意味はありませんよ・・・?)
文章は書いてますよね


メール、ツイッター、ブログ

各種連絡、報告書、議事録

仕様書、設計書、手順書

                etc...
今日のお題

リーダブルコード
より良いコードを書くための
シンプルで実践的なテクニック

Dustin Boswel, Trevor Foucher著
角 征典訳

オライリー 2012年6月
(ISBN:978-87311-565-8)
www.oreilly.co.jp/books/9784873115658/
目次

1章 理解しやすいコード           9章 変数と読みやすさ

2章 名前に情報を詰め込む          10章 無関係の下位問題を抽出する

3章 誤解されない名前            11章 一度に1つのことを

4章 美しさ                 12章 コードに思いを込める

5章 コメントすべきことを知る        13章 短いコードを書く

6章 コメントは正確で簡潔に         14章 テストと読みやすさ

7章 制御フローを読みやすくする       15章 「分/時間カウンタ」を設
                       計・実装する
8章 巨大な式を分割する
「優れた」コードって何?

return exponent >= 0 ? mantissa * (1 << exponent) : mantissa / (1 << -exponent);

                                                        (本書 2ページより)

アイツは行っちまったのさ・・・
それこそ均一なるマトリクスの裂け目の向こうへ・・・
あいつは確かに活きてる。
広大なネットのどこか、あるいはそのすべての領域に融合して。
「優れた」コードって何?

if (exponent >= 0) {

     return mantissa * (1 << exponent);

} else {

     return mantissa / (1 << -exponent);

}

                                           (本書3ページより)

シーザーを理解するためにシーザーである必要は無い。
読みやすさの基本定理


 となる考え
コードは他の人が最短時間で理解できる
ように書かなければいけない。

         (本書 3ページより)
「他の人」?


どうせ誰も読まないし

他の人なんか知ったこっちゃないし

俺はマテバが好きなの!
「他の人」?


金曜日の自分と次の月曜日の自分。

夏休み前の自分と夏休み明けの自分。

半年後の自分。5年後の自分。
僕の場合

先週書いたコードの理屈をぱっと思い出せな
かったことがあります。よくあります。
(そもそも休みの日まで仕事のコトを覚えていたくない)

あるプロジェクトを離れてから4,5年後に
自分が書いたスクリプトが使い続けられてる
という話を聞いたことがあります。
コードの話でしょ?


根幹のメッセージは普遍的。

むしろコード以外の各種文書の方が
改善する余地が大いにあると思う。

エンジニアの共通言語=コードなだけ。
簡単に紹介すると

明確で正確な表現 vs 気取った言い回し

具体的な表現 vs 名状しがたい・・・

重要な情報を欠落させない

誤解を招かない表現

  当たり前? ちゃんと出来てますか?
簡単に紹介すると

全体像を説明する

自分の考えを記録する

読み手の期待を理解する

読み手に書き手の意図を伝える

 こんな普遍的なお話が詰め込まれてます
そんなわけで

コードを書くのが大好きな方はもちろん

コードに限らず、何らかの文書を書く方

あまり書きたくない方、読みたくない方

      みんなにお勧めです。
 (どちらかと言えばむしろ後にあげた方に強くお勧め)
でも・・・


お高いんでしょう?
紙の書籍で ¥2,400− (税別)
電子書籍で ¥2,016− (税込み?)

分厚いんでしょう?
本文、解説、索引で237ページ。
ところで

そもそも、ドキュメントが存在しない、
更新されていない・・・

そんなときは、Sphinxですよ。

       http://sphinx-users.jp/
おしまい
ご清聴ありがとうございました。

201207 ssmjp