Simple Design 概論 - コード品質について
youngrok
無料
初級 / Refactoring, Software Engineering
4.8
(54)
良いコードの基準が主観的にならざるを得ないのか、より客観的に判断するためにはどのような考察が必要か、皆で一緒に考えてみましょう。
初級
Refactoring, Software Engineering
Simple Design 概論の3回目の講義では、Simple Designの2つの原則のうち、構成要素を減らすことについて扱います。構成要素にはどのようなものがあるのか、なぜ減らすべきなのかを見ていき、構成要素を減らす様々な方法をサンプルコードと共に扱います。また、リファクタリングのコードの臭い、トヨタウェイの必要な無駄の概念などを見た後、自分のコード品質スキルを評価する方法についても話します。
コードの状態を減らし、変数を減らしながらコードを改善する方法を知ることができます。
関数の適切なサイズを判断できます。
コードの分量と価値のバランスを理解し、適切な均衡を見つけることができます。
私と私たちのチームのコード品質を評価し、改善することができます。
このOnline ClassesはSimple Designロードマップの3番目のOnline Classesであり、コード品質を理論的に扱うSimple Design概論の最後のOnline Classesです。このOnline Classesまで受講すれば、良いコードを書くための基礎は固めた状態だと言えるでしょう。無料で公開されている最初のOnline Classesと重複コードを扱う2番目のOnline Classesをご覧になってからお越しいただくと良いです。
Simple Designに到達する方法は、次の2つに要約できます。
重複コードを削除する。
そうしながら構成要素を減らす。
前回の講義では、まず重複コードの削除について扱い、今回の講義では構成要素を減らすことに集中的に取り組みます。
コード品質を扱うための原則は、単に暗記するだけではなく、なぜそのような原則が必要なのか、原則が生まれる過程を理解する必要があります。そのため、まず構成要素を減らすべき理由から説明します。そして、どの構成要素を減らすことが優先順位が高いのか、一つずつ見ていきます。コード品質において重要な要素の一つである適切な関数のサイズを、どのような基準で判断できるのかも調べ、良い関数に到達するためのプロセスも例を用いて扱います。
今や古典となりつつあるリファクタリングの本の内容も簡単に紹介し、産業工学の観点から必要な無駄の概念を扱い、最後に私と私たちのチームのコード品質を評価し向上させる方法を見ながら締めくくります。
目次は以下の通りです。
削減すべき対象コンポーネントはどのようなものか?
なぜ短縮する必要があるのか?
どの構成要素から減らすのが良いか?
四半期
状態
例外処理コード
テストケース
コールスタックの深さと適切な関数のサイズ
リファクタリングのバッドスメル(Bad smell)から見るコンポーネント削減
必要な無駄
自分のコード品質を振り返る
今回の講義も豊富な例題と共に進めます。例題は主にPython、TypeScript、Javaの3つを活用し、言語ごとにどのように異なるかを見るのも興味深いでしょう。
コンポーネントの数はAI活用性能に直結する問題です。コーディングLLMはすべてトークン数に応じて課金するポリシーを持っているため、コンポーネントの数が減れば、LLMに使用すべきトークン数も減り、それに伴ってAIもより効率的に働くことができます。
大規模プロジェクトを簡単に保守できる方法は何でしょうか?最も良い方法は、私たちのプロジェクトが大規模プロジェクトにならないよう小規模に維持することです。私は大企業からスタートアップまで様々な規模の会社で働き、コンサルティングや外注プロジェクトも数多く手がけてきましたが、非常に似た機能性を提供するソフトウェアであってもコードの規模が10倍以上違うケースをよく見てきました。つまり、ある会社は同じ仕事を他の会社より10倍のコストをかけて行っているわけです。しかし、全体的なコード量を減らそうとせず、単純に分割して問題を解決しようとすると、チーム間のコミュニケーションだけが増え、生産性は改善されないケースが多いです。コード量とコンポーネント数をもっと敏感に受け止めて減らしていけば、長期プロジェクトの保守も簡単に感じられる日が来るでしょう。
Simple Design入門をマスターして、より高い段階に上がる準備をしてみましょう。
学習対象は
誰でしょう?
プロジェクトの開発速度がどんどん遅くなっている状況に参加している開発者
コードをより簡潔にしたいけど、どうすればいいかわからない人
コード品質についてより客観的な基準を探している人
前提知識、
必要でしょうか?
Simple Design 概論の1、2講を先に見てから来るといいです。
リファクタリング、テスト駆動開発、エクストリームプログラミングに対する理解があれば役立ちます。
2,251
受講生
76
受講レビュー
1
回答
4.9
講座評価
4
講座
韓国で最も幅広い経験を持つ開発者です。自ら創業したスタートアップや小規模なスタートアップから、NAVER、カカオ、NCソフトなどの大企業まで様々な規模の企業、HTMLとCSSから始まりフロントエンド、バックエンド、システムプログラミング、ハードウェア制御、DevOpsまで多岐にわたる技術、そしてコマース、税務会計、広告産業、生産性ツール、公共プロジェクトなど、多様なビジネスドメインを経験してきました。
また、多くの企業でCTOを務め、チームメンバーから強力な支持を得てきました。何度も失敗したプロジェクトを引き継いで立て直した経験から、トラブルシューターとしての役割を依頼されることも多々あります。
全体
7件 ∙ (2時間 36分)
全体
4件
5.0
4件の受講レビュー
受講レビュー 5
∙
平均評価 5.0
受講レビュー 2
∙
平均評価 5.0
受講レビュー 6
∙
平均評価 5.0
受講レビュー 3
∙
平均評価 5.0
知識共有者の他の講座を見てみましょう!
新規会員登録で25%OFF
¥2,165
25%
¥2,885