「プリンシプル オブ プログラミング」- プログラマのルーティーン - 読書メモ
概要
今回、コードを綺麗に書けるよう、その概念を学ぶためにプリンシプル オブ プログラミングという書籍を読んだ。101個の原則が読みやすくまとめられており、財産になる本だった。この記事では、私自身が大事だと思ったことをメモ・感想を記述していきたいと思う。
プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則
- 作者: 上田勲
- 出版社/メーカー: 秀和システム
- 発売日: 2016/03/23
- メディア: 単行本
- この商品を含むブログ (11件) を見る
目次
プログラマの3大美徳
- 怠慢・短気・傲慢であれ
- 怠慢・短気・傲慢で作業を仕組み化
- 自動化・雛形化・モジュール化
怠慢
みんなが後から楽ができるように、全体の労力を減らすためには労力を惜しまないという意味での怠慢。例で表すと、テストや環境構築の自動化がある。
短気
起こりうる問題を想定しながらコードを書く。問題があれば、すぐにコードを書き直す。そのような意味での短気である。
放漫
人に見せても恥ずかしくない、自身を持てるコードを書けるようにする。その意味で高くプライドを持つという意味の放漫。
ボーイスカウトの規則
- コードを掃除して帰る
- コード腐敗を抑止する
- コードは改良してからコミット
目的として、コードの新鮮さを保つため、悪いコードを直して今後コードをみた人が内容を理解しやすくするため。それがコードの品質向上につながる。ボーイスカウトは「自分が訪れたところは来たときよりも綺麗にする」という規則があり、それをプログラミングに当てはめたもの。
パフォーマンスチューニングの戒め
- 「速い」コードより「よい」コード
- 速いコードは「割に合わない」
- まずは良いコードを書く
パフォーマンスチューニングとは、速いコードを書くこと。しかしその前に、正確なコードを書くことが優先である。それができるようになったら、 パフォーマンスチューニングを行うべきである。
パフォーマンスチューニングの手順
- 最適化の必要性を証明する
- パフォーマンスを計測し、ボトルネックを特定する
- ボトルネックのコードを最適化する
- パフォーマンスを計測し、最適化の効果を確認する
- 最適化したコードの動作に問題がない事を確認する
確認するエゴレスプログラミング
- エゴを捨てよ
- エゴレスで品質向上
- エゴレスプログラミングの10戒を守る
プライドを捨てて、仲間にコードをみてもらい指摘してもらう事で、かえってそれが品質の向上につながる。しかし、自分を殺しすぎて個性をもなくしてしまうと、逆にチームに貢献できなくなる。エゴのバランスを取ることも重要である。
- 自分自身も間違いを起こすという事を理解し、受け入れる
- 書いたコードは、自分自身ではありません
- どれほど極めたと思っても、上には上がいる
- 相談なしに、コードを書き直さない
- 自分よりもスキルが劣る人にも、尊敬と敬意と忍耐を持って接します。
- 世界で唯一変わらないことは、変わるということだけ
- 本当の権威は、地位だけでなく、知識から生じる
- 信じるもののために戦う。ただし、負けは潔く受け入れる
- 部屋に籠もりきりはいけない
- 人にやさしく、コードに厳しくして、人ではなくコードを批評する
一歩ずつ少しずつ
- ステップ・バイ・ステップ
- 「手堅い歩み」は効率的
- 一度に複数やらない
小さい一歩だが、確実な一歩を歩むことが結果として品質も時間効率も上がる。一歩ずつ進めると一歩ずつ戻っていくこともできる。また、一歩ずつ進めるということは、コードを十分に理解できていることを示す。そのため不安がないまま、作業に進める事ができる。