通过前面的学习与练习,能够编写一些简单的程序,但是编写大型程序除了算法、编程基础之外,还需要项目、库组织、编程规范、设计模式等技巧。这些技巧不仅仅能提高效率,而且是完善计算机思维的一个重要的环节。
通过前面的学习,把C++基础、数据结构与算法、LeetCode练习题、小项目,已经能够完成一个独立的小工程,并能解决实际问题。大部分情况下,第一次写完的程序,虽然已经实现了功能,但是往往存在如下的问题:
逻辑、功能比较混乱,代码不够清晰
文件组织混乱,代码、数据等混杂
程序里有很多固定的路径、常数等,不方便移植,无法在其他人的电脑上运行
使用全局变量
为了更进一步提升自己的编程能力,需要通过多次的代码重构提升自己的综合能力。主要的内容包括:
关于代码重构可以借鉴学习如下的项目:
前面的程序由于比较简单,都是单个源文件,所以不需要复杂的项目管理,但是实际用到的程序,大多数包含非常多的各种类型源文件,因此导致编译、第三方库、跨平台等许多问题。目前大部分的开源项目使用CMake来组织代码的编译,因此非常有必要学会CMake,主要的目的有:1)解决别人程序的编译问题;2)自己的程序用CMake组织起来,自己方便,如果开源也方便其他人。
可以通过这个目录里面的示例项目来学习CMake,库的使用方法,通过这个学习如何将功能模块进行层次划分、并进行有效的组织。
对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性。例如我们可以规定某个项目的C语言程序要遵循这样的规定:变量的命名,头文件的书写和#include
等等。
编程规范只能在多写程序的基础上,通过不断的反思、总结才能形成。另外可以参考一个比较好的开源程序,学习它的代码规范。最基本的原则包括:
Google的编程规范大家可以作为主要的参考:
更多参考:
设计模式(Design Pattern)代表了最佳的实践,在面向对象的编程中被很多老鸟们反复使用。使用设计模式有很多好处:
毫无疑问,设计模式于己、于人、于系统都是多赢的。《设计模式》之于程序员,就好比《圣_o_经》之于_o_耶_o_稣_o_信徒一样,意义可想而知!大家在编程练习过程需要多思考自己写的代码如何用更好的代码组织方式,能否用更清晰易懂的模式来实现,这样不仅方便自己理解,也让其他人更好理解,从而带来更好的协同开发。
更多的资料可以参考:
多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。为了充分发挥多核处理器的计算性能,计算机视觉、机器学习、数据处理都需要并行处理,因此需要理解并行的原理机器多线程、多进程的原理和实现。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。