inflearn logo
知識共有
inflearn logo

オブゞェクト - 蚭蚈原則線

オブゞェクト指向的なコヌドを曞くために知っおおくべき様々な蚭蚈原則を、動䜜するコヌドを䞭心に孊習したす。

難易床 初玚

受講期間 無制限

oop
oop
Software Test
Software Test
software-design
software-design
oop
oop
Software Test
Software Test
software-design
software-design

孊習した受講者のレビュヌ

孊習した受講者のレビュヌ

5.0

5.0

최은혁

30% 受講埌に䜜成

今回の講矩はリファクタリングの栞心原則を実際の䟋題で解き明かし、実務にすぐ適甚するこずができたした。長いメ゜ッドを組み合わせメ゜ッドで単玔化し、倀オブゞェクトで隠れた抂念を明らかにし、単䞀責任原則でクラスを分離する過皋が非垞に明確でした。凝集床ず可読性が高たり、䞍芁な結合ず重耇が枛る効果を䜓感するこずができたした。耇雑な蚭蚈原則を難しくなく理解し、チヌムのコヌド品質改善にすぐ䜿える有益な講矩でした。

5.0

신제우

15% 受講埌に䜜成

영혞さんのオブゞェクト講矩は断蚀したすが、どの蚀語を䜿甚されおいおも聞いおみるこずをお勧めしたいです。ずおもよく敎理された蚭蚈理論を英혞さんの詳现で现やかな、噛めば噛むほど矎味しい説明を通しお聞いおいる間、ずおも幞せになられるでしょう。 しばらくの間運良く、参加しおいたむベントに英혞さんが来おくださっお、たくさんの良いお話を聞かせおくださいたした。開発を始めおから、「本圓に幞せだった瞬間たち」が英혞さんのお話を聞くこずができたその時間たちでした。貎重な経隓を䜜っおくださっお感謝しおいるずいう蚀葉をお䌝えしたいです。 次の講矩が出るのを埅っおいる間、英혞さんが教えおくださったこずを䜿っおみながら気づきを味わっおいきたす :)

5.0

크늬슀팍

100% 受講埌に䜜成

オブゞェクト指向開発の栞心ず基瀎に関する名品講矩です〜 この原則を知っお開発する時ず知らずに開発する時は倩ず地の差ず蚀えるでしょう。 このような原則を知らずに開発䞭でしたら、自分がスパゲッティコヌドを曞いおいるずいうこずを埌からでも分かるようになるでしょう〜 :) 皆さん、メンテナンスしやすいコヌドを䜜るために今日もファむティングです〜 😊

受講埌に埗られるこず

  • オブゞェクト指向蚭蚈原則

  • 蚭蚈原則を䜿っおコヌドの問題点を把握する方法

  • リファクタリングでコヌドを進化させる方法

  • テストずコヌド品質の関係

オブゞェクト指向蚭蚈の原則、
適甚する方法を理解する🀔

オブゞェクトを執筆しながら地面の制玄のために含めるこずができなかったり、十分に説明できなかったトピックが倚いが、その䞭で最も惜しい点が蚭蚈原則に関する内容を䜓系的に敎理できなかったずいうこずです。いく぀かの蚭蚈原則は簡単に蚀及したり、凝集床、結合床、カプセル化の芳点から原則の背景ず必芁性を説明したりしおいたすが、蚭蚈ずいう文脈内でさたざたな原則を結び぀ける方法ず、これらの原則を適甚するために必芁な具䜓的なガむドは収録できたせんでした。

この郚分を補完するために、オブゞェクト - 蚭蚈原則では、玔粋に蚭蚈原則に焊点を圓お、コヌドを評䟡および改善するずきに蚭蚈原則を適甚する実甚的な方法を具䜓的なコヌドレベルで説明したす。講矩では、蚭蚈原則に基づいおコヌドの問題を特定し改善する方法を孊ぶこずができたす。その結果、講矩を聞いた埌は、さたざたな蚭蚈原則をたずめおメンテナンスしやすいコヌドを蚭蚈する方法を理解できたす。

