在C++的世界打拼了一年多,看过的代码不算多,但是看过的不良代码还不少。
这里不是贬低别人,而是觉得做任何事情都要有专业的态度。我看到的代码大致有以下几个重大毛病:
1.程序不讲结构,不谈设计,这一点在我工作的初期带我的那个导师却做得非常好,他是个谈设计,将结构的人,不久就升官了。恭喜他。
2.程序不讲模块化,所有代码揉捏在一起,模块清晰的代码却更改起来牵一发动全身。对于后台服务器来说,前台的一些更改必然带来后台服务器的添加和修改,然而对于牵一发而动全身的代码来说,给开发人员带来的不是烦恼而是痛苦。
3.程序代码重复,函数功能凌乱,函数过于复杂,可读性差。
这种代码极难维护,对于后台开发人员来说,如果一天游离在这种乱七八糟的代码中还有什么发展前途。
要写出好的代码必须做到以下几点:
1.函数代码结构清晰,文件目录清晰
2.头文件包含清晰,依赖关系非常清楚
3.代码模块化,模块与模块之间低耦合,低耦合最重要的是接口的设计的合理。
C++的几个重要特性对于函数的代码的模块化和接口的设计提供了天然的优势。继承,虚函数,纯虚函数。这些是代码模块和接口设计的利剑。
另外,代码风格。实际工作中,每个人有自己的习惯和风格,但是在工作应该有一个大家都认可的规则,一个团队去遵循它,而不是要团队来容许每个人自己的风格,否则,这样末法交流和维护。
以实际例子来说明函数代码良好风格的重要性。
本人负责一个后台服务器的开发和维护。开始的代码,框架层,协议层,逻辑层混杂在一起。框架代码与协议耦合严重。框架的顶端居然具体到每个协议消息的具体字段。并且协议层应该是逻辑层的一个部分却与框架层耦合,逻辑层却好像跟协议层关系还小些。实际上,逻辑是跟协议息息相关的。具体是,不同的协议(消息类型)对应不同的逻辑。
这里其实合理的耦合关系:
协议层负责消息编解码,提供接口给框架层和逻辑层。
框架层根据协议层提供的接口进行消息分发。
逻辑层处理逻辑调用协议层接口进行消息编码。然后整个消息流程结束。
代码模块非常清晰。
好的代码必然是结构清晰的代码,好维护的代码。好的代码注释也是很少的,叫着见代码,知意义。希望初学者一定要注重代码的结构设计。