系统内部的层
所谓“层”、“界”、“域”、“集合”,这些词其实是在试图表达物质系统的组成结构和运动景象中的规矩,这些不同人发明的词都是来源于对同一个规律的观察、发现、表达。不管别人是怎么想象的软件系统中的层,在开源矿工系统中值得显式提出的有这么几层:数据模式层、数据集合层、对象层。
数据模式层
源码中的NTMinerDataSchemas程序集中的就是数据模式。所谓数据模式,它是对数据结构的描述;所谓数据结构,它是一种空间结构体;所谓空间结构体,它是一段树枝,树枝的枝杈相对位置和长短中承载着系统信息。这里取名数据模式(DataSchema)暗含了“关系”概念,数据模式层中的数据模式由基本数据类型组成;所谓基本数据类型,是计算机运行时的数据模式。NTMinerDataSchema层中的每一个数据模式都由基本数据模式组成,不存在由非基本数据模式组成的数据模式,也可以这么讲:如果一个数据模式引用了另一个数据模式,那么它引用另一个数据模式类型的数据的方式一定是通过持有另一个数据模式类型的数据记录的标识表达的,而标识是基本数据模式类型。
数据集合层
数据模式是数据的规格,相同规格的数据组成的集合就是数据集合。数据集合层中是由不同模式的数据组成的一个个不同类型的数据集合。这一层在源码中的命名形如***Set,比如ICoinSet。
对象层
如果说数据模式层和数据集合层是靠近计算机的层,那么对象层就是靠近人的层。对象和数据的主要不同是对象在数据的基础上增加了行为和充血了关系。充血了关系是什么意思?在对数据模式层的表述中我们知道数据模式都是由基本类型组成的,一种模式引用另一种模式类型的数据的方式是通过持有基本类型的数据标识表达的,充血的意思是对象在数据的基础上增加了非基本类型的属性,增加的这些非基本类型的属性值通常来自于基于持有的数据的标识从对应类型的数据集合中查找得到。之所以说对象层是靠近人的层是因为人看到的东西(界面)就是这层对象的直接的图形化表达(计算机的世界本来就是图形化的,用图形表达计算机世界是非常直接的,相反像linux那样的用字符串表达计算机的世界才是拐弯抹角的因此有人说linux的哲学一开始就是错的不可能取得像windows那样的面向人民大众的成功)。这一层在代码中的命名形如***ViewModel,比如CoinViewModel。
层与层的关系
不知道别人是怎么想象层的形状的,在我的脑子里层是球形的一层裹一层的集合的包含和被包含关系。越靠近内层越靠近计算机,越靠近外层越靠近人,计算机站在内向外看内层包含外层,人站在外向内看外层包含内层。
开源矿工:https://ntminer.com
原文地址:https://www.cnblogs.com/ntminer/p/12235766.html