강의

멘토링

로드맵

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,245

受講生

120

受講レビュー

78

回答

5.0

講座評価

2

講座

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

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

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

 

カリキュラム

全体

31件 ∙ (5時間 0分)

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

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

受講レビュー

全体

92件

5.0

92件の受講レビュー

  • 아무도_모를_아이디님의 프로필 이미지
    아무도_모를_아이디

    受講レビュー 44

    平均評価 4.8

    5

    90% 受講後に作成

    이번년도 최고의 강의 중의 하나이며 개발에 대한 관점이 완전히 바뀌었습니다.

    • 조영호
      知識共有者

      과분한 칭찬 남겨주셔서 감사합니다. 강의를 들으신 분들이 유지보수성 관점에서 코드를 바라보도록 시각이 바뀌면 좋겠다고 생각했는데 관련해서 조금이라도 인사이트를 얻으셨기를 기대할게요. :)

  • 황설탕님의 프로필 이미지
    황설탕

    受講レビュー 1

    平均評価 5.0

    5

    87% 受講後に作成

    [인프런에서 산 강의 중 가장 만족스러운 강의] 개인적으로 가격대가 있다고 느껴 고민하다 수강했는데, 정작 강의를 듣고 나서는 왜 진작 듣지 않았을까 후회할 정도로 대만족했고, 오브젝트 책도 바로 구매했습니다😊 최근 학교에서 작은 프로젝트 과제를 풀게 되었는데, 과제를 진행하며 계속 크고 작은 문제가 생겼고, 이를 해결하기 위해 설계와 코드를 뒤엎고 새로 짜는 과정을 수없이 반복했습니다. 하지만 막상 뒤엎고 코드를 다시 짜도 어디에 어느 정도의 책임을 둬야 할지 기준을 제대로 잡지 못했으며, 사소한 변경에도 수많은 코드를 뜯어고치느라 한참을 헤맸습니다. 처음에는 언어가 부족하거나 디자인 패턴 혹은 설계를 몰라서 그런가 싶어 관련 책을 사서 추가적으로 공부를 했고, 교수님과 선배들에게 상담도 받아봤지만, 그 무엇도 막상 제가 정말 궁금한 부분들을 시원하게 해소해 주지는 못했습니다. 그렇게 고민을 안고 있을 때 우연히 오브젝트 강의를 발견했습니다. 강의 설명을 훑어보고 '뭔가 내가 찾던 내용인가?' 싶었는데, 그게 정답이었습니다! 제 고민들은 `나도 모르게 절차지향적인 코드를 객체지향적인 코드라 착각하며 짜고 있음`으로부터 생겨난 것들이었습니다. 저는 학교에서 수업을 듣고, 인프런에서 자바/스프링 강의도 몇 개 수강했으며, 관련 책도 몇 권 읽었기에 '그래도 객체지향적으로 코드를 작성하고 있지 않을까?'라고 생각했지만, 강의를 듣자마자 그건 크나큰 착각이었고, 여지껏 제가 짜온 코드는 절차지향적인 코드라는 사실을 깨달았습니다...ㅋㅋㅋ 절차지향적인 코드들을 객체지향적인 설계로 바꾸는 과정과 개념들을 저 같은 초보자도 무리 없이 들을 수 있도록 쉽게 풀어 설명해 주셨습니다. 특히 까먹을 만하면 딱 그 내용을 다시 간단히 설명해 주시는 점이 소름 돋으면서도 정말 좋았습니다. 강의를 통해 그간 객체지향에 대해 오해하고 있던 부분들, 모호하거나 피상적으로 알고 있던 부분들을 확실히 잡을 수 있어 좋았고, "객체를 객체답게 사용한다"가 어떤 의미인지 깨달을 수 있었습니다. 밀린 숙제하듯 들은 강의가 아니라 궁금했던 부분을 정확히 해소해준 강의라 시간 가는 줄 모르고 정말 재밌게 들었던 강의였습니다. 다음 강의가 빨리 나왔으면 좋겠습니다!!

    • 조영호
      知識共有者

      황설탕님 좋은 수강평 남겨 주셔서 감사합니다. :) 강의의 주된 내용이 객체지향의 기본 철학에 집중하다보니 강의를 들으시는 분들이 많이 지루해하시지 않을까 걱정이 많았었는데 황설탕님의 수강평을 보고나니 안심이 되네요. 강의를 들으시고 "객체를 객체답게" 사용하는 방법에 대해 이해를 하셨다니 다행입니다. 강의 재미있게 들어주셔서 정말 감사드리고 다음 강의도 잘 준비해서 빠른 시일 내에 찾아 뵙겠습니다. :) 궁금한 내용 있으면 질문 남겨주시고 행복한 주말 보내세요!

  • ycseol님의 프로필 이미지
    ycseol

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    IT의 기술을 다루는 강의에서 개발 패러다임이라는 어찌보면 주관을 다루는 강의는 학습자에게 소양을 쌓는데 큰 도움을 주는것 같다. 다른 스프링이나 자바 강의도 좋지만 타이핑을 하기 전에 한 번 쯤 생각할 수 있게 만드는 이런 강의가 정말 좋은것 같다.

    • 조영호
      知識共有者

      강의를 만들 때 객체지향 설계가 Spring처럼 지금 당장 배울 필요가 있는 내용은 아니다보니 오픈 이후 반응이 어떨지 조금 걱정했는데 ycseol님처럼 도움이 된다고 생각하시는 분들이 계셔서 마음이 놓이네요. 긍정적으로 평가해 주셔서 감사합니다. :)

  • korchl님의 프로필 이미지
    korchl

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    너무 좋은 강의입니다. 연차와 상관없이 들으시면 모든 개발자들에게 도움이 될 것 같아요.

    • 조영호
      知識共有者

      korchl님 완강 축하드리고 좋게 평가해 주셔서 정말 감사합니다. 도움이 되었다니 정말 다행이네요. 다음 강의도 실망하시지 않도록 열심히 만들어 보겠습니다. :) 날씨가 많이 쌀쌀해 졌는데 건강 잘 챙기시고 새해 복 많이 받으세요!

  • 김민규 (Rabbit)님의 프로필 이미지
    김민규 (Rabbit)

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    최고입니다 ..

    • 조영호
      知識共有者

      김민규님 완강 축하드립니다. :) 강의가 도움이 되셨길 바랄게요. 좋은 수강평 남겨 주셔서 감사드리고 다음 강의도 열심히 준비해 보겠습니다! 즐거운 휴일 보내세요.

期間限定セール

¥82,500

25%

¥12,840

eternityの他の講座

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

似ている講座

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