Refactor Like a Superhero
In this talk, I want to share techniques and heuristics I use to refactor code efficiently and what buzzwords from the software development world I think are the most useful.
We will discuss what refactoring is, what its benefits are for development and for the business, how to search for issues with your code, and how to fix them.
Among the topics we'll touch:
- How to keep the refactoring process under control and find time for it.
- How to apply formatting and linters and why it's important.
- Why use features of the language and environment.
- How to detect problems with entity names and how the ubiquitous language can help.
- How to fight duplication and when not to.
- How to use abstraction as a tool and separate concerns between modules.
- Why functional pipeline is so useful and how to implement it in your projects.
- Why flat conditions are easier to read and maintain.
- What's the point of using immutable and stateless data structures.
- How to deal with side effects and error handling.
- Whether the static typing can help with making the code more readable.
- How coupling and cohesion affect your architecture.
This talk couldn't fit all the material I had to share. So after this talk, I wrote a free online book. It explains the concepts mentioned in the talk in more detail and contains more code examples. I encourage you to check it out as well!