Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
C#でドメイン駆動開発パート1【C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法】
Highest Rated
Rating: 4.2 out of 5(1,331 ratings)
8,661 students

C#でドメイン駆動開発パート1【C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法】

ドメイン駆動開発のデザインパターンであるRepository,Entity,ValueObjectの実装方法とMoqを使ったテスト駆動開発を一緒にプログラミングをしながら解説していき,一つのアプリケーションを作成します。
Last updated 4/2026
Japanese

What you'll learn

  • C#でドメイン駆動開発をする方法を理解できる
  • ドメイン駆動開発のデザインパターンである,Repository,Entity,ValueObjectの実装ができるようになる
  • 複雑なプログラムをわかりやすい綺麗なプログラムに変更できるようになる
  • 全編テスト駆動開発での実装を行うためテスト駆動開発の知識が習得できる
  • Moqを使ったテストコードの書き方がわかるようになる
  • 1行ずつ記述しながらの解説なので一緒に手を動かしながら理解できる

Course content

1 section99 lectures9h 25m total length
  • #01_はじめに1:24
  • #01-2_開発環境とデータベース設計1:40
  • #02_SQLite0:48
  • #03_ドメイン駆動開発とテスト駆動開発3:16
  • #04-1_良いコードと悪いコード0:51
  • #04-2_データベースの準備3:39
  • #05_BADコード実装112:54
  • #06-1_小数点以下を2桁で統一する2:35
  • #06-2_ここまでのBADコード振り返り1:43
  • #07-1_BADコード解説1:42
  • #07-2_BADの悪いところ4:57
  • #08_BADコード改善6:10
  • #09_BADコード改善22:16
  • #10_潜在的なBADポイント8:08
  • #11_潜在的なBADポイント23:15
  • #12_テストコードの書き方7:11
  • #13_テストのしやすさを検討3:28
  • #14_BADコードの振り返り2:36
  • #15_アーキテクチャー5:32
  • #16_プロジェクト構成2:24
  • #17-1_Testsプロジェクトの修正2:00
  • #17-2_最初のテスト8:00
  • #18_Mockを使ったテスト14:16
  • #19_Entity3:56
  • #20_Entityの実装12:19
  • #21-1_ValueObject4:04
  • #21-2_基本の型とValueObjectの違い4:14
  • #22-1_ValueObject実装15:38
  • #22-2_ValueObjectを値として扱う7:02
  • #22-3_ValueObjectの基底クラス実装5:29
  • #22-4_ValueObjectをアプリケーションに適応する5:22
  • #23-1_クラスの整理4:28
  • #23-2_拡張メソッドの適応3:43
  • #24-1_区分のValueObject9:47
  • #24-2_区分のValueObjectの適応3:36
  • #25_インフラストラクチャー10:11
  • #26-1_データバインディング9:12
  • #26-2_ViewModelBaseの作成3:12
  • #27_Moqの使い方6:22
  • #28_Chaining Assertionの使い方13:31
  • #30-1_コンボボックスへの変更10:14
  • #30-2_コンボボックスへの変更4:27
  • #30-3_コンボボックスへの変更6:13
  • #30-4_コンボボックスへの変更3:43
  • #31-1_SQLiteHlperで共通化5:45
  • #31-2_SQLiteHlperで共通化5:53
  • #32_一覧画面の仕様0:39
  • #33-1_一覧画面実装11:13
  • #33-2_一覧画面実装8:13
  • #33-3_一覧画面実装4:22
  • #33-4_一覧画面実装12:46
  • #34-1_Save画面の仕様0:53
  • #34-2_Save画面の実装6:31
  • #34-3_Save画面の実装初期値6:18
  • #34-4_Save画面の実装初期値_コンボボックス6:26
  • #35-1_Save画面の実装_保存処理5:04
  • #35-2_Guardクラスの追加1:52
  • #35-3_Save画面の入力チェック4:35
  • #35-4Save画面の実装_保存処理のテスト9:03
  • #36_Save画面のデータバインディング11:35
  • #37_Save画面のSQLite実装6:40
  • #37_2_DateTimePickerのFormat変更6:01
  • #38_おわりに1:01
  • サンプルコード0:03
  • 39_.NET6対応版ソースコードの解説2:33
  • SQLServerでやりたい方へ5:51
  • 補講01_ValueObjectのGetHashCodeに関して2:09
  • 補講02_GetHashCodeの問題点16:34
  • 補講03_ValueObjectクラスの修正3:02
  • 補講04_2つ以上の値のGetHashCodeの作り方10:05
  • 補講05_なぜWindowsFormsでやっているのか_デスクトップアプリとUWPの選定基準は?5:35
  • 補講06_ValueObjectのEqualsについて12:31
  • 補講07_ValueObjectの<T>とwhereの意味6:26
  • 補講08_ValueObjectのoperatorについて3:37
  • 補講08_02_ValueObjectのoperatorについて3:13
  • 補講09_ValueObjectのotherがAreaIdになる理由1:13
  • 補講10_インピーダンスミスマッチについて5:19
  • 補講11_VisualStudio2010でデータバインドする場合3:45
  • 補足12_VisualStudio2010でMoqとChainingAssertionは使えるか19:50
  • 補講13_データグリッドのデータを更新する方法14:26
  • 補講14_DisplayValueはプレゼンテーション層に入れるべきでは?12:39
  • 補講15_なぜRepositoryと呼ぶのか1:05
  • 補講16_Saveを非同期にしたらテストコードがNGになる3:47
  • 補講17_ValueObjectの比較をValueObject<T>にしている理由1:45
  • 補講18_DataGridViewで独自クラスのリストをバインドする場合のComboboxの実装1:55
  • 補講19_2つのデータベースにつなぐとき5:54
  • 補講20_Value Objectが多い場合の管理方法について3:24
  • 補講21_ファイルに保存する場合はどうすればいいですか?3:42
  • 補講21B_ファイルに保存する場合はどうすればいいですか?3:20
  • 補講22A_SQLiteでトランザクションをかける方法5:23
  • 補講22B_インタフェースにトランザクションを追加する6:01
  • 補講22C_Executeを変更してトランザクションをかける2:48
  • 補講22D_トランザクション関係のインタフェースと実装5:59
  • 補講22E_トランザクション処理の仕上げ8:48
  • 補講23_ValueObjectの==をvo1.Equals(vo2)にしたらエラーになる4:37
  • MVVMデータバインド注意点6:17
  • 補講24_update処理時のentityについて2:39
  • 補講25_.NET10でSQLiteを使う7:12
  • ボーナスレクチャー0:14

