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

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

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

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


当前回答

使软件可配置是一个坏主意。

可配置软件允许最终用户(或管理员等)选择太多的选项,这些选项可能没有一起测试过(或者,如果有超过非常小的数量,我可以保证没有测试过)。

因此,我认为将配置硬编码(但不一定回避常量等)为JUST WORK的软件是一个好主意。使用合理的默认值运行,并且不允许更改它们。

一个很好的例子是谷歌Chrome上的配置选项的数量-然而,这可能仍然太多:)

其他回答

软件因为缺乏多样性而糟糕透顶。无意冒犯任何种族,但当一个职业由不同种族和性别组成时,事情就会很顺利。看看过度使用不可再生能源就知道了。这很好,因为每个人都在贡献,而不仅仅是“刻板的人”

糟糕的程序员是语言不可知论者

一个真正糟糕的程序员几乎可以用任何语言写出糟糕的代码。

代码中的大多数注释实际上是一种有害的代码复制形式。

我们花了大部分时间维护别人(或者我们自己)写的代码,糟糕的、不正确的、过时的、误导性的注释肯定是代码中最令人讨厌的工件列表的顶部。

我想最终很多人会忘记它们,尤其是那些花盒子里的怪物。

最好集中精力使代码可读,必要时进行重构,并尽量减少习惯用法和奇怪之处。

另一方面,许多课程告诉我们注释几乎比代码本身更重要,这就导致了下面这一行添加了一个注释到invoiceTotal风格。

递归最糟糕的地方就是递归。

应该禁止调试器。这将迫使人们编写可通过单元测试测试的代码,最终将导致更好的代码质量。

从所有编程ide中删除复制和粘贴。复制和粘贴代码是非常糟糕的,这个选项应该完全删除。然后程序员可能会懒得重新输入所有的代码,所以他会创建一个函数并重用代码。

无论何时使用单例,都要给自己一个耳光。单例几乎从来没有必要,大多数时候只是全局变量的花哨名称。