《架构之美》阅读笔记06

张晓晨的技术博客 张晓晨的技术博客     2022-08-22     352

关键词:

一、阅读内容
第五部分
第十三章 软件架构:面向对象与面向函数
第十四章 重读经典
二、笔记总结
(1)面向对象与面向函数
函数式编程能够更好的实现模块化设计。在面向对象的编程方式出现之后,我们发现面向对象的程序设计,特别是支持高级例程对象或者代理的现代形式包含了函数式编程,在保留了函数式编程的同时也提供了高层的抽象,更好的支持了扩展和复用。下面具体分析一下这两种软件架构。首先是函数式的编程方法。显然,这样的编程方式的伸缩性不好,对于较大型的项目而言,必然需要将这个项目分在不同的模块中。那么现在的扩展性问题就变成了如何使这样的修改影响到的模块尽可能的少。在模块之外很难对模块的行为进行修改。但是函数式编程依然有着十分重要的优点。第一个是简洁的定义。这和常见的命令式编程语言中的例程声明相比,语法负担要小得多。第二个优点是定义对象的组合子表达式的优雅型。另外两个优点则更显基础性。首先是能让操作成为最能够被高效处理的部分,另一个是延迟计算,能够描述一个可能无限大的计算,当然该计算的任何具体执行过程都将是有限的。面向对象编程的好处就太多了,毕竟这时当前主流的编程思想,相关的介绍已经很多了。比如维护简单。模块化是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。再比如可扩充性。面向对象编程从本质上支持扩充性。如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类。更重要的是代码重用。由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了。事实上,任何一个.NET Framework编程语言的程序员都可以使用.NET Framework类库,.NET Framework类库提供了很多的功能。更令人高兴的是,我们可以通过提供符合需求的类来扩充这些功能。 
(2)关于本书的思考
通过对本书的阅读,我更加认识到了软件开发和建筑物的构造过程有着异曲同工之妙。软件架构重点关注的是软件的整体,如何用一种适合系统功能需求以及非功能需求的结构方式去构建系统中的各个组件以及它们的交互过程。从一开始,软件架构从一开始就关注了整个系统的功能需求和非功能需求,在全局层面上对系统软件进行规划。一个很明显例子,如建造一个新的城市,要考虑城市建造的要求,同时还要考虑到城市与周边和地形的关系,从而决定采用什么样的架构,决定建造一个什么样的城市,如园林式还是其它式的。值得一提的是:一个具体的系统,由于系统很大,还可以划分成很多个小的子系统,那么子系统同样也需要规划的,也即同样要进行架构设计。如上述例子中具体的一个房子,要看它的功能需求是什么,如果一个办公大楼,它的局部设计架构与一个私人住宅肯定是不同的。
 
 

架构之美阅读笔记06

...文件。Emacs有三种基本的对象:帧、窗口、缓冲区。Emacs架构所采用的是在交互应用程序中应用广泛的模型-视图-控制 查看详情

《架构之美》阅读笔记一

...说,怎样来设计软件是一个非常重要的问题,通过阅读《架构之美》这本书,了解到了什么是架构,什么样的架构能够使软件更加的合理。   架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些... 查看详情

架构之美阅读笔记01

   初识架构,什么是架构,架构美在何处?不同领域的设计师对架构的理解大相径庭;软件架构师对一个好的架构的要求诸如对用户友好,响应及时,易维护,没有重大错误,易安装,可靠性高,可通过标准的方式同... 查看详情

《架构之美》阅读笔记01

一、阅读内容第一章架构概述第二章两个系统的故事:现代软件神话二、笔记总结(1)什么是软件架构?其实在好多学科中都用到了“架构”这个词,大都表达了对所创造作品的描述,或者是对创造过程的计划。但是在软件专... 查看详情

