タグ

ブックマーク / masuda220.jugem.jp (5)

  • オブジェクトの粒度:小さなオブジェクトに分ける | システム設計日記

    役割が明確な小さなオブジェクトに分けるのが、基中の基。 従業員を表現するために、従業員オブジェクトをルートとして、 ・個人 ・氏名 ・電話番号 ・生年月日 ・期間 ・給与 という小さなオブジェクトで構成する。 個人 氏名や電話番号のサブのルートクラス。 氏名 姓、名、セイ、メイを保持 バリデーションや、"姓名(セイメイ)"などのフォーマット出力を担当 電話番号 電話番号のバリデーションとか、フォーマット出力を担当 生年月日 生年月日を保持して、年齢計算も担当 期間 開始日と終了日を保持。 ある期間とある期間が重なっているかとか、期間演算を担当 給与 マネークラスのサブクラス。 将来は、給与計算ロジックを追加する場所。 --- オブジェクト指向の分析設計の発展形である、ドメイン駆動設計のオブジェクトの構成はこんな感じなる。 Evans の Domain-Driven Design のパタ

  • 関数型プログラミングってエクセル方眼紙だよね | システム設計日記

    業務アプリケーションの開発をしていると、エクセルで、ひとつのセルを全角一文字分の小さな正方形にした、いわゆる方眼紙スタイルで書かれたドキュメントにお世話になることがある。 エクセル方眼紙 第一のメリットは、どんな内容でも、縦や横をそろえて見た目をきれいにできること。 箇条書きをインデントして書くのも楽だし、ドキュメントの一部に小さな表とか画面イメージとか、罫線使って簡易な図形表現が手軽にできるのもメリット。 図の貼り付けの位置合わせとかも、他の部分ときっちりそろえることができて超便利。 日語の組版の基は「全角」「半角」に象徴される「等幅」の文字を並べること。 日語のドキュメントを作るときエクセル方眼紙は、理に適っている。 パソコン普及前は、薄い青線の入った方眼紙に文章と図を手書きしてコピーするのが当たり前だったらしい。 エクセル方眼紙は、この電子版というわけだ。 「エクセルの来の使

    Itisango
    Itisango 2012/12/28
    関数型プログラミングってエクセル方眼紙だよね
  • 設計の原則:モジュール化 | システム設計日記

    ソフトウェア設計には、パターン理解が大切。 でも、その前に、設計の基原則(設計の基テクニック)を、押さえておきたい。 いろいろな設計パターンに共通する、その根っこにある設計原則を会得すれば、パターンの理解や実践が、もっと楽に楽しくなる。 設計原則の会得は、ソフトウェア設計の免許皆伝、達人への道であり、ここぞという時の、銀の弾丸になる。 モジュール化 たぶん、これが、いちばん基の設計原則。 デザインパターンも、アナリシスパターンも、アーキテクチャパターンも、モジュール化原則の適用例になっていると思う。 モジュール化の原則違反の典型例は、一枚岩(モノシリック)で巨大なソフトウェア。 別名、密結合、スパゲティコード。 こういうソフトウェアは、理解しがたく、変更が恐ろしく難しい。 バグがあちこちに隠れていて、副作用が怖く、とてもじゃないが、コードを変更する勇気(度胸?)はない。 「一枚岩」は

    Itisango
    Itisango 2011/10/15
    設計の原則:モジュール化
  • Object Oriented を考える オブジェクト指向→目的志向 | システム設計日記

    ソフトウェアの設計・開発で、OO:Object Oriented は、根的な考え方の変化(パラダイムシフト)だと思う。 ソフトウェア開発の世界では、"Object Oriented" は、誰もが聞いたことがある言葉だと思うが、意味や使い方が、人によって、状況によって、ばらばらな、かなり不可思議な言葉でもある。 OOP:オブジェクト指向プログラミング オブジェクト指向言語を使ったプログラミングの総称? もし、Java , C#, PHP5 などをオブジェクト指向言語と呼べるなら、世の中には、オブジェクト指向プログラマがたくさんいるわけだ。 実感とはだいぶ違う。 分析や設計の考え方が オブジェクト指向じゃないのに、言語だけ、オブジェクト指向(風?)でもそれは、OOPとは言えないですよね。 OOAD:オブジェクト指向分析設計 UML でクラス図とか描くこと? オブジェクト指向言語の話といっしょ

    Itisango
    Itisango 2011/04/24
    Object Oriented を考える
  • ファウラーも、ケントベックも、 Value Object | システム設計日記

    ドメイン駆動設計(DDD)の Value Object パターンは、マーチン・ファウラーも、ケント・ベックをパターンとして推奨している。 ファウラーのエンタープライラズ・アプリケーション・アーキテクチャ・パターン(PoEAA) の 基パターンの中の Value Object パターン。 ベックの実装パターンの クラスのパターンの中の Value Object パターン。 エバンス、ファウラー、ベックは、仕事仲間(?)なので、三人で昔、Value Object について、いろいろ語り合ったことがあるんだろうなあ。 ファウラーの Value Object パターン Money や DateRnage などのシンプルな小型のオブジェクト。 オブジェクト生成時に、コンストラクタで、フィールドを設定し、以降はフィールドを設定しない。 つまり「不変オブジェクト」にすべし。 ファウラーは、アナリシスパ

  • 1