首页 > 编程语言 >Qt/C/C++ 项目工程架构搭建设计经验

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

时间:2023-10-18 15:14:39浏览次数:30  
标签:架构 Qt 项目 数据库 记录 C++ 开发 文档 单例

在这里插入图片描述

摘要

  独立负责一个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/

标签:架构,Qt,项目,数据库,记录,C++,开发,文档,单例
From: https://www.cnblogs.com/sr0808/p/17772385.html

相关文章

  • centOs 6.10 编译 qt 5.15.11.
    centOs6.10编译qt5.15.11安装依赖库xcb依赖库qtxcb需要的依赖如何要用x11,就要在编译的时候加上-xcb选项,就要安装xcb相关的库。到时可以在config.log文件查看,缺少哪个库就安装哪个。下面是我手动安装的库和对应版本:xcb-proto-1.14.tar.gzxcb-util-image-0.......
  • Qt SQL API相关操作
    作者:苏丙榅链接:https://subingwen.cn/qt/qt-db/?highlight=sql来源:爱编程的大丙著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。另外,推荐野火关于sqlite 的文档:https://doc.embedfire.com/linux/qt/embed/zh/latest/ebf_qt/senior/qt_sqlite.html......
  • 您需要了解的有关下一个MISRA®标准的信息:MISRA C++ 2023®简介
    我们在直播课中讲解过MISRAC通识及实践(请看VCR),今天我们来探讨一下MISRAC++:2023~ 【北汇信息|MISRAC通识及实践】 MISRAC++:2023®是广受期待的MISRAC++®标准的下一个版本,将于今年晚些时候发布。新版本将整合AUTOSARC++14指南,并支持C++的最新版本。 MISRA®是......
  • Unity DOTS中ECS核心架构详解
     最近DOTS终于发布了正式的版本, 我们来分享一下DOTS中ECS的几个关键概念与结构,方便大家上手学习掌握Unity DOTS开发。 ECS中的World  Unity DOTS ECS架构中所有的Entity都是被放到了World对象里面,每个Entity在World里面都有唯一的Id号。Unity DOTS 可以同时支持很多......
  • MQTT控制报文格式 -- PINGRESP – PING response
    PINGRESP数据包由服务器发送到客户端以响应PINGREQ数据包。这表明服务器还活着。该数据包没有可变包头和Payload,剩余长度值为0固定包头格式如下:Bit76543210byte1MQTTControlPackettype(13)Reserved 1101......
  • 轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools
    引言在前两章节中,我们详细讲解了如何手动配置启动MongoDB。然而,现在有许多不同的工具可以帮助我们更方便地启动和创建MongoDB数据库。因此,今天我将介绍一个名为mtools的开源项目,它可以帮助我们更轻松地启动MongoDB。mtools介绍官方文档地址:mtoolsmtools是一个基于Python实现的......
  • MQTT 主题通配符和过滤器Topic Wildcards & Topic Filters
    主题名称中引入了级别分隔符/,用于分割主题级别,如果存在,它将主题名称划分为多个“主题级别”。订阅的主题过滤器可以包含特殊的通配符,可以一次订阅多个主题。特殊字符的通配符可以用在订阅过滤器中,但是不能用于主题名称1.主题级别"/"用于分割主题级别,并为主题名称提供......
  • ubuntu下qt环境搭建
    Ubuntu20.04环境下安装Qtlibrary5.9.71. 下载前的准备工作a) 安装依赖库,虚拟机联网,在命令窗口输入sudoapt-getinstalllibfontconfig1-devlibfreetype6-devlibx11-devlibxcursor-devlibxext-devlibxfixes-devlibxft-devlibxi-devlibxrandr-devlibxrender-dev回车......
  • TSMixer:谷歌发布的用于时间序列预测的全新全mlp架构
    这是谷歌在9月最近发布的一种新的架构TSMixer:Anall-MLParchitecturefortimeseriesforecasting,TSMixer是一种先进的多元模型,利用线性模型特征,在长期预测基准上表现良好。据我们所知,TSMixer是第一个在长期预测基准上表现与最先进的单变量模型一样好的多变量模型,在长期预测......
  • 架构应用总结
    天带来的是架构活动中的常见原则,在我们平时做技术方案,非功能设计时一定需要铭记于心这些方法论。架构目标高可用性整体系统可用性最低99.9%,目标99.99%。全年故障时间整个系统不超过500分钟,单个系统故障不超过50分钟。高可扩展性系统架构简单清晰,应用系统间耦合低,容......