如何编写高质量的代码五-函数
2012-10-25 07:30
411 查看
无论对于面向过程的语言还是面向对象的语言,创建函数都是必须的。
那为什么要创建函数呢?
减少代码复杂度
增加一个中间的,可以理解的抽象
避免代码重复
增加子集
隐藏逻辑顺序
隐藏指针操作
提高代码移植
简化复杂的bool测试
提高性能
同时很多适用于创建类的理由也适用于创建函数上:
隔离复杂度
隐藏实现细节
限制代码修改的地方
隐藏全局数据
集中逻辑控制
代码重用
有利于代码重构
函数该多大?
我从来没有见过好函数超过100行的。经过很多人的经验总结,一个函数最多不要超过100。 如果你的函数体比较大,你基本上可以肯定你的函数干了好几件事情,你需要重构代码。
好的函数名称
一个好的函数名称是写好一个函数的关键,在函数被调用的地方,好的函数名称极大的的提高代码的可读性,对于未来的维护也具有很高的直观性。对于很多操作,名字应该成对出现:
如何传递函数参数?
函数参数传递应该遵循某种规则。在调用函数的时候,很多bug是因为传错了参数顺序导致的。
函数参数总是要按照入参,出参的顺序排列,不要交叉使用。下面的函数为合理的函数申明。
写高质量函数的关键点
创建函数的最主要原因是提高程序复杂度管理的可能性,降低软件复杂度。
函数的名称暗示着函数的质量。如果函数的名称不好而且不准确,那么该函数可能存在设计问题。
一个函数只做一个事情。
除非万不得已不要用Macro, macro应该是你最后一招。
如何编写高质量的代码
那为什么要创建函数呢?
减少代码复杂度
增加一个中间的,可以理解的抽象
避免代码重复
增加子集
隐藏逻辑顺序
隐藏指针操作
提高代码移植
简化复杂的bool测试
提高性能
同时很多适用于创建类的理由也适用于创建函数上:
隔离复杂度
隐藏实现细节
限制代码修改的地方
隐藏全局数据
集中逻辑控制
代码重用
有利于代码重构
函数该多大?
我从来没有见过好函数超过100行的。经过很多人的经验总结,一个函数最多不要超过100。 如果你的函数体比较大,你基本上可以肯定你的函数干了好几件事情,你需要重构代码。
好的函数名称
一个好的函数名称是写好一个函数的关键,在函数被调用的地方,好的函数名称极大的的提高代码的可读性,对于未来的维护也具有很高的直观性。对于很多操作,名字应该成对出现:
add/remove increment/decrement open/close begin/end insert/delete show/hide create/destroy lock/unlock source/target first/last min/max start/stop get/put next/previous up/down get/set old/new
如何传递函数参数?
函数参数传递应该遵循某种规则。在调用函数的时候,很多bug是因为传错了参数顺序导致的。
函数参数总是要按照入参,出参的顺序排列,不要交叉使用。下面的函数为合理的函数申明。
int InvertMatrix(Matrix original_matrix, Matrix* out_matrix);函数参数数量不要超过7个,要考虑重新定义数据结构如果传入的参数有很大的关联性. 比如:
bool validPersionInfor(char *given_name, char *family_name, char * address, char *phone, int age, char *job, char *title);参数越多代码逻辑就会越复杂,变量也就也多,程序变得脆弱。该代码完全可以重构(refactor)成:
struct PersionInfo{ char *given_name; char *family_name; char *address; char *phone; int age; char *job; char *title; }; bool validPersionInfor(PersionInfo *person_info);
写高质量函数的关键点
创建函数的最主要原因是提高程序复杂度管理的可能性,降低软件复杂度。
函数的名称暗示着函数的质量。如果函数的名称不好而且不准确,那么该函数可能存在设计问题。
一个函数只做一个事情。
除非万不得已不要用Macro, macro应该是你最后一招。
如何编写高质量的代码
相关文章推荐
- 提高代码质量:如何编写函数
- 前端开发者如何编写高质量代码
- 提高代码质量:如何编写函数
- 如何编写高质量和可维护的代码
- 如何编写高质量和可维护的代码
- 提高代码质量:如何编写函数
- 如何编写高质量的VB代码
- 如何编写易被复用的,高质量的机器学习算法代码
- 【JavaScript】如何编写高质量的JavaScript代码
- 如何编写高质量的VB代码(转自雪中漫步的专栏)
- 提高代码质量:如何编写函数
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- 如何编写高质量的程序 函数
- [精华]如何编写高质量的VB代码
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- 提高代码质量:如何编写函数 --转载
- 如何编写高质量的易语言代码?
- 如何编写高质量的代码——来自《代码大全(第2版)》的启示
- 【高质量代码】如何写出更高质量的C/C++代码(2):函数设计