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

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

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

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


当前回答

Linq2Sql并没有那么糟糕

我看到过很多诋毁Linq2Sql的帖子。我知道这并不完美,但什么才是完美的?

就我个人而言,我认为它有它的缺点,但总的来说,它可以很好地用于原型设计,或开发中小型应用程序。当我考虑到它为我从编写枯燥的DAL代码中节省了多少时间时,我不能抱怨,特别是考虑到我们不久前拥有的替代方案。

其他回答

我有两个:

设计模式有时是糟糕程序员编写糟糕代码的一种方式——“当你有一把锤子时,整个世界看起来都像钉子”的心态。如果有什么我讨厌听到的是两个开发人员通过模式创建设计:“我们应该使用命令与facade…”

不存在所谓的“过早优化”。你应该在你觉得这样做太痛苦之前对你的代码进行分析和优化。

编码是一门艺术

一些人认为编码是一门艺术,而另一些人认为编码是一门科学。

“科学”派认为,既然目标是为某种情况获得最优代码,那么编码就是研究如何获得这种最优代码的科学。

“艺术”派认为,有很多方法可以获得最优的代码,这个过程充满了主观性,根据自己的技能和经验做出明智的选择是一种艺术。

顾客并不总是对的。

在我处理的大多数情况下,客户是产品所有者,也就是“企业”。通常情况下,开发人员只是编写代码,而不试图在产品中提供既定的利益。人们有太多的误解,认为IT部门是“公司中的公司”,这完全是一堆垃圾。

I feel my role is that of helping the business express their ideas - with the mutual understanding that I take an interest in understanding the business so that I can provide the best experience possible. And that route implies that there will be times that the product owner asks for something that he/she feels is the next revolution in computing leaving someone to either agree with that fact, or explain the more likely reason of why no one does something a certain way. It is mutually beneficial, because the product owner understands the thought that goes into the product, and the development team understands that they do more than sling code.

这实际上已经开始引导我们走上提高生产力的道路。如何?由于双方的分歧已经改善了沟通,我们更有可能在过程中更早地走到一起,并就产品定义达成一个互利的解决方案。

显然我的想法是哈斯克尔有变量。这既是一个“无关紧要”的问题(根据至少8个SO用户的说法)(尽管似乎没有人能就哪个无关紧要的答案是正确的达成一致),也是一个糟糕的问题(根据至少5个反对者和4个投票关闭它的人的说法)。哦,我(以及计算科学和数学家)错了,尽管没有人能给我一个详细的解释。

未注释的代码是人类的祸害。

我认为注释对于代码是必要的。他们可视化地将其划分为逻辑部分,并在阅读代码时提供另一种表示方式。

文档注释是最低限度的,但是使用注释来分割较长的函数有助于编写新代码,并允许在返回现有代码时更快地分析。