TheAgileGuildで「システム設計の原則」を学ぶ

スポンサードリンク

ギルドワークス市谷さんが立ち上げた、TAG(アジャイルギルド)に参加しています

といいつつ、幽霊部員と化していますが・・・


システム設計の原則の勉強会の案内がありました

書物に基づく話ということですが、それは読んでないのですが
モノづくりでの疎結合・密結合のバランスや設計の意思などを
知りたくて参加です


コンセプト
good design enhances agility

変更を楽で安全にする実践技法

リファクタリング2.0
既存のコードを安全に変更できる

プログラミングが中核
設計=プログラミング
設計=ソースコードで行こう

変更が楽で安全であることが良い設計
成長させられるように

たくさんの要因に対してプラスに働く

ドメイン駆動設計
時間とともに硬直化していくものに対して進化するチャンス
柔軟性のある設計に近づける

4つの本の紹介
オブジェクト指向のコミュニティの設計思想がベースになっている

ビジネスルール
型指向のプログラミング
読みやすいソフトウェア
全体像 型のネットワークができる

15年の歳月
変わらない本質が明らかに
学ぶメリットがわかってきた

カプセル化、ポリモーフィズム
実装とインターフェイスは別


40年前から言われていること
本質が実証されている これからの方向性

計算と入出力は分けよ
ソースファイルを分割せよ
名前にこだわれ
同じような分岐を重複させない
長いメソッドを書かない
グローバル変数を使うな
mutableを避けよ
カプセル化せよ
実装継承は使うな


intellij IDAとgit
リファクタリングに画期的なツール

現状への危機感
設計の常識レベルの劣化

モジュール化、カプセル化、インターフェイス

危険な理由
硬直化したモジュール
うごけばok症候群

機能分割→データモデル→ワークフロー→API駆動

動いたことがゴールではない
わかりやすく書き直すことがどれだけ効果があるかを実感

力ずくのプログラミングが横行
長ったらしいソースコード

ビジネスルールの分離
ビジネスルールを題材にしているかに注意

ソフトウェアが複雑になる理由は適用する条件による分岐のため
ピジネスルールの記述を独立させる

ビジネスルールを記述できるようになれば良い

型指向のプログラミング
型は値の種類
金額や数量などの値を独自のクラスを作る
有効な値の範囲を定義する
値の種類ごとに必要な計算、判定のロジックを特定する

ビジネスルールを記述する3要素
ファクト、ルール、ゴール
値オブジェクト
数値、時間、空間
単一型、範囲型、範囲のコレクション

メソッド
四則演算と分岐
文字列表現がマイクロサービスで必要になってくる

型を使うと安定する

契約による設計
事前条件と事後条件
暗黙のビジネスルールの明文化

区分ごとのロジックを扱う
enumに寄せて区分をリファクタリングすると効果が大きい
条件分岐を整理する

コレクションのカプセル化
ぐちゃぐちゃ感が消える

型指向のプログラミングを体得すると
ビジネスルールの単位に見えるようになる

名前をちゃんとつけることに味を占めるとやるようになる

レビュー時には型のネットワーク図と自分の感覚と比較する


質疑応答と考察

switch文に絞って重複を減らすことから始めるのがよい

チームでやるには、バグを目の前でリファクタリングで対応してしまえばいいのだが、難しい言語もある

やって見せて実感してもらうのをどうやって仕掛けていくか

整理整頓
ビジネスルールの型指向

機能化するときにビジネスルールか否かを判断した上で
ビジネスルールを型やカプセル化すれば、非常にスッキリする
分岐つついてもれなくダブりなくの状況を作る
(要件の引き出し方は、また別の話)


発言を誰かがひろってくれる安心感

神保町の丸香で讃岐うどんを

関連記事

  1. 社会やビジネスに新たな価値を生み出すソフトウェア…

    今の世の中にあった、システム構築における学問はないのかな?と常々…

  2. フルリモート開催2回めのredmine.toky…

    redmine.tokyoRedmineを愛する人達の勉強会…

  3. Butterfly Effect3 で「すえなみ…

    Butterfly Effect蝶の羽の風でも影響があるよう…

  4. 第13回redmine.tokyo JAXAの事…

    2017年11月18日に第13回redmine.tokyo勉強会が実…

  5. リモートで 吉祥寺PMに 登壇す(第34回) #…

    吉祥寺PM長く続く自由度の高い勉強会つまみ食い的な感じで…

  6. 匠らじお塾に参加 #takumijyuku

    匠塾 半年に一度参加しているイベント匠methodをちゃんと学ん…

  7. 第24回 redmine.tokyo #redm…

    長く続いてるredmineの勉強会のredmine.to…

  8. redmine.tokyo10周年を祝う会で歴史…

    redmine.tokyo勉強会私がお世話になっている勉強会です…

PAGE TOP