Excelling in software development goes far beyond writing code. The code we write must not only achieve its intended functionality, but it must also be easy to maintain, extend, and change. When our code is not well designed, it starts to show several symptoms called code smells. It is crucial to be fully aware of them to immediately address the underlying causes when we come across bad code. To develop this awareness, this course discusses the most important principles for designing and developing systems that comply with programming best practices. The contents are based on my learnings from multiple years of coding experience, as well as on several books and resources from seasoned developers in the industry. We start by covering four fundamental principles of software design: Information Hiding, Encapsulation, Abstraction, and Polymorphism. We then cover the 5 SOLID principles: the Single Responsibility principle, the Open-Close principle, the Liskov Substitution principle, the Interface Segregation principle, and the Dependency Inversion principle. Once we have covered these guidelines for writing better code, we take a deeper dive into 20 different code smells, which principle they violate, and different strategies we can use to fix them. At the end of this course, you will have acquired not only knowledge about the principles of good software development, but also practical insight into how to reason about the design of your system and how to improve it.
TO MAC USERS: If RAR password doesn't work, use this archive program:
RAR Expander 0.8.5 Beta 4 and extract password protected files without error.
TO WIN USERS: If RAR password doesn't work, use this archive program:
Latest Winrar and extract password protected files without error.