博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
架构之美随笔四------最终用户应用架构
阅读量:5133 次
发布时间:2019-06-13

本文共 1442 字,大约阅读时间需要 4 分钟。

  这一部分内容作者分为了两个部分来进行描述,通过对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是一个并发作业调度程序。其目标是在多线程软件系统中管理和分配资源的使用。其第二目标是为应用程序开发人员提供一个实现并行机制的工具。

  

  

转载于:https://www.cnblogs.com/Againzg/p/6397229.html

你可能感兴趣的文章
基于Jquery的图片自动分组且自适应页面的缩略图展示特效
查看>>
java操作properties文件
查看>>
20130401学习笔记
查看>>
Noip2018游记
查看>>
【转载】深入理解Java内存模型——final
查看>>
HDU 3694 Fermat Point in Quadrangle (计算几何- 四边形的费马点)
查看>>
关于foreach
查看>>
nodejs的req取参req.body,req.params,req.query
查看>>
《BUG创造队》作业9:【Beta】冲刺 Scrum meeting 1
查看>>
Opencv3 Robert算子 Sobel算子 拉普拉斯算子 自定义卷积核——实现渐进模糊
查看>>
有关宏定义一题
查看>>
JDK/JRE/JVM之间的关系
查看>>
旋转矩阵、旋转向量(轴角)、四元数、欧拉角之间相互转换的代码实现(利用Eigen实现)...
查看>>
ios应用提交审核出现的问题总结
查看>>
android知识杂记(一)
查看>>
从头推导与实现 BP 网络
查看>>
周末计划-20171028
查看>>
mysql查询语句出现sending data耗时解决
查看>>
form表单
查看>>
Centos修改默认网卡名
查看>>