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

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

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

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


当前回答

我有争议的观点是,“While”结构应该从所有编程语言中删除。

你可以很容易地复制而使用“重复”和一个布尔标志,我只是不相信这是有用的,有两个结构。事实上,我认为同时拥有“重复……”直到”和“While..”一种语言中的EndWhile”会让新程序员感到困惑。

更新-额外说明

新程序员在使用While时常犯的一个错误是,他们认为一旦测试条件标记为false,代码就会中断。因此,如果While测试在代码进行到一半时标记为假,则假定While循环爆发。使用Repeat时就不会犯这么多错误。

只要只有一个循环类型,我实际上并不关心这两个循环类型中哪一个被保留。我选择Repeat而不是While的另一个原因是“While”功能用“Repeat”写比用“While”写更有意义。

第二次更新: 我猜,我是目前唯一一个得分为负的人,这意味着这实际上是一个有争议的观点。(不像你们其他人。哈!)

其他回答

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

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

使软件可配置是一个坏主意。

可配置软件允许最终用户(或管理员等)选择太多的选项,这些选项可能没有一起测试过(或者,如果有超过非常小的数量,我可以保证没有测试过)。

因此,我认为将配置硬编码(但不一定回避常量等)为JUST WORK的软件是一个好主意。使用合理的默认值运行,并且不允许更改它们。

一个很好的例子是谷歌Chrome上的配置选项的数量-然而,这可能仍然太多:)

很快我们就会在一个没有 数据库。 AOP和依赖注入是的GOTO 21世纪。 开发软件是一种社交活动 活动,而不是技术活动。 乔尔有一个博客。

一个文件一个类

谁在乎呢?我更喜欢把整个程序包含在一个文件中,而不是一百万个不同的文件。

80%的bug是在设计阶段引入的。 其余80%是在编码阶段引入的。

(这一观点的灵感来自于Dima Malenko的回答。“开发80%是关于设计,20%是关于编码”,没错。“这将产生几乎零错误的代码”,不。)