강의

멘토링

커뮤니티

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.

(5.0) 3 reviews

117 learners

Level Basic

Course period Unlimited

  • youngrok
code readability
code readability
code readability
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

2,163

Learners

67

Reviews

1

Answers

4.8

Rating

4

Courses

I am a developer with the most extensive range of experience in South Korea. I have experienced companies of all sizes, from startups I founded myself and small-scale startups to major corporations like Naver, Kakao, and NCSOFT. My technical expertise spans from HTML and CSS to frontend, backend, system programming, hardware control, and DevOps, covering diverse business domains such as e-commerce, tax accounting, the advertising industry, productivity tools, and public projects.

Additionally, I have served as CTO at numerous companies, earning strong support from my team members. I am also frequently sought after as a "troubleshooter" due to my track record of taking over and reviving projects that had previously failed multiple times.

Curriculum

All

7 lectures ∙ (2hr 36min)

Published: 
Last updated: 

Reviews

All

3 reviews

5.0

3 reviews

  • dkstm95님의 프로필 이미지
    dkstm95

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    I completed everything from the meetup video to lecture 3 without missing a single one, and I think this is the most practical course that can be immediately applied to real work. You expressed in clear language what I had only vaguely felt about architecture and code quality, which was a great help. I'm also using the content from this course in AI agent instruction files like CLAUDE.md, and I can feel that the quality of the code being written has improved significantly. I hope to meet you again with another great course someday. Thank you for the excellent course.

    • duagnldnjs4735님의 프로필 이미지
      duagnldnjs4735

      Reviews 2

      Average Rating 5.0

      5

      43% enrolled

      • wnwls12164670님의 프로필 이미지
        wnwls12164670

        Reviews 6

        Average Rating 5.0

        5

        100% enrolled

        $17.60

        youngrok's other courses

        Check out other courses by the instructor!