)
DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集分析模式注解和实现01澄清模式用语Part1分析模式注解和实现02需求模式书籍**********模式≠设计模式和 C-分析 相关的模式书名Data Model Patterns: Conventions of Thought作者David C. Hay出版时间1996中译本书名无此书出版比Martin Fowler的“Analysis Patterns”更早一些在“Analysis Patterns”中也提到此书。和“Analysis Patterns”相比此书涉及的领域更实用在讲述类似的模式时此书中的模型更详细。不过Martin Fowler在某个擅长营销的网红圈子中David C. Hay则没有。此书知名度明显不如“Analysis Patterns”。从上图可以看出把组织organization和人person进一步泛化为Party的做法在Data Model Patterns里面已经有了不是Fowler引入的。当然这也不是Hay创造的只是如实引入法律领域的术语。书名Analysis Patterns: Reusable Object Models作者Martin Fowler出版时间1997中译本书名分析模式可复用的对象模型和《设计模式》一样这本书的名字是讨巧的。很容易让人误解成分析模式 等于 Fowler书中的模式或者误解成Fowler书中的模式是最典型或最基础的分析模式——这些都不对。书名讨巧是小问题只要没有被胡乱吹捧就好。Fowler书中的模式是基于他所经历的项目提炼出来的涉及领域有人和组织、医疗卫生、会计和金融。即使在他所涉及的领域所归纳的模式也没有首先覆盖该领域最常见的概念。例如要围绕一名患者归纳一些模式有比书中的“观察和测量”更值得关注的内容。当然这也说明Fowler没有乱编他就是根据自己做咨询的项目所涉及的内容归纳出来的。Hay的Data Model Patterns的第8章叫The Laboratory实验室里面也有观察和测量感兴趣的读者可以找来对比一下在医疗卫生领域Silverston和Zachman的The Data Model Resource Book: Vol. 2的第4章更全面我们看中译本的截图更全面的医疗卫生模型可以参考HL7标准的UML模型。相对其他几本书Fowler这本书的优点是使用了对象建模方法并做了一些比较深入的建模思考。以下是扩展在宣传2020中译本的时候某个圈子的人胡乱吹捧本质上是对Martin Fowler的抹黑。下面的截图摘自2020中译本的一篇书评是由出版社官方账号推出的可以看作“官方书评”了。书评说Party是Fowler引入的绝了这个问题上文谈到Hay的Data Model Patterns时已说过。我对ABAC了解不多因此只针对“RBAC不就是岗位模式吗”做评点1Fowler书中的“岗位模式”内容只有1页书评说“不就是岗位模式吗”似乎在说RBAC可以被Fowler书中的“岗位模式”所概括而且还隐隐暗示读者RBAC有可能参考了Fowler书中的“岗位模式”。事实上Fowler书中的“岗位模式”只有1页含1张简单的图内容也不高深。下面的截图就是完整内容2RBAC比Fowler的书早Role-Based Access Controls的论文发表于1992年全文共11页两位作者Ferraiolo和Kuhn都是NIST美国国家标准与技术研究院的研究人员。论文可在NIST官网下载https://csrc.nist.gov/files/pubs/conference/1992/10/13/rolebased-access-controls/final/docs/ferraiolo-kuhn-92.pdf文中RBAC模型的形式化没有用图形表示而是用文本。1996年Sandhu等人的论文Role-Based Access Control Models全文22页给出了可能很多人都见过的图形表示论文下载地址https://csrc.nist.gov/csrc/media/projects/role-based-access-control/documents/sandhu96.pdf说[1992年的11页严肃论文1996年的22页严肃论文]不就是[1997年书上的1页]吗大概率是有问题的。当然如果这1页是麦克斯韦方程组这样说有可能是合适的。读者可以分别下载对比一下。这个味道很熟悉。DDD圈子发明一个词而且发明这个词就够了剩下的圈子会补上——谈到某个东西时就往那个词引——不就是DDD的***吗2000年Shin和Ahn在论文UML-Based Representation of Role-Based Access Control中用UML的类图、用例图、协作图表示了RBAC模型。该论文UMLChina的《非程序员》电子杂志第25期umlchina.com/xprogrammer/xprogrammer25.pdf有翻译如果不限定RBAC这个名字而是类似的思想起源就更早了。RBAC论文作者也写了同名的书Role-Based Access Control以下是该书第2版的1.2.4 Origins of RBAC小节阐述了RBAC的起源可以回溯到1970年代。3书评盛赞的地方翻译是错误的有趣的是该书评盛赞的“岗位模式”2020中译本的翻译刚好把意思译反了。2020中译本的译文是正确译文是一个人在被任命到岗位的时间段内对该岗位的责任负责。关于这个错误我在“到底是谁配谁-《分析模式》漫谈33”一文中做了详细的剖析。待续