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
Top comments (9)
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
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.
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....
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.