最近看了篇老外的文章, 仿照马斯洛需求理论, 发明了个代码的需求层次理论, 非常有意思, 这里给大家介绍一下
https://charlax.tumblr.com/post/111338685456/maslows-pyramid-of-code-review
马斯洛需求层次理论
这个理论用一张图就可以很直观的理解

-
马斯洛把需求分成了5种:
-
生理需求 -
安全需求 -
社交需求 -
尊重需求 -
自我实现
马斯洛认为,人类具有一些先天需求,人的需求越是低级的需求就越基本,越与动物相似;
越是高级的需求就越为人类所特有。
同时这些需求都是按照先后顺序出现的,当一个人满足了较低的需求之后,才能出现较高级的需求,即需求层次
程序员的需求分层
同样, 我们程序员也有不同层次的需求

程序员的需求, 也是跟马斯洛的理论一样, 满足下一层之后再追求上一层
这里我们把需求从下到上分为5层:
-
正确 -
安全 -
可读 -
优雅 -
利他
1. 正确
写出正确的代码这是一个程序员最基础的需求, 如果你的程序无法计算出正确的结果, 那么只能说代码是一堆电子垃圾; 想象一下如果你写的电商系统, 下单计算的金额是错误的, 那显然你写的程序是不合格的

2. 安全
安全也是比较基础的需求
如果你写的程序非常容易崩溃, 输入的数据会造成整个进程或者系统严重的损害, 那么显然程序是不安全的

3. 可读
很多人可能没注意到, 我们写的代码其实是给人看的, 而不是机器;
编译之后的机器码才是给机器看的; 所以没必要写一些晦涩难懂的代码, 为难自己和同事;
当我们的程序需要团队协作的时候, 让代码有更高的可读性, 能够极大地提升团队的工作效率

曾经我就接手过一个项目, 一个Java文件有8000多行, 一行注释都没有, 完全不知道写的什么;
维护它的代价极其巨大, 写出这种代码浪费时间去维护, 不如多打两局DOTA
4. 优雅
我们的代码要善用常见的设计模式, 在不牺牲简单性和简洁性的前提下实现需求

你会发现各种开源软件, 都无一例外的使用了各种设计模式;
这些程序员使用设计模式, 并不是闲着没事去炫技, 而是真真实实的享受设计模式给他们带来的好处;
写程序跟造房子很像, 都是一个功能一个功能堆积起来的
但是程序又跟造房子不一样, 房子造好就很难改造了, 但是程序要经常面对变化;
尤其是互联网应用, 产品形态会频繁的变更去适应市场, 以便取得更好的商业成果
干掉一堆杂乱的if else, 熟练运用各种设计模式, 让我们的程序能够快速适配需求的变化
所以, 合理利用设计模式, 可以让你的代码具有极强的可维护性, 更容易理解;
5. 利他
一个优秀的程序员应该将他的能力分享给所有人, 最简单的办法就是将他的思想和能力用代码表达出来, 并提供给所有人使用;


这就是开源的魅力; 开源极大的促进了信息科技的发展;
你在哪一层
看看上面的5层, 看似1~4层(1正确,2安全,3可读,4优雅)不难;
但事实上根据我的工作经验,
绝大部分码农的代码还停留在第1层(正确)
他们写代码的时候, 目的仅限于完成任务, 产品经理提的需求完成就行了, 从来没有考虑后期维护的事
于是在工作中为了各种需求变更疲于奔命, 天天产出一堆电子垃圾.
在有测试和代码评审的情况下一般也就满足到2层(安全); 到第3层(可读)能写出有可读性的代码的码农都已经凤毛麟角了
如果你能达到第4层(优雅) 没个10年苦功夫是很难达到这层次的
第五层是什么水平的人? 看看那些开源项目的committer 这些人不断在输出自己的能力, 丰富整个各种开源社区的生态

看看程序员的5层境界, 可以给我们的能力提升一个非常好的指引
如果你的目标永远都只是第1层(正确) 仅仅满足于程序的正确性, 恐怕你的能力永远得不到提升, 在工作中永远在当救火员, 你的程序一直处于按下葫芦浮起瓢的状态
所以我们一开始就要把目标定在第3层(可读), 甚至第4层(优雅), 努力的向正确的方向前进
其实到了第四层之后, 程序员之路就永远没有止境了

本文由 mdnice 多平台发布