강의

멘토링

커뮤니티

NEW
Programming

/

etc. (Programming)

Simple Design 入門 第3講:Less is more

Simple Design 概論の3回目の講義では、Simple Designの2つの原則のうち、構成要素を減らすことについて扱います。構成要素にはどのようなものがあるのか、なぜ減らすべきなのかを見ていき、構成要素を減らす様々な方法をサンプルコードと共に扱います。また、リファクタリングのコードの臭い、トヨタウェイの必要な無駄の概念などを見た後、自分のコード品質スキルを評価する方法についても話します。

  • youngrok
코드품질
리팩토링
code readability

受講後に得られること

  • コードの状態を減らし、変数を減らしながらコードを改善する方法を知ることができます。

  • 関数の適切なサイズを判断できます。

  • コードの分量と価値のバランスを理解し、適切な均衡を見つけることができます。

  • 私と私たちのチームのコード品質を評価し、改善することができます。

このOnline ClassesはSimple Designロードマップの3番目のOnline Classesであり、コード品質を理論的に扱うSimple Design概論の最後のOnline Classesです。このOnline Classesまで受講すれば、良いコードを書くための基礎は固めた状態だと言えるでしょう。無料で公開されている最初のOnline Classesと重複コードを扱う2番目のOnline Classesをご覧になってからお越しいただくと良いです。

講義計画書

Simple Designに到達する方法は、次の2つに要約できます。

  1. 重複コードを削除する。

  2. そうしながら構成要素を減らす。

前回の講義では、まず重複コードの削除について扱い、今回の講義では構成要素を減らすことに集中的に取り組みます。

コード品質を扱うための原則は、単に暗記するだけではなく、なぜそのような原則が必要なのか、原則が生まれる過程を理解する必要があります。そのため、まず構成要素を減らすべき理由から説明します。そして、どの構成要素を減らすことが優先順位が高いのか、一つずつ見ていきます。コード品質において重要な要素の一つである適切な関数のサイズを、どのような基準で判断できるのかも調べ、良い関数に到達するためのプロセスも例を用いて扱います。

今や古典となりつつあるリファクタリングの本の内容も簡単に紹介し、産業工学の観点から必要な無駄の概念を扱い、最後に私と私たちのチームのコード品質を評価し向上させる方法を見ながら締めくくります。

目次は以下の通りです。

  1. 削減すべき対象コンポーネントはどのようなものか?

  2. なぜ短縮する必要があるのか?

  3. どの構成要素から減らすのが良いか?

    1. 四半期

    2. 状態

    3. 例外処理コード

    4. テストケース

  4. コールスタックの深さと適切な関数のサイズ

  5. リファクタリングのバッドスメル(Bad smell)から見るコンポーネント削減

  6. 必要な無駄

  7. 自分のコード品質を振り返る

今回の講義も豊富な例題と共に進めます。例題は主にPython、TypeScript、Javaの3つを活用し、言語ごとにどのように異なるかを見るのも興味深いでしょう。

コンポーネントの数はAI活用性能に直結する問題です。コーディングLLMはすべてトークン数に応じて課金するポリシーを持っているため、コンポーネントの数が減れば、LLMに使用すべきトークン数も減り、それに伴ってAIもより効率的に働くことができます。

大規模プロジェクトを簡単に保守できる方法は何でしょうか?最も良い方法は、私たちのプロジェクトが大規模プロジェクトにならないよう小規模に維持することです。私は大企業からスタートアップまで様々な規模の会社で働き、コンサルティングや外注プロジェクトも数多く手がけてきましたが、非常に似た機能性を提供するソフトウェアであってもコードの規模が10倍以上違うケースをよく見てきました。つまり、ある会社は同じ仕事を他の会社より10倍のコストをかけて行っているわけです。しかし、全体的なコード量を減らそうとせず、単純に分割して問題を解決しようとすると、チーム間のコミュニケーションだけが増え、生産性は改善されないケースが多いです。コード量とコンポーネント数をもっと敏感に受け止めて減らしていけば、長期プロジェクトの保守も簡単に感じられる日が来るでしょう。

Simple Design入門をマスターして、より高い段階に上がる準備をしてみましょう。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • プロジェクトの開発速度がどんどん遅くなっている状況に参加している開発者

  • コードをより簡潔にしたいけど、どうすればいいかわからない人

  • コード品質についてより客観的な基準を探している人

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

  • Simple Design 概論の1、2講を先に見てから来るといいです。

  • リファクタリング、テスト駆動開発、エクストリームプログラミングに対する理解があれば役立ちます。

こんにちは
です。

2,041

受講生

61

受講レビュー

1

回答

4.9

講座評価

4

講座

대한민국에서 가장 폭넓은 경험을 가진 개발자입니다. 직접 창업한 스타트업, 소규모 스타트업에서부터 네이버, 카카오, 엔씨소프트 등 대기업까지 다양한 규모의 기업, HTML과 CSS에서 시작해서 프론트엔드, 백엔드, 시스템 프로그래밍, 하드웨어 제어, DevOps까지 다양한 기술, 커머스, 세무회계, 광고산업, 생산성 툴, 공공프로젝트 등 다양한 비즈니스 도메인을 경험했습니다.

또한, 많은 기업에서 CTO를 맡으며 팀원들의 강력한 지지를 받았고, 여러 번 실패했던 프로젝트를 이어 받아 살려낸 사례를 통해 해결사 역할도 많이 요청 받고 있습니다.

カリキュラム

全体

7件 ∙ (2時間 36分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

2件

5.0

2件の受講レビュー

  • 대흉근님의 프로필 이미지
    대흉근

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    밋업 영상부터 시작해서 3강까지 하나도 빠뜨리지 않고 완강했는데, 실무에 가장 가깝고 즉시 적용 가능한 강의라고 생각합니다. 평소 아키텍처나 코드 품질에 대해 막연하게 느끼고만 있었던 것들을 명확한 언어로 표현하셔서 큰 도움이 되었습니다. 저는 이 강의 내용들을 CLAUDE.md 와 같은 ai 에이전트 지시 파일에도 애용하고 있는데, 작성되는 코드 품질이 훨씬 높아짐을 느낍니다. 언젠가 또 좋은 강의로 만나뵙길 희망합니다. 좋은 강의 감사합니다.

    • 염휘원님의 프로필 이미지
      염휘원

      受講レビュー 2

      平均評価 5.0

      5

      43% 受講後に作成

      ¥1,404

      youngrokの他の講座

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