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 :)
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.
Top comments (6)
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 :)
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.
Sorry for ruining your thread.
I hope you get more serious answers :D Robert Martin is known for... talks covering strange topics :D
Hahahahah no problem i found it very funny and interesting too. Thanks anyway.
Cannot help but mention this post.
Layers, Onions, Ports, Adapters: it's all the same.
hey, i keep reading about the topic and i found this useful post.
Happy coding!!