摘要:
在github上建立的演示项目,基于SpringBoot,演示Dubbo微服务 + Mycat, Sharding-Proxy分库分表 + Seata分布式事务管理 + ZipKin, SkyWalking, PinPoint性能分析链路跟踪APM工具,有详细文档,可以快速运行
阅读全文
摘要:各种数据建模技术,包括ER, IE, Barker, IDEF1X, EXPRES-G, ORM
阅读全文
摘要:.NET中序列化通常使用二进制或xml格式,ajax兴起之后JSON格式也用的比较多,相比YAML就很少见二进制无法直接阅读,需在二进制层面编码解码;格式由厂商定义,特定应用需要表示的对象很复杂时,格式也非常复杂,例如office 文件格式;通常需要充分考虑协议的扩展性、兼容性,例如windows的文件格式,DOS header、COFF header、PE、CLR header等;相对于文本形式...
阅读全文
摘要:Object Modeling in Colour,Java Modeling in Color with UML一书中提出这种方法定义4种类的原型,在UML中用不同颜色表示不同原型的对象 1. Party, Place, ThingParty: 事件的参与方,例如某人人、某组织等Place: 事件的发生地,例如仓库、零售店铺Thing: Thing classes are those that ...
阅读全文
摘要:Scale Out:横向扩展,增加处理节点提高整体处理能力Scale Up:纵向扩展,通过提升单个节点的处理能力达到提升整体处理能力的目的ReplicationMySQL的replication是异步的,适用于对数据实时性要求不是特别关键的场景。slave端的IO线程负责从master读取日志,SQL线程专门负责在slave端应用从master读过来的日志(早期MySQL用一个线程实现,性能问题比...
阅读全文
摘要:作者: Robert C. Martin原文连接: The Dependency Inversion Principle 本翻译未经授权,仅做为私人笔记记录,转载传播责任自负 这是我在C++报导工程笔记专栏的第四篇。这个专栏的主题是C++和OOD的使用,以及解决软件工程方面的问题。我尽力写一些实用性的文章,为奋斗中的软件工程师提供一些帮助。这些文章将使用Booch和Rumbaugh新的统一建模语...
阅读全文
摘要:作者: Robert C. Martin 原文连接: The Open Closed Principle 本翻译未经授权,仅做为私人笔记记录,转载传播责任自负 这是我在C++报导工程笔记专栏的第四篇。这个专栏的主题是C++和OOD的使用,以及解决软件工程方面的问题。我尽力写一些实用性的文章,为奋斗中的软 件工程师提供一些帮助。这些文章将使用Booch和Rumbaugh新的统一建模语言(UML版本0...
阅读全文
摘要:Entity Identity 实体标识一般采用单一值做为entity identity采用compsite primary key时,必须单独建立一个表示主键的类-primary key class主键类。这样在实体上compsite primary key就可以用一个属性(primary key class类型)表示持久化框架内部很多地方使用entity identity进行处理,因此prim...
阅读全文
摘要:原文地址:Roy T. Fielding: REST APIs must be hypertext-drivenI am getting frustrated by the number of people calling any HTTP-based interface a REST API. Today’s example is the SocialSite REST API. T...
阅读全文
摘要:分析模式不同于设计模式,它针对特定业务领域提供参考解决方案,如果对相关领域没有了解没有兴趣,就没有必要看下去
如果采用10分制对《分析模式》进行评价,我的评分是4-5分
杀鸡不要用牛刀,使用适合自己的方法
业务设计难得有通用模型,笔记中有大量个人理解和偏好方面内容,因此可能与原书中存在一定出入。这些理解主要来自对国内一些生产制造型企业以及几个ERP产品的了解
阅读全文
摘要:Martin在交易模式(Trading)中侧重在股票、期货、期权等,估计是从金融领域的一些项目中提取出来,这些领域比较狭隘另外感觉Martin在一些细枝末节上做的文章过多,而对行业中大量运用的各种业务模式只字不提,因此看起来根本不像领域概念模型,而只是针对特定行业领域的几种设计案例。毕竟领域概念模型的重点是系统如何实现各种主流的业务模式另外Martin很少使用专有的行业术语,要将那些突然间冒出来的...
阅读全文
摘要:数量(Quantity)对象模型: 数据模型: Unit: 单位主表,一般保存度量单位的代码、文本描述(可能需要处理多语言问题)等Unit_Ratio: 单位转换率Quantity主要封装与单位相关的逻辑,例如:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com...
阅读全文
摘要:对财务系统没有经验,基于自己有限的认识记录一下对Accounting Model的理解1. 账务模式基本模型: Account: 如果是指个人理财方面(分析模式书中的示例场景),当译做账号;如果指财务会计方面,当译做科目Entry: 交易条目Accounting Transaction: 交易简单ER设计示例: 加了个"科目平衡 Banalce 1"的表,是因为Martin在这一节中不少地方都使用...
阅读全文
摘要:一个中型ERP系统中库存交易部分的设计裁剪库房设计: BPML中关于这一块有详细的规范可以用来参考,这个设计示例并不符合是否资产库房: 与成本计算相关的参数是否属于供应商库房、供应商ID: 对类似寄售管理模式的考虑这些额外的字段只是用来表示基于库房的一些其它逻辑相关的设置交易: 库存期间: 月结、周期性盘点结转作业的期间设置(对应Martin在账务模式中提到的有效期间)库存期间代码: 唯一标识这个...
阅读全文
摘要:Martin用对象模型来描述分析模式,比较难懂,这里侧重于数据模型,使用组织结构的示例来描述责任模式
阅读全文
摘要:摒弃分布式事务的高伸缩性解决方案
Life beyond Distributed Transactions: an Apostate’s Opinion
阅读全文
摘要:Architectural Styles and the Design of Network-based Software ArchitecturesA Brief Introduction to RESTRepresentational State Transfer (REST)Fielding, Roy Thomas. Architectural Styles and the Design o...
阅读全文
摘要:画一个圆圈,圆圈里面的部分代表你已经掌握的知识,圆圈外面是你未知的领域,圆形的线条代表目前状态下,那些你已经认识到但还没有被掌握的区域。
结论是你掌握得越多,你所认识到未掌握的东西也越多。
如果把这个比喻用于软件开发过程,也是一个很有意思的现象:
这次圆圈里面的部分代表复杂度(且不管复杂度具体应当包括哪些,怎样衡量),圆圈外面的部分代表风险,圆形的线条则代表项目过程中有可能遇到的风险。
结论是复杂度越高,项目的风险越大。
阅读全文
摘要:文章链接:Secrets of Great Architects文章举了电子工程中计算机体系结构架构的例子:系统->子系统->组件对于硬件系统设计而言,计算机结构不可谓不复杂,单纯的一块Intel Itanium®芯片上就有25,000,000个晶体管,如果在子系统、组件的交互接口设计层面无法避免的深入到各种细节问题的研究上,绝对无法设计出如此精巧、清晰、灵活的结构。当然,整...
阅读全文
摘要:契约式设计(Design By Contract)把类和它的客户程序之间的关系看作正式的协议,描述双方的权利和义务。Bertrand Meyer把它称作构建面向对象软件系统方法的核心。契约式设计的提出,主要基于软件可靠性方面的考虑。可靠性包括正确性和健壮性,正确性指软件按照需求规格执行的能力,健壮性指软件对需求规格中未声明状况的处理能力。健壮性主要与异常处理机制相关。正确性一方面包括对象元素内部运...
阅读全文