この講座は、
オブジェクト指向の「実践の壁」を超える
ための講座です。
あなたは、オブジェクト指向で開発できていますか?
「オブジェクト指向らしくない」と上司や先輩から言われていませんか?
オブジェクト指向は、現代のソフトウェア開発においてきわめて重要な概念であり、
オブジェクト指向を理解せずにすぐれたソフトウェアを開発することは、もはや不可能である
と言っても過言ではありません。
にもかかわらず、「オブジェクト指向で開発できない」という方はとても多いです。
もしかすると、あなたも、
「クラス・継承などの、オブジェクト指向の要素を学んだけれど、
いざ実務で使おうとすると、何をすべきかわからなかった、、、」
という経験をお持ちかもしれません。
それもそのはずで、オブジェクト指向の概念の理解と実践との間には、とても大きな壁があります。
カプセル化・継承・ポリモーフィズムという、オブジェクト指向の三大要素は、その名の通り「要素」でしかなく、
これらの要素をどう使うのか?について学ばないことには、オブジェクト指向で開発することはできないのです。
これは、英単語という要素だけ覚えても、英語が話せないのとまったく同じです。
そのため、オブジェクト指向を学んで、開発で使おうとしたけれど、
結局学ぶ前と同じような、手続き的で、オブジェクト指向らしくないコードを書いてしまった、、
という方も多いのではないでしょうか?なにを隠そう、以前の私がまさにそうでした(汗)
そんな方が、
オブジェクト指向の実践の壁を超えて、
オブジェクト指向で開発できるようになるための講座を作りたい。
この想いから、本講座を作成しました。
本講座では、オブジェクト指向を実践できるようになるために、次のようなさまざまな工夫を凝らしました。
①多くの人になじみがあるテーマを題材に、Pythonのコードで解説
②SOLID原則とデザインパターンを使って、「本質の理解」へと導く
③豊富な演習問題と丁寧な解説で、しっかり身につける
①多くの人になじみがあるテーマを題材に、Pythonのコードで解説
オブジェクト指向の教材はたくさんあるのに、
オブジェクト指向の実践の壁がなくならないのは、一体なぜでしょうか?
それは、ほとんどのオブジェクト指向の教材は、令和のプログラミング初心者に最適化されていないためです。
オブジェクト指向の名著は、執筆時期が古いものも多く、
言語がモダンでなかったり、一般人が想像しづらい組み込みシステムが解説の題材に使われていたりして、
令和のプログラミング初心者には、とっつきづらいものになっていることが多いのです。
そこで本講座では、現代の多くの人になじみのある、
身近なアプリ・サービスを題材に、オブジェクト指向を解説します。
コードの題材が馴染みのあるものになるだけで、
オブジェクト指向を学ぶハードルが、ぐっと下がることを体験できるでしょう。
また、プログラミング言語には「Python」を使用します。
エンジニアでなくても使える言語「Python」のコードで解説することによって、
スクリプト言語からプログラミングを始めた方でも、問題なく理解できるようになっています。
②SOLID原則とデザインパターンを使って、「本質の理解」へと導く
オブジェクト指向を実践する上で欠かせない知識として、「SOLID原則」と「デザインパターン」があります。
これらは本来、オブジェクト指向を実践する助けとなる強力なアイデアなのですが、
有効に活用されないことの多い知識でもあります。
と言うのも、SOLID原則やデザインパターンは本来、
オブジェクト指向を実践できるようになるための「手段」でしかないはずなのですが、
これらを網羅的に紹介することが「目的」となってしまっている教材がとても多いです。
そのため、5つのSOLID原則や、23個のGoFのデザインパターンについてすべて学んだけれども、
「実務でどう活かせるのかわからなかった」という感想を抱く方が多いのです。
ですので本講座では、SOLID原則とデザインパターンを、
オブジェクト指向の本質を理解するためのツールとして学んでいきます。
GoFのデザインパターンの中でも、オブジェクト指向の理解に特に役立つものだけを厳選して紹介し、
Value ObjectやDependency Injectionなどの、GoF以外の重要デザインパターンも必要に応じて学んでいきます。
これらのツールが、オブジェクト指向の本質と、どう関連するのかを強く意識しながら学ぶことで、
本当に役立つ知識として、SOLID原則と厳選されたデザインパターンを理解できるでしょう。
③豊富な演習問題と丁寧な解説で、しっかり身につける
オブジェクト指向を実践するためには、概念を理解した後に、十分な演習を積むことが不可欠です。
演習を積むことによってのみ、オブジェクト指向の実践の壁を、乗り越えることができます。
ですので、本講座で扱うすべてのテーマには、演習問題を用意しています。
解説を聞いたあとに、演習問題に取り組むことで、「わかったつもり」で終わらずに、
しっかりと身につけることができます。
また、本講座中のすべての動画では、とことん噛み砕いた丁寧な解説をすることを心がけました。
なので、他のオブジェクト指向の教材では、挫折してしまったという方も、本講座であればきっと理解できるはずです。
さらに本講座では、オブジェクト指向の周辺知識として、次のようなテーマについても丁寧に解説しています。
例外処理
アクセス制限
設計思想
契約による設計
そのため、オブジェクト指向を身につけるだけでなく、
ソフトウェア開発者として、大きくステップアップすることもできるでしょう。
なお本講座は、拙講座
「Python でわかる オブジェクト指向 とはなにか?【Python オブジェクト指向 の「なぜ?」を「徹底的に」解説】」
の続編となります。
前作では、オブジェクト指向とは何か?なぜ必要なのか?(What? Why?)について答えを提供できたと思いますが、
続編となる本作では、オブジェクト指向をどう開発に使うのか?(How?)に答えを提供したいと思います。
オブジェクト指向で開発できるようになると、
手続き的にしか開発することができなかったときとは、まったく世界が変わります。
ソフトウェアの設計が楽しくて仕方ないものになるのです。
オブジェクト指向は、ソフトウェア開発のアイデアの中でも、きわめてパワフルで面白いものです。
あなたもこの講座で、「オブジェクト指向で開発できない」はもう卒業しませんか?