達人プログラマー
達人プログラマーの七章に関するまとめ 要求の落とし穴 要求定義の際に留意すべき事項について。 要求はもらうもではなく掘り起こすもの。 要求はドキュメント化し、Webでいつでも誰でも閲覧出来るようにする。 UMLはあくまで概要。詳細な仕様は階層構造のテ…
達人プログラマーの六章に関するまとめ 偶発的プログラミング 仕様も曖昧。設計も曖昧。そんな状態で作成したプログラムは 一見動いているように見えても問題を起こす可能性が大きい。 慎重なプログラミングを行うことでこれを回避する。 明確な仕様。設計。…
達人プログラマーの五章に関するまとめ 結合度の最小化とデメテルの法則 結合度の低いプログラムは作業分割、保守性、テストの用意性など様々な面で有用である。 メタプログラミング プログラムから詳細を排除し、可能な限りメタな状態にして詳細は設定ファ…
達人プログラマーの四章に関するまとめ 契約による設計 クラス・メソッドに対して事前条件、事後条件、不変表明などをまとめる。 理想はiContractなどを仕様してプログラムで実際にチェックを行うこと。 それが不可能でもコメントとして記述しておくだけでも…
達人プログラマーの三章に関するまとめ プレインテキストの威力 目で見て意味が分かるテキストの有用性。 人が見てわかること。 データの加工、流用が容易。 テスト化の容易さ。 貝殻(シェル)遊び シェルは小さいツールの組み合わせであり、その組み合わせ…
達人プログラマーの二章に関するまとめ 二重化の過ち DRY原則(Dont Repeat Yourself)の重要性と対処法 直交性 設計以外も含めた直交性の重要性。 各個別要素の変更が他に影響を与えないようにする。 可逆性 可逆性のある設計をしておけば、DBの変更のよう…
チャレンジ 現在作業中のプロジェクトで上がってきている要求のいくつかを、 専用の言語で表現できるでしょうか?また、要求されているコードの ほとんどを生成するようなコンパイラやトランスレータを記述することが できるでしょうか? Answer 来年から関…
≪DSL≫ 『達人プログラマー』の2章12 専用の言語にて説明されているミニ言語=DSLについて。 要約 ドメイン固有言語もしくはドメイン特化言語。 Domain-Specific Languageの略。 対義語はJavaやC言語等の汎用プログラミング言語やUMLのような汎用モデリング言…
IT系技術書の定番『達人プログラマー』の読書開始。 同著者が書いているリファクタリング・ウェットウェアが面白かったので期待して 読書を開始したが、こちらもなかなか良い。 達人の哲学 責任感 失敗に対して言い訳はしない。原因を分析し、対策をたてる。…