Requirements

  • C#の基礎文法レベルは必要です

Description

ドメイン駆動開発のデザインパターンであるRepository,Entity,ValueObjectの実装方法とMoqを使ったテスト駆動開発を一緒にプログラミングをしながら解説していき,一つのアプリケーションを作成します。

  • 1行ずつ記述しながらの解説なので一緒に手を動かしながら理解できる

  • 1日1時間学べば1週間で知識の習得ができる

  • 5000円から10000円くらいの分厚い本を何冊も読んで数年間の商品開発の現場で実践し、

  • 改良に改良を加えた最終形を1週間で学べる

  • 実装はドメイン駆動開発とテスト駆動開発に集中できるように、

  • 画面はWindowsFormで作成します

  • テストコードはMoqなどのツールを使いテストしづらいデータベース周りのテスト方法を解説

  • 全編テスト駆動開発での実装を行うためテスト駆動開発の知識が習得できる

  • ドメイン駆動開発のRepository、Entity、ValueObjectの考え方を使って

  • どこにどんなクラスがあるかがキレイに整理されます

  • 動画はデータ表示、一覧表表示、保存画面と、現場で即実践できる内容で講義を構成しています

  • VisualStudio2017とSQLiteを用いた実装のため、C#以外にもデータベースプログラミングの学習もできます。

C#の文法が分からない方は,他のコースを受講して

IF分など,一般的な文法やインタフェースの書き方程度は理解してから本コースを受講してください。


01.はじめに

02.SQLite

03.ドメイン駆動開発とテスト駆動開発

04.良いコードと悪いコード

05.BADコード実装1

06.BADコード実装2

07.BADコード解説

08.BADコード改善

09.BADコード改善2

10.潜在的なBADポイント1

11.潜在的なBADポイント2

12.テストコードの書き方

13.テストのしやすさを検討

14.BADコードの振り返り

15.アーキテクチャー

16.プロジェクト構成

17.最初のテスト

18.Mockを使ったテスト

19.Entity

20.Entityの実装

21.ValueObject

22.ValueObject実装

23.クラスの整理

24.区分のValueObject

25.インフラストラクチャー

26.データバインディング

27.Moqの使い方

28.ChainingAssertion

30.コンボボックスへの変更

31.SQLiteHlperで共通化

32.一覧画面の仕様

33.一覧画面実装

34.Save画面の実装 初期値

35.Save画面の実装 保存処理

36.Save画面の実装 データバインディング

37.Save画面の実装 SQLite実装

38.おわりに



私は、プログラマーとして成長するためには自己投資が鉄則だと思い、
5000円から10000円くらいのドメイン駆動やテスト駆動の本などを何冊も読み漁りました。


そのおかげで、現在、保守性の高いプログラミングができるようになり、
仕事はやりやすくなりましたが、それまでの道のりは結構回り道をしてしまいました。


なぜなら、偉人の書いた本はすばらしく、天才的な内容なのですが、
読む量は膨大で、しかも理解することが難しいです。


今回の動画は、その偉人たちの知識量に比べては
得られる知識量は少ないかも知れません。
偉人の本のほうが、情報量は膨大だと思います。


ただ私の動画は、現場で使えるものに凝縮し、
実際に私が現場で使って、本当に効果のあった方法を
順番に動画でプログラミングして行きますので、
非常に大変理解しやすくなっています。


偉人の本のように、途中で離脱する恐れはないと思います。

しかも、この技術は一度身につけてしまえば
プログラマーやIT技術者としては、一生使える技術になります。
オブジェクト指向が生まれたのは1980年代ですから30年以上の歴史があります。
そのころからまったく色あせていません。
今後も数十年は使える技術ですし、新しい技術が埋まれても
それに追従する力もつくでしょう。


このような動画なのですが、
市場の大手のセミナーなどでは2日で10万円や20万円くらいしますし、
Web版でも5万円以上はします。

大手セミナーの内容は教科書的なものに比べて、
私の講義は実践的なので、それ以上の価値があるようにも思います。


それらを踏まえて公正な目で客観的に見ても、
ネット上で販売されてる他のコンテンツと比較しても、3万円ぐらいが妥当です。

しかし、勉強のための投資は大事ですが、
オブジェクト指向学びたての方には数万円支払うのは少し抵抗があるかもしれません。


そこで、今回はこの価格で提供させていただくことに決めました。


Who this course is for:

  • C#のプログラミングの整理の仕方がわからない
  • オブジェクト指向が理解できていない
  • C#のより良いコードを模索している
  • 正しいコードの書き方がわからない