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

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

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

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


当前回答

可读性是代码最重要的方面。

甚至比正确性更重要。如果它是可读的,就很容易修复。它也很容易优化,容易改变,容易理解。希望其他开发者也能从中学到一些东西。

其他回答

显然,IDE应该在浪费时间编译之前检查他们是否可以链接他们创建的代码,这是有争议的

但我的观点是,我不应该编译无数行代码才意识到Windows对我试图创建的文件有一个锁,因为另一个程序员有一些奇怪的线程问题,要求他在dll不应该被使用后延迟卸载3分钟。

goto有一些(非常少)合法的用途(特别是在C中,作为异常处理的替身)。

控制反转并不能消除依赖关系,但它确实很好地隐藏了依赖关系。

开发人员过度使用数据库

通常情况下,开发人员在DBMS中存储的数据应该以代码或文件的形式存在。我曾经见过一个一列一行的表,它存储“系统密码”(与用户表分开)。我看到过存储在数据库中的常量。我见过的数据库足以让一个成年程序员哭出来。

这些讨厌的程序员对DBMS有一种神秘的敬畏——数据库可以做任何事情,但他们不知道它是如何工作的。dba实践一种黑魔法。它还允许责任转移:“数据库太慢了”,“是数据库做的”和其他借口是常见的。

如果不加检查,这些程序员就会继续开发数据库中的数据库,系统中的系统。(这个反模式有一个名字,但我忘了它是什么。)

MS Access*是一个真正的开发工具,专业程序员可以毫无羞耻地使用它

仅仅因为某个平台吸引了自认为是程序员的黑客和秘书,就不应该玷污这个平台本身。每个平台都有其优点和缺点。

那些抱怨某些平台或工具或将其贬低为“玩具”的程序员更有可能对自己的手艺知之甚少,而不是他们的自我意识所说服的那样。对我来说,听到一个程序员抨击任何他们自己没有广泛使用过的环境是一种过度自信的表现。

*在这里插入任何恶意工具(VB, PHP等)。