デザインパターンの勉強について
いつどのようにデザインパターンやUMLモデリングを学ぶか迷っています。
現状
reactやpythonを半年くらい勉強していて、コードを書くことができるようになってきた。最近知り合いに、「エンジニアはデザインパターンなど抽象的なとこも理解し、設計ができるようにならないといけない」と言われた。しかし、何から始めればいいかわからないし、やっと小さなアプリを作れるようになってきた自分が今やるべきことなのかもわからない。
アドバイスよろしくお願いします!
いつどのようにデザインパターンやUMLモデリングを学ぶか迷っています。
現状
reactやpythonを半年くらい勉強していて、コードを書くことができるようになってきた。最近知り合いに、「エンジニアはデザインパターンなど抽象的なとこも理解し、設計ができるようにならないといけない」と言われた。しかし、何から始めればいいかわからないし、やっと小さなアプリを作れるようになってきた自分が今やるべきことなのかもわからない。
アドバイスよろしくお願いします!
学び始めるには良い時期です。
コードを書いたことがないと意味がわからないが、コードを書き始めた人が知ると一気に腑に落ちるという性格があるためです。
学ぶと言っても、理論を暗記するものではありません。
先に全部勉強となると、使いどころ不明となり、「自分が今やるべきことなのか」となりがちです。
例えば小さなアプリを設計目線で書き直します。
・ロジックと表示が混ざってない?
・関数が長すぎない?
・データ処理と表示処理が混ざってない?
このような違和感が設計センスの芽になります。
「あ、これ〇〇パターンだ!」となれば、活きた知識になります。
オライリー社のHead Firstデザインパターンとかを読んでみるのをおすすめ
すべてを暗記する必要はないですよ。
単純に「どういう風な思想・思考で実装したのか」を学べばいいと思います。
たとえばFactoryパターンですと、「親クラス(インターフェース)を共通として生成方法を隠ぺいする」という感じです。このパターンを学んで、「ああ、インターフェースっていうのはこういうときに使うんだな」といった感じで学べばいいのです。
Refactoring Guruのガイドをおすすめします。各メソッドが一つのことだけをするように意識して、コードを書く時から「このコードはテストできるか?」と考える癖をつけるのが大事だと思います