강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

etc. (Programming)

オブジェクト - 基礎

責任主導設計方法に代表されるオブジェクト指向設計方法を学習し、凝集度、結合度、カプセル化の観点から設計をトレードオフする方法を調べます。

  • eternity
저자 직강
이론 중심
객체지향
software-design
oop

学習した受講者のレビュー

こんなことが学べます

  • 手続き型設計の問題

  • オブジェクト指向のコードの設計と実装方法

  • オブジェクトに責任を割り当てる基本原則

  • 依存性管理技術

  • 凝集度、結合度、カプセル化を使用して設計をトレードオフする方法

オブジェクト指向設計の核心を盛り込んだ!

このレッスンでは、私が執筆したオブジェクトと呼ばれる本に基づいて、責任主導の設計方法に従ってオブジェクト間の協力を設計し、オブジェクト指向言語を使用して実装する方法を説明します。

オブジェクトブックを書いて惜しいことがありますが、責任に基づいてオブジェクトを設計する方法を説明する過程で、地面の制約によりドメインと責任に焦点を当てなけれならない理由については十分に説明できなかったことです。

講義では、このような物足りなさをなだめるようにオブジェクト指向的に設計する方法だけでなく、本で十分に扱えなかった責任主導設計方法の理論的な背景とともに、欠落したGRASPパターンも収録しました。

この点で特別です。

📌 言語に依存しないオブジェクト指向設計の概念を説明します。

📌の例はJavaで実装されていますが、講義が提供する概念はどの言語や環境にも適用できます。

📌コアコンテンツで埋められた690ページ分のスライドを提供します。

📌概念を単純なテキストではなく視覚的な絵で表現し、内容を理解しやすいように構成しました。

📌リファクタリングプロセスを1汗1汗スライドに入れて、コードの変更過程を簡単に理解できます。

このようなことを学びます。

セクション 1. 映画予約ドメイン

講義で例として使用する映画前売りシステムの要件を調べます。

このように分析されたドメインモデルは、後でオブジェクトに責任を割り当てるのに役立つ材料として使用されます。

セクション 2. 手続き型設計の改善

手続き的な方法でコードを書くと、メンテナンスの面でさまざまな欠点があるという話は聞きましたが、正確にどの部分が問題なのかはよくわかりませんでしたか?

講義では、手続き型の方法で書かれたコードの問題を説明し、コードを変更しやすく改善する過程を通じて、オブジェクト指向が必要な理由を自然に理解できるように構成しました。

セクション3.オブジェクト指向の基本原則

責任主導設計は、最も広く使用されているオブジェクト指向設計手法です。責任主導設計方法は、オブジェクトに割り当てる責任に基づいて全体的なオブジェクト協力を設計します。

講義では、責任を重視する理由を説明し、オブジェクトの設計と実装に必要な大きな絵を描きます。

セクション4.責任を割り当てる

責任主導設計方法をうまく適用するには、協力という文脈の中でオブジェクトに割り当てる責任を慎重に選択する必要があります。

レッスンでは、責任を割り当てるときに一般的に適用できる情報の専門家、創作者、低結合度、高い凝集度、多形性、変更保護パターンを調べ、これらのパターンをいつ適用するかを学びます。

セクション5.オブジェクト指向の実装

責任の観点から、設計されたオブジェクトをクラスとして実装する方法を学習します。

セクション 4 で取り上げられていない間接化、純粋なワークピース、コントローラーパターンを調べ、アプリケーションロジックを実装するオブジェクトを実装するためにこれらのパターンを適用する方法についても説明します。

セクション6.変更と設計

設計の目標は、変更しやすいコードを書くことであり、良い設計とは、凝集度が高く、結合度が低く、カプセル化に準拠する設計を指します。

講義では、変更という観点から、凝集度、結合度、カプセル化の概念を学習し、手続き型設計とオブジェクト指向設計をトレードオフするためにこれらの原則を適用してみます。

受講前の注意

学習資料

  • 690ページ分の講義スライドがPDF形式で提供されます。

  • レッスンで使用されるサンプルコードはFitHubから入手できます。

選手の知識と注意事項

  • サンプルコードはJavaで書かれているので、Javaの基本的な文法を知っておくとスムーズな学習が可能です。


  • 一部のSpringフレームワークを使用するコードが含まれていますが、Springフレームワークがわからないとしても、内容を理解するのに無理をしません。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • オブジェクト指向設計の概念と適用方法が気になる方

  • オブジェクト指向の概念をコードに適用するのに苦労している人

  • オブジェクトに責任を割り当てる基本原則が気になる方

前提知識、
必要でしょうか?

  • Javaの基本文法

  • オブジェクト指向言語を使ってコードを書いた経験

こんにちは
です。

2,133

受講生

114

受講レビュー

