Analyse_Design
文章平均质量分 71
Analyse_Design
halazi100
勤勉务实、守正创新
展开
-
消息序列化工具-为现代C++设计的jsoncpp介绍与使用技巧
JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON。关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org。原创 2023-03-22 11:28:16 · 537 阅读 · 0 评论 -
消息序列化工具-protobuf介绍及安装使用技巧
protobuf将一种结构称为一个message类型,对应C/C++中的struct;我们以电话簿中的数据为例。int32 id;其中Person是message这种结构的名称,name、id、email是其中的Field,每个Field保存着一种数据类型,=后面的1、2、3是Filed对应的id。id在1-15之间编码只需要占一个字节,包括Filed数据类型和Filed对应数字id,在16-2047之间编码需要占两个字节,所以最常用的数据对应id要尽量小一些。原创 2023-03-22 10:58:34 · 876 阅读 · 0 评论 -
层次状态机设计指导
当前状态没有匹配到转换但其父状态可以匹配到对应的事件Event及警备条件Guard为真或无警备条件的转换,则执行父状态的转换,如果父状态仍然没有匹配到但父状态的父状态可以匹配则执行父状态的父状态匹配的转换……即当事件发生时如果子状态有匹配的转换则执行子状态的转换,否则不断向上匹配父状态的转换,直至匹配到合适的转换并执行或者所有祖先都不匹配什么转换也不执行。历史状态有向外的迁移,表示如果历史状态空白,那么迁移到指定的默认目标状态,否则迁移到原来记忆的状态。离开C时,执行C的出口活动y=1,y值为1。原创 2023-03-18 23:32:17 · 1377 阅读 · 0 评论 -
C++UML类图的关系
C++UML类图的关系在C++中UML主要用来描述软件中类和对象以及它们的静态关系。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图的3个基本组件:类名;属性;方法;可见性(visibility):+ public- private# protected实例个数(multiplicity)0..1, 无实例,或者1个实例;1, 只有一个实例;0..*, 任意个实例;1..*, 1个以上实例;常见的UML类图关系泛化(General原创 2022-05-26 13:49:27 · 752 阅读 · 0 评论 -
设计模式-单实例-C++Singleton类模板实现及使用
C++单实例类模板实现及使用单实例类注意事项:1. 构造私有化,拷贝构造函数及重载=操作符也私有化,暴露新的访问接口;2. 推荐使用懒汉式即 getInstance()接口且使用双重锁定,既解决多线程安全问题又保证性能,同时还要防止某一用户delete获取到的实例导致其他用户无法正常使用;3. 考虑资源回收,使用内部类Garbo及其静态对象,系统自动析构全局变量及静态成员变量时可以实现自动删除单实例对象;一般单实例对象会一直伴随系统存在,不设计回收问题不大;4. 静态成员变量要类外初始化,其中原创 2020-07-06 15:34:51 · 696 阅读 · 0 评论 -
程序员高效软件开发常用工具列表
程序员软件开发常用工具列表ubuntu-linux/windownseditor: vim,gedit/notepad++ analyseplugin;coding: vscode,android-studio,eclipse/sourceinsight;code-compare: meld,beyond compare/beyond co...原创 2020-02-05 11:27:46 · 911 阅读 · 0 评论 -
使用plantuml生成uml时序图
主要包括以下三步:1. 下载plantuml.jar 配置到本地环境变量方便直接本地使用http://plantuml.com/downloadhttps://sourceforge.net/projects/plantuml/files/plantuml.jar/download将这个软件放置到某目录,如~/toolkit/design/plantuml/plantuml.jar...原创 2019-03-21 14:08:16 · 2607 阅读 · 0 评论 -
合理设置及使用系统日志
合理设置及使用系统日志软件中总免不了要使用日志,一般都提供了以下几个日志级别:x Verbosex Debugx Info/Notifyx Warnx Errorx Fatal一个比一个等级高,谈谈自己的一些看法,以便交流使用。=== Verbose ===一般用于调试功能的时候可以设置和打开Verbose级别的日志,可以看到更详细的参数处理,甚至详细的原始数据;开发调...原创 2019-08-08 15:31:16 · 826 阅读 · 0 评论 -
系统架构分析与设计参考及注意事项
系统架构分析与设计参考及注意事项分析与设计[容错设计][健壮性]做好容错设计,提升鲁棒性,用好程序员的异常处理;比如定义枚举值考虑有效值时同时考虑初始值或无效值,考虑预期结果时照顾到非预期情况以及出错后除错和自我恢复;考虑极端情况下的异常处理,比如系统启动停止阶段的事件处理,有无必要缓存处理等;[可扩展性][易于兼容性]考虑可扩展性,努力做到易于扩展;比如参数类型通用性及是否需...原创 2019-08-15 14:43:13 · 921 阅读 · 0 评论