钢铁直男兽

V1

2022/07/11阅读:12主题:极简黑

程序员的马斯洛需求层次

最近看了篇老外的文章, 仿照马斯洛需求理论, 发明了个代码的需求层次理论, 非常有意思, 这里给大家介绍一下

https://charlax.tumblr.com/post/111338685456/maslows-pyramid-of-code-review


马斯洛需求层次理论

这个理论用一张图就可以很直观的理解

马斯洛需求分层
马斯洛需求分层
  • 马斯洛把需求分成了5种:
  1. 生理需求
  2. 安全需求
  3. 社交需求
  4. 尊重需求
  5. 自我实现

马斯洛认为,人类具有一些先天需求,人的需求越是低级的需求就越基本,越与动物相似;

越是高级的需求就越为人类所特有。

同时这些需求都是按照先后顺序出现的,当一个人满足了较低的需求之后,才能出现较高级的需求,即需求层次


程序员的需求分层

同样, 我们程序员也有不同层次的需求

程序员的需求分层
程序员的需求分层

程序员的需求, 也是跟马斯洛的理论一样, 满足下一层之后再追求上一层

这里我们把需求从下到上分为5层:

  1. 正确
  2. 安全
  3. 可读
  4. 优雅
  5. 利他

1. 正确

写出正确的代码这是一个程序员最基础的需求, 如果你的程序无法计算出正确的结果, 那么只能说代码是一堆电子垃圾; 想象一下如果你写的电商系统, 下单计算的金额是错误的, 那显然你写的程序是不合格的

订单计算金额
订单计算金额

2. 安全

安全也是比较基础的需求

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

SQL注入
SQL注入

3. 可读

很多人可能没注意到, 我们写的代码其实是给人看的, 而不是机器;

编译之后的机器码才是给机器看的; 所以没必要写一些晦涩难懂的代码, 为难自己和同事;

当我们的程序需要团队协作的时候, 让代码有更高的可读性, 能够极大地提升团队的工作效率

8000行代码
8000行代码

曾经我就接手过一个项目, 一个Java文件有8000多行, 一行注释都没有, 完全不知道写的什么;

维护它的代价极其巨大, 写出这种代码浪费时间去维护, 不如多打两局DOTA

4. 优雅

我们的代码要善用常见的设计模式, 在不牺牲简单性和简洁性的前提下实现需求

设计模式经典书籍
设计模式经典书籍

你会发现各种开源软件, 都无一例外的使用了各种设计模式;

这些程序员使用设计模式, 并不是闲着没事去炫技, 而是真真实实的享受设计模式给他们带来的好处;

写程序跟造房子很像, 都是一个功能一个功能堆积起来的

但是程序又跟造房子不一样, 房子造好就很难改造了, 但是程序要经常面对变化;

尤其是互联网应用, 产品形态会频繁的变更去适应市场, 以便取得更好的商业成果

干掉一堆杂乱的if else, 熟练运用各种设计模式, 让我们的程序能够快速适配需求的变化

所以, 合理利用设计模式, 可以让你的代码具有极强的可维护性, 更容易理解;

5. 利他

一个优秀的程序员应该将他的能力分享给所有人, 最简单的办法就是将他的思想和能力用代码表达出来, 并提供给所有人使用;

apache基金会
apache基金会
github
github

这就是开源的魅力; 开源极大的促进了信息科技的发展;


你在哪一层

看看上面的5层, 看似1~4层(1正确,2安全,3可读,4优雅)不难;

但事实上根据我的工作经验,

绝大部分码农的代码还停留在第1层(正确)

他们写代码的时候, 目的仅限于完成任务, 产品经理提的需求完成就行了, 从来没有考虑后期维护的事

于是在工作中为了各种需求变更疲于奔命, 天天产出一堆电子垃圾.

在有测试和代码评审的情况下一般也就满足到2层(安全); 到第3层(可读)能写出有可读性的代码的码农都已经凤毛麟角了

如果你能达到第4层(优雅) 没个10年苦功夫是很难达到这层次的

第五层是什么水平的人? 看看那些开源项目的committer 这些人不断在输出自己的能力, 丰富整个各种开源社区的生态

Linus
Linus

看看程序员的5层境界, 可以给我们的能力提升一个非常好的指引

如果你的目标永远都只是第1层(正确) 仅仅满足于程序的正确性, 恐怕你的能力永远得不到提升, 在工作中永远在当救火员, 你的程序一直处于按下葫芦浮起瓢的状态

所以我们一开始就要把目标定在第3层(可读), 甚至第4层(优雅), 努力的向正确的方向前进

其实到了第四层之后, 程序员之路就永远没有止境了

愿祖师爷保佑你
愿祖师爷保佑你
- END -

分类:

后端

标签:

后端

作者介绍

钢铁直男兽
V1