DEV Community

Orim Dominic Adah
Orim Dominic Adah

Posted on

Why do some Programming Tutorials not place emphasis on Software Architecture Principles?

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

Why do some programming tutorials not place emphasis on software architecture principles while building the project(s) being built during the tutorial?


And do you think they should?

Top comments (9)

Collapse
 
helleworld_ profile image
DesirΓ© πŸ‘©β€πŸŽ“πŸ‘©β€πŸ«

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 πŸ˜…

Collapse
 
orimdominic profile image
Orim Dominic Adah

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.

Collapse
 
prateekprshrnith profile image
PRATEEK PRASHER

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.

Collapse
 
orimdominic profile image
Orim Dominic Adah

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

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao • Edited

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.

Collapse
 
orimdominic profile image
Orim Dominic Adah

Hmm.. Thanks for your contribution. I never saw it from this angle

Collapse
 
vonheikemen profile image
Heiker

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.

Collapse
 
orimdominic profile image
Orim Dominic Adah

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.

Collapse
 
orimdominic profile image
Orim Dominic Adah • Edited

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....