`
BradyZhu
  • 浏览: 260407 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

架构的焦点

 
阅读更多

作者:mindwind


"架构从来不是一次性的工作“


------------------------

在真正把一个需求、一种想法变成代码之前,有一个过程称之为设计。
一些经验丰富的程序员执行这个设计过程,我们称其为架构,与之对应的程序员身份也就成了架构师。


架构始于需求过程之后,描述系统的抽象构成,在系统抽象构成与现实的物理技术世界之间建立映射。
建立映射的过程其实就是我们常经历的技术选型过程。
在我过去经历的大部分 java web 项目中,技术选型基本就是框架的选择,大部分项目都使用了一些主流的开源框架来实现。
java 中各种开源通用框架的成熟度和使用广泛度都很高,看上去让选择变的简单,架构的技术选型变得更容易了。
其实不然,正是因为各种流行框架的通用和功能覆盖广,选择仅仅是被后移了,焦点不在用什么而是怎么用。


技术选型的落地,才是后续物理设计的开始。
物理设计从结构开始,包括三个方面:模块结构、数据结构、代码结构。
模块结构是为分治与协作而设计。
模块首先表达了系统抽象构成,一个系统如果整体过于复杂,就通过模块划分来达到分治。
复杂的系统将被拆分为边界清晰的模块,单一模块的复杂度将控制在可接受的范围内。
不同的模块可以分由不同的团队成员来完成,只需界定好模块之间的交互关系。


Linus Torvalds 说:“好程序员关心数据结构”。
数据结构是为功能实现而设计,这看起来像是开发过程层面才应考虑的事情?
其实不然,数据结构直接影响代码实现,好的数据结构产生更少更好的代码。
如果不在架构过程去考虑,而推后到开发过程,必然失去全局性和整体性。


代码结构是为维护和演进而设计。
不关心代码设计的架构,很容易成为空中楼阁。
过去经历的很多项目,架构的工作只做到模块层面,但真正的系统实现出来都与架构的愿景相去甚远。
架构文档上清晰的模块边界,交互过程,反应到代码上都变成了一团乱麻,剪不断理还乱。


软件系统不会随着时间推移而耗损腐坏,它只会因为变化而腐坏。
一开始清晰整洁的架构和实现随着需求的变化而不断变得浑浊、混乱。
借用一个物理学的术语“熵”,它表达体系的混乱程度,那么软件系统的熵总是随着每次变化而变得更高。
模块清晰、结构良好、代码整洁无不是为控制“熵”这一目标,需求变化带来的变动总是带来软件系统“熵”值的增长。
软件系统熵有个临界值,当达到并超过临界值后,软件系统的生命也基本到头了。
这时我们爱采取的一个行动就是干脆推倒重来吧,重写一个新的吧。

下图示例了软件系统熵值的生命周期变化。


架构始于系统生命之初,并伴随系统生命周期全程。
每次需求变化带来的变动都应进行一次或大或小的重新架构过程。
架构的焦点在于控制软件系统变动时熵值的变化。
架构的本质让我想起一句软件开发箴言:“少写代码”。
更少的代码,更少的熵。

分享到:
评论

相关推荐

    2014中国系统架构师大会ppt_part1

    重点关注云架构实践与解析、大数据架构及应用和这些技术场景下的自动化运维等焦点话题 2. 软件定义IT基础架构:IT基础架构优化的最新定义 邀请资深专家分享架构设计与优化方面的实践经验,包括软件定义IT、高性能高...

    架构创新或将成为FPGA业竞争焦点.pdf

    最近,FPGA行业的竞争焦点逐渐转移到了产品架构的创新上。 首先,Altera公司在今年6月初宣布了其第10代FPGA和SoC产品的推出,产品采用Intel的14nm Tri-gate工艺,并且采用了全新的增强型高性能体系架构。这种架构的...

    架构师特刊2019合辑.zip

    每一期的特刊都有其独特的焦点,例如《架构师特刊2019.11.pdf》可能关注的是11月的行业热点,如双十一购物节期间的大型电商平台架构优化,或者是在物联网(IoT)领域的架构设计。而《架构师特刊2019.2.pdf》则可能回顾...

    架构PPT架构PPT

    在这个特定的【架构PPT】中,我们关注的焦点是与【架构和业务.docx】相关的知识点。 首先,架构设计是软件开发过程中的关键步骤,它涉及到如何将业务需求转化为技术解决方案。在【架构和业务.docx】文档中,可能会...

    AWS-良好的架构设计-上

    AWS作为全球领先的云服务提供商,其良好的架构设计一直是业界关注和讨论的焦点。通过AWS re:Invent 2017的分享,AWS提出了一套针对良好架构的框架,该框架强调五个支柱:卓越操作、安全性、可靠性、性能效率、成本...

    信息架构 超越Web设计(第4版).pdf

    焦点小组 271 用户研究会议 272 访谈 272 卡片分类法 273 用户测试 277 研究的保卫战 278 克服研究阻力 279 本章回顾 280 第12章策略 283 什么是信息架构策略? 284 遭到抨击的策略 285 从研究到策略 287 策略的开发...

    微信后台微服务架构及存储架构设计.pdf

    微信作为中国最为流行的社交软件,其后台架构设计一直是业界关注的焦点。从文件内容来看,我们可以了解到微信后台微服务架构及存储架构设计的关键技术和概念,下面将围绕这些知识点进行详细介绍。 1. 微信发展技术...

    infoq 架构师杂志电子版

    7. **性能优化**:如何通过架构设计提升系统的响应速度、并发处理能力以及资源利用率,是架构师必须关注的焦点。 8. **持续集成/持续部署(CI/CD)**:随着DevOps文化的普及,CI/CD流程在软件开发中的重要性日益凸显...

    qt键盘映射和焦点移动

    在Qt编程中,键盘映射和焦点移动是两个重要的概念,尤其在创建用户界面(UI)应用程序时。本文将深入探讨这两个主题,并结合ARM Linux环境和事件过滤器进行阐述。 首先,让我们理解“qt键盘映射”。在Qt框架中,...

    信息架构:超越Web设计(第4版)(全彩).[美]Louis Rosenfeld(带详细书签) PDF 下载 高清 完整版

    《信息架构:超越Web设计(第4版)(全彩)》 的前三个版本都是信息架构领域的开山著作。其中描述了信息组织的普遍和永恒原则,这一原则也适用于不断增长的移动世界。在第4版中,作者运用大量最新的插图和例子为这些...

    Linux云计算架构师完美教材

    而Jenkins自动化部署平台的介绍,则是将焦点放在了Web应用的自动化部署和持续集成上。 此外,本书还提到了容器化和虚拟化技术,如Docker和LXC,这些技术在现代云服务中越来越重要。容器化技术提供了一种新的方式来...

    INFOQ 架构师期刊

    - **技术焦点**: - Spring框架和Cloud Foundry作为热门技术,被重点介绍。 - 商业应用程序、跨设备互联网应用、云计算架构和高性能基础平台的开发成为讨论的重点。 #### 五、新品和技术动态 - **技术趋势**:...

    商业智能解决方案架构

    如今,商业智能(BI)的焦点已扩展到处理来自多种来源的复杂数据,以支持对更复杂问题的即时响应。这不仅包括数据分析,也涉及数据探索,可能产生新的洞察或引发更多的问题。 本文深入探讨了最新的工具和方法,帮助...

    架构师大会

    支付宝作为全球领先的支付平台,其高可用架构是业界关注的焦点。胡喜的演讲可能深入解析了支付宝如何构建能够承受大规模并发访问、保障交易安全的系统架构。这可能包括分布式系统的设计、故障恢复策略、数据一致性...

    探境科技存储优先(SFA)架构全球首款AI芯片通用型架构.pdf

    为了更好地适应AI计算的特性,有必要重新设计芯片架构,特别是在特定应用场景下,针对领域通用AI芯片的开发成为业界关注的焦点。 4. 探境科技提出的SFA架构能够在特定领域实现颠覆式的性能提升和功耗下降。这意味着...

    高可用架构 (第1卷).part2

    各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。...

Global site tag (gtag.js) - Google Analytics