noob log.

Hearthstone, 電子工作, プログラミング, and more...

プログラマが知るべき97のこと まとめ 1

いい本だったのでまとめ記事を。

個々のエッセイはクリエイティブ・コモンズでライセンスされています。

 

1.分別のある行動
故意の技術的負債(気づいていながら先送りされる修正作業)を残すべきではない。
どうしても先送りしなくてはならないなら、存在を忘れず、できるだけ早く返済すべき。
負債は放置することで利息が発生する。
節目節目で返済をし、残った負債をトラッキングすることでコストは最小限に抑えられる。
分別のある人なら負債を残すようなことはしないはず。

3.ユーザが何をするかを観察する(あなたはユーザではない)
ユーザはプログラマのようにものを考えるわけではない。
「ユーザが何を考えるか」は観察するのが一番で、観察しながら「なぜそういうことをするのか」を常に考える。
観察していると、ユーザの基本的な振る舞いが見えてくるはず。
これは、会議室で想像で話し合っているものとは全く異なる。
結局のところ、ユーザの言葉を聞くよりも、行動を観察するのが一番良い。

4.コーディング規約を自動化する
コーディング規約を設ける目的の1つは、「自分の書いたコードを私物化出来ないようにする」こと。
アンチパターンを使ってしまうことで生じるバグを防いだり、プロジェクト全体の開発速度を一定に保つ役割もある。
ただし、プロジェクトに参加する全員が同じ規則に従わなければ意味が無い。
自動化ツールを使用することで防げるが、完全では無いのでガイドラインの整備が重要。
あと、コーディング規約は固定的ではなく、変化していくべき。
プロジェクトが進行していけば求められるものも変わってくる。

5.美はシンプルさに宿る
可読性・保守性・開発効率・(言葉で表現するのが難しい)美しさはシンプルなコードを組むことで達成できる。
システムを構成する部分がすべてシンプルで、個々の部分が担う責務や部分同士の関係もシンプルなコードは美しい。
シンプルで美しいコードならテストも保守も楽にできる。
美はシンプルなものから生じ、シンプルなものに宿る。

6.リファクタリングの際に注意すべきこと
リファクタリング…外部から見た動作を変えずに、内部構造を整理すること
・初めにすべきことは、コードとテストコードの良い点、悪い点、弱みの分析。
・ゼロから書き直すのでは無く、既存のコードを出来るだけ活かすこと。
 ゼロから書きなおすことは、これまでの時間と労力を無駄にすることを意味する。
・一度に大幅な変更をせず、少しづつの変更をテストしつつ加えること。
・個人の好みやエゴ、新技術を使いたいという理由でリファクタリングをすべきではない。
・コードを書き換えても前より良くなるとは限らないことを忘れてはならない。

 

created by Randy_Hoo.