『リーダブルコード』を学習する1

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

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

序文

がんばって書いた本の感想より30秒で書いたブコメに大量のスターが集まってやさぐれ気味ですこんにちは。
でもfacebookでシェアしてくれた人がいるみたい。誰なんだろう。自作自演じゃないよ。

本日からは巷でいい噂しか聞かない「リーダブルコード」の学習を開始します。
相変わらず独自のセンスでコードを書いているので、少しでもコードライティングの糧になればと思います。

GitHub

github.com

進捗

  • 1章 理解しやすいコード
  • 第Ⅰ部
  • 2章 名前に情報を詰め込む
  • 3章 誤解されない名前
    (学習時間:3時間)

コード実装部分(一部)

  • 境界を明確にする例

\CodeExample\3章 誤解されない名前\3-4 範囲を指定する時はfirstとlastを使う\print-array.js
\CodeExample\3章 誤解されない名前\3-5 包含/排他的範囲にはbeginとendを使う\print-array.js

// stopの境界が曖昧
function printArray(start, stop){
  // 処理
}

/*******************
 改善例
********************/
// 包含的な範囲を示すことを明確にする
function printArray(start, last){
  // 処理
}

// begin&endを使うとbeginは包含的な境界、
// endは排他的な境界を示すことを明確にする
function printArray(begin, end){
  // 処理
}
  • その他実装部分

github.com

github.com

実行結果

  • テスト実行結果

ねえよ

感想

特にコードをコンパイルしたり実行したりする必要はないのでサクサク進める。
いろんな言語で書かれていてチカチカしそうになるが(初心者向けではないのだろうか?)、自分なりにJavaScriptに書き換えて学習を進めることにした。(動作未確認)

導入として、『読みさすさの基本定理=他の人が最短時間で理解できるコードである』
ということが定義されているのだけど、どうにも納得できない。
「他の人」の具体像が一切描かれていないからである。
「天才プログラマー」と「職業プログラマー」と「日曜プログラマー」あるいは「Webデザイナー」が最短時間で理解できるコードは当然それぞれ異なるはずだ。
さまざまな主体の存在を無視しているこの定義は果たして適切なのだろうか?
一体、どこを目指せば良いのか正直わからなくなってしまった。

とりあえず、「半年後の自分」が最短時間で理解できるコードを目指すことにしよう。
少し不安を覚える出だしではあるが、分厚い本ではないので淡々と読み解いていこう。

カロリーメイトください。

BGM

空っぽの空が僕は嫌いだ / 坂口有望 www.youtube.com 「あみ」なんだ「ゆめ」かと思ってた。
うーん…なんかメジャーに潰されちゃいそうな感じあるかも。
誰みたいにとは言わないけどー。