DEV Community

Explain me clean architecture like im five

Enzo Lizama Paredes on February 16, 2018

Collapse
 
matheusmanoel profile image
Matheus C. Manoel • Edited

I'm still going to read the book, but I have read posts about clean architecture and an excellent talk about it given by Brandon Rhodes. I will try to work with what I have.

We, as programmers, tend to hide I/O calls (database operations, api calls etc) in subroutines. The I/O call is hidden from us and anyone using our code. The thing is: we usually hide it but do not decouple it. You can't do the required task without making an I/O call. The I/O call is still an inevitable consequence of doing the task. This is bad for testing and for getting cached results. What the clean architecture does is the opposite: make the I/O call explicitly in the routine and work with the data in subroutines as pure functions (functions that return data just based on what was given as arguments and do not change any data outside of it). This makes testing and refactoring (in case the I/O call have to change after a version update for example) much easier.

I think there is no fast way to understand this, so I recommend the talk I linked before. It is an ELI5, but a long one :)

Collapse
 
wesnetmo profile image
Wes

not possible.

need to watch a 4-hour uncle bob's talk about science, human nature, computing history, animal kingdom, finance, business, nuclear medicine, quantum mechanics, geography, chinese war history, dc motors, sun tzu, religion, spanish colonization of 15th century, post victorian furniture style, oysters, art patronization from religious entities in XIV century, black holes, ms-dos, cold blooded animals evolution, fire ants, denim, woodworking, radiotelescope arrays, sugar beets, perpetual motion, metric system, the mechanical characteristics of walnut, atari lynx, sony betamax, commercial rockets and privately managed satellite networks, babbage, difference between grafting and cutting, gmo, roman siege weapons, goats, armchairs, before you are prepared to learn about clean architecture.

Collapse
 
wesnetmo profile image
Wes

Sorry for ruining your thread.
I hope you get more serious answers :D Robert Martin is known for... talks covering strange topics :D

Collapse
 
enzoftware profile image
Enzo Lizama Paredes

Hahahahah no problem i found it very funny and interesting too. Thanks anyway.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

Cannot help but mention this post.

Layers, Onions, Ports, Adapters: it's all the same.

Collapse
 
enzoftware profile image
Enzo Lizama Paredes

hey, i keep reading about the topic and i found this useful post.
Happy coding!!