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

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

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

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


当前回答

源代码控制:除了SourceSafe

另外:排他锁定是邪恶的。

我曾经在某个地方工作过,他们认为排他锁意味着您可以保证当您签入时,人们不会覆盖其他人的更改。问题在于,为了完成任何工作,如果文件被锁定,开发人员只会在有机会时将本地文件更改为可写,并合并(或覆盖)版本的源代码控制。

其他回答

优秀的程序员讨厌编码

类似于“优秀的程序员是懒惰的程序员”和“代码越少越好”。但是,通过遵循这一理念,我成功地编写了一些应用程序,否则这些应用程序可能会使用几倍的代码(并花费几倍的开发时间)。简而言之:在编写代码之前先思考。我自己的程序中大部分后来导致问题的部分实际上是我喜欢编码的部分,因此代码太多,因此写得很糟糕。就像这一段。

优秀的程序员是设计师

我发现编程使用与设计相同的概念(在艺术中使用相同的设计概念)。我不确定其他程序员是否也有同样的想法;也许这是左右脑的问题。从代码到命令行用户界面,再到图形用户界面,有太多丑陋的程序,很明显,这些程序的设计者实际上并不是设计者。

尽管在这种情况下,相关性可能并不意味着因果关系,但我注意到,随着我在设计方面变得更好,我在编码方面也变得更好。让事情变得合适和感觉良好的相同过程可以也应该用于这两个地方。如果代码感觉不对,它就会引起问题,因为要么a)它是不对的,要么b)你会假设它以一种“感觉对”的方式工作,然后它又会不正确。

艺术和代码并不是对立的;代码可以用在艺术中,代码本身也可以是一种艺术形式。

免责声明:不幸的是,并非我的所有代码都很漂亮或“正确”。

只有一种设计模式:封装

例如:

工厂方法:您已经封装了对象创建 策略:封装了不同的可变算法 迭代器:您封装了按顺序访问集合中的元素的方法。

复制/粘贴是万恶之源。

应该要求所有项目经理都有编码任务

在我工作过的团队中,项目经理实际上是一个程序员,他非常了解代码的技术问题,足以完成编码任务,所做的决策缺乏沟通脱节,而在项目经理不参与代码的团队中经常发生这种情况。

删除类。 . net Framework中隐式处理异常的类的数量(类的方法)。和一个哑巴共事是很困难的。