강의

멘토링

로드맵

BEST
Programming

/

etc. (Programming)

Learning Refactoring by Coding

Refactoring is one of the basic skills that a software engineer should have. This course is designed to explain and practice various code smells and refactoring techniques in a more practical way using IntelliJ and Java.

(4.9) 137 reviews

2,998 learners

  • whiteship
실리콘밸리
시니어의 비법
Refactoring
Java
IntelliJ IDEA

Reviews from Early Learners

What you will learn!

  • A catalog of 24 code smells and 7 refactorings

  • 43 refactorings shown in Java example code and practiced directly

  • Refactoring related features provided by IntelliJ

Beyond simple implementation
For all developers who want to create better code 💌

Refactoring

You can change several programming elements such as classes, functions, and fields while maintaining the functionality of the code to make it better.
It refers to the process or technique of improving code. If you learn and apply refactoring,
Even code that behaves the same can be made more understandable and flexible.

The code was like this

This makes the code a little more readable.

We refactor
Why you should learn

Assumptions that seemed unchangeable and code that was initially thought to be the best, as time passes, environments change, and technology advances, it's very likely that you'll find yourself asking, "Why on earth did they write the code like that?"
You'll learn how to find such code through 24 code smells covered in refactoring, and how to improve your code through over 43 refactoring techniques.
I guarantee that after this class, when you look at your code again, you will definitely be able to fix it to make it better.


Code productivity
If you want to increase it

IntelliJ
Integrated development environments (IDEs) such as IntelliJ, unlike simple editors, have advanced computational and analytical capabilities.
It provides several features to help with code refactoring.
By leveraging the features introduced in this lecture, you can also improve your code productivity.

Refactoring is
Who needs it?

I learned basic grammar
What should I do now?

Than now
Become a better developer
If you want to grow?

With better code
I want to improve

Smelly code
How to improve
If you want to know?

IntelliJ
I want to write better

100% refactoring functionality
If you want to use it?

Refactoring?
I really want to see it

Refactoring in text
While watching
If you want to learn?

📢 Please be informed

  • To successfully complete the course, you need to have an understanding of the Java programming language .
  • Although this course introduces refactoring using Java and IntelliJ , it's not language- or IDE-specific . Similar issues can be encountered regardless of the programming language, and any development tool known as an integrated development environment (IDE) should have the features introduced in this course. Therefore, you can take this course using your preferred programming language and IDE.

Learning through coding
Refactoring

This course covers 24 code smells and several refactoring techniques to address each smell.
Each refactoring technique actively leverages the capabilities provided by IntelliJ and provides example code so you can practice it yourself.

  1. Mysterious Name
  2. Duplicated Code
  3. Long Function
  4. Long Parameter List
  5. Global Data
  6. Mutable Data
  7. Divergent Change
  8. Shotgun Surgery
  9. Feature Envy
  10. Data Clumps
  11. Primitive Obsession
  12. Repleated Swtiches
  13. Loops
  14. Lazy Element
  15. Speculative Generality
  16. Temporary Field
  17. Message Chains
  18. Middle Man
  19. Insider Trading
  20. Large Class
  21. Alternative Classes with Different Interfaces
  22. Data Class
  23. Renunciation of Inheritance (Refused Beques)
  24. Comments

A must-read for every developer
Refactoring

Refactoring is The first edition was published in 1999 and the second edition came out in 2018, along with GoF's book "Design Patterns".
This is one of the must-reads I recommend to all developers.
This is a skill that will be useful in your work at any time, past, present, and future, so please be sure to learn it.

Refactoring (2nd Edition)
Amazon rating: 4.7/5
8th in Object-Oriented Software Design (as of February 2022)
One of the recommended books for all developers

Martin Folwer
Object-oriented analysis and design, UML, enterprise patterns, and
With several writings and presentations on extreme programming,
famous software engineer

📢 Please note

    • This course is based on Martin Fowler's book , Refactoring . While we recommend reading the book to help you grow as a developer, you don't need to purchase it to take the course.


How this course differs from the refactoring book

  • The refactoring book briefly covers each code smell and then goes into detail about refactoring techniques by catalog.
    However, this course uses a review method by going through a catalog of refactoring techniques after covering code smells and the refactoring techniques that help address each smell in detail, so that problem recognition and solution methods are connected.
  • Also, Refactoring 2nd Edition has example code written in JavaScript and does not provide complete example code, but this course provides example code written in Java so that you can practice it yourself.

  • Finally, the book explains refactoring methods under the assumption that no IDE is used, but in reality, close to 90% of Java developers use an IDE, so this lecture actively utilizes IntelliJ's features and introduces more practical refactoring.

Expected Questions Q&A

Q. Is it absolutely necessary for developers to learn refactoring?

