The Importance of Application Architecture
One key way I am aiming to make this course different from many beginner to intermediate level courses, is that we will be paying much more attention to architectural concepts right from the beginning. In the beginning, this can make things harder because we aren’t doing things in the most simple way possible, and the reasons why we are doing things a certain way might not be immediately apparent without taking some time to learn additional concepts.
To give some context here, we are primarily going to be focusing on these three architectural concepts throughout this module (and then using them throughout the course):
- SOLID programming principles — an acronym representing five best practices for building software with Object Oriented Programming
- Smart and dumb components — a way to distinguish between different types of components and the responsibilities they have
- Folder structure — how to organise the files and folders in our application in a more maintainable/scalable way
You don’t actually need to care about any of these things to build an application, so why should we care about them at all? In a way, it’s similar to the argument for using state management libraries. Or using declarative code. For basic applications, not considering these best practices probably isn’t going to cause any trouble. As an application becomes bigger, not considering these best practices can lead to hard to maintain and buggy code. The line of where it starts to matter is not clear, and I think it is a good idea to always consider these things.