강의

멘토링

로드맵

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) 141 reviews

3,011 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,401

Learners

4,233

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

141 reviews

4.9

141 reviews

  • Eil님의 프로필 이미지
    Eil

    Reviews 3

    Average Rating 5.0

    5

    17% enrolled

    디자인 패턴에 이어 두 번째 강의입니다. 내용이 정말 좋아요... 특히 쉽게 알려주세요. 먼저 타겟에 대한 인사이트를 알려주고 스스로 공부해야 한다는 특징이 있어요. 1부터 10까지 모든 것을 알려주는 강의를 원한다면 추천하지 않습니다. 다만, 독학으로 전혀 감이 오지 않는 생소함을 제거하고 흥미가 생기고 싶으신 분이라면 추천드려요. + 가끔씩 나오는 잡기술(?)이나 노하우가 어디서도 듣기 힘든 좋은 꿀팁입니다.

    • snu님의 프로필 이미지
      snu

      Reviews 2

      Average Rating 3.5

      3

      67% enrolled

      제대로 공부하시려면 책을 보시는 것을 추천드리고 리팩터링에 대해 빠른 기간 내에 무엇인지 훝어보고자 하는 분들은 이 강의를 추천드립니다.

      • Truestar님의 프로필 이미지
        Truestar

        Reviews 26

        Average Rating 4.9

        5

        100% enrolled

        리팩터링 책에 없는, 실무적 관점의 강사님의 여러 의견들을 들을 수 있어서 좋았습니다. 솔직히 책 만으로는 부족하다 생각합니다. 리팩터링 할 실무적 상황이 필요하기 때문이죠. 강의를 듣는 와중에도, 여러 설명을 통해 상황을 시뮬레이션 할 수 있어서 실무적 관점의 궁금증이 어느정도 해소가 되기 때문에 좋았습니다. 그리고 마지막 추천하신 책이 난이도가 높아 과거에 사두고서 책장 박아놨던 책인데, 강의에서 언급해주셔서 책을 처분 안하길 잘했다고 안도를 하게 된 해프닝이 있었습니다 ㅎ 좋은 강의 감사드립니다.

        • 강의 수집가님의 프로필 이미지
          강의 수집가

          Reviews 48

          Average Rating 5.0

          5

          100% enrolled

          수집 완료!

          • 박순영님의 프로필 이미지
            박순영

            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!