从科技爱好者周刊(第 156 期):显卡缺货与异业竞争看到的关于代码的马斯洛金字塔这种说法;搬运过来方便自己随时阅读;
原文是代码的马斯洛金字塔;
内容如下:
As in Maslow’s pyramid, each layer requires the previous one. It is useless for code that is charging the wrong customer to be readable.
Code should be:

  • Correct: does the code do what it’s supposed to? Does it handle edge cases? Is it adequately tested to make sure that it stays correct even when other engineers modify it? Is it performant enough for this use case?
  • Secure: does the code have vulnerabilities? Is the data stored safely? Is personal identification information (PII) handled correctly? Could the code be used to induce a DOS? Is input validation comprehensive enough?
  • Readable: is the code easy to read and comprehend? Does it make clear what the business requirements are (code is written to be read by a human, not by a computer)? Are tests concise enough? Are variables, functions and classes named appropriately? Do the domain models cleanly map the real world to reduce cognitive load? Does it use consistent coding convention?
  • Elegant: does the code leverage well-known patterns? Does it achieve what it needs to do without sacrificing simplicity and conciseness? Would you be excited to work in this code? Would you be proud of this code?
  • Altruist: does the code leave the codebase better than what it was? Does it inspire other engineers to improve their code as well? Is it cleaning up unused code, improving documentation, introducing better patterns through small-scale refactoring?
    Update Feb 18th: there’s some great comments on reddit about this. I removed the notion of large refactor because I think small refactors have a higher probability of success. I also added a comment about why layering matters.
    周刊中翻译以及配图为:
    马斯洛金字塔是美国心理学家马斯洛提出的一个心理学模型,认为人类的心理需求从下往上分为5个层次,一旦实现了下层的需求,就会追求上一层的需求。

    这五个层次依次是:生理需求、安全需求、社交需求、尊严需求、自我实现。
    代码质量也可以用金字塔模型表示,从下往上有五个层次。

    (1)第一层:正确(Correct)
    代码是否执行预期的工作?是否考虑了边缘情况?是否经过充分测试?是否有可维护性?是否有可接受的性能?
    (2)第二层:安全(Secure)
    代码是否存在漏洞?数据是否安全存储?个人识别信息(PII)是否得到正确处理?是否对用户的输入进行了全面的验证?
    (3)第三层:可读(Readable)
    代码是否易于阅读和理解?测试足够简洁吗?变量、函数、类的名称是否适当?使用领域模型是否可以清晰地映射现实世界,以减少认知负担?是否使用一致的编码风格约定?
    (4)第四层:优雅(Elegant)
    代码是否利用了众所周知的编程模式?能否更简单简洁地实现所需的功能?你会为编写这些代码感到兴奋吗?你为这些代码感到骄傲吗?
    (5)第五层:利他主义(Altruist)
    别人能否从这些代码学到东西?这些代码是否会激励其他工程师进行改进?它是否会让世界变成一个更好的地方?

转载-代码的马斯洛金字塔相关推荐

  1. 马斯洛金字塔的大秘密

    废话不多说,直接切主题: (以上图片为UCD课件内容) 亚伯拉罕·马斯洛在1943年在<人类激励理论>论文中所提出.人类需求像阶梯一样从低到高,按层分为五种:生理需求.安全需求.社交需求. ...

  2. c语言字母金字塔代码,打印字母金字塔,昨晚看到某个帖子的题目

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 编程实现打印字母金字塔 如以下形式: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA AB ...

  3. 第七章 马斯洛金字塔模型

    一.马斯洛需求层级 马斯洛的需求层次结构是心理学中的激励理论,包括人类需求的五级模型,通常被描绘成金字塔内的等级.从层次结构的底部向上,需求分别为:生理(食物和衣服),安全(工作保障),社交需要(友谊 ...

  4. KNN算法与Kd树(转载+代码详细解释)

    最近邻法和k-近邻法 下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类? 提供一种思路,即:未知的豆离哪种豆最近就认为未知豆和该豆是同一种类.由此,我们引出最近邻算法的定义:为了判定未知 ...

  5. 《腾讯数字生活报告2019》发布,互联网时代新马斯洛需求金字塔预示什么?

    来源:腾讯研究院 5月22日,腾讯研究院.腾讯应用宝.腾讯开放平台联合出品的<腾讯数字生活报告2019>在腾讯全球数字生态大会应用生态主题论坛上发布,报告从生存.关系.发展三个层级解读了大 ...

  6. 星号塔php,PHP实现星号金字塔代码分享

    PHP实现星号金字塔代码分享 发布时间:2020-05-20 16:16:17 来源:亿速云 阅读:216 作者:鸽子 对于很多PHP初学者来说,初期阶段培养逻辑思维能力是非常有必要的.用PHP代码来 ...

  7. 各类软件马斯洛需求层次分析_马斯洛的软件开发需求层次

    各类软件马斯洛需求层次分析 I've been experimenting with my diet a little and considering a Paleo diet. What an am ...

  8. java用1234组成,用javasecp代码展现数字1234可以组成多少个三位数

    这个数字代码是什么意思,如图 就是数字啊600717再问:刚才查了是股票的代码 "展现自我"用英语怎么说 Shiningyourself.我一个外国同事告诉我的. 求E语言数字全排 ...

  9. 上采样和下采样_OpenCV学习笔记(一)之图像金字塔-上采样与降采样与DOG

    一. 图像金字塔 一个图像金字塔式一系列的图像组成,最底下的图形尺寸最大,最上方的图像尺寸最小. 高斯金字塔是从底向上,逐层降采样得到的. 高斯金字塔的生成过程分为两步: 对当前层进行高斯模糊. 删除 ...

最新文章

  1. numpy数组切片:一维/二维/数组
  2. 中国无人机“老炮儿”回忆录
  3. 哈夫曼树实现压缩文件
  4. Openstack数据库管理工具alembic更新Enum类型
  5. Ubuntu14.04安装GitLab指南
  6. python numpy数组转换成列表方法 object.tolist()函数
  7. 北京 | 一场产品经理必听的实战交流会!
  8. 想进入谷歌吗?先来看看这些面试题吧
  9. (转)zabbix3.4使用percona-monitoring-plugins监控mysql
  10. Knative Service 是如何指定端口和协议的
  11. 图的深度优先搜索(DFS)和广度优先搜索(BFS)算法
  12. RELL软件测试初学者化妆品,浅析软件测试流程在高校软件测试工作室中的应用...
  13. Touch事件分发源码解析
  14. UNIX操作系统中,文件的索引结构放在( )
  15. matlab电磁场与微波技术仿真pdf,MATLAB电磁场与微波技术仿真
  16. 群智能(SI)与蚁群优化(ACO)概述
  17. QT项目之创建.pri文件
  18. [python] 做一个写诗歌的网页
  19. 海思HI3536 audio 双声道播放音频
  20. 大学教务人员管理系统(C++实现)

热门文章

  1. 高速工业相机应用领域
  2. java highchart统计图_java+highchart实现分类下钻柱形图
  3. 又一年的五一劳动节!
  4. Error attempting to get column 'state' from result set
  5. 电影成O2O圈地利刃 百度糯米影业进入加速快车道
  6. 对应的cuda版本 显卡驱动版本_cuda和显卡驱动版本
  7. 学习coreldraw
  8. 三星Android Pie软件,三星开始向欧洲Galaxy S9用户推送Android Pie稳定版更新包
  9. LightOJ 1336 Sigma Function
  10. 【Eclipse】--Eclipse简介和安装