我已经在列表上工作了一段时间,这有助于我分享编程方法和想法的原因以及如何做某事.
为此,我想建立一个包含以下内容的列表:
这有助于程序员以最有效的方式分析,思考,接近,解决和实施.
我在Stack Overflow的整个问题中看到过几十个非常有价值的评论,但是找不到我们将它们放在一起的地方.Stack Overflow上有最有争议的观点.但是,我只是在寻找可以分享并帮助我的团队的圣人见解,并通过更好的编程来更好地解决问题.
希望这可以是一个收集一两个简洁,深刻且易于分享,重复,审查的衬垫的地方.如果我们按照每个答案保留一个规则,那么最简单的投票可能是最容易的.
我将从第一个开始.
干 - 不要重复自己 - 在代码,评论或文档中.
dw.*_*kie 32
吻 - 保持简单,愚蠢.
挑选一个最简单的解决方案工作.
在他们需要之前不要让事情(太)变得复杂.
仅仅因为其他人都在使用一些复杂的框架来解决他们的问题,并不意味着你必须这样做.
Wha*_*sit 26
除非有明显的问题,否则不要优化.
大多数时候,当人们在证明有必要之前尝试优化代码时,他们会花费大量资源,使代码更难以阅读和维护,并且不会产生明显的效果.有时它们甚至会使情况变得更糟.
"我们应该忘记小的效率,比如大约97%的时间:过早的优化是所有邪恶的根源."
- 唐纳德克努特
jfs*_*tos 16
我认为"Python的禅宗"中列出的几乎所有内容都适用于每个"编程思维规则"列表.从'python -c'开始导入这个'':
Tim Peters的Python之禅
Jen*_*and 15
测试驱动开发(TDD)使编码员在晚上睡得更好
Just to clarify: Some people seem to think TDD is just an incompetent coder's way of limping from A to B without borking everything up too much, and that if you know what you're doing, that means there is no need for (unit) testing methodologies. That completely misses the point of Test Driven Development. TDD is about three (update: apparently four) things:
重构魔法.拥有一整套测试意味着你可以制作疯狂的重构特技,在你的应用程序的整个结构中使用它,而不会错过由此产生的200个疯狂微妙副作用中的一个.即使是最优秀的程序员也不愿意在没有良好(单元)测试覆盖的情况下重构他们的核心类和接口,因为如果没有它们,它几乎不可能追踪它造成的所有小"涟漪效应".
及早发现陷阱.如果你以正确的方式编写测试,则意味着强迫自己考虑所有边缘情况.通常,一旦实际开发开始,这会导致更好的设计选择,因为编码器已经考虑了一些可能需要不同的继承结构或更灵活的设计模式的棘手情况.在初始规划和分析过程中,对这些变更的需求往往不明显 - 或直观 - 但这些确切的变化可以使应用程序更容易扩展和维护.
确保测试得到编写.TDD要求您在编写代码之前编写测试.当然,这可能是一种痛苦,因为编写测试与编写实际代码相比是繁琐的- 并且通常也需要更长时间.但是,这样做是确保测试完全写入的唯一方法.如果您认为在代码完成后您将记得编写测试,那么您几乎总是错的.
强迫你写出更好的代码.由于TDD强制所有代码都是可测试的(在对代码进行测试之前不编写代码),因此需要编写更多的解耦代码,以便您可以单独测试组件.所以TDD迫使你编写更好的代码.(谢谢,Esko)
Jen*_*and 13
惰性编码器的习惯
当你第一次被要求做某事时,做(右).
第二次要求您执行此操作时,请创建一个自动执行此操作的工具.
第三次,如果工具没有削减它,设计一个特定于域的语言来生成更多工具.
(不要太认真)
小智 7
经常进行代码审查
代码审查和随后的重构是一项持续的任务.在我看来,这里有一些关于代码审查的好东西:
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |