首页 > 代码库 > 寒假阅读笔记十一
寒假阅读笔记十一
架构之美——最终用户应用架构(一)
如果现在让你去找工作,你觉得你有什么优势吗?对于“优势”这个词汇,想必大家都不陌生,可是低下头来想一想,竟然发现我们什么优势都没有,该如何面对未来的就业的竞争压力呢?今天,我阅读的是《架构之美》的第十一章,题目为GNU Emacs:滋长的特性是其优势。看到这个,我只想说,只要我们肯坚持不懈的努力学习,那么这就是我们的优势。
首先,先介绍一下GNU Emacs,GNU Emacs 是自由软件协会的旗舰产品,也是自由软件之父 Richard Stallman博士的得意之作。自十几年前问世以来,其基本体系架构一直保持稳定,人们在这个基础架构之上不断添砖加瓦,逐渐将 GNU Emacs 构建成一个壮观的软件系统。用户越来越多,功能越来越强,又没有专有软件开发所特有的集中的管理,GNU Emacs的基本体系却能长期保持稳定不变,这在信奉“唯一不变的就是变化本身”的十倍速时代,几乎可以说是一个传奇。
Emacs是一种功能超强的文字处理程序,是用Lisp语言编写的,是唯一的一种优美的计算机编程语言。其实,Emacs很庞大,而且只能编辑纯ASCII的文本文件,也就是说,没有字体、不能加粗、无法添加下划线……Emacs架构所采用的是在交互式应用程序中应用广泛的的模型-视图-控制器模式,在该模式中,模式是程序所操作数据的底层描述;视图则是向用户展示数据的方法;而控制器则负责实现用户与视图的交互(按键、点击鼠标、选择菜单项等),并对模式进行相应的更新。Emacs是用来编辑文本文件的,因此Emacs的模型中最为核心的是用来保存文本信息的缓存区。缓存区就是简单的字符串,在每一行的行末是新行字符;它并不是一个行的列表,也不是像Web浏览器展示HTML文档时使用的文档对象模型那样的节点树。Emacs Lisp对于缓存区的基本操作包括添加、删除文本,以字符串的形式析取缓存区中文本的一部分,通过精确的字符串或正则表达式来搜索匹配的字符串等。缓冲区能够保存各种字符集中的字符,包括亚洲、欧洲可能使用到的一些字符。每个缓冲区都有一种模式,它用来指定针对特定类型文本进行编辑时的缓冲区行为。Emacs中提供了针对C语言程序、XML文本等大量类型的模式。在Lisp等级,模式将使用缓冲区局部键绑定来为用户提供特定于某种模式的命令,然后使用缓冲区的局部变量来维护缓冲区状态。通过它们的组合,这些功能使缓冲区的模式与对象的类十分类似:模式用来确定哪些命令是可用的,并根据这些命令所依赖的Lisp实现来提供相应的变量。
本文开篇也说了,现在的我们就是一群小菜鸟,什么优势都没有,但是我要送给那些像我一样正在努力的人一句话:感觉累的时候,也许是因为你正处于人生的上坡路,坚持走下去就会到达人生的另一个高度!
寒假阅读笔记十一