Successfully reported this slideshow.
Your SlideShare is downloading. ×

アジャイルに必要な、変更に強い設計とは

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 14 Ad

アジャイルに必要な、変更に強い設計とは

Download to read offline

昔からそうではあるのですが、アジャイル開発では特に、変更に強い設計が求められます。アジャイルの時代に必要とされるレベルの変更容易性についてまとめました。

昔からそうではあるのですが、アジャイル開発では特に、変更に強い設計が求められます。アジャイルの時代に必要とされるレベルの変更容易性についてまとめました。

Advertisement
Advertisement

More Related Content

More from potimarimo (20)

Recently uploaded (20)

Advertisement

アジャイルに必要な、変更に強い設計とは

  1. 1. アジャイルに必要な、 変更に強い設計とは オブジェクト指向による抽象化とDry,YAGNI
  2. 2. アジャイル時代 変化に対応す ることが求め られます
  3. 3. ウォーターフォール時代も 変化に対応することは求められていました • 仕様変更はしょっちゅうありましたし • そもそも仕様が固まるまでは変更し放題 だったわけで
  4. 4. 抽象データ型 1960年代に提唱 ≒オブジェクト指向
  5. 5. プログラム分野における抽象と具体 具体 抽象 ビッ ト 数値 文字 列 日付 顧客
  6. 6. 抽象データ型の例 メニュー 新しいメニューを 開始する メニューを削除す る メニュー項目を追 加する メニュー項目を削 除する メニュー項目を有 効にする メニュー項目を無 効にする メニューを表示す る メニューを非表示 にする メニュー選択を取 得する ヘルプ画面 ヘルプトピックを 追加する ヘルプトピックを 削除する 現在のヘルプト ピックを設定する ヘルプ画面を表示 する ヘルプ画面を消去 する ヘルプの索引を表 示する 前の画面に戻る スタック スタックを初期化 する スタックに項目を プッシュする スタックから項目 をポップする スタックの先頭の 項目を読み取る ファイル ファイルを開く ファイルを読み取 る ファイルに書き込 む 現在のファイル位 置を設定する ファイルを閉じる ミキサー 電源を入れる 電源を切る 速度を設定する 瞬間粉砕を開始す る 瞬間粉砕を停止す る ポインタ 新しいメモリへの ポインタを取得す る 既存のポインタに 割り当てられたメ モリを解放する 割り当てられたメ モリの量を変更す る エレベータ 1つ上の階へ移動す る 1つ下の階へ移動す る 指定された階へ移 動する 現在の階を報告す る 1階に戻る リスト リストを初期化す る リストに項目を挿 入する リストから項目を 削除する リストから次の項 目を読み取る 燃料タンク 燃料を補充する 燃料を排出する タンクの容量を取 得する タンクの状態を取 得する 自動速度制 御装置 速度を設定する 現在の設定を取得 する 以前の速度に戻す 解除する 電灯 明かりをつける 明かりを消す
  7. 7. 抽象データ型のメリット 実装の詳細を隠ぺいできる 変更がプログラム全体に影響しない インターフェイスが提供する情報をより明確にできる パフォーマンスを改善しやすくなる プログラムの正しさがより際立つ プログラムがひとめでわかるようになる プログラムのあちこちでデータをやり取りする必要がない
  8. 8. 抽象データ型を利用する例 • 月末の扱いやうるう年など複雑な挙動はメソッ ドに隠蔽 • 入力は入力部分で処理 • 出力は出力部分で処理 日付を扱う変数はすべてDate型を使う
  9. 9. 抽象データ型を利用する例 • 業務要件はすべてメソッドに隠蔽 • 入力は入力部分で処理 • 出力は出力部分で処理 ユーザーを扱う変数はすべてUser型(自作)を使う
  10. 10. アプリケーション設計 画面クラス (ページ、テキストボックスなど) 業務クラス (顧客、会議など) 永続化(DB,REST)
  11. 11. 抽象データ型を利用する オブジェクト指向 •すべてのものはオブジェクト
  12. 12. アジャイルの時代 • 絶対に二度書かない!! Dry • いずれ必要にならない!! YAGNI
  13. 13. Dry 処理を2回書くのがめんどくさいから1か所にま とめるわけではない 一つの仕様は1か所に書く 一つの論理的変更の影響範囲は常に一か所
  14. 14. YAGNI まずテストを書く テストにかけないことは 実装しない

×