将C++项目拆分为库的良好实践

Good practice for spliting C++ project into libraries

本文关键字:C++ 项目 拆分      更新时间:2023-10-16

我正在开发一个Qt应用程序,它具有不同的功能蓝牙堆栈、存储(数据模型(、视图、控制器等。。项目架构基于MVC模式。没有花哨或复杂的东西。

目前的项目有很多图书馆"细分"。例如,有一个名为视图的库,其中包含QML文件。就依赖性而言,没有理由将这些文件放在单独的库中。我们可以将它们放在应用程序(.exe(项目中。

蓝牙堆栈也是如此,协议、堆栈、命令、clientsprotocol和clientscommands有不同的库。最初的3个库已用于其他项目,几乎从未更改(但它们在每个项目中都是复制/粘贴的,没有具有版本控制等功能的公共共享库(。有一个单独的带有子文件夹的库不是更好吗?

编辑问题:当涉及到将项目拆分为库时,有什么好的实践、经验法则或策略?

(在更改之前:当涉及到将代码拆分为库时,你认为什么是好的做法?如果没有必要,我们应该避免"拆分"吗?或者我们应该用"最大"的库来划分项目吗?(

KISS、Occams Razor和Yagni作为软件设计原则的一些参考可以在这里找到:https://effectivesoftwaredesign.com/2013/08/05/simplicity-in-software-design-kiss-yagni-and-occams-razor/

保持简单,将所有功能放在一个库中,如果这多个库相互依赖。降低复杂性,让您的生活更轻松!