这绝对是主观的,但我想尽量避免它变成争论。我认为如果人们恰当地对待它,这将是一个有趣的问题。

这个问题的想法来自于我对“你最讨厌的语言的哪五件事?”问题的回答。我认为c#中的类在默认情况下应该是密封的——我不会把我的理由放在这个问题上,但我可能会写一个更完整的解释来回答这个问题。我对评论中的讨论热度感到惊讶(目前有25条评论)。

那么,你有什么有争议的观点?我宁愿避免那些基于相对较少的基础而导致相当宗教的事情(例如,大括号放置),但例如可能包括“单元测试实际上并没有多大帮助”或“公共字段确实是可以的”之类的事情。重要的是(至少对我来说)你的观点背后是有理由的。

请提出你的观点和理由——我鼓励人们投票给那些有充分论证和有趣的观点,不管你是否恰好同意这些观点。


当前回答

“程序员必须把编程作为副业,否则他们永远都不如做编程的人。”

就像kpollock说的,想象一下对于医生或士兵来说……

最重要的不是他们是否编码,而是他们是否思考编码。计算科学是一种智力练习,你不一定需要编写代码来思考使你成为更好的程序员的问题。

这并不像爱因斯坦在他的研究之外还能玩粒子和波。

其他回答

我也认为在源代码控制中使用二进制文件并没有什么错。如果有充分的理由的话。如果我有一个程序集,我没有源代码,并且可能不一定在每个devs机器上的相同位置,那么我通常会将它放在“二进制”目录中,并使用相对路径在项目中引用它。

相当多的人似乎认为我应该被烧死在火刑柱上,因为我甚至在同一个句子中提到了“源代码控制”和“二进制”。我甚至知道一些地方有严格的规定,说你不能添加它们。

UML图被高度高估了

当然有一些有用的图,例如复合模式的类图,但是许多UML图是绝对没有价值的。

软件开发人员、编码员、程序员、架构师之间没有区别……

我在酵母行业工作过10多种,但仍然觉得试图区分这些“角色”是绝对愚蠢的。你写代码?你是开发人员。你整天都在画漂亮的UML图。你是个…嗯. .我不知道你是谁,你可能只是想给别人留下好印象。(是的,我知道UML)。

设计模式是石器时代编程语言设计的一个症状

他们有自己的目的。很多优秀的软件都是用它们开发出来的。但事实上,我们需要编写这些心理抽象的“配方”,关于你的代码如何工作/应该如何工作,这说明缺乏足够有表现力的编程语言来为我们处理这种抽象。

补救措施,我认为,在于允许你将越来越多的设计嵌入到代码中的语言,通过定义可能不存在或可能没有普遍适用性,但在你的代码不断处理的情况下真的真的有意义的语言结构。Scheme的人已经知道这一点很多年了,Scheme宏可能会让大多数猴子尿裤子。

清理和重构在(团队)开发中非常重要

A lot of work in team development has to do with management. If you are using a bug tracker than it is only useful if someone takes the time to close/structure things and lower the amount of tickets. If you are using a source code management somebody needs to cleanup here and restructure the repository quite often. If you are programming than there should be people caring about refactoring of the lazy produced stuff of others. It is part of most of the aspects some will face while doing software development.

大家都同意这种管理的必要性。而且它总是被跳过的第一件事!