Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Mikael
Mikael

Posted on • Edited on

     

Software Architecture - Complete Guide

Introduction

As a developer that has to undertake software architecture problems quite a lot in my recent projects, I educated myself on basic Architecture principles and techniques by reading books (and maybe a few blog posts). In my opinion, Books have higher quality content that is, most of the time, written to be resistant to time and as such can still serve you as a reader in your day to day fast changing environment. So if you want to learn about any specific topic in a deep manner, read a book, blog posts are often outdated, too focused, and not written by professionals or cross-read.

Anyway, after many hours spent reading about Software Architecture, I decided to put together a blog post series based on my findings in order to share with fellow developers (and architects) clean architecture principles. This should be useful for you at all level, from Junior to Senior, in order to build software that is scalable, resistant to change and, the most important, maintainable.

Series structure

I will approach the series in the following way:

#TitleDescriptionLink
1IntroductionIntroduction to the serieslink
2What is architecture?Introduction to the concepts of design and architecture in software and why they matterlink
3Starting from the bottomCoding paradigms and why they affect our architecture--
4Design principles5 architecture design principles to always have in mind when designing software--
5.........

In each of the posts enumerated in the table above I will sum up key ideas taken from a book I am currently reading and completing the summary with a short collection of thoughts and real life example showing how relevant are those to us in modern days software development and architecture.

Why should I spend time reading those?

If you are new to software development & architecture, reading about principles that structure your software in a way that will make it scalable, fast and easy to maintain is a must. You need to understand how not to grow a monster full of intricate dependencies and bugs that require your entire code base to change in order to get fixed. After all you don't want to justwrite code, you want to beproductive while doing it. Each character you type needs to produce something that will make your software better, not just fixing legacy dependencies after a breaking change was introduced.

If you are experienced in architecture and development, reading about all of those concepts you had to experience at a theoretical and practical level so many times will probably remember you funny and sad war stories about how your own software was poorly or amazingly designed. Sharing comments would be amazing for new devs, and funny discussion topics for experienced ones.

Conclusion

Looking forward to write about this topic as it is often not the first thing we learn when developing code for the web or any other tech but is definitely the single most important thing we need to understand and work on constantly.

See you on another post!
Mikael


About me

I am a partner at MMPG Consulting, a firm active in the custom software development industry in the Spanish and Swiss markets.

You can add me onLinkedIn or shoot me a DM if you want to discuss specific topics, your software or an idea you want to implement.

Disclaimer

As mentioned above, I am writing this series while reading books about software dev, the ideas and principles exposed will be taken from those books. In those articles I will sum them up and discuss concrete examples. I am not introducing new ideas principles about software architecture essentially because my thoughts on it do not, and will not, introduce a paradigm shift or introduce ground breaking architecture principles (who knows!).

Top comments(9)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
videtwo profile image
videtwo
I am a developer. 30+ years
  • Location
    France
  • Work
    Developer at For myself
  • Joined
• Edited on• Edited

Your complete guide is kind of empty :-D One link that points to itself :-D But I think it is not an accident. Please tell me one example of a well known, big, working software that has the perfect architecture and clean code. Linux kernel :-D Please contradict me but I don't think there is any. Anyway good luck to finish your post and will come back to "learn"...

CollapseExpand
 
mikgross profile image
Mikael
A dev, entrepreneur and sometimes writer.

Hey Videtwo, It’s a series so posts come weekly/biweekly on different posts. This one is the first and the second is not written so yeah... one link :)

CollapseExpand
 
gernotstarke profile image
Dr. Gernot Starke
Dr. Gernot Starke, INNOQ fellow, has been developing software systems since 30+ years. He studied computer science and holds a PhD on Software Engineering.
  • Location
    Cologne, Germany
  • Education
    Master of Computer Science, PhD in Software Engineering.
  • Joined

Just in case you want to read about architecture in a (recent) book:

leanpub.com/isaqb-foundation-study...

It helps to prepare for the CPSA-F certification, and therefore contains all relevant topics, from design principles, patterns over to methodical foundations. Even documentation and architecture-evaluation/assessment is covered...

CollapseExpand
 
alaputacalleok profile image
A La Puta Calle
  • Joined

Estaré atento a tus avances, leyendo alguna lineas de tu texto, recordé los resúmenes de mis tiempos de estudiante

CollapseExpand
 
mikgross profile image
Mikael
A dev, entrepreneur and sometimes writer.

Jaja me encanta tu pseudo! Gracias por la lectura

CollapseExpand
 
jeden profile image
Eden Jose
A cloud enthusiast, an IT Professional, and a problem-solver.I am either learning something new, running a mile, or planning my next 100 days.
  • Email
  • Location
    Manila, Philippines
  • Education
    University of the East - Manila
  • Work
    Systems Administrator
  • Joined

How do I follow this series?
I'm new here in dev.to and you're post is one of the firsts that I came across and I really find it interesting. :)

CollapseExpand
 
mikgross profile image
Mikael
A dev, entrepreneur and sometimes writer.

Hi! Posts will come every one to three weeks depending on my workload. I will update my posts and followers should get it in their notifications :)

CollapseExpand
 
jeden profile image
Eden Jose
A cloud enthusiast, an IT Professional, and a problem-solver.I am either learning something new, running a mile, or planning my next 100 days.
  • Email
  • Location
    Manila, Philippines
  • Education
    University of the East - Manila
  • Work
    Systems Administrator
  • Joined

Alright. got that! Thanks!

CollapseExpand
 
_2082ca7cc65434467c4fb profile image
袁官东
  • Joined

If you need to design 3D software architecture diagram, you can try iCraft Editor :icraft.gantcloud.com/editor

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

A dev, entrepreneur and sometimes writer.
  • Location
    Madrid
  • Work
    CTO
  • Joined

More fromMikael

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp