笔记:Driving Architectural Simplicity - The Value, Challenge, and Practice of Simple Solutions

简介:

感觉这篇文章对于为什么,以及如何简化架构说的很透。
开篇:
Key Takeaways
Simple architectures are easier to communicate, build, deploy, operate, and evolve.
Architectural simplicity is not easily encapsulated by one type of model or practice. Several practices can be applied in combination to drive simplicity.
Agile practices stress simplicity. Architectural complexity can occur based on many factors such as design ability and focus, technology evolution, and organizational structure.
Defining simple architectures is difficult and takes a concerted, continuous effort.

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger W. Dijkstra (1984)

简化架构的好处(Benefits of Architectural Simplicity ):
First, simple architectures are easier to communicate. Communication includes both documentation and comprehension. A simple architecture can be documented with a smaller model and fewer drawings/annotations which would lead to improved comprehension by stakeholders. Comprehension is critical for shared understanding, which some define as the architecture (from Martin’s Fowler’s seminal Who Needs an Architect?). A shared understanding is critical to maintaining alignment across teams and team members, and ensuring an efficient implementation.
Second, simple architectures are often easier to implement. They have fewer moving parts, fewer interactions, and fewer opportunities for failure. However, this isn’t always the case. Sometimes it may take more time to implement a simple architecture given the number of try/fail/learn iterations that go into the process of identifying a truly simple design.
Third, simple architectures are easier to deploy and operate. Fewer moving parts aligns to a more straightforward deployment. Then once in production, simple architectures are more easily scaled and monitored. Another great quote from Edsger Dijkstra is "Simplicity is a prerequisite for reliability."
Fourth, simple architectures are easier to modify and evolve. Simplicity is a key principle of Agile practices and a rule for XP development. Simple architectures allow the development team to be more productive since there is less complexity to track and fewer points of impact when making changes.

什么是架构简化(What is Architectural Simplicity? ):
Strive for the Simplest Option
Apply YAGNI – You Aint’t Gonna Need It
Practice Parsimony
Avoid Premature Optimization

复杂的原因(Reasons for Complexity)
Complexity Sells
Developing is Fun
Keeping Up With The Joneses
Simple is Hard
Organizational Structure

实施简化的建议(Recommendations for Driving Architectural Simplicity )
Design Up Front
Design Throughout Delivery
Ask Questions, Often
Understand Decision Tradeoffs
Create Proof of Concepts
Communicate Effectively and Often
Embrace Minimum Viable
Make Architecture Everyone’s Responsibility
Be Continuously Obsessive

这篇文章写的很容易理解,很多部分其实你看我整理的KeyNote就知道是什么东西了,如果想详细了解,文章链接如下:
https://www.infoq.com/articles/driving-architectural-simplicity?utm_source=infoq&utm_medium=popular_widget&utm_campaign=popular_content_list&utm_content=homepage

相关文章
Re8:读论文 Hier-SPCNet: A Legal Statute Hierarchy-based Heterogeneous Network for Computing Legal Case
Re8:读论文 Hier-SPCNet: A Legal Statute Hierarchy-based Heterogeneous Network for Computing Legal Case
Re8:读论文 Hier-SPCNet: A Legal Statute Hierarchy-based Heterogeneous Network for Computing Legal Case
Choosing Teams
Choosing Teams
103 0
Choosing Teams
|
SQL 编译器 API
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
这应该是SQL查询编译的一篇经典文章了,作者是著名的Thomas Neumann,主要讲解了TUM的HyPer数据库中对于CodeGen的应用。 在morsel-driven那篇paper 中,介绍了HyPer的整个执行框架,会以task为单位处理一个morsel的数据,而执行的处理逻辑(一个pipeline job)就被编译为一个函数。这篇paper则具体讲如何实现动态编译。
390 0
Efficiently Compiling Efficient Query Plans for Modern Hardware 论文解读
|
CDN
Building an Industry Information Website
Object Storage Server (OSS) is a massive, secure, low-cost and highly reliable distributed storage service offered by Alibaba Cloud.
1539 0
Building an Industry Information Website
|
数据库
When Tech Meets Love – Smarter Ways to NOT be Single
It’s that time of year again. Single’s Day (a.k.a Double 11) is just around the corner, people buying gifts for loved ones.
1593 0
When Tech Meets Love – Smarter Ways to NOT be Single
Basic Concepts of Genetic Data Analysis
Basic Concepts of Genetic Data Analysis
887 0
|
算法
Reading《Practical lessons from predicting clicks on Ads at Facebook》(1)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/80794980 因为在做京东的算法大赛,小白选手,看了一些别人的入门级程序,胡乱改了一通,也没有什么大的进展,而且感觉比赛的问题和点击率预估还是有点像的,所以搜了个论文来读,看看牛人们的思路。
2248 0
|
人工智能 自然语言处理 搜索推荐