この記事はUdemyおすすめ講座をシェアしよう! by Udemy Advent Calendar 2023のシリーズ2の19日目です。
おすすめする講座
私がおすすめする講座はつぎです。
講師はピーコック アンダーソンさんでSOLID原則の解説講座の3シリーズです。
- オブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則
- オブジェクト指向の原則2:リスコフの置換原則と継承以外の解決方法
- オブジェクト指向の原則3:依存関係逆転の原則とインタフェース分離の原則
講座受講の背景
今年度はソフトウェア設計力を高めることを目標にしていました。
SOLID原則を学び、自社・自社以外に勉強会を開催することを考えていました。
SOLID原則を学べるコンテンツを探していたところ、ピーコック アンダーソンさんのSOLID原則のシリーズを知り受講しました。
おすすめする理由
おすすめの理由です。
SOLID原則の解説、コードをセットで説明してくれるところ
講座の構成ですがSOLID原則の解説だけではなく、コードを提示し解説してくれています。
原則はどういうものか理解できた後にそれをどうコードで表現するのか解説してくれるので理解度が増します。
講座のコードはC#となっています。
それほど難易度が高いC#のコードは登場しないので、C、C++がメインで組込みソフトウェア領域の私でも理解できました。
原則違反するとどのような影響があるか説明してくれるところ
原則違反するとどのような影響があるのか、解説してくれます。
コードで具体的に提示してくれるので、なぜ原則違反しない方が良いのか?、を解像度高く理解できます。
原則違反、原則に則った解説をセットで比較して説明してくれるところ
原則に違反した場合、原則に則った場合の解説を比較して説明してくれるのでわかりやすいです。
付加価値がある説明
SOLID原則の技術的な説明に加え、高い視座・考え方を提示してくれています。
SOLID原則のエッセンスを後輩にどう伝えるのか、のヒント
SOLID原則とはこういうものだから従おう、では後輩には伝わりにくい。
どのような説明をすれば伝わるかの観点で解説してくれています。
具体的にはオブジェクト指向の原則1:単一責務の原則とオープンクローズドの原則シリーズのオープンクローズドの原則で説明されている拡張ポイントの説明です。
依存性注入の具体的事例
オブジェクト指向の原則3:依存関係逆転の原則とインタフェース分離の原則シリーズでは依存関係逆転の原則をテーマに解説しています。依存性注入についても解説しています。
依存性注入は自動テストの文脈で説明されることが多いと思います。
講座の中ではつぎの項目を解説してくれています。
- 自動テストとはどういうものか
- 自動テストの問題
- 自動テストを依存性注入で解決する方法
- モックについての説明
- Moqを使って自動テストする方法
依存性注入の説明だけ出てもひとつのコンテンンツにできる濃度を感じとても参考になりました。
私はここで学んだことを参考にさせてもらい、組込みソフトウェア開発でよく使われるCppUTestのモックをつくり、学習の振り返り・実践を行いました。
個人的に特におすすめするコンテンツ
個人的に特におすすめする講座はオブジェクト指向の原則2:リスコフの置換原則と継承以外の解決方法です。
この講座を受講する前まではリスコフの置換原則がいまいち理解できていませんでした。
この講座を受講後はリスコフの置換原則について理解が深まりました。
この講座をおすすめする理由を書きます。
圧倒的ボリューム!!!
リスコフの置換原則の講座だけでトータル3時間24分という圧倒的ボリュームです。
継承のガイドラインについての説明が丁寧でわかりやすい!!!
リスコフの置換原則は継承の説明に触れると思います。
この講座では継承自体の説明から継承以外の方法でリフコフの置換原則に違反しない解決方法を丁寧に、コードと一緒に解説しています。
紹介されている継承以外の解決方法を視聴、理解すれば継承についての理解が深まります。
継承以外の解決方法を紹介しているチャプターはつぎのとおりです。
- L29_継承以外のアイデア1_別で作る
- L32_継承以外のアイデア2_持つという考え方
- L38_アイデア3_共通化という解決
- L42_アイデア4_最小カプセル化という解決
継承の使いところの説明が参考になった
講座の多くの時間を継承に変わる解決方法に割いています。
講座の終盤のつぎの章で継承のつかいところについて解説・コードで説明してくれています。
- L48_共通要素をまとめる継承
- L49_共通要素をまとめる継承の実装例
個人的にこの説明が非常にわかりやすかったです。
講座のコード例はWindowsフォームの例でしたが自分の組込みソフトウェアの領域でも継承の使いところについて学習・調査・模索していきたいと感じました。