《架构之美》阅读笔记四

  今天我阅读了《架构之美》第五章面向资源的架构在web中,这一章讲到现在我们过分强调了软件和服务,而却忽视了数据,现在大多数组织机构更容易在web上找到信息,而不是在他们自己的系统中。web在很大程度上是因为它... 查看详情

《架构之美》阅读笔记02

第二部分(企业级应用架构):      第3章【伸缩性架构设计】:      从本部分开始,本书就开始介绍不同的架构设计。本章介绍的是伸缩型架构设计,使用的是Darkstar项目来举例。Dar... 查看详情

架构之美阅读笔记02

  架构是浪费空间的艺术。需要架构师经过缜密的谋划,精心的布置,才能创造出美的艺术。通过阅读本章中对两个“软件城市”的描述,加深了对架构重要性的认识,了解了一些如何构建出美的构架的方法。  经... 查看详情

架构之美阅读笔记之五

...         今天我学习的是架构之美的第五章——面向资源的架构:在web中。这一章,作者讲述说明了,企业中聚焦信息的架构展示了雨web一样的特点:伸缩性,弹性,架构歉意策略,信息驱动和访... 查看详情

架构之美阅读笔记之三

      今天我学习的是架构之美的第三章——伸缩性架构设计。这一张也是涉及到了第二部分,企业级用用架构。首先我们要引出,伸缩性架构设计,也就是为什么要伸缩性的架构。主要原因是,我们在设计... 查看详情

《架构之美》(阅读笔记1)

架构真的很美!!!什么是架构?浅薄理解,它组件与组件的关系,架构师将其表述出来.深层理解,它由一组结构组成,这些结构的设计目的是让架构师,利益相关者看到他们的关注点是如何得到满足的。美丽架构的核心在于概念完整... 查看详情

《架构之美》阅读笔记二

   架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些细节。软件系统的架构包括行为上的和结构上的。外部行为描述展示了软件如何与用户、其他设备和外部设备进行交互,也就是需求。结构... 查看详情

《架构之美》阅读笔记05

...势第十二章当集市开始构建教堂二、笔记总结(1)Emacs的架构Emacs架构采用的是在交互式应用程序中应用广泛的模型-视图-控制器模式。在这个模式中,模型是程序所操作数据的底层描述,视图则是向用户展示数据的方法,而控... 查看详情

《架构之美》阅读笔记五

   一个好的架构的形成不仅是架构师的功劳,还有团队的集体合作,主要因素:确实进行有意为之的前端设计;设计者有很好的素质和经验;在开发过程中,保持清晰的设计观点;授权团队负责软件的整体设计;不要... 查看详情

架构之美阅读笔记六

   一个好的架构的形成不仅是架构师的功劳,还有团队的集体合作,主要因素:确实进行有意为之的前端设计;设计者有很好的素质和经验;在开发过程中,保持清晰的设计观点;授权团队负责软件的整体设计;不要害怕... 查看详情

架构之美阅读笔记四

...就确定了问题空间。接下来我们要了解事实,重要问题和架构的关注点。确定工作流也是一个极为重要的步骤,来自于我们对于如何划分系统的考虑。  系统架构常见的关注点有,功能性:产品向特的用户提供哪些功能?可变... 查看详情

架构之美阅读笔记五

...二章展示了冲刺和统计评审这样的社区过程如何帮助软件架构从简单的骨架演变为美丽的系统。  第十一章为我们展示了GNUEmacs的故事:滋长的特性是其优势。首先我认识到了Emacs是什么。它和我们经常使用的其他文本编辑器... 查看详情

假期阅读笔记八

架构之美——系统架构(二)     时间很快,转眼假期过去了一半,理所当然《架构之美》也已经阅读了一半。直到今天,我才明白“不积跬步,无以至千里;不积小流,无以成江海!”的真正内涵,只要每天... 查看详情

《构建之法》阅读笔记02

                       《架构之美》阅读笔记02  今天,我读了《架构之美》第三、四章,第三章主要讲伸缩性架构设计,书中说设计系 查看详情