Code craftspersonship is important as it is what allows code to be adjustable in the future. If it's not adjustable, then you're assuming that you're only releasing ONCE, and who does that? If software is valuable, then we'll keep adding more features the market would like. So it's the job of a professional developer to enable this ability, otherwise, what you are delivering is not as valuable after the first release.
A popular model introduced by Bob Martin in Clean Code is S.O.L.I.D.
Learning how to put SOLID to work and then teach your team will bring a lot of value to your software and organization. Here are resources I recommend for individuals and teams to learn how to apply SOLID to Java, Swift, and Kotlin. (I'll add more as they come up on my day job as a technical coach.)
Language Agnostic Materials
This introduction teaches with cartoons and is my favorite resource on this whole page!
Give the author some love with some "claps." https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898
This next is a slide deck that teaches with CRC diagrams: https://www.slideshare.net/sjabnouni/solid-code-by-example
If you want more details, Code magazine has a very nice article by Derick Bailey that shows how a project starts with something simple and evolves into something requiring more design: https://www.codemag.com/Article/1001061/S.O.L.I.D.-Software-Development-One-Step-at-a-Time
Java
Here is a deck of slides in English: https://www.slideshare.net/ionutbilica/solid-design-principles-applied-in-java
Another deck in German: https://www.slideshare.net/RolArc/solid-mit-java-8
Swift
Here is a good deck of slides: https://www.slideshare.net/Indeema/clean-code-solid-151968746
Kotlin
Here are some good articles:
This slide deck has some nice design concepts in it but it isn't great at teaching SOLID:
https://www.slideshare.net/ionutbilica/solid-design-principles-applied-in-java
Great Content. It will useful for knowledge seekers. Keep sharing your knowledge through this kind of article.
ReplyDeleteEffective Website Design
Web Design Strategy