PIE

英文:Program Intently and Expressively

中文:编程要表达出意图

是什么

在写代码时,明确表达意图十分重要,这与写诗、写随笔、写博客和写信是一个道理。

这是因为代码是写给人看的,而不是写给编译器看的。

因此,在写代码的时候要在表达上多花心思,将软件运行方式直接地传送给阅读代码的人。

为什么

代码是我们正确、完整地了解软件运行方式的唯一线索。

软件开发过程中虽然会创建诸多文档,但这些文档并不能帮助我们正确认识软件是如何运行的。

需求定义文档只描述了需要什么东西。

基本设计文档只描述了用什么样的软件来实现需求。

详细设计文档只描述了成品软件是什么样的结构,详细设计文档虽然与代码最接近,但代码是动态变更的,而详细设计文档往往做不到同步,更何况并非每个项目都有详细设计文档。所以说详细设计文档并不是百分百存在且百分百有用的。

到头来我们只能通过阅读代码来掌握软件的运行情况。因此,编写可读性高的代码,用代码表达意图是唯一可取的方法。

怎么做

把提高代码可读性作为第一要务。重视代码的可读性,而不是代码的易写性。

读代码的次数远比写代码的次数多。“读代码的效率”应优先于“写代码的效率”。“读代码的效率”同样优先于“执行代码的效率”,因为如果代码的可读性高,提高代码的执行效率也会变得容易一些。

将代码的可读性放在第一位,就意味不能为了炫耀才华而写一些让人难懂的代码。刚学会新技术时,人们容易落入陷阱,明知学会的新技术用不上还炫耀一下。不能让人读懂的代码不是好代码,只有能够向读者准确表达意图的代码,才是好代码。

PIE原则——编程要表达出意图相关推荐

  1. 代码命名,代码里的命名规则:错误的和正确的对比 命名方法总结 “自我描述的源代码”用代码表达出你的思想,让其他人通过代码能明白你的意图。...

    http://www.aqee.net/express-names-in-code-bad-vs-clean/ 编程初学者总是把大量的时间用在学习编程语言,语法,技巧和编程工具的使用上.他们认为,如果 ...

  2. 绍耕反失败学课程(02)——对女孩积极的表达出自己的欲望

    心理学上有一个被称为"心流"的概念,可以解释人做事的投入和专注提升的心境.首先喜欢,要不喜欢,做起来以后就不那么执着了.本反失败学系列课程的第02讲,最重要的就是,要主动开拓渠道找 ...

  3. python求组合数c(m、n)编程题_c语言编程问题,计算出从n 个不同元素中取出m 个元素(m≤n)的组合数。编写程序...

    题目: c语言编程问题,计算出从n 个不同元素中取出m 个元素(m≤n)的组合数。编写程序 根据下列公式可以计算出从n 个不同元素中取出m 个元素(m≤n)的组合数。编写程序,输入2 个正整数m 和n ...

  4. 分享:从编程中悟出的八字箴言

    我从编程中悟出八个字:1专   2静   3谦   4筹   5悟   6慎   7透   8恒 . 1."忽如一夜春风来,千树万树梨花开./"现在的技术百花齐放,切忌不可贪. 不 ...

  5. 【Python】有红、黄、绿三种颜色的球,编程计算摸出球的各种颜色搭配

    Python三色球问题 题目 代码 结果 题目 有红.黄.绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿 球 6 个.先将这 12 个球混合放在一个盒子中,从中任意摸 出 8 个球,编程计算摸出 ...

  6. 【C语言基础练习】有红、绿、蓝三种颜色的球各3个。现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配。

    有红.绿.蓝三种颜色的球各3个.现在将着9个球混合放在一个盒子中,从中任意摸出6个,编程计算摸出球的各种颜色搭配. 1 #include<stdio.h>2 int main()3 {4 ...

  7. 怎样用计算机表白我爱你,高级表白密码,教你如何用数字表达出我爱你

    现在已经是21世纪了,表白还是那句简简单单的"我爱你"难免太过无趣和俗套,今天小编就分享一套高级表白密码给大家,教大家如何用数字表达出我爱你. 57301314 我喜欢你一生一世 ...

  8. 计算机可以编程游戏吗,我的世界真正的大神,在游戏中编程,制作出能玩的单机游戏...

    原标题:我的世界真正的大神,在游戏中编程,制作出能玩的单机游戏 都知道,我的世界是一款沙盒建造类游戏,从2009年发行至今,有着不错的热度和源源不断的玩家涌入.虽然游戏中所呈现的并不是华丽精致高清的特 ...

  9. 有红、黄、绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。1. 输出情况总数;2.输出摸取情

    内容1:有红.黄.绿三种颜色的球,其中红球 3 个, 黄球 3 个,绿球 6 个.先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配.1. 输出情况总数;2.输 ...

最新文章

  1. 模板 - 数学 - 数论 - 莫比乌斯反演 - 2
  2. before伪类的超有用应用技巧——水平菜单竖线分隔符
  3. 中断处理函数中自旋锁的应用
  4. Python时间库—datetime的详解及使用
  5. springboot整合JWT使用
  6. 什么是光纤通道交换机(FC SWITCH)
  7. java并发中的延迟初始化
  8. win10如何查看文件夹的大小 - 方法大全
  9. DOM克隆操作(深克隆/浅克隆)
  10. C# 对垒 VB.NET C#不行了?
  11. 【半年总结】愿有岁月可回首
  12. 从数据类型 varchar 转换为 numeric 时出错.
  13. a letter and a number
  14. 阿里巴巴矢量图标库使用
  15. CGAL Arrangements and Their Applications: A Step-By-Step Guide
  16. 开关电源学习笔记9 --- SPEIC变换器
  17. System.Windows.Forms.DataVisualization.Charting.Chart
  18. 计算机图形学(四)几何变换_3_矩阵逆变换
  19. 电磁功率流和坡印廷矢量
  20. [双系统]安装双系统的步骤及注意事项(含分区工具介绍)

热门文章

  1. hive元数据报错?试了很多方法都没辙?也许你漏了这一步
  2. 给小朋友做的一个很简单的游戏
  3. win10远程桌面时出现:你的凭证不工作
  4. 高效办公之高效笔记软件:OneNote教学详解
  5. HttpClient 重定向 302
  6. c语言产生32位随机数,C语言,如何产生随机数
  7. 算符优先分析法实现给定表达式的分析识别(Python)
  8. python exit code 1602_树莓派1602lcd实验
  9. SATA,SAS,IDE,SCSI硬盘接口
  10. 天坑专业学IC设计自学的话有公司会要吗