最近在走读团队的代码,有时实在是看不下去。不是因为他们的代码编写有很多Bugs,而是没有设计实现太复杂了。当面对众多的需求需要快速实现,没有几个人会去思考代码怎么写结构才更合理,而是在不断去搬砖垒需求。当我去咨询他们为什么要这样实现时,每个人能只能说出其一,不知其二。即使自己写的代码,也不知道当初为什么这么实现。
同时,我们团队中不乏有各种兴趣小组。例如学习新的技术框架,交流设计模式,讨论重构技巧、性能优化经验。而实际在操作层面上,代码却正如前面所讲,有时真的不堪入目。正好这近在看王阳明传,突然想到我们没有知行合一
啊。
- 知 :一方面是我们对技能掌握,如程序语言知识,设计模式,框架类库等;另一面是我们对需求理解,如场景梳理,用例分析,关键指标等。
- 行 :能根据掌握的知识技能,以及对需求的认识应用于项目中,通过代码转化为实际客户所需要的产品。
结合按王阳明的学说,做为一名合理的软件工程师,则需要格物致知,知行合一,良知和致良知。
-
格物致知 :
- 格需求。对需求不断地格,才能知道客户真正需要什么。因为客户的提出需求时,往往是感性的,非技术化的描述,也可能是模糊不清晰的。那就需要我们不断去交流与探讨,才能明白客户的痛点,进而知行合一,指导你编码,做出满足客户真正需要的东西。
- 格技术。软件开发会涉及到很多的知识,尤其是大型的项目。我们面对操作系统,各种框架程序,以及各种软件工程方法。我们需要不断地格,去深入探本究源,明白什么场景下,使用什么技术是最优的。
-
知行合一 :
- 知而为行。知行合一很好理解了,简单的就是“知”和“行”统一。理论与实践想结合,一切的实践行动又必须有理论支撑。所想即所写,所写即所需。你能编写出来的代码才是真正知道的需求,你真正知道的需求你就一定能编写出来代码。
- 行而促知。我们不断地学习与交流,本身没有什么问题。其实如果没有实践的切身体验,是难以有较深的认知的。往往是学完也说不出一个所以然。知行合一,学习必须时刻结合实践行动,这样才能真正的掌握并不断的进步。
-
良知和致良知 :
- 良知。良知是人内心深处的心声。软件开发的良知是程序员做事的标准。显然,不断地只按需求去垒代码不是标准,能跑起来的代码也不是标准。软件开发的标准可能很多,不同的人有不同的看法。但一个团队一定要代码编写标准化,开发流程标准化。没有规矩成不了方园,标准化才能提高我们的效率。
- 致良知。找到标准(良知),然后去做到知行合一(致良知)。如果程序的良知是优秀的代码,那致良知就是我们不断地为实现优秀的代码去努力。优秀的代码涵盖代码的可读性,可理解性,同时还需要兼顾代码的可扩展性,可维护性。不要对自己编写的代码放任不理,识别代码的坏味道,编程的过程实际是一个不断重构改进的过程。古人说“三日省吾身”,编程也需要不断地反思。