调查:程序员需要知道的97件事,你知道几件?

有一次Kevlin Henney在检查代码中的疏漏,发现自己不知不觉地在嘀咕“该死的,这是每个程序员都需要知道的事情!”(当然了,一开始的感觉是非常强烈的),这就是Kevlin Henney发起“每个程序员都需要知道”的活动的灵感。“程序员需要知道的97件事”是由众人群策群力并发布到wiki上,大家可以对其进行编辑,然后从中选取97个条目做出图书出版。

这97条每条都是对作为软件开发程序员的必修知识,就算你不是非常了解这97条里每条包含的具体知识,但只要看着这简短的标题,相信也应该有是曾相识的感觉。

那么,究竟这97条里你都知道那些呢?

谨慎行动
函数式编程原则的应用
试问自己“用户会怎么做?”(你不能算是用户)
编码标准的自动化
美在于简单
重构
谨防共享
童子军规则
在责备别人之前先检查自己的代码
谨慎选择你的工具
领域语言里的代码
代码就是设计
代码布局风格
代码审查
编写代码的理由
对注释的一个注释
代码说不清,注释来补充
不断学习
易用不是一种能力
早部署,常部署
区分业务异常和技术异常
有针对性地勤加练习
领域特定语言
不要怕搞砸
不要在你的测试代码里装可爱
不要忽略任何错误
不要只学习语言,还要了解它的文化内涵
不要把程序钉死在老地方
不要指望“魔法会在此发生”
不要重复你自己
别碰那些代码!
封装行为,而不仅仅是状态
浮点数不是真正的数
开源助你实现雄心壮志
API设计的黄金法则
高手神话
加班加点,事倍功半
如何使用bug跟踪器
代码的去芜存菁
安装我吧
进程间通信对应用程序响应时间的影响
保持构建的整洁
知道如何使用命令行工具
通晓两门以上编程语言
了解你的IDE
了解你的局限性
知道你下次提交的内容
大型、相关联的数据 属于数据库
学习外语
要学会估算
学着说“Hello,World”
让你的项目能表达它自己
链接器(Linker)并不神秘
临时解决方案的寿命
使接口易于正确使用,难于错误使用
让不可见的更加显眼
在并行系统中使用消息传递可获得更好的伸缩性
带给未来的消息
错失采用多态的机会
奇闻轶事:测试人员是你的朋友
二进制文件仅此一份
有代码有真相
拥有(以及重构)构建脚本
结对编程,感受流程
特定领域类型胜过原始类型
预防错误
专业程序员
把一切都置于版本控制之下
放下鼠标,远离键盘
阅读代码
读懂人性
经常重新发明轮子
抗拒单子模式的诱惑
通向高性能之路布满了脏代码炸弹
简单来自于删减
单一职责原则
从Yes开始
请转回去做自动化、自动化、自动化
充分利用代码分析工具
为必需行为测试,而不是偶发行为
测试要严密而具体
在睡觉的时候(或者度周末的时候)进行测试
软件开发的工程严密性来自测试
关于状态的思想
一人计短,二人计长
错上加错就是貌似正确(并且难以纠正)
我写代码为人人,人人为我写代码
Uinx工具是你的好朋友
使用正确的算法和数据结构
冗长的日志会让你睡不安枕
WET掩盖了性能瓶颈
当程序员和测试人员开始合作的时候
编写代码时要像余生都要给它提供支持一样
使用实例编写小函数
测试为人而写
你应该关心你的代码
客户心口不一

作为程序员,一件都不知道,这是不可能的,或者如果你不是程序员,那就另当别论了。

统计结果(959人/次)

57%
1%
别碰那些代码!
1%
不要在你的测试代码里装可爱
1%
不要怕搞砸
1%
对注释的一个注释
2%
不断学习
7%
谨慎行动
1%
学着说“Hello,World”
1%
高手神话
1%
放下鼠标,远离键盘
1%
阅读代码
1%
你应该关心你的代码
2%
重构
3%
函数式编程原则的应用
1%
错失采用多态的机会
1%
API设计的黄金法则
1%
请转回去做自动化、自动化、自动化
1%
简单来自于删减
1%
通向高性能之路布满了脏代码炸弹
1%
经常重新发明轮子
1%
把一切都置于版本控制之下
1%
专业程序员
1%
预防错误
1%
有代码有真相
1%
临时解决方案的寿命
1%
要学会估算
1%
学习外语
1%
知道你下次提交的内容
1%
了解你的局限性
1%
了解你的IDE
1%
通晓两门以上编程语言
1%
知道如何使用命令行工具
1%
保持构建的整洁
1%
如何使用bug跟踪器
1%
加班加点,事倍功半
1%
开源助你实现雄心壮志
1%
浮点数不是真正的数
1%
不要重复你自己
1%
不要指望“魔法会在此发生”
1%
不要把程序钉死在老地方
1%
不要只学习语言,还要了解它的文化内涵
1%
不要忽略任何错误
1%
领域特定语言
1%
区分业务异常和技术异常
1%
早部署,常部署
1%
代码说不清,注释来补充
1%
编写代码的理由
1%
代码审查
1%
代码布局风格
1%
代码就是设计
1%
领域语言里的代码
1%
谨慎选择你的工具
2%
在责备别人之前先检查自己的代码
2%
美在于简单
1%
编码标准的自动化
3%
试问自己“用户会怎么做?”(你不能算是用户)
1%
Uinx工具是你的好朋友
1%
使用正确的算法和数据结构
1%
软件开发的工程严密性来自测试
1%
充分利用代码分析工具
1%
让你的项目能表达它自己
1%
代码的去芜存菁
1%
封装行为,而不仅仅是状态
1%
有针对性地勤加练习
1%
谨防共享
1%
错上加错就是貌似正确(并且难以纠正)
1%
安装我吧
1%
易用不是一种能力
1%
编写代码时要像余生都要给它提供支持一样
1%
一人计短,二人计长
1%
进程间通信对应用程序响应时间的影响
1%
童子军规则
1%
在睡觉的时候(或者度周末的时候)进行测试
1%
关于状态的思想
1%
客户心口不一
1%
二进制文件仅此一份
1%
从Yes开始
1%
让不可见的更加显眼
1%
当程序员和测试人员开始合作的时候
1%
测试要严密而具体
1%
结对编程,感受流程
1%
奇闻轶事:测试人员是你的朋友
1%
大型、相关联的数据 属于数据库
1%
链接器(Linker)并不神秘
1%
使接口易于正确使用,难于错误使用
1%
使用实例编写小函数
1%
单一职责原则
1%
测试为人而写
余下全文(1/3)
分享这篇文章:

请关注我们:

共有 962 条讨论

  1. 逸之  这篇文章
  2. leo  这篇文章
  3. 梁来宾 对这篇文章的反应是赞一个

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注