鱼C论坛

 找回密码
 立即注册
查看: 2073|回复: 0

[技术交流] 软件架构设计培训总结

[复制链接]
发表于 2017-1-13 15:31:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 阁龙1427 于 2017-1-13 15:34 编辑

这篇文章我也发在了csdn 上:http://blog.csdn.net/aidon1428/article/details/54192927

培训内容概要
- 架构设计思路
-
模块化、分层的设计思想
-
架构设计文档
-
自动化测试
收获&改进
模块化分层设计模块设计
模块化设计的目的就是提高移植性、复用性、可扩展……所以模块内部遵循高内聚原则,模块之间遵循低耦合原则。 模块设计就是要对其他模块高度隐藏内部数据和细节,即满足最少知道原则(尽少的实体之间的信息交互)。模块内用到的头文件写在private中,模块外需要的写在public中;
   
设计优良的模块接口需要进行合理层次的抽象,并放在合理位置;通过ID参数留可扩展余量。
   
少用全局变量,因为全局变量的使用让代码阅读难度加大,增加耦合性,可以通过static、指针、结构体、Get( )Set( )限制使用范围(Private)等方式避免全局变量的使用。
分层设计优良的嵌入式软件分层设计是上层严格依赖底层,并消灭循环依赖。   
工作改进
我们自己5116目前的模块化分层设计有些地方还可以改进。比如card 驱动的文件组织可谓严重的重复设计,cardbasenorbase,慢速驱动、快速驱动文件混杂在了一起,应提取公共部分再放合理位置;上层任意调用寄存器及影响了可阅读性,也不负责低耦合的要求;key驱动功能过于复杂,不符合一个包只做一类事情的原则,需要进行合理拆分;
设计文档
开发视图和逻辑视图
架构设计中最重要的是开发视图和逻辑视图,这让开发人员很快的熟悉架构与数据流,同时也较容易检查我们的架构设计是否存在循环依赖,这两个视图需要补充

设计合理的文档
能用代码直接表达的不写在文档中,不能过度设计,否则文档更新起来会很吃力

高度同步的文档
保持代码和文档的一致,设计文档需要主人,保证文档一直有负责人,没有负责人的文档很难保证及时更新,会误导研发人员,浪费人力。
标准化
标准的接口
许多接口在业界都已经有了标准化的实现,命名,传参,返回值,例如C标准库,而且这些标准都是经验的精华,已经经过反复验证的优良接口;并且有利于提高可读性和复用性
标准的错误码
标准的错误码、错误等级划分、debug输出有利于开发人员、维护人员迅速的定位问题,减少后期维护成本,提高现场可维护性;而且让代码复用性、兼容性得到良好的保障;不能因为代码空间限制屏蔽必要的错误输出,这会增加问题定位的难度,浪费人力成本
标准的设计文档
流程图,数据流的设计也要符合已定制的标准,优良的设计文档应该是符合标准的、高度可读的
自动化测试
必要的白盒测试
首先自己的写得模块,要写好经过设计测试代码,并尽量做到不污染源码;其次对于测试代码要求尽量高的覆盖率。再有就是文件位置划分合理,不能打包到发布代码中。
     
负责的测试代码
在没有专职的白盒测试人员之前,这个测试任务是属于研发人员的,所以测试代码也是要根据模块的设计优化持续的跟进优化


优化工具
行业中不时会出现一些优良的测试工具,需要时常关注,优良的测试工具能让我们事半功倍
持续优化
架构设计责任
架构设计不是架构师一个人的责任,架构师不可能涉及到设计的细枝末节,这就需要研发人员自己对相关模块设计负责,要靠自己的能力设计好,这样才能做好一个优良的项目架构。同时模块设计应遵循一定的规范,不能根据自己的意愿想当然的设计
        
持续优化
没有完美的代码,也没有完美的架构,我们需要根据当前的需求持续的进行优化,同时保证设计文档的持续更新(高度一致性)
           
干净的代码
应该先让自己的代码变得干净,再去进行持续的优化
总体补充
优秀的软件工程师
要成为一名优秀的软件工程师,必须保证持续的学习,比如阅读优秀的开源代码、优秀的业界书籍;能力和眼界的提升永远值得花大气力去追求;能够进行优良的设计需要大量的理论和实践,比如进行高度抽象的设计,比如进行合理的模型设计(张云龙老师提到的仓库搬运设备的高度可扩展模型设计)
     
优良的思想
比学习具体的答案更加聪明和智慧的是学习思路,参悟思想。所以张云龙老师多次提到UCOS II的设计思想对其的深远影响。比如王金平提到的面向对象的编程思想对其工作的影响
     
良好的态度
如同巴普洛夫在《致青年们的一封信》中说到的,青年科学工作者应该具有的态度:
循序渐进  ---->  谦虚   ---->   热情


     

   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 01:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表