架构之美随笔四------最终用户应用架构

  这一部分内容作者分为了两个部分来进行描述,通过对GNU Emacs滋长的特性分析以及KDE社区是如何发展ThreadWeaver和Akonadi项目和他们的形成来让我们领略到最终用户应用架构的内涵。

  第十一章 GNU Emacs:滋长的特性是其优势

  Emacs是由Richard Stallman用Lisp语言编写的唯一的一种优美的计算机编程语言。它很庞大,而且只能编辑纯ASCII的文本文件,也就是说,没有字体、不能加粗、无法加下划线等......Emacs对许多广泛接受的、有用的、有价值的软件工程原则都不屑一顾。其代码已经有24年的历史了,体系庞大,是由成百上千的不同开发人员共同完成的。然而它的工作得很好。其功能不断地成长;用户界面中不断增加了许多令人着迷的新行为;而且整个项目有效避免了对基础架构的大幅修改、频繁的交互、领导者的冲突和分歧。

  Emacs架构所采用的是在交互式应用中应用广泛的模型-视图-控制器模式。在该模式中,模型是程序所操作数据的底层描述;视图则向用户展示数据的方法;而控制器则负责实现用户与视图的交互,并对模型进行相应的更新。

  模型:缓冲区  Emacs是用来编辑文本文件的,因此Emacs的模型中最为核心的是用来保存文本信息的缓冲区。缓冲区就是简单的字符串,在每一行的行末是新行字符;它并不是一个行的列表,也不是像Web浏览器展示HTML文档时使用的文档对象模型那样的节点树。Emacs Lisp对于缓冲区的基本操作包括添加、删除文本,以字符串的形式析取缓冲区中文本的一部分,通过精确地字符串或正则表达式来搜索匹配的字符串等。

  视图:Emacs重绘引擎  当用户编辑文本信息、在窗口上操作时,Emacs的重绘引擎将确保显示信息做出相应的更新。Emacs重绘引擎有两个重要的特征:Emacs将自动更新显示;Emacs仅当等待用户输入时更新显示。

  控制器:Emacs Lisp  Emacs的核心是用自己独立的Lisp语言变体开发的。在Emacs实现的模型-视图-控制器模式中,Lisp代码扮演的是控制器的角色:你调用的所有命令,不管是通过键盘、菜单还是名称,几乎都是一个Lisp功能模块。

  第十二章 当集市开始构建教堂

  本章作者着力于对KDE项目的剖析来向我们介绍。KDE项目作为当今世界上最大的几个自由软件成果之一。其贡献者来自很多不同的人群。

  Akonadi:针对KDE4.0的个人信息管理基础设施层

  Akonadi的一个核心观念是为系统中所有的PIM数据和相关的元数据建立一个集中的缓存。然而老框架假定对后端存储的访问通常是在线式的,而Akonadi引用了本地副本机制,这样当需要向用户显示数据时能够马上提供,例如它可以保留许多可能已经获得的数据,以便避免不必要的重新下载。Akonadi中还有一个基础性的视角,它在其第一次迭代的设计中就已经存在,那就是用来访问特定类型存储后端的组件将以单独的进程运行。

  ThreadWeaver:一个用于高级并发管理的小型程序库

  ThreadWeaver现在是KDE4.0中的一二核心程序库。ThreadWeaver是一个并发作业调度程序。其目标是在多线程软件系统中管理和分配资源的使用。其第二目标是为应用程序开发人员提供一个实现并行机制的工具。

  

  

时间: 2024-10-07 05:28:35

架构之美随笔四------最终用户应用架构的相关文章

架构之美随笔一------论架构

翻开这本书之前对架构的理解是很模糊的,之前总是听老师再说架构什么的自己其实一直都不理解何为架构.在书本的开头作者就明确的告诉我们架构是什么?架构是架构师洞见一个待开发系统的内在的结构.规律.原则和逻辑的过程,而不是一个已经完整显示出来的,可以画出图纸的结果.优秀的架构师可以将自己放在系统中去的,在清晰地理解了系统之后,简洁地描述出构建好的体统架构.当架构师拿出他所描述的"作品"的时候,事实上架构这一过程就已经结束了. 好的系统架构展示了架构完整性.也就是说,它来自于一组设计规则,这组规

架构之美读后感

<架构之美>读后感 唐凯风 2014301500366 架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些细节.软件系统的架构包括行为上的和结构上的.外部行为描述展示了软件如何与用户.其他设备和外部设备进行交互,也就是需求.结构描述展示了软件如何被划分为多个部分,以及这些部分的关系. 架构的设计受到许多因素的制约,架构是好是坏并没有统一的标准.这取决于人们对软件的需求.软件被构建和运行的环境,以及软件团队本身的特点等等因素.评价软件好坏有很多指标,例如性能.安全.可伸展性等等.

