Why do some programming tutorials not include software architecture principles such as SOLID and design (anti-)patterns in building the projects that accompany the tutorials?
These principles are important as they support the lifespan of any software project. What's more? They are better learnt using examples and use cases (of which the project being built during the tutorial contains a plethora of).
This #discuss begs the question
Oldest comments (9)
I think they should. Software quality is important. Even if they don't, they should give reasons why they make some software quality decisions like I am using an enum because..., or I am using the factory design pattern because....
Really nice question.
I try to use as many examples and usecases as I can always provide, also I think it's really important to teach that there's actually an arquitecture in everything we use, and that it's not something you can just leave behind.
Since I've been years following different tutorials and guides, I had to finally learn arquitecture late on my career. And honestly it would've been the solution for many things I couldn't understand back then π
Same with me too. After about 2+ years, I had to start learning these architectures.
Most tutorials on architectures are separate from tutorials on building an application. I was thinking it could be because one app may not explain all architecture pattern use cases but still, it won't hurt to explain some if there are use cases that fit.
I appreciate your contribution. Thanks.
Simple cause it muddy the water way more unless it's focus is on it.
Plus design patterns is just a point of reference, it might not be actually implemented in real life.
Due to choice of technology, user habits, team composition, timeline, scaling of users for specific use cases.
Hmm.. Thanks for your contribution. I never saw it from this angle
Teaching is hard. While writing a tutorial you would want the focus of the reader to be the concept that you're trying to teach. You don't want the reader to feel like they should know a specific pattern to build the project, or that a specific set of patterns like SOLID is the only way to build it. Again, teaching is hard.
Haha.. Sure.. Teaching is really hard. It's like entering into someone's life and planting stuff in there, but you have to know how the soil is.. How many peoples' soil are so that many will get it.
I see what your're saying now. To avoid clutter.
Thanks for your contribution.
Simply because it is hard to teach good practices. You may easily understand a tutorial on clean code, SOLID code, design patterns, but what one needs is the ability to identify the situation how and when things are going wrong. Unless one knows what bad code/design/architecture is, s/he can not improve it with a good one.
Hmm.. Another angle here.. Using the faulty parts of a software's architecture to teach good software architecture by fixing it..Hmm.. And tutorials are built from ground up, most times, all have been pre-planned so they can't be used. Cool.
Thanks! I really appreciate