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

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

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

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


当前回答

当许多新技术出现时,我对它们的了解只够决定我现在是否需要它们。

如果没有,我就把它们放在一边,直到“早期采用者”把粗糙的边缘去掉,然后每隔几个月/几年再检查一次。

其他回答

你需要提防对象痴迷的程序员。

例如,如果你写了一个类,对内置类型(如int或float)建模,你可能是一个迷恋对象的程序员。

单身人士并不邪恶

There is a place for singletons in the real world, and methods to get around them (i.e. monostate pattern) are simply singletons in disguise. For instance, a Logger is a perfect candidate for a singleton. Addtionally, so is a message pump. My current app uses distributed computing, and different objects need to be able to send appropriate messages. There should only be one message pump, and everyone should be able to access it. The alternative is passing an object to my message pump everywhere it might be needed and hoping that a new developer doesn't new one up without thinking and wonder why his messages are going nowhere. The uniqueness of the singleton is the most important part, not its availability. The singleton has its place in the world.

System.Data.DataSet岩石!

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

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

如果以后可以节省3倍的时间,那就只写抽象。

有时我看到人们写出这些疯狂的抽象概念,我就会想:“为什么?”

除非抽象真的能在以后节省你的时间,或者它能节省维护你代码的人的时间,否则人们似乎只是越来越多地编写意大利面条式的代码。

对于一个优秀的程序员来说,语言不是问题。

这可能不是很有争议,但我听到很多其他程序员的抱怨,比如“为什么他们不都用delphi?”,“c#糟透了”,“如果他们强迫我用java,我就会换公司”等等。 我所认为的是,一个好的程序员是灵活的,能够用他一生中可能不得不学习的任何编程语言编写好的程序