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

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

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

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


当前回答

有时,接受一个异常是合适的。

对于UI来说,用错误消息提示用户是中断的,通常他们也没什么可做的。在这种情况下,我只是记录它,并在日志中出现时处理它。

其他回答

尊重单一责任原则

乍一看,你可能不认为这是有争议的,但根据我的经验,当我向另一个开发人员提到他们不应该在页面加载方法中做所有事情时,他们通常会拒绝……所以对于孩子们,请不要再用我们经常看到的“什么都做”的方法了。

和这里的大多数人一样,我尽量遵循DRY和不做人工编译器等原则。

我想推广的另一个策略是“告诉,不要问”。而不是混乱的所有对象与getter /setter本质上是他们的筛子,我想告诉他们做一些事情。

这似乎直接违背了具有愚蠢实体对象和较厚服务层的良好企业实践(这需要大量的请求)。嗯,想法?

全局变量和/或单例变量本身并不邪恶

我来自更多的系统管理员,shell, Perl(和我的“真正的”编程),PHP类型的背景;去年我被派去做Java开发工作。

单身是邪恶的。全球人太邪恶了,他们甚至不被允许。然而,Java有像AOP这样的东西,现在还有各种“依赖注入”框架(我们使用谷歌Guice)。AOP就不是这样了,但是DI的东西肯定会给你什么?全局变量。啊,谢谢。

使用设计模式和文档

在web开发中,这些东西有什么用,从来没有觉得有什么用

远离Celko!!!!

http://www.dbdebunk.com/page/page/857309.htm

我认为使用代理主键比使用“自然”主键更有意义。


@ocdecio: Fabian Pascal给出了(在他的书《数据库管理中的实际问题》的第三章中,引用于你链接的页面的第3点)作为选择键的标准之一,那就是稳定性(它总是存在并且不会改变)。当一个自然键不具有这样的属性时,必须使用一个代理键,原因很明显,您在注释中暗示了这一点。

你不知道他写了什么,你也懒得去检查,否则你会发现你实际上同意他的观点。这里没有什么争议:他说的是“不要教条主义,根据情况调整一般的指导方针,最重要的是,思考,用你的大脑,而不是教条主义/食谱/大师的话”。