
软件工程
元无心
2023年尽量不摆烂
展开
-
随便谈谈粒度、抽象与复用
看到一个很有意思的粒度的定义:granularity = grain + clarity,粒度 = 颗粒 + 清晰。也就是说,粒度越大,代码的“颗粒”越模糊,越接近一个逻辑上的概念;粒度越小,代码的“颗粒”越清晰,越接近具体的实现。我通常认为“颗粒”是一个组件,不过在这里还是用单元这个概念来称呼吧,避免无谓的名词上的争论。事实上,“颗粒”这个概念暗示了它的自治性,每一个单元都应当是独立于其他部分的。同时,“清晰”这个概念暗示的是它的抽象层级,粒度越粗的单元的抽象程度越高。粗粒度的单元往往代表着很高的抽象原创 2021-05-09 17:05:10 · 1076 阅读 · 0 评论 -
简单谈谈XML DOM parser
定义DOM是什么?DOM的全称是Document Object Model,即文档对象模型。可能前端同学对这个会比较熟悉;事实上,HTML中的DOM和XML中的DOM是同一个概念。我们来看看W3C对DOM的定义:“The DOM” is an API for accessing and manipulating documents (in particular, HTML and XML ...原创 2020-04-16 23:18:37 · 3600 阅读 · 0 评论 -
从“罘罟”到服务的抽象性与可复用性
最近在学习面向服务的一些原则,有此随感。早上起来看新闻,看到说烟台的芝罘区发生了什么什么,具体内容我不作过多评论,如果是真的我深表同情,并且希望以后不要再发生这种事了,但是现在没有一个官方的论断,我就暂时秉着不信谣不传谣的原则,看看后续再说。重点当然不是这个新闻,而是烟台的那个区;我不认识这个字。查了一下,这个字念fú,音同“福”,意思是抓兔子的网(当然也有人说是抓野兽的网),后来泛指狩猎...原创 2020-04-11 11:31:16 · 341 阅读 · 0 评论 -
编译原理中first和follow的计算方法
书上的定义和计算公式(以及解释)属于太长不看系列……这里试着用更简单的方式来进行表述。概括下来,计算的时候,first看产生式的左部,follow看产生式的右部。还是用书上的例子好了:E —> TE'E'-> +TE'|εT -> FT'T'-> *FT'|εF -> (E)|id可能会看得不那么清楚。拆开来看好了:E —> TE'E'-&g...原创 2019-12-14 17:40:13 · 5544 阅读 · 5 评论 -
可用性和可靠性的区别
首先,这两个属性都是质量(可维护性)的一部分。按照书上的定义,可靠性(reliability):在规格时间间隔内和规定条件下,系统或部件执行所要求功能的能力。例如:QA1:在客户端与服务器端通信时,如果网络故障,系统不能出现故障。可用性(availability):软件系统在投入使用时可操作和可访问的程度,或能实现其指定系统功能的概率。例如:QA2:系统的可用性要达到98%。实话说...原创 2019-06-15 19:40:24 · 26033 阅读 · 6 评论 -
体系结构设计建议
内容来自《Software Architecture in Practice》,尽量遵守原文,但很多部分采(jia)用(dai)意(si)译(huo)。以下只是建议,而非强制要求;即使没有做到下列建议中的任何一点,也并不代表体系结构设计一定会出现致命失误。但是这些可以作为设计中的参考(或者说警戒线)。过程建议保持概念完整性和技术一致性。这意味着需要加强设计者之间的沟通,或者极端一点,...原创 2019-10-07 09:09:51 · 578 阅读 · 0 评论