C# 学習 ロードマップ
ピーコックアンダーソンさんの情報を元に作成
文法
書籍
プログラミングC# 第8版 [ Ian Griffiths ]
・文法はほぼ網羅されている。
・最新の知識が身に着く。
・ユーザーインターフェースについても書かれている。
実戦で役立つC#プログラミングのイディオム/定石&パターン [ 出井秀行
・独習シリーズもアリ。
プログラミング.NET Framework 第4版【電子書籍】[ Jeffrey Richter ]
最初からこれを読むと躓くが、これは読んでおいた方がいい。
動画
コーディングルール
書籍
.NETのクラスライブラリ設計 改訂新版 開発チーム直伝の設計原則、コーディング標準、パターン [ Krzysztof Cwalina ]
・これは必読
・これを読むとコーディングルールは基本的に理解できる。
・プライベート変数の名づけ方に関しては言及されていない。
・プライベート変数はアンダーバーをつける等自分で工夫する。
リーダブルコード より良いコードを書くためのシンプルで実践的なテクニ (Theory in practice) [ ダスティン・ボズウェル ]
・If 文の書き方とか書いてある。
・文法的によりよく描く為の本。
・文法がわかってないと学びにならないかも。
動画
リーダブルコード:C#で読みやすいコードを書く50の方法 | Udemy
オブジェクト指向
オブジェクト指向の本を読んで引き続きテスト駆動開発やドメイン駆動開発の本を読む。そのごオブジェクト指向に戻ってみると理解が深まる。
書籍
【中古】大型本 Head Firstオブジェクト指向分析設計 頭とからだで覚えるオブジェクト指向の基本
・絵や漫画ががって最初わかりやすい。
Head firstデザインパターン 頭とからだで覚えるデザインパターンの基本 [ エリック・フリーマン ]
・併せて読んでおくとよい。
オブジェクト指向のこころ デザインパターンとともに学ぶ (SOFTWARE PATTERNS SERIES) [ アラン・シャロウェイ ]
・併せて読んでおくとよい。
アジャイルソフトウェア開発の奥義第2版 オブジェクト指向開発の神髄と匠の技 [ ロバート・C.マーティン ]
・これも非常に良い。
・基本原則について語られている
・テスト駆動に1章咲かれていてテスト駆動が何なのか知ることができる。
・第4章に注目。
・他にも自分に合う本を読んでおく。インターフェースや継承の使いd頃を感じ取ってもらいたい。
動画
オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則 | Udemy
オブジェクト指向の原則2:リスコフの置換原則と継承以外の解決方法 | Udemy
テスト駆動開発
オブジェクト指向はテスト駆動開発、ドメイン駆動開発、デザインパターンと密接に関係している。オブジェクト指向を学んで立ち止まらずにテスト駆動開発などを学ぶ。
Visual Studio ではMSテストというのが標準でついている。
テスト駆動開発・・テストコードを先に書いて本番コードを書いてテストをパスする。
無駄なコードは出てこない。全てテストコードでカバーされている。
テスト駆動開発は今は常識になっている。昔はテストコードという考えはなかったこれはレガシーコードと呼ばれる。
みなさんはテストコードのあるコードを生み出していこう。レガシーを埋まら変わらせよう!
書籍
アジャイルソフトウェア開発の奥義第2版 オブジェクト指向開発の神髄と匠の技 [ ロバート・C.マーティン ]
・この本でテスト駆動については語られている。
ドメイン駆動 (Programmer’s SELECTION) TION-Jimmy-Nilsson
・この本は入手困難なので以下参照
・テスト駆動を生み出した人の本!?
動画
ドメイン駆動開発
アーキテクチャの話。どこに何を書くかということ。どんなふうに書くのが正しいのか?どこに何を書くのかが非常に重要。データベース向けのコードはどのフォルダ、どういう文法で書くべきか定める。こういう処理はこう書くべきだとか定めている。この知識はこのクラスに持たせる。
これを学んでいく。
ドメインを作ってアプリの仕様を入れていく。
ドメインの内側と外側を意識する。
・外側(データベース、画面、ファイル)とかの分離を計る。を意識したものを1作る。画面やデータベースの変化や更新の影響を受けないように分離して作る。データベースなどは外部の事情で変わる。
C#だとここにMVVMという要素が入る
MVVMとは画面関係、UI関係の話。
書籍
エリック・エヴァンスのドメイン駆動設計【電子書籍】[ エリック・エヴァンス ]
・おすすめ
実践ドメイン駆動設計 (Object Oriented Selection) [ ヴォーン・ヴァーノン ]
・Java で書かれているがアーキテクチャの話は分かりやすい。
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法【電子書籍】[ 増田亨 ]
・この方の考え方は非常に勉強になる。バリューオブジェクトやエンティティとか一番理解させてくれる本になる。
動画
C#でドメイン駆動開発パート1【C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法】 | Udemy
C#でドメイン駆動開発 パート3【C#のWPFでPrismを使ってMVVMで実装する方法】 | Udemy
MVVM
C#のWindowsフォームでMVVMをする方法:一緒に作るWindowフォームのMVVMフレームワーク | Udemy
デザインパターン
オブジェクト指向をどう組むのが一番いいか洗練された状態のカタログ集。
20個パターンがある。オブジェクト指向をどう学ぶかの答えになる。
書籍
Head firstデザインパターン 頭とからだで覚えるデザインパターンの基本 [ エリック・フリーマン ]
・こっちを先に読む。理解できてから下へ
オブジェクト指向における再利用のためのデザインパターン改訂版 [ エリック・ガンマ ]
・有名な本。元祖的な本で非常に難しいがインターフェースの素晴らしさがわかる。ゆっくり読む。
アジャイルソフトウェア開発の奥義第2版 オブジェクト指向開発の神髄と匠の技 [ ロバート・C.マーティン ]
・この本にも10パターンぐらい紹介されている。
オブジェクト指向のこころ デザインパターンとともに学ぶ (SOFTWARE PATTERNS SERIES) [ アラン・シャロウェイ ]
・この本にも20パターンぐらいある。
動画
リファクタリング
オブジェクト指向の理解の幅を広げるために学ぶ。
動きを変えずによりよいコードにする。
書籍
リファクタリング(第2版) 既存のコードを安全に改善する [ Martin Fowler 著 ]
動画
実践
動画
書籍