ベタープログラマーを読んで内容をまとめた

雑談

広告

コードに関して

  • 少ないコードで書く
    • コードを多く書けば書くほど保守のコストがかかる
    • 読んで理解する量が増えるので、理解することが困難になる
    • コードが多いほどバグの隠れる部分が多くなる
  • たるんだロジック
    • 条件文及び同義語的なロジック構造を不必要にtもなっているもの。
    • たるんだロジックは、たるんだ心の表れ。
  • 複製
    • 複製によって繰り返された構造を隠し、既存のバグもすべて複製される。
  • 死んでるコード
    • 死んでるコードは、実行されず、そのコードへ到達することができない
  • 悪い設計
    • 悪い設計は、コンポーネント間に多数の不必要な通信経路を導入することがある

航路を航行する

  • 助けを求めることを恐れない
    • コードへの最善の航路は、すでにコードをしている誰かに導いてもらうこと。
    • ペアプログラミングや変更のレビューを活かすと良い
  • やってみて学ぶ
    • コードを学ぶ最善の方法は、そのコードを修正すること。自分の間違いから学ぶ
  • 調査、そして行動

エラーについて

  • 可能性のあるエラーをコード内で無視しない。
    • 壊れやすいコード
    • 安全では無いコード
    • ひどい構造
  • 予期せぬ事を予期する
  • 急がないこと
    • 一旦バグを発見して修正したら少し立ち止まって、コードのその部分に関連する問題がないかの確認をする

テストについて

テストの種類

  • 単体テスト
  • インテグレーションテスト
  • システムテスト
  • テストのコードを活気ながらテストをする。
  • 先延ばしにしない
  • ひどいテストは負債

システム

理解不可能

  • ひどい設計が更にひどい設計を生み出す
  • ひどいアーキテクチャの結果はコード内に閉じこもっていない
  • はっきりとしたアーキテクチャ設計は、首尾一貫下システムをもたらす。
  • 技術的負債に対処する

ソフトウェア開発について

  • 優れたソフトウェア開発は、思いついた最初のコードを投げ込むような無節操なコーディングではない
  • 優れたプログラマは謙虚さを持って活動する。
  • すべての事柄を知っているわけではない
  • 成果物を最初にテストする
  • 急がば回れ
    • どんな事情があってもビルドを急いだりしない。間違いを犯す
  • テストは、ソフトウェア開発者たちがシステムに追加した問題をあぶり出すだけであり、テスターが障害を見つけたとしたら、それはあなたの障害である。

規則に従う

  • コーディングの文化を統制する
  • 単純な設計
  • 使うのが容易

学び

何を学ぶべきか

  • 新たな技術を学ぶ
  • 新たな技術スキルを学ぶ
  • 人々との働き方を学ぶ
  • 新たな問題領域を学ぶ
  • 学び方を学ぶ

学びを愛して生きる

  • たとえ捨てるとしても、学びながらメモをとる
  • 学ぶために教える
  • 学ぶために行う

原因は思考

  • 説明責任を持つことが重要
    • 説明責任を持つことは、あなたのコーディング品質を劇的に向上
    • 誰かがコードを読んで批判するとわかっていたら、あなたは優れたコードを書くでしょう

コミュニケーション

  • コードがどれだけうまく伝えられるかは、使われているプログラミング言語など使われている自然言語に依存する。すべてが読み手に理解されなくてはならない
  • 適切な人たちと正しい用語を使うように注意する
  • 優れたコミュニケーションは優れたコードを促進する

広告