Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

達人プログラマー

達人プログラマー/七章 プロジェクトを始める前に

達人プログラマーの七章に関するまとめ 要求の落とし穴 要求定義の際に留意すべき事項について。 要求はもらうもではなく掘り起こすもの。 要求はドキュメント化し、Webでいつでも誰でも閲覧出来るようにする。 UMLはあくまで概要。詳細な仕様は階層構造のテ…

達人プログラマー/六章 コーディング段階

達人プログラマーの六章に関するまとめ 偶発的プログラミング 仕様も曖昧。設計も曖昧。そんな状態で作成したプログラムは 一見動いているように見えても問題を起こす可能性が大きい。 慎重なプログラミングを行うことでこれを回避する。 明確な仕様。設計。…

達人プログラマー/五章 曲げるか壊すか

達人プログラマーの五章に関するまとめ 結合度の最小化とデメテルの法則 結合度の低いプログラムは作業分割、保守性、テストの用意性など様々な面で有用である。 メタプログラミング プログラムから詳細を排除し、可能な限りメタな状態にして詳細は設定ファ…

達人プログラマー/四章 妄想の達人

達人プログラマーの四章に関するまとめ 契約による設計 クラス・メソッドに対して事前条件、事後条件、不変表明などをまとめる。 理想はiContractなどを仕様してプログラムで実際にチェックを行うこと。 それが不可能でもコメントとして記述しておくだけでも…

達人プログラマー/三章 基本的なツール

達人プログラマーの三章に関するまとめ プレインテキストの威力 目で見て意味が分かるテキストの有用性。 人が見てわかること。 データの加工、流用が容易。 テスト化の容易さ。 貝殻(シェル)遊び シェルは小さいツールの組み合わせであり、その組み合わせ…

達人プログラマー/二章 達人のアプローチ

達人プログラマーの二章に関するまとめ 二重化の過ち DRY原則(Dont Repeat Yourself)の重要性と対処法 直交性 設計以外も含めた直交性の重要性。 各個別要素の変更が他に影響を与えないようにする。 可逆性 可逆性のある設計をしておけば、DBの変更のよう…

達人プログラマー/二章 P63チャレンジ DSLのアイデア

チャレンジ 現在作業中のプロジェクトで上がってきている要求のいくつかを、 専用の言語で表現できるでしょうか?また、要求されているコードの ほとんどを生成するようなコンパイラやトランスレータを記述することが できるでしょうか? Answer 来年から関…

DSL=ドメイン特化言語

≪DSL≫ 『達人プログラマー』の2章12 専用の言語にて説明されているミニ言語=DSLについて。 要約 ドメイン固有言語もしくはドメイン特化言語。 Domain-Specific Languageの略。 対義語はJavaやC言語等の汎用プログラミング言語やUMLのような汎用モデリング言…

達人プログラマー/1章 達人の哲学

IT系技術書の定番『達人プログラマー』の読書開始。 同著者が書いているリファクタリング・ウェットウェアが面白かったので期待して 読書を開始したが、こちらもなかなか良い。 達人の哲学 責任感 失敗に対して言い訳はしない。原因を分析し、対策をたてる。…