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

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

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

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


当前回答

清理和重构在(团队)开发中非常重要

A lot of work in team development has to do with management. If you are using a bug tracker than it is only useful if someone takes the time to close/structure things and lower the amount of tickets. If you are using a source code management somebody needs to cleanup here and restructure the repository quite often. If you are programming than there should be people caring about refactoring of the lazy produced stuff of others. It is part of most of the aspects some will face while doing software development.

大家都同意这种管理的必要性。而且它总是被跳过的第一件事!

其他回答

我不知道这是否真的有争议,但这样如何:方法和函数名是你的代码可以拥有的最好的注释类型;如果您发现自己在写注释,请将注释的代码段转换为函数/方法。

这样做有一个令人愉快的副作用,它迫使你很好地分解你的程序,避免了可能很快与现实不同步的注释,为你提供了一些可以对代码库进行grep的东西,并为你的代码留下了新鲜的柠檬味。

应该始终使用基于1的数组,而不是基于0的数组。基于0的数组是不自然的、不必要的,而且容易出错。

当我数苹果、员工或小部件时,我从1开始,而不是0。我也这么教我的孩子。不存在第0个苹果或第0个员工或第0个部件。使用1作为数组的基更直观,也更不容易出错。忘掉加一减一的地狱吧(我们过去常这样称呼它)。基于0的数组是计算机科学发明的一种不自然的结构——它们不能反映现实,而计算机程序应该尽可能地反映现实。

在产品代码中没有反射的位置

反射破坏了静态分析,包括重构工具和静态类型检查。反射还打破了开发人员对代码的正常假设。例如:向类中添加一个方法(它不会影响类中的其他方法)应该永远不会有任何影响,但是当使用反射时,其他一些代码段可能会“发现”新方法并决定调用它。实际上,确定这样的代码是否存在是很难的。

我确实认为在代码生成器中使用反射和测试是很好的。

是的,这确实意味着我试图避免使用反射的框架。(Java缺乏适当的编译时元编程支持,这太糟糕了)

使用Stored Proc易于维护和较少的部署与使用ORM是面向对象的方式,因此它是好的

我在很多项目中都听到过这种说法,当这种说法出现时,总是很难解决。

懒惰的程序员是最好的程序员

懒惰的程序员通常会找到方法来减少花在写代码上的时间(尤其是大量相似或重复的代码)。这通常转化为公司/团队中的其他开发人员可以从中受益的工具和工作流。

当开发人员遇到类似的项目时,他可能会创建工具来引导开发过程(例如,创建一个与公司的数据库设计范例一起工作的DRM层)。

此外,诸如此类的开发人员经常使用某种形式的代码生成。这意味着同一类型的所有错误(例如,代码生成器没有检查所有方法上的空参数)通常可以通过修复生成器来修复,而不是修复该错误的50多个实例。

一个懒惰的程序员可能会多花几个小时来完成第一个产品,但会为你节省几个月的时间。