C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法
  • #01_はじめに
  • #01-2_開発環境とデータベース設計
  • #02_SQLite
  • #03_ドメイン駆動開発とテスト駆動開発
  • #04-1_良いコードと悪いコード
  • #04-2_データベースの準備
  • #05_BADコード実装1
  • #06-1_小数点以下を2桁で統一する
  • #06-2_ここまでのBADコード振り返り
  • #07-1_BADコード解説
  • #07-2_BADの悪いところ
  • #08_BADコード改善
  • #09_BADコード改善2
  • #10_潜在的なBADポイント
  • #11_潜在的なBADポイント2
  • #12_テストコードの書き方
  • #13_テストのしやすさを検討
  • #14_BADコードの振り返り
  • #15_アーキテクチャー
  • #16_プロジェクト構成
  • #17-1_Testsプロジェクトの修正
  • #17-2_最初のテスト
  • #18_Mockを使ったテスト
  • #19_Entity
  • #20_Entityの実装
  • #21-1_ValueObject
  • #21-2_基本の型とValueObjectの違い
  • #22-1_ValueObject実装
  • #22-2_ValueObjectを値として扱う
  • #22-3_ValueObjectの基底クラス実装
  • #22-4_ValueObjectをアプリケーションに適応する
  • #23-1_クラスの整理
  • #23-2_拡張メソッドの適応
  • #24-1_区分のValueObject
  • #24-2_区分のValueObjectの適応
  • #25_インフラストラクチャー
  • #26-1_データバインディング
  • #26-2_ViewModelBaseの作成
  • #27_Moqの使い方
  • #28_Chaining Assertionの使い方
  • #30-1_コンボボックスへの変更
  • #30-2_コンボボックスへの変更
  • #30-3_コンボボックスへの変更
  • #30-4_コンボボックスへの変更
  • #31-1_SQLiteHlperで共通化
  • #31-2_SQLiteHlperで共通化
  • #32_一覧画面の仕様
  • #33-1_一覧画面実装
  • #33-2_一覧画面実装
  • #33-3_一覧画面実装
  • #33-4_一覧画面実装
  • #34-1_Save画面の仕様
  • #34-2_Save画面の実装
  • #34-3_Save画面の実装初期値
  • #34-4_Save画面の実装初期値_コンボボックス
  • #35-1_Save画面の実装_保存処理
  • #35-2_Guardクラスの追加
  • #35-3_Save画面の入力チェック
  • #35-4Save画面の実装_保存処理のテスト
  • #36_Save画面のデータバインディング
  • #37_Save画面のSQLite実装
  • #37_2_DateTimePickerのFormat変更
  • #38_おわりに
  • サンプルコード
  • SQLServerでやりたい方へ
  • 補講01_ValueObjectのGetHashCodeに関して
  • 補講02_GetHashCodeの問題点
  • 補講03_ValueObjectクラスの修正
  • 補講04_2つ以上の値のGetHashCodeの作り方
  • 補講05_なぜWindowsFormsでやっているのか_デスクトップアプリとUWPの選定基準は?
  • 補講06_ValueObjectのEqualsについて
  • 補講07_ValueObjectの<T>とwhereの意味
  • 補講08_ValueObjectのoperatorについて
  • 補講08_02_ValueObjectのoperatorについて
  • 補講09_ValueObjectのotherがAreaIdになる理由
  • 補講10_インピーダンスミスマッチについて
  • ボーナスレクチャー