架构之美阅读笔记之三

今天我学习的是架构之美的第三章--伸缩性架构设计.这一张也是涉及到了第二部分,企业级用用架构.首先我们要引出,伸缩性架构设计,也就是为什么要伸缩性的架构.主要原因是,我们在设计系统架构Ⅹ,要确保系统在伸缩时的弹性.为了适应使用软件架构的不同应用程序,使用该架构的程序员等,软件系统架构必须要具有伸缩性. 要是系统架构是伸缩性的,则系统应该是分布式的,并发的.就像书中讲到的Darkstar项目,由于在线人数,不同时间等的影响,游戏的负载情况也会不同,服务器的数量,连接方式,为了应对这些不同的情况,也

《架构之美》阅读笔记四

今天我阅读了<架构之美>第五章面向资源的架构在web中,这一章讲到现在我们过分强调了软件和服务,而却忽视了数据,现在大多数组织机构更容易在web上找到信息,而不是在他们自己的系统中.web在很大程度上是因为它增大了信息共享的可能性,同时也降低了门槛. 面向资源的架构的标识是向命名的资源发起逻辑请求的过程.这种请求由某种引擎解释,转成该资源的物理表现形式,面向资源的架构方法很优雅的实现了一些折中,一方面,对于传统的方法来说,这些方法可能看起来有些奇怪,而且没有尝试过.另一方面,它代表了人们设想和

《架构之美》阅读笔记02

第二部分(企业级应用架构):        第3章[伸缩性架构设计]:        从本部分开始,本书就开始介绍不同的架构设计.本章介绍的是伸缩型架构设计,使用的是Darkstar项目来举例.Darkstar是一个游戏虚拟项目,根据本类通常的实际情况,数据服务器通常需要拥有伸缩性,由于人数.时间.热度等多方面的影响,游戏的负载会实时变化,游戏的服务器的数量.连接方式也就需要根据此来变化,以应对不同的需要.游戏的性能最本质的原因来自于架构及其实现,优化整体架构是实现高性能不可获取的关键步骤.通过

搭建LMAP架构之 PHP 配置(最终篇)

搭建LMAP架构之 PHP 配置(最终篇) [TOC] 文章目录 一.PHP简介 二.安装前的准备工作 三.PHP的手工编译安装 四.论坛的安装过程 一.PHP简介 PHP,用于解释动态网页文件,提供 Web 应用程序的开发和运行环境. PHP 是一种被广泛应用的开放源代码的多用途脚本语言,可嵌入到 HTML 中,适用于 Web 应用开发 PHP拥有更好的网页执行速度.支持绝大多数流行的数据库及多种操作系统. 二.安装前的准备工作 本次安装PHP是为了搭建LAMP架构,实现自创网页论坛. 在安装

架构之美阅读笔记01

初识架构,什么是架构,架构美在何处?不同领域的设计师对架构的理解大相径庭:软件架构师对一个好的架构的要求诸如对用户友好,响应及时,易维护,没有重大错误,易安装,可靠性高,可通过标准的方式同其他系统通信等等特点.通过进一步深入了解,更加深了对架构和架构之美的了解. "建造的艺术或科学,特别是设计和建造人类使用的建筑时的艺术或实践,同时考虑到美学因素和实用因素."架构是提供一种特定的方式来解决共同的问题,这种方式具有实用性和美学性:架构是美观.坚固.实用三个方面的平衡配合.好的系统架构展示

《架构之美》阅读笔记一

对于我们学习软件工程的学生来说,怎样来设计软件是一个非常重要的问题,通过阅读<架构之美>这本书,了解到了什么是架构,什么样的架构能够使软件更加的合理. 架构是系统设计的一部分,它突出了某些细节,并通过抽象省略掉了另一些细节.软件系统的架构包括行为上的和结构上的.外部行为描述展示了软件如何与用户.其他设备和外部设备进行交互,也就是需求.结构描述展示了软件如何被划分为多个部分,以及这些部分的关系. 在大多数人的谈论中,架构是一个目标产物,而作为架构师的责任就是去生产它.所以无论如何,架构是可以&q

架构之美01

架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计.本书围绕5个主题领域来组织本书的内容:概述.企业应用.系统.最终用户应用和编程语言.本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能.可靠.易用.高效率.可维护.可移植和优雅.     第一章:"架构"这一名词被广泛应用于多种学科.对于计算机学科而言,架构有所不同,它并不像是建筑学和音乐等学科,它有其独特的特性与含义.软件架构其实是一个行为上和结构上设计的过程