74

回答

5.0

講座評価

2

講座

객체지향 설계와 도메인-주도 설계에 관심이 많으며 행복한 팀과 깔끔한 코드, 존중과 협력이 훌륭한 소프트웨어를 낳는다는 믿음을 가지고 있는 평범한 개발자입니다. 개발자, 교육자, 관리자를 오가며 익힌 다양한 경험을 바탕으로 좋은 코드와 함께 좋은 프로덕트를 만들기 위해 노력하고 있습니다.

저서로는 『객체지향의 사실과 오해』와 『오브젝트』가 있고 번역서로는 『엘레강트 오브젝트』가 있으며 『만들면서 배우는 클린 아키텍처』에 감수자로 참여했습니다.

💡개인블로그 : https://eternity-object.tistory.com/

 

カリキュラム

全体

31件 ∙ (5時間 0分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

89件

5.0

89件の受講レビュー

  • whybwhy3576님의 프로필 이미지
    whybwhy3576

    受講レビュー 44

    平均評価 4.8

    5

    90% 受講後に作成

    One of the best lectures I've taken this year and it completely changed my perspective on development.

    • eternity
      知識共有者

      Thank you for your generous compliments. I hope that those who attended the lecture will change their perspective to look at code from a maintainability perspective, and I hope that you gained some insight into this. :)

  • ycseol1857님의 프로필 이미지
    ycseol1857

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    In a lecture that deals with IT technology, a lecture that deals with the subject of development paradigms seems to be of great help to the learners in building their knowledge. Other Spring or Java lectures are good, but I think this kind of lecture that makes you think at least once before typing is really good.

    • eternity
      知識共有者

      When I was making the lecture, I was a little worried about how the response would be after opening because object-oriented design is not something that needs to be learned right away like Spring, but I feel relieved that there are people like ycseol who think it will be helpful. Thank you for your positive evaluation. :)

  • korchl8273님의 프로필 이미지
    korchl8273

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    This is a great lecture. I think it will be helpful to all developers, regardless of their experience level.

    • eternity
      知識共有者

      I congratulate you on completing the course, korchl, and I am really grateful that you gave it a good review. I am really glad that it was helpful. I will try my best to make the next lecture so that you won't be disappointed. :) The weather has gotten really cold, so take care of your health and have a happy new year!

  • minqueue님의 프로필 이미지
    minqueue

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    It's the best..

    • eternity
      知識共有者

      Congratulations on completing the course, Min-gyu Kim. :) I hope the lecture was helpful. Thank you for leaving a good review and I will prepare hard for the next lecture! Have a nice holiday.

  • redthink902392님의 프로필 이미지
    redthink902392

    受講レビュー 4

    平均評価 5.0

    5

    29% 受講後に作成

    As I became more advanced in terms of simple implementation, I looked for Cho Young-ho's books a lot, but sadly, I couldn't approach <Object> in terms of quantity and difficulty. But now I'm so happy that I can approach it as a lecture. The basics feel like learning <Facts and Misconceptions of Object-Orientedness> in more detail. I can personally realize the necessity of it by looking at cases of transitioning from procedure-oriented to object-oriented. I've only seen the beginning, but it's been a great help in recalling the content that I had forgotten for a while. However, there's something really disappointing. Since you read the script, you convey the content in a stiff literary style. As someone who knows the instructor's smooth and immersive teaching skills, I really, really regret this part. More people should know the instructor's charm..!!!!! He speaks with ease in every word, and he explains difficult concepts in an easy and fun way😭 I remember you saying in another lecture that online is more awkward than offline, so how about creating an environment like an offline lecture for the next lecture? I am cautious about making this suggestion, but I would like to tell you that it comes from my heart as a fan. I have two fathers. One is my biological father, and the other is Professor Cho Young-ho🤭 He is someone I am very grateful to for broadening my horizons. Thank you for always giving me great lectures!🙂

    • eternity
      知識共有者

      Hello, Dodun. I'm glad that the lecture was helpful. While preparing this lecture, I tried to visually express design-related knowledge as easily as possible, and after reading Dodun's course review, I feel good that I achieved my goal to some extent. :) I completely agree with what you said, and I personally think it's too bad. While offline lectures can be conducted in sync with the listeners and fit the atmosphere, online lectures are not easy for me personally. Online lectures seem to sound stiff because they focus more on delivering content than offline lectures. After talking to people around me and receiving mostly positive feedback, I decided to release it, but after reading the feedback, I feel regretful. I will think about finding a balance between offline and online lectures for the next lecture. :) I feel burdened and grateful to be called father, but I will come back with a better lecture so that you won't be disappointed. Thank you so much for your positive review!

    • I really sympathize with this part where the content is delivered in a stiff octopus style.

¥12,899

eternityの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!