Qt/C/C++ 项目工程架构搭建设计经验

发布时间 2023-10-18 15:11:39作者: 空手只套小鱼干

在这里插入图片描述

摘要

  独立负责一个Qt项目和经过前辈的教导后的一些架构搭建感悟,其中的各种理念对其他语言开发的项目也能有一定的互通,能带来更舒适的开发体验,谨代表个人开发的经验之谈,有需要的小伙伴酌情获取,辩证思考。也欢迎小伙伴们在评论区纠错补充。
  关键词:C/C++、Qt、搭建框架、更舒适的开发、框架设计经验、项目搭建准备、

声明:本文作者原创,转载请附上文章出处与本文链接。

@

一、搭建项目前可预先准备的几个文件(.h/.cpp):
  • 单例数据库控制类
      单例模式是项目中最常用的一种设计模式,如果项目有数据库交互的需求那么单例数据库类是可极大方便开发,提高开发效率的文件。
      单例数据库控制类充当界面与数据库交互的桥梁;设定宏定义可囊括数据库的路径、表名、表Column树等等数据库相关属性,根据需求定义;成员变量函数和开关数据库,增删改查等操作根据需求去自定义,尽量以可复用为前提设计,例如:
bool SaveAutocutData(const QStringList &_list, QString &_str);				// 通用保存数据表,保存值,sql语句
bool FindAutocutDataVal(const QString _tableName, const QString _keyName, const QString _keyVal, int &_count);  // 检测表中键的值是否存在, 有多少个
bool SelectAutocutData(const QString _sqlStr, QStringList& _list);          // 通用获取数据值,sql语句,获取的值
  • 单例数据中台类
      而如果项目有外接数据源的需求并通过TCP/IP、共享内存、modbus等等各种方式获取传输的数据那建立一个单例数据中台类还是有一定的需求的。
      通过单例数据中台类对数据进行集中处理,界面通过这个类对底层生产数据进行读写和监视;还可以根据系统及界面的需要自定义系统状态机,宏定义、枚举定义、结构体等;进可拓展观察者模式的接口配合timer、和signal监视底层数据变动,退还可以拓展日志操作,更方便界面记录日志。

  • 通用函数方法文件
      在开发编程的一些小工具函数,在多个功能模块都可以用到的函数集合即通用函数方法文件,Qt类设计得非常完善基本没小工具的生产空间,不过编程都是看需求的,有需求就有代码。而针对C/C++的项目可集成例如字符切割函数、hash转换函数等,也可当作用于宏定义的文件。

二、项目文件划分

  构建项目时需要划分成两部分一部分是.exe、.dll、.db等这些生产应用环境依赖文件的应用环境文件夹;另一部分为.lib、src文件夹(源代码)、pro等构建源代码生成运行文件的编程开发环境文件夹,把生成运行环境的路径设置到应用环境文件夹相应路径内。有更好,不用过分强求,以团队内的需求为主。

三、项目开发文挡准备

  开发过程前期准备及过程中需要一些文档用来记录开发内容,在项目开发的层面,需求文档及开发文档可贯穿整个项目,开发前定个大纲,在开发中不断的对细节进行补充修正,开发结束后也能review一下,开发中断换人也可快速交接。

  • 需求文档:越详细越好,一个功能细分到人机交互、界面与底层交互,数据格式,数据处理等等方面。

  • 开发文档:不用太细,写出整体框架,划分功能,用到的技术即可。主要在编程内注重代码格式,代码注释。

  在个人的角度上,需要一个随时记录写给自己看的文档,在开发过程中想到什么,需要记录什么就直接写入,甚至抱怨,单纯作为剪贴板都可以,这样能促进思考,提高思维的活跃,防止遗漏,抓住灵光一闪的时刻。

  • 个人开发记录:个人的开发文档(个人记录,随笔),推荐uTools的Markdown笔记插件工具,

  在职业的生涯中,记录自己的工作内容,自己的成长还是非常重要的,而在每一次会议上获取到的信息记录下来对工作也有一定帮助,经常回顾,设定目标,职业通道才会更顺畅。

  • 会议记录文档:记录会议上开发的需求、公司的风向决策等等,自认为重点需要记录的信息,可先用纸质的记录,会议结束后整理成文档即可。

  • 每周周报:每周结束时记录这一周进行了哪部分的工作,下周计划在哪方面耗费精力等等内容,也可一个月补充一次,这样以后翻阅时可以回顾自己的成长,也可用于应付月末的绩效考核,对年度总结也有帮助。

四、版本控制,更新备份

  编程开发环境文件夹内src源代码的个人开发备份,开发完一部分的功能就备份一次,方便出现未知Bug好直接回档,极力推荐第一种方式,第二种太繁杂了。

  • 个人Git:推荐使用TortoiseGit工具,创建本地版本库。

  • 直接备份文件夹:把src文件夹按开发的时间多copy几份+.md说明文件。

推荐阅读:

https://www.cnblogs.com/sr0808/