강의

멘토링

커뮤니티

NEW
Programming

/

etc. (Programming)

Introduction to Simple Design Lecture 3: Less is more

This is the third lecture in the Introduction to Simple Design, covering one of Simple Design's two principles: reducing components. We'll examine what components are, why they should be reduced, and explore various methods for reducing components with example code. Additionally, we'll look at refactoring code smells, the concept of necessary waste from the Toyota Way, and discuss methods for evaluating your code quality skills.

65 learners are taking this course

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

What you will gain after the course

  • You can learn how to improve your code by reducing state and minimizing variables.

  • You can determine the appropriate size of a function.

  • You can understand the trade-off between code quantity and value, and find the appropriate balance.

  • You can evaluate and improve the code quality of yourself and your team.

This course is the third in the Simple Design Roadmap and the final course in the Simple Design Introduction series that covers code quality theoretically. After completing this course, you will have built a solid foundation for writing good code. It would be beneficial to watch the first course, which is available for free, and the second course, which covers duplicate code.

Syllabus

The methods to achieve Simple Design can be summarized in the following two ways.

  1. Removes duplicate code.

  2. While doing so, reduce the number of components.

In the last lecture, we covered removing duplicate code first, and in this lecture, we will focus intensively on reducing components.

The principles for handling code quality aren't something you can simply memorize; you need to understand why these principles are necessary and the process behind them. Therefore, I'll first explain why we need to reduce components. Then, we'll examine one by one which components have higher priority for reduction. We'll also explore what criteria can be used to determine an appropriate function size, which is one of the important factors in code quality, and we'll cover the process of achieving good functions through examples.

Now, I'll briefly introduce the content of the Refactoring book, which is becoming a classic, discuss the concept of necessary waste from an industrial engineering perspective, and finally wrap up by exploring how to evaluate and improve the code quality of myself and our team.

The table of contents is as follows.

  1. What are the components that need to be reduced?

  2. Why should we reduce it?

  3. Which components should you reduce first?

    1. Quarter

    2. State

    3. Exception handling code

    4. Test Cases

  4. Call Stack Depth and Appropriate Function Size

  5. Reducing Components Through Refactoring Bad Smells

  6. Necessary Waste

  7. Reflecting on My Code Quality

This course also comes with rich examples. The examples primarily use Python, TypeScript, and Java, and it will be interesting to see how they differ across languages.

The number of components is directly linked to AI utilization efficiency. Since all coding LLMs have pricing policies based on token count, reducing the number of components means fewer tokens need to be used with the LLM, allowing AI to work more efficiently.

What's the best way to easily maintain large-scale projects? The best approach is to keep our project small so it doesn't become a large-scale project in the first place. I've worked at companies of various sizes, from large corporations to startups, and have done many consulting and outsourcing projects. I've frequently seen cases where software providing very similar functionality differs in code size by more than 10 times. This means some companies are spending 10 times the cost to do the same work as others. However, if you try to solve the problem by simply splitting things up without reducing the overall amount of code, you often end up with more inter-team communication and no improvement in productivity. If you become more sensitive to code volume and the number of components and work to reduce them, the day will come when maintaining long-term projects feels easy.

Let's master the introduction to Simple Design and prepare to move up to the next level.


Recommended for
these people

Who is this course right for?

  • A developer working on a project where development is progressively slowing down

  • Someone who wants to make their code more concise but doesn't know how to do it

  • Someone looking for more objective standards for code quality

Need to know before starting?

  • It's recommended to watch lectures 1 and 2 of Introduction to Simple Design first.

  • It helps if you have an understanding of refactoring, test-driven development, and extreme programming.

Hello
This is

1,968

Learners

58

Reviews

1

Answers

4.9

Rating

4

Courses

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

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

Curriculum

All

7 lectures ∙ (2hr 36min)

Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

Limited time deal ends in 7 days

$704.00

50%

$8.80

youngrok's other courses

Check out other courses by the instructor!