首页 > 其他分享 >架构之美第四章-架构与美

架构之美第四章-架构与美

时间:2022-12-05 11:04:21浏览次数:41  
标签:架构设计 架构 简洁性 关注点 之美 考虑 第四章


        人们在生活和工作中发现美并创造美,软件开发和架构设计也不例外。
        架构之美体现了关注点的分离与结合。在软件设计中,设计师需要考虑多方面的关注点。漂亮的架构设计让这些关注点尽可能分离,然后以最简单的机制结合在一起,从而得到高内聚、低耦合的系统。例如在Darkstar项目中,架构师们考虑的重点就是如何将多人在线游戏的游戏逻辑与系统的可伸缩性分离开来,让游戏的开发者只要遵守少量的规则,就能够像编写单机游戏一样编写大规模多人在线游戏。又如REST架构风格,体现了对资源命名、请求处理和资源物理表现形式的关注点分离。资源的名称与请求资源时服务器的处理方式无关,请求者无需知道服务器端采取的技术,并且请求者本来就不关心服务器端的处理技术。资源的物理表示形式可以通过内容协商来决定,使系统可以支持多种物理表示形式,并可以方便地扩展。
       架构之美注重表达的简洁性。“Don’t Repeat Yourself”,好的架构致力于消除各种类型的信息重复。从结构化程序设计中的子程序和函数,到面向对象程序设计中的继承,无不体现了对表达简洁性的特殊偏爱。在敏捷方法学中,消除重复则是重构的主要目的之
一。爱因斯坦说:“让它尽可能简单,但不要过于简单。”我们需要考虑所有必须考虑的关注点,然后用简洁漂亮的架构体现我们的关注。同时,简洁的架构之美也降低了软件的总体成本,从这个意义上说,“简洁性”又可以称为“经济性”。
       架构之美需要解决实际问题,它既是艺术,也是生活。软件像建筑一样,它的美不能脱离它的实用价值。Bjarne Stroustrup说,人类文明运行于软件之上。每一个软件都有自己的架构,这些架构有的很美,有的不太美。从艺术的角度来说,美是创造矛盾并解决矛盾。架构的多关注点和表达简洁性就是一种矛盾,美丽的架构提供了这一矛盾的解决 方法,让我们的内心产生一种愉快的感觉。

        架构之美需要经过专业的学习才能更好地欣赏和创造。和所有的艺术之美一样,不是说不经过专业学习就不能欣赏,但是经过了专业的学习,就能更好地欣赏这种美的种种精妙之处。如果想要创造出这种美,那就必然要经过长期的专业学习。架构之美经过时间打磨。像Facebook面向数据的Web服务、FQL和FML架构,是在对应不同实际需求的过程中逐渐发展起来。在应用程序架构形成的过程中,设计者不断面对新的关注点需求,不断对已有的架构进行修改,并发展出新的架构组件。这就是所谓的“演进式架构”。只有变化是永恒不变的。在架构设计初期,设计者会将一些关注点有意推迟到将来考虑,例如持久和并发。对于这些暂不考虑的关注点,设计者对它们的实现方式尽可能不做任何假定,从而保留更多的可能性,让不同关注点之间的耦合尽可能小。架构之美没有定法。虽然有一些法则可供我们参考,却没有非如此不可的。《金刚经》云:“一切贤圣,皆以无为法而有差别。”

标签:架构设计,架构,简洁性,关注点,之美,考虑,第四章
From: https://blog.51cto.com/u_11295556/5911566

相关文章

  • 大型网站的架构设计问题----大型高并发高负载网站的系统架构
    我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模......
  • Rup架构视图
    RUP中有四种软件视图,这里复习一下,并根据资料整理一下。.软件的质量特性分为功能性需求和非功能性需求。功能需求就是"软件有什么用,软件需要做什么"......
  • 《图解TCP/IP》阅读笔记(第四章 4.4、4.5)
    《图解TCP/IP》4.4路由控制昨儿谈完了IP地址的一部分情况,今天就该聊聊路由控制了。知道了各小区,每家每户的门牌号是怎么定义的,那接下来就要知道如何走到各家各户门前,再......
  • 《图解TCP/IP》阅读笔记(第四章 4.6、4.7)
    第四章4.6IPv6书接上回,之前谈到即使用了无类型域间路由CIDR和可变长子网掩码技术VLSM,IPv4的容量依旧不够用IPv4的地址长度为4个8位字节,32比特,而IPv6的地址长度则是IPv4......
  • 软件架构的23个基本原则
    软件体系架构基于一组适用于各种软件系统的基本原则,有经验的架构师知道这些原则,并且能够在软件产品的正确位置实现特定的原则。下面我们快速浏览一下架构师日常遵循的基本......
  • 《图解TCP/IP》 阅读笔记 (第四章 4.1、4.2、4.3)
    第4章IP协议4.1IP即网络协议网络层主要由IP和ICMP协议组成。本章详谈IP协议。IP协议就相当于OSI七层模型中的第三层,网络层,实现的是点到点通信(要和传输层的端到端通信......
  • 十、MVC三层架构
    什么是MVC:ModelviewController模型,视图,控制器10.1、早些年Servlet和JSP都可以写Java代码,为了维护和使用;Servlet专注于处理请求,以及控制视图跳转,JSP专注于显示数据用......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构SpringBoot概念和依赖管理
    SpringBoot主要特性1、SpringBootStarter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;2、使编码变得简单,Spri......
  • 零基础学python 第四章 序列的应用
    实例1 输出每日一贴importdatetimemot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种的人一定能笑着收获。",......
  • dwc3 linux usb3.0 driver架构
    USB控制器1.DRDdriverDRD驱动在usb/dwc31.1dtsdwc3@44000000{/*CompatibleIDusedbytheLinuxdriverforthiskindofdevice*/compatible="snps,dwc......