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

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

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

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


当前回答

使用匈牙利符号应处以死刑。

这已经足够有争议了;)

其他回答

工具、方法论、模式、框架等等都不能代替一个训练有素的程序员

我厌倦了与那些认为最新的工具、方法、模式或框架是一颗银弹的人(主要是经理)打交道,他们可以消除雇佣有经验的开发人员来编写软件的需求。不过,作为一名以拯救风险项目为生的顾问,我不应该抱怨。

没有面向对象编程这种东西。

如果你只能想到一种方法,那就别去做。

无论是一个界面布局,一个任务流,还是一段代码,都可以停止。做一些事情来收集更多的想法,比如询问其他人他们会怎么做,在你至少有三个完全不同的想法和至少一次信心危机之前,不要回去实施。

一般来说,当我认为某件事只能以一种方式完成,或者认为只有一种方法有任何优点时,那是因为我没有充分考虑应该彻底影响设计的因素。如果我这样做了,其中一些显然会发生冲突,导致混乱,从而做出实际的决定,而不是死记硬背的违约。

成为一个优秀的程序员并不意味着你就是一个优秀的界面设计师

遵循世界上所有的界面指南只会开始有所帮助。如果这是人类可能做到的…人们似乎有一种特殊的嗜好,就是把东西变得“可爱”和“聪明”。

我们在这里使用我们构建的模型-视图-控制器框架进行了大量的开发。我经常告诉我的开发人员,我们需要违反MVC设计模式的规则,以使网站运行得更快。这对开发人员来说是很难接受的,他们通常不愿意牺牲设计良好的代码。但是性能是我们构建web应用程序的首要任务,所以有时我们不得不在框架上做出让步。

例如,视图层永远不应该直接与数据库对话,对吗?但是,如果你要生成大型报告,应用程序将使用大量内存来通过模型层和控制器层传递数据。如果你有一个支持游标的数据库,它可以让应用程序更快地直接从视图层访问数据库。

性能胜过开发标准,这是我有争议的观点。

并不是所有东西都需要封装到自己的方法中。有时候让一个方法做不止一件事是可以的。