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

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

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

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


当前回答

意识到有时候足够好就是足够好,这是你作为程序员价值的一大飞跃。

请注意,当我说“足够好”时,我的意思是“足够好”,而不是碰巧有用的垃圾。但话又说回来,当你时间紧迫的时候,“一些碰巧有用的垃圾”可能被认为是“足够好的”。

其他回答

不要注释你的代码

注释不是代码,因此当事情发生变化时,不改变解释代码的注释是很容易的。相反,我更喜欢将代码中的垃圾重构到不需要注释的程度。一个例子:

if(data == null)  // First time on the page

to:

bool firstTimeOnPage = data == null;
if(firstTimeOnPage)

我唯一一次真正的评论是当它是一个TODO或解释为什么

Widget.GetData(); // only way to grab data, TODO: extract interface or wrapper

世界需要更多的goto

人们虔诚地避免goto,除了“我的教授告诉我goto不好”之外,没有其他理由。它们有一个目的,可以在很多地方极大地简化生产代码。

也就是说,在你所编写的99%的代码中,它们都是不必要的。

好的建筑是生长出来的,而不是设计出来的。 经理们应该确保他们的团队成员总是在低于他们的技术水平的情况下工作,无论这个水平是什么。当人们在自己的舒适区工作时,他们就能写出更高质量的代码。

不是很有争议,但是… AJAX早在这个术语被创造出来之前就已经存在了,每个人都需要“放手”。人们用它做各种各样的事情。但是没有人真正关心它。

然后突然嘣!有人创造了这个术语,每个人都加入了AJAX的潮流。突然之间,人们成了AJAX的专家,好像动态加载数据的“专家”以前并不存在似的。我认为这是导致互联网被残酷摧毁的最大因素之一。还有“Web 2.0”。

System.Data.DataSet岩石!

在我看来,对于大多数业务应用程序,强类型数据集比自定义DDD对象更好。

推理:我们在自定义对象、LINQ to SQL、实体框架上绞尽脑汁地寻找工作单元,这增加了复杂性。使用一个好的代码生成器来生成数据层,工作单元位于对象集合(DataTable和DataSet)上——这并不神秘。