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

スポンサードリンク

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

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


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

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


コンセプト
good design enhances agility

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

型を使うと安定する

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

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

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

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

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

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


質疑応答と考察

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

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

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

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

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


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

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

関連記事

  1. クローバField(ホームページの作り方教室)に…

    妻がコーチングに関するビジネス向けホームページを作りたいというので…

  2. Lychee Redmineでトラブル予防/描い…

    2018年に続いてデブサミに参加しました注目セッションは以下の2…

  3. Baseball Play Study 2019…

    さあ、シーズンも開幕となるとBaseball Play Study…

  4. おすすめの勉強会!

    マドびっ!作者の門屋浩文です2018年はいろんな勉強会に参加…

  5. 要求開発アライアンスで「匠Method」を知る

    要求開発アライアンス月一で参加してます今回は…

  6. 価値からはじめるビジネスデザイン 匠Method…

    以前、要求開発アライアンスで匠Methodを知った…

  7. WordPressの仕組を学び中 201806

    マドびっ!はWordPressで作っているページです毎日書い…

  8. 情シス Café in Kobe #3に参加

    前回のredmine大阪で知り合った山本さんが企画している勉強会に参…

PAGE TOP