最近的开发工作主要是把某C++业务代码翻译成Lua版本,这个过程相当枯燥,期间吐槽不少这块业务代码的整洁性,在测试Lua版本的业务代码时,因翻译时求快心理,有些复杂算法的翻译出现纰漏,且类似的算法在业务的多处有不同的实现,导致纠正这类算法的时候要多处同步,改完还得多处反复检查有没犯低级语法错误(比如有些变量名是否缺或者多个字符),毕竟编辑Lua脚本的编辑器目前还没有比较完善的语法排错功能。
总之,很折腾人,不求业务的所有代码都优化,至少被折腾好几次的几个地方必须干掉,否则,就真的没点节操了。
工作做完了,作个小结,纪念一下:
一个功能有多个实现,会引发同一问题多处修改而维护难的问题。
这种情况下,可观察多个实现的共性以及个性,将共性封装成方法,个性则以传参的方式来适配不同业务的需求。从而提高了功能的内聚性,降低与业务代码之间的耦合性,履行封装的单一责任原则。
这是我对复用性的理解。