A. If you're a developer who doesn't just think, "It just has to work," but rather, "How can I make my code work better?" Learning refactoring is a must. The techniques covered in this course will significantly improve the quality of your code.

Q. When should I refactor? I don't have time for refactoring in my work.

A. Refactoring can be scheduled, or it can be done concurrently with writing new code or modifying existing code to improve or change functionality. For example, I have a frequently used class at work that, after five years of accumulation, has grown so large that it's starting to smell like code. After completing that task, I take some time to "extract methods" and "parameterize methods" to remove a significant amount of redundant code, create a more readable version, and submit it for code review. Rather than making a large change all at once, making small, frequent changes allows for gradual improvements without a long wait.

Q. I have only studied the basics of Java. Can I still take this course?

A. Yes, if you've learned the basics of Java, you can take this course. In particular, if you're unfamiliar with IntelliJ, I highly recommend learning the IntelliJ refactoring features introduced in this course and applying them in your work. There are many tips waiting to boost your productivity.

Q. I'm wondering if the difficulty level and format of the lecture are right for me.

A. We've provided previews of the "Unintelligible Names," "Changing Function Declarations," and "Changing Variable Names" lessons for this course. Please review these lessons before registering to determine whether this approach will be helpful to you.

Learn Refactoring from a Microsoft Senior Developer!

"If you work as a developer, you've probably heard someone compare code to 'poop' at least once. This kind of code slows down work and makes it difficult to respond to changing requirements.
Refactoring is a way to cleanly and safely organize this code , making it more readable and more agile. We hope you'll use refactoring to beautify your project's code.

Recommended for
these people

Who is this course right for?

  • Developers or students who are new to refactoring

  • Developers or students who want to learn how to improve their code with better code.

  • Developers or students who want to use IntelliJ better to increase their productivity

Need to know before starting?

  • Java Basics

Hello
This is

92,315

Learners

4,218

Reviews

2,010

Answers

4.8

Rating

20

Courses

네이버와 아마존을 거쳐 현재 Microsoft에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

아인슈타인은 "교육이란 사실을 가르치는 것이 아니라, 생각할 수 있는 힘을 기르는 것이다."라고 말했습니다. 그리고 저도 그 말에 깊이 공감하며 강의를 만들고 있습니다.

유튜브:
'백기선' 채널에서 개발자 고민 상담 및 개발자에게 유용한 지식 공유
번역: 스프링 및 하이버네이트 관련 서적 다수 번역
저술: 쉽게 따라하는 자바 웹 개발

Curriculum

All

78 lectures ∙ (9hr 39min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

137 reviews

4.9

137 reviews

  • eilhwan님의 프로필 이미지
    eilhwan

    Reviews 3

    Average Rating 5.0

    5

    17% enrolled

    デザインパターンに続いて2番目のレクチャー。 内容は本当に良いです...特に簡単に教えてください。 まず、ターゲットに関する洞察を教えてください。 自分で勉強しなければならないという特徴があります。 1から10まですべてを教えてくれる講義をしたい場合 お勧めしません。 ただし、独学で全く感が来ない不慣れを取り除き、 興味がありたい方はおすすめです。 + たまに出てくる雑技(?)やノウハウがどこでも聞きにくい良いハチミツチップです。

    • tjsrldhdn3264님의 프로필 이미지
      tjsrldhdn3264

      Reviews 2

      Average Rating 3.5

      3

      67% enrolled

      正しく勉強するには、本を見ることをお勧めします。 リファクタリングについて早い期間内に何かを盗んでみたい方は、この講義をお勧めします。

      • truestar님의 프로필 이미지
        truestar

        Reviews 26

        Average Rating 4.9

        5

        100% enrolled

        リファクタリング本にない、実務的観点の講師様のいろいろな意見を聞くことができてよかったです。 正直、本だけでは足りないと思います。リファクタリングする実務的な状況が必要だからです。 講義を聞く途中でも、様々な説明を通じて状況をシミュレートすることができ、実務的観点の疑問がある程度解消されるのでよかったです。 そして、最後に推薦された本が難易度が高く、過去に買って本棚を打ち明けた本なのに、講義で言及していただき、本を処分しないようにしたと安堵するようになったハプニングがありました。 良い講義ありがとうございます。

        • art90004765님의 프로필 이미지
          art90004765

          Reviews 48

          Average Rating 5.0

          5

          100% enrolled

          収集完了!

          • ahinsyar님의 프로필 이미지
            ahinsyar

            Reviews 18

            Average Rating 5.0

            5

            100% enrolled

            私が作ったコードも読みづらいことが多く、自分なりにリファクタリングを試みましたが、あまり満足できませんでした。今回の講義で多くの技術を学び、ぜひ本を読んでみたいと思いました。いつもありがとうございます。

            $59.40

            whiteship's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!