首先,理解机制,策略,功能。
任何功能定义都可以拆分成策略和机制两部分。机制可以理解为方法或途径;策略则是在不同的条件场景下,如何使用机制的问题。机制是相对固定的,但是策略是灵活多变得。创建函数时,需要多考虑机制问题。当然,如何创建一个机制来适配大部分的策略,是一个巨大的考验。
其次, 可以考虑将不同的策略抽象为同一个传入参数的不同的值,或者抽象为不同类型的传参。
对于前者,同一个函数实现就可以适配好;而后者需要考虑多个不同的函数实现,结合语言来看,OO的编程语言,可以多态。
再其次,考虑可重入性。
创建的函数,在将来被复用的环境是不得而知的。频繁的代入全局变量的写入操作,并且不加锁,导致丧失可重入性,为将来使用时留下危险大坑,实不可取。
再次,考虑可测性。
可以方便的代入预制的传参,来验证返回值,判断函数是否达到预想的功能。如何判断可测性,最简单的是自己写单元测试来测试函数,是否容易测试,自己测试了就清楚。
再再次,函数定义尽量简单。
不容易犯错和增加复用几率的一个法宝就是函数定义的目标简单明确。尽量将大的功能拆分成若干个小功能来实现,对测试和排错都有好处。
最后,可适当考虑可移植性。
移植到其他项目复用,移植到其他语言(C语言调用C++,或反之)等。某一些C++的语法,是只在C++里才有的,移植到C中,无法编译,必须重写。

12万+

被折叠的 条评论
为什么被折叠?