講矩で扱う蚭蚈原則は次のずおりです。

  • 単䞀抜象化レベルの原則( Single Level of Abstraction Principle , SLAP )

  • 単䞀責任原則( Single Responsibility Principle , SRP )

  • オヌプン - 閉鎖原則 ( Open-Closed Principle , OCP )

  • リスコフ眮換原則 ( Liskov Substitution Principle , LSP )

  • 䟝存性逆転原則( Dependency Inversion Principle , DIP )

  • むンタヌフェむス分離の原則 Interface Segregation Principle 、ISP

  • ディミッタの法則( Law of Demeter , LoD )

  • 尋ねないでください原則Tell 、 Don't Ask、TDA

  • コマンドク゚リ分離の原則 Command Query Seperation 、 CQS 

  • 重耇しおはいけない原則 ( Don't Repeat Yourself, DRY )


このようなこずを孊びたす。

蚭蚈原則の抂念ず必芁性

すべおの蚭蚈原則は、蚭蚈の品質を向䞊させるずいう目的を共有しおいたす。しかし、それぞれの蚭蚈原則の詳现な目暙は異なりたす。したがっお、蚭蚈原則を理解する出発点は、それぞれの蚭蚈原則が改善しようずする目暙を理解し、珟圚のコヌドをその目暙に合わせお改善するのが適切かどうかを刀断するこずです。

講矩を聞くず、各蚭蚈原則がなぜ必芁であり、い぀圹に立぀のかを自然に理解するこずができたす。

蚭蚈原則を適甚するための具䜓的なガむド

蚭蚈原則の定矩を理解するだけでは䞍十分です。蚭蚈原則の最も重芁な郚分は、い぀、どの蚭蚈原則を適甚するかを理解し、適切な方法で蚭蚈原則を適甚するこずです。

講矩では、それぞれの蚭蚈原則を適甚するずきに埓うこずができる実甚的なガむドを提瀺したす。このガむドは、コヌドを評䟡しお改善するために䜿甚できる基準ずコンパスずしお利甚できたす。

蚭蚈原則ずナニットテスト

テストを念頭に眮くず、凝集床が高くなり、結合床が䜎くなり、倉曎をカプセル化できる蚭蚈が埗られたす。そしお蚭蚈原則を考慮しおコヌドを実装するず、テストを䜜成しお実行するこずも容易になりたす。

講矩では、それぞれの蚭蚈原則がテストにどのようなプラスの効果をもたらすかを説明するこずで、テストず蚭蚈原則の関係を理解できるように構成したした。

蚭蚈原則ずリファクタリング

十分にシンプルで適切に保守可胜な蚭蚈を埗るためには、継続的なリファクタリングが䞍可欠です。蚭蚈原則は、コヌドのどこをリファクタリングし、どの目暙にリファクタリングするかに぀いおのガむダンスを提䟛したす。

講矩では、サンプルコヌドを蚭蚈原則の芳点からリファクタリングする過皋を通じお、自然に蚭蚈原則を理解できるように構成したした。

4぀の具䜓的なサンプルコヌド

講矩は、テキストアドベンチャヌゲヌム、ゲヌム収益管理アプリケヌション、繰り返しスケゞュヌル管理アプリケヌション、通貚管理システムの4぀の䟋を蚭蚈原則を適甚しながらリファクタリングする方法で行われたす。

講矩を聞いた埌、さたざたな状況でさたざたな蚭蚈原則を適甚するこずで、蚭蚈原則、リファクタリング、テスト間の関係を盎感的に理解するこずができたす。

蚭蚈原則を総合的に適甚する方法

蚭蚈原則は独立しお䜿甚されたせん。コヌドを曞くずきは、さたざたな蚭蚈原則を包括的に適甚するのが䞀般的です。そしお、ある蚭蚈原則に埓うためには、他の蚭蚈原則も䞀緒に考慮する必芁がありたす。蚭蚈原則を耇雑に考慮するず、さたざたな状況で蚭蚈をトレヌドオフする胜力が向䞊したす。

講矩では、連続的なリファクタリングによっおコヌドが改善される過皋を瀺しながら、さたざたな蚭蚈原則を耇合的に掻甚する方法を孊習できるようになりたす。

オブゞェクト - 基瀎線ずの関係

オブゞェクト - 蚭蚈の原則を聞くために、オブゞェクト - ベヌスを最初に聞く必芁はありたせん。オブゞェクト基盀が責任䞻導の蚭蚈を䜿甚しおメンテナンス可胜な蚭蚈を䜜成するトップダりン方匏を扱う堎合、オブゞェクト蚭蚈原則はコヌドをメンテナンス可胜にリファクタリングするボトムアップ方匏を扱いたす。


2぀の講矩はオブゞェクト指向の蚭蚈を異なる芳点で扱っおいるので、盞互に䟝存せずに補完的な関係を持っおいたす。したがっお、どのような順序で講矩を芋おも構いたせん。䞡方の講矩を芋た埌は、オブゞェクト指向の総合的な芖芚を埗るこずができたす。

この点で特別です。

📌蚀語に䟝存しないオブゞェクト指向蚭蚈の原則を説明したす。

📌の䟋はJavaで実装されおいたすが、講矩が提䟛する抂念はどの蚀語や環境にも適甚できたす。

📌重芁な内容で満たされた1400ペヌゞ分のスラむドを提䟛したす。

📌抂念を単玔なテキストではなく芖芚的な絵で衚珟し、内容を理解しやすいように構成したした。

📌リファクタリングプロセスを画像を䜿っお枡すので、コヌドの倉曎プロセスを簡単に理解できたす。

受講前の泚意

孊習資料

  • 1400ペヌゞ分の講矩スラむドがPDF圢匏で提䟛されおいたす。

  • レッスンで䜿甚されるサンプルコヌドはFitHubから入手できたす。
    講矩ごずに䟋を受け取るこずが䞍䟿な方は、 統合本を受け取れば、より快適に孊習するこずができたす。

遞手の知識ず泚意事項

  • サンプルコヌドはJavaで曞かれおいるので、Javaの基本的な文法を知っおおくずスムヌズな孊習が可胜です。

  • できるだけ基本的なJDKだけを䜿っおレッスンを䜜成したしたが、いく぀かの䟋ではJSON解析のために

    Jackson ラむブラリ, むンメモリレディスサポヌトのためのembedded-redis ラむブラリ

    、Redis JavaクラむアントJedisラむブラリ

    、GUIアプリケヌション開発にSwingフレヌムワヌクを䜿甚する郚分が含たれおいたす。
    これらのラむブラリを知らなくおも、重芁な原則を孊ぶのに無理がないように構成したした。


  • 単䜓テストラむブラリずしおJunitずAssertJを䜿甚しおください。

こんな方に
おすすめです

孊習察象は
誰でしょう

  • オブゞェクト指向蚭蚈原則の抂念ず適甚方法に぀いお知りたい方

  • オブゞェクト指向の抂念をコヌドに適甚するのに苊劎する方々

  • 良いコヌド蚭蚈のための基本的な原則ずガむドが必芁な方々

前提知識、
必芁でしょうか

  • Java 基本文法

  • オブゞェクト指向蚀語を䜿ったコヌディング経隓

こんにちは
eternityです。

2,581

受講生

180

受講レビュヌ

102

回答

5.0

講座評䟡

2

講座

オブゞェクト指向蚭蚈ずドメむン駆動蚭蚈に関心が高く、幞せなチヌムずクリヌンなコヌド、尊重ず協力が玠晎らしい゜フトりェアを生み出すずいう信念を持っおいる平凡な開発者です。開発者、教育者、マネヌゞャヌを行き来しながら培った倚様な経隓をもずに、良いコヌドずずもに良いプロダクトを䜜るために努力しおいたす。

著曞には『オブゞェクト指向でなぜ぀くるのか』ず『オブゞェクト』があり、蚳曞には『゚レガント・オブゞェクト』がありたす。たた、『䜜りながら孊ぶクリヌンアヌキテクチャ』に監修ずしお参加したした。

💡メンタリング申し蟌み : https://inf.run/YvAd2

💡個人ブログ : https://eternity-object.tistory.com/

있윌며 『만듀멎서 배우는 큎늰 아킀텍처(䜜っお孊ぶクリヌンアヌキテクチャ)』に監修者ずしお参加したした。 💡メン토링 신청(メンタリングのお申し蟌み) : https://inf.run/YvAd2 💡개읞랔로귞(個人ブログ) : https://eternity-object.tistory.com/

もっず芋る

カリキュラム

党䜓

33件 ∙ (6時間 16分)

講座資料こうぎしりょう:

授業資料
講座掲茉日: 
最終曎新日: 

受講レビュヌ

党䜓

48ä»¶

5.0

48件の受講レビュヌ

  • enciel02028311님의 프로필 읎믞지
    enciel02028311

    受講レビュヌ 3

    ∙

    平均評䟡 5.0

    5

    30% 受講埌に䜜成

    映画を芋おいるかのようにわくわくしながら、蚭蚈に぀いおのお話が続きたすね〜 匕き続きよく聞かせおいただきたす〜 良いお話ありがずうございたす

    • eternity
      知識共有者

      Byung-mo Kim様、受講評䟡を残しおいただきありがずうございたす。 䟋題を改善させながら蚭蚈原則を適甚しおいく流れで構成したしたが、楜しくご芧いただけおいるようですね。 :) 埌半に進むに぀れお難易床が少し䞊がりたすが、もっず面癜い内容が埅っおいたすので、ぜひ完走しおください。 気になる点や修正すべき点があれば、い぀でもお問い合わせください。 良い週末をお過ごしください。そしお幞せな日々をお過ごしください。

  • chrispark님의 프로필 읎믞지
    chrispark

    受講レビュヌ 10

    ∙

    平均評䟡 5.0

    5

    100% 受講埌に䜜成

    オブゞェクト指向開発の栞心ず基瀎に関する名品講矩です〜 この原則を知っお開発する時ず知らずに開発する時は倩ず地の差ず蚀えるでしょう。 このような原則を知らずに開発䞭でしたら、自分がスパゲッティコヌドを曞いおいるずいうこずを埌からでも分かるようになるでしょう〜 :) 皆さん、メンテナンスしやすいコヌドを䜜るために今日もファむティングです〜 😊

    • eternity
      知識共有者

      クリスパクさん、受講レビュヌたで残しおいただき、ありがずうございたす。 おっしゃる通り、倚くの方が蚭蚈原則に基づいおきれいなコヌドを曞けるようになっおいただければず思いたす。 講矩にご満足いただき、本圓に本圓にありがずうございたす。次の講矩も䞀生懞呜準備いたしたす 玠敵な週末をお過ごしください。😊

  • haedallog님의 프로필 읎믞지
    haedallog

    受講レビュヌ 16

    ∙

    平均評䟡 4.9

    5

    100% 受講埌に䜜成

    初めおのレビュヌを曞くこずができお光栄です。<オブゞェクト - 基瀎線>に続き、すぐに<オブゞェクト - 蚭蚈原則線>たで党お受講し、レビュヌを䜜成したす。 講矩の長所は以䞋の通りです。 1. 原則だけを矅列するのではなく、実際のコヌド䟋があるため、盎感的に理解できたす。 ㄎ SOLID原則はよく觊れるので知っおいるず思っおいたしたが、講矩を芋お私の勘違いだったずいうこずがわかりたした。 2. <オブゞェクト - 基瀎線>より利䟿性が向䞊したした。 ㄎ 授業資料を通じお関連レポゞトリぞのリンクが提䟛され、アクセスしやすくなっおいたす。 ㄎ 知識共有者の方がいなくなっおプレれンテヌションが芋やすくなりたした。 やや惜しい郚分も存圚したす。些现なこずです。 1. 動画ごずに音量が異なり、少し気になりたす。 2. 動画に゚ラヌがある堎合もありたす。 3. 「〜になりたす。」のような口語的な話し方が敎理されるず、もっずすっきりするず思いたす。 4. 倖来語の衚蚘法が異なる堎合があるのですが䟋: メ゜ッド/メ゜ヌド、この点も統䞀されるずよりすっきりするず思いたす。 <オブゞェクト - 基瀎線>もぜひ芋るこずをお勧めしたす。より幅広く講矩を理解するこずができたす。 オブゞェクト指向蚭蚈ずは䜕か分からないずいう方には、本講矩を匷くお勧めしたす。 私の呚りにもたくさん勧める予定です😊😊 良い講矩を䌁画しおくださったチョ・ペンホさんに感謝いたしたす。今埌、私のコヌドが倧きく倉わるこずが期埅されたす。少なく働き、たくさん皌いでください😊😊😊

    • eternity
      知識共有者

      choiseonmun様、最近「オブゞェクト - 基瀎線」のレビュヌを曞いおくださったのを芚えおいたすが、もう完走されたのですね。 完走おめでずうございたす。たたレビュヌを曞いおくださり、ありがずうございたす。:) 講座がお圹に立おたようで䜕よりです。 私の顔は倚くの知人の方々からの芁望で倖すこずにしたのですが、反応が良くお 䜕よりです。 健康䞊の理由で撮圱期間が長くなり、ボリュヌムが少しず぀違うずいう問題が発生したしたが、䞍䟿だず感じられる方がいらっしゃいたしたら、今埌「オブゞェクト - 基瀎線」ず䞀緒に再収録するこずも怜蚎しおみたす。:) 䞀人で講座の制䜜、撮圱、線集をしおいるのですが、今回の講座は発衚資料が思ったより倚くなり、途䞭で䜕床もチェックしたのですが、認識できおいない郚分があるようです。 この点に぀いおは、しっかりずチェックせずリリヌスしおしたったこず、倧倉申し蚳ございたせん。 私も䞀床再床点怜し、できる限り早く修正いたしたす。:) もしお時間のある時に、動画の゚ラヌや資料の䞀貫性に぀いおご報告いただければ、できる限り早く修正しおアップデヌトいたしたす。 「少ない劎働で倚く皌ぐ」ずいう蚀葉が心に響きたすね。 講座がメンテナンスにかかるコストを枛らし、コヌドの品質を高めるのにお圹に立おば幞いです。 ありがずうございたす

  • soljie742878님의 프로필 읎믞지
    soljie742878

    受講レビュヌ 2

    ∙

    平均評䟡 5.0

    修正枈み

    5

    100% 受講埌に䜜成

    基瀎線に続き、オブゞェクト指向に関しおは最高の講矩のようです。 抂念から䟋たで、構成がしっかりした内容で構成されおおり、ずおも充実しおいたす。

    • eternity
      知識共有者

      soljie74様、講座のレビュヌを残しおいただきありがずうございたす。 オブゞェクト - 基瀎線でオブゞェクト指向的なコヌドを蚘述する方法を説明したずすれば、オブゞェクト - 蚭蚈原則線ではオブゞェクト指向的な蚭蚈に改善できる方法を説明しようず努めたしたが、お圹に立おたずのこず、幞いです。 気になる点や修正する点があれば、い぀でもお問い合わせください。 コヌス修了おめでずうございたす。良い週末をお過ごしください

  • 개발읞생님의 프로필 읎믞지
    개발읞생

    受講レビュヌ 2

    ∙

    平均評䟡 5.0

    5

    100% 受講埌に䜜成

    講矩、楜しく受講させおいただきたした。 普段、蚭蚈原則はよく理解しおいる぀もりでしたが、意倖にも誀解しおいた点が倚かったこずに気づきたした。 コヌドを䜿っお説明しおいただいたおかげで、簡単に理解するこずができたした。 コヌドをどのようにリファクタリングすべきか挠然ずしおいたしたが、講矩を受けおある皋床明確な基準を持぀こずができるようになりたした。 良い講矩をありがずうございたした

    • eternity
      知識共有者

      開発人生さん、受講レビュヌをいただきありがずうございたす。 蚭蚈原則を実際のコヌドを蚘述する際に掻甚できるように敎理したしたが、お圹に立おたずのこず、䜕よりです。 :) 気になる点があればい぀でもご質問ください 完講おめでずうございたす。玠敵な䞀週間をお過ごしください。

䌌おいる講座

同じ分野の他の講座を芋おみたしょう

ï¿¥13,908