最近总有粉丝问我,程序员进阶,核心要做些什么?感觉每天都有很多重要的事要做,但总结下来发现什么都没做到很好。
正好最近阅读时看到个有趣的观点,一会儿跟大家分享一下。首先带大家简单了解下马斯洛需求理论。
马斯洛需求层次结构从下往上,分为:生理(食物、空气、睡眠等),安全(稳定、受保护、有秩序等),归属和爱(社交、感情),尊重(自尊、尊重他人),自我实现(完善能力、潜能)。
据介绍,这种五阶段模式可分为不足需求和增长需求。前四个级别通常称为缺陷需求,而最高级别称为增长需求。
马斯洛认为需求层次越低,力量越大,潜力越大。随着需求层次的上升,需求的力量相应减弱。高级需求出现之前,必须先满足低级需求。
这个理论同时也告诉大家:人在每一个时期,都有一种需求占主导地位,而其他需求处于从属地位。
而有趣的是,有工程师发表了一个观点提到:代码质量也可以用类似方式衡量,从下往上分为5个层次。
就像在马斯洛的金字塔中一样,每一层都需要上一层。衡量代码的质量,不是单一维度就能判断的,代码应该也要分层级:
正确
代码是否可以如期执行?是否考虑到了边缘情况的解决方案?
是否经过开发自测以及QA充分测试,确保其他工程师修改代码后也不会出大差错?
对于测试用例,这段代码的性能是否足够好?
undefined
安全
代码是否存在漏洞?数据是否安全存储?
用户信息是否正确处理?代码是否可用于诱发DOS?
输入验证是否足够全面?
可读
代码是否易于阅读和理解?实现是否符合产品需求?
测试是否足够简洁?变量、函数和类的名称是否恰当?
优雅
代码使用的是否是众所周知的模式?是否用相对简单、简洁的方式满足需求?
写完这段代码是否让你感到兴奋或者有成就感?
利他
其他工程师是否能从这段代码里学到东西?是否能激励其他工程师改进他们的代码?
是否会清理无用代码、改进文档、通过小规模重构引入更好的模式?
程序员进阶之路漫漫,需上下而求索。