我正在阅读Pidgin,Filezilla和其他各种开源项目的其他人的源代码,以便我可以简单了解软件是如何编写的。
我注意到在编写GUI时,他们喜欢将整个界面拆分为类。 或多或少,很多项目我看到每一个单元都被分解,可能总共有70个文件(35cpp和35.h)。
例如:1个listview可能是整个类,菜单栏可能是一个类,也可能是tabview整个模块。
这不仅仅是UI部分 - 网络模块也被大量分解 - 几乎每个函数本身都是.cpp文件。
我的问题:这真的只是偏好还是有任何特别的好处? 例如,我会将整个UI写入单个模块中。
实际原因是什么?
答案 0 :(得分:2)
有些语言鼓励每种类型一个文件,知道这些语言的人也用c ++编程,并在这里养成这种习惯。
为了重用,您希望放入标题的内容简单,正交且概念上干净,这往往意味着避免使用具有特定项目所需内容的文件。
在git / mercurial之前,让多个人编辑同一个文件可能会非常麻烦。因此,将内容分成许多文件可以帮助很多人编辑,无论是编辑还是版本控制软件。
它还加快了编译速度。您编辑的文件越小,所需的编译就越少,因此除非链接阶段很慢,否则小文件是一件非常好的事情。
许多人因为将事情塞进单个或少量文件而受到伤害。通过将它们分成50多个文件,很少有人受到严重伤害。人们倾向于那些不公开教你艰苦教训的事情。
答案 1 :(得分:1)
您可能希望将项目拆分为单独的文件以提高可读性,有时还可以使调试更容易。 filezilla项目可以全部写入两个文件,例如main.cpp和main.h但如果你这样做,你将不得不将数万个代码写入同一个文件,这是一个非常糟糕的编程实践,即使这是合法的。
答案 2 :(得分:0)
测试将带来一个好处。在整个设计层次中分发系统测试(例如,而不是单个物理组件)比仅在最高级别接口上测试更有效且更便宜。