Dive Into REFACTORING
Hi, my name is Alexander Shvets, I'm the creator of this website. After two years of work, I'm happy to present to you my course on refactoring, which will make you a better programmer.
I have been programming since I was 13. Windows didn't even have a Start button back then. Since that time, I have worked at five companies, learned a half a dozen programming languages and launched several successful projects.
In this course, I will share my knowledge with you and teach you to:
- See the difference between beautiful and ugly code.
- Improve ugly code, even where you thought it was impossible.
- Change the code in such a way that it doesn't break other parts of your program.
You will love the course if you have ever felt like this cat here sitting in front of a broken build.
What’ s inside?
The course teaches you about 21 smells of bad code and 66 refactoring techniques to fix them.
Each chapter includes examples in Java, C# and PHP.
The refactoring techniques are illustrated with live examples. These are much easier to follow than static code—and more fun, too!
The course can be downloaded for offline use as an ebook in PDF, EPUB, MOBI formats.
The course doesn't have any time restrictions. You can pass it at a convenient time at your own pace any number of times you want. On average, it takes about 8 hours to pass the whole course.
Screenshots
The home page with links to the forum and cheat sheets.
First steps into the course.
Going through one of the code smells.
The course covers 21 code smells and 66 refactorings.
Live examples show you how to apply refactorings step-by-step.
Each example is followed by a diff view between starting and resulting code.
Why would I buy this course instead of a thick book about refactoring?
This course is written in simple, accessible language with no academic jargon. Direct and to the point with a minimum of fluff.
It’ s optimized for tablet viewing. So go ahead and read it on your couch while sipping some tasty cappuccino.
Interactive elements of the course help to keep you on your toes, unlike ordinary books that lull you to sleep after ten minutes.
Oh and did I mention the live interactive examples? Yes I did, but they’ re too cool not to mention again!
Certificate of completion
After finishing the course you'll get an electronic certificate of completion. While it certainly looks awesome on the wall, you could also put it in your CV, increasing your chances during the next job interview.
100% Satisfaction Guarantee
Your purchase of the course is absolutely risk-free. If within a month you decide that you are unhappy with your purchase, I will immediately refund all your money, no questions asked.
Here's what other people say
I didn't have a chance to ran through the whole course, so I still have some lessons ahead. Overall I really like the course, it's written in understandable way, contains lot of good ideas. I noticed that I started to use Extract Method really often. As well as substitution of complex logical "IF" statements by method that returns bool. Code is really much more readable and don't need to be commented. Don't know what to improve, maybe bigger variety of code snippets. I noticed that snippets are reused again and again over the course and I would welcome to see some different scenarios.. Don't know if you get the point, simple not to reuse the same snippet over and over for similar use cases.
I like the site, and the information is good I like the way it is organized in stories and how you can see in the sample code how to apply a solution. I would like to have something like a playground so I can actually write and refactorize code, and check the results against the recommended solution (similar to what udacity has on their python courses)
I loved the refactoring course and especially the online aspect of it. Well done with respect to content and easy to understand material. I have bought all your work in the past except for UML. Keep on doing good work. It helps me understand the material properly and I can apply at work as well. In terms of new suggestions: Come up with a nice tutorial or a book on Java 8 and Java 9 with focus on functional programming, modules and concurrency. I am sure it will do well.
I've just started with the course. I like the boxes explaining the solutions. If anything I would prefer small exampeles of actual code.
Otherwise I really like the Course and you've done an awesome job with this.
I've only gone through a portion of the course, reading through it piece by piece when i have free time. I really like the course and I think it's helping me become a better programmer. It's already helped me with refactoring my code. I think it's great and more people should know about it.
Things I like are:
- Very easy to understand and great examples.
- Easy to understand why refactoring practices exist.
Things I don't like are:
- I bought the premium version because I wanted access to the practice code. But it seems like I can't get to the without reading through all the refactoring practices and code smells portion yet (or maybe it just isn't clear to me on how to access the practice portion).
- A lot of the refactoring methods are reused in different code smells. I understand that it's a way to fix the code smell, but it can get a little repetitive reading the same thing over and over.
If I had any suggestions on how to improve the site, I would say that a way to access just the code examples would be nice. And also maybe having some refactoring methods for Javascript or ES6 with examples as well (I'm a front end developer so I work a lot with JS). Although the second suggestion isn't as important because these methods can applied and translated across languages fairly easily.
It felt a bit boring to read. It did not feel so engaging. I think some design patterns(fixes) didn't have good examples given.
I liked the way it is organized and linked between different sections.
I think it's awesome!! Right now I'm working my way through reading the sourcemaking website. I started working on some of the refactoring guru course and will finish it once I finish sourcemaking.
Yesterday i finished the course, i find it a good alternative for reading books. Especially for running source examples is a great idea. Working on the course was a good alternation at work. The design pattern page is a good help at work, especially the c# examples.
One thing i missed, after finishing the course, a certificate for successful partcipating the course should be included. After each seminar/course, i get a paper for participation. For example, if you pass the PSM1 test in scrum.org, you can download a certificate.
1. In my opinion its very clever that refactoring course is structured around code smells - makes it easier to remember code smells and the ways they can be resolved.
2. The structure, the flow of the course and the small code snippets with the problem and the solution is among the things i liked a lot. Did not like so much the red colour that dominates in the course but that's a matter of personal preference, maybe it kind of 'forces' you to move towards the end of the course faster that other colours.
3. One thing i would really like to see (i have not reached the end of the course so maybe its already there and i just did not see it yet) is a set of exercises: one code snippet when you are given the problematic code that needs refactoring, a small description of the solution that we should follow and then in the next code snippet we get to write the refactored code based on the suggested solution.
I have started to look through the course. I was really happy with the content and recommended it to my team.
I'm very happy with the course! I had a chance to go through the different refactorings and now I am working on the design patterns.
I completed the course at a leisurely pace in about a week. I liked how the smells link to the relevant refactoring methods and vice versa.
Awesome material, thank you! I use the standard refactoring methods in Idea pretty often but I did not realize there are so many of them. Of the new ones, my favorite is Replace Nested Conditional with Guard Clauses.
I liked how the material was structured in one story line. I know you just got started but my suggestion would be to add examples in Swift too.
Frequently asked questions
Have more questions?
Send us a forum message or email support@refactoring.guru. We usually respond within a few hours.