《架构之美》阅读笔记一

    之所以阅读《架构之美》这本书作为阅读的课外读物,原因是为我在专业道路上制定一个小的目标——软件架构师。在初次接触软件架构之后,我并不懂软件架构是干嘛的,以为不都是编程吗,有什么不同之处,但是在后来的慢慢学习中我改变了自己的观点,架构有着很大的作用,架构有着它的美之处。

    在书中我并没有特别关注到架构定义或者是如何创建架构之类的话,特别吸引我眼球的是书中问到的一句话:软件架构的设计关注的是什么?答案不是系统的功能,软件架构师首要关注的不是系统的功能,而是关注系统需要满足的品质,品质的关注点指明了功能必须以何种方式交付,才能被系统的利益相关者接受,其中典型的利益相关者和关注点如下:

    投资人:想了解项目是否能够在给定的资源和进度下圆满完成;

    架构师、开发和测试人员:首考虑的是最初的构建和以后的维护与演进;

    项目经理:组织团队,指定开发计划;

    市场人员:他们想通过品质特点实现与竞争者的差异化;

    用户:最终用户,系统的管理员,安装、部署、准备和配置的人员;

    技术支持人员:关注的是帮助平台电话呼入的数目和复杂性。

   那系统的品质又有那些呢?其实就是我们通常所说的性能、安全、可伸缩性等都会被定义的很好,而诸如可变性,可维护性,可用性等并没有详细规定,架构师在这方面应该更要加深理解,以更好的满足品质的期望。

   所以架构师的第一项任务就是和利益相关协作,理解这些品质的关注点和约束,并为他们排列优先级。

   具体的系统还会有其他的关注点:

      功能性:产品向它的用户提供哪些功能?

      可变性:软件将来可能需要哪些改变?

  性能:产品将达到怎样的性能?

  容量:多少用户可以并发使用该系统?该系统将为用户保存多少数据?

  生态系统:在不是的生态环境中,该系统将于其他系统进行哪些交互?

  模块化:如何将编写软件的任务分解为工作指派?特别是这些模块可以独立的开发,并能准确而容易的满足彼此的需要。

  可构建性:如何将软件构建成一组组件,并能够独立实现和验证这些组件?哪些组件应该复用?

  产品化:如果产品将以集中变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发等等。

      书中介绍了什么样的的架构才算是美丽的架构,美丽的架构在开始时,要关注其实用性,好的架构应该是每天被很多人使用的;使用架构之前,我们还要考虑它必须要能够被构建(可构建性);接下来就是关注架构的可持久性,好的架构应该能够经得起时间的考验,能够考虑到未来的变更,允许期望的修改;最后,要寻找一些能让人高兴的架构(开发人员、测试人员、用户等),这就要求架构必须满足概念完整性,这样的架构才易懂,易用,才会做到简单而又不过于简单。

转载于:https://www.cnblogs.com/wanggang-java/p/6361069.html

部分 论架构 第1章 架构概述  13 1.1 简介  13 1.2 创建软件架构  19 1.3 架构结构  23 1.4 好的架构  27 1.5 丽的架构  28 致谢  30 参考文献  31 第2章 两个系统的故事:现代软件神话  33 2.1 混乱大都市  34 2.2 设计之城  40 2.3 说明什么问题  47 2.4 轮到你了  48 参考文献  48 第二部分 企业级应用架构 第3章 伸缩性架构设计  51 3.1 简介  51 3.2 背景  52 3.3 架构  56 3.4 关于架构的思考  61 第4章 记忆留存  67 4.1 功能和约束  68 4.2 工作流 69 4.3 架构关注点  70 4.4 用户反应  90 4.5 结论  90 参考文献  90 第5章 面向资源的架构:在Web中  91 5.1 简介  91 5.2 传统的Web服务  92 5.3 Web  94 5.4 面向资源的架构  99 5.5 数据驱动的应用  102 5.6 应用面向资源的架构  103 5.7 结论  108 第6章 数据增长:Facebook平台的架构  109 6.1 简介  109 6.2 创建个社会关系Web服务  114 6.3 创建社会关系数据查询服务  121 6.4 创建个社会关系Web门户:FBML  129 6.5 系统的支持功能  142 6.6 总结  147 第三部分 系统架构 第7章 Xen和虚拟化之  151 7.1 简介  151 7.2 Xenoservers  152 7.3 虚拟化的挑战  154 7.4 半虚拟化  155 7.5 Xen的变换形式  158 7.6 改变的硬件,改变的Xen  163 7.7 经验教训  165 7.8 延伸阅读  166 第8章 Guardian:个容错操作系统环境  169 8.1 Tandem/16,将来所有的计算机都会像这样构建 170 8.2 硬件  170 8.3 物理布局  172 8.4 处理器架构  172 8.5 处理器间总线  178 8.6 输入/输出  178 8.7 进程结构  179 8.8 消息系统  179 8.9 文件系统  183 8.10 轶闻趣事  188 8.11 弊端  189 8.12 后继者  190 8.13 延伸阅读  191 第9章 JPC:个纯Java的x86 PC模拟程序  193 9.1 简介  193 9.2 概念验证  195 9.3 PC架构  198 9.4 Java性能技巧  199 9.5 把4GB放入4GB:这不起作用  200 9.6 保护模式的危险  203 9.7 从事项毫无成功希望的斗争  206 9.8 劫持JVM  210 9.9 终极灵活性  220 9.10 终极安全性  222 9.11 第二次做会更好  223 第10章 元循环虚拟机的力量:Jikes RVM  225 10.1 背景  225 10.2 与运行时环境相关的传言  227 10.3 Jikes RVM简史  229 10.4 个自足执行的运行时自举  230 10.5 运行时组件  234 10.6 经验教训  246 参考文献  247 第四部分 最终用户应用架构 第11章 GNU Emacs:滋长的特性是其优势  251 11.1 使用中的Emacs  252 11.2 Emacs的架构  254 11.3 滋长的特性  260 11.4 另外两个架构  262 第12章 当集市开始构建教堂  267 12.1 简介  267 12.2 KDE项目的历史和组织结构  269 12.3 Akonadi  274 12.4 ThreadWeaver  289 第五部分 语言与架构 第13章 软件架构:面向对象与面向函数  299 13.1 概述  299 13.2 函数式示例  302 13.3 函数式解决方案的模块性评价  305 13.4 面向对象视图  313 13.5 面向对象模块性的评价和改进  319 13.6 代理:将操作封装到对象中  323 致谢 328 参考文献 328 第14章 重读经典  331 14.1 所有东西都是对象  335 14.2 类型是隐式定义的  342 14.3 问题  348 14.4 砖块和灰浆建筑架构  352 参考资料  359 跋 漂亮地构建 363
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值