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

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

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

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


当前回答

分离关注点是邪恶的:)

如果你有充分的理由,那就分开考虑。否则,不要把它们分开。

我遇到过太多只为分离而分离的场合。Dijkstra的后半句“最小的耦合,最大的内聚”不应该被忘记。:)

很高兴进一步讨论这个问题。

其他回答

复制/粘贴不是反模式,事实上它有助于避免产生更多的错误

我的经验法则——只输入不能复制/粘贴的东西。如果创建类似的方法,类或文件-复制现有的并更改所需的内容。(我不是在谈论复制应该放在单个方法中的代码)。

我通常从不输入变量名——要么复制粘贴,要么使用IDE自动补全。如果需要一些DAO方法-复制类似的方法并更改所需的内容(即使将更改90%)。对某些人来说,这可能看起来是极度的懒惰或缺乏知识,但我几乎从来没有处理过由拼写错误引起的问题,而且它们通常很难捕捉(如果没有在编译级别检测到)。

每当我偏离我的复制粘贴规则,开始输入东西时,我总是拼写错误(这只是一个统计数据,没有人能立即写出完美的文本),然后花更多的时间试图找出哪里。

一个优秀的开发人员需要知道的不仅仅是如何编码

编码是一门艺术

一些人认为编码是一门艺术,而另一些人认为编码是一门科学。

“科学”派认为,既然目标是为某种情况获得最优代码,那么编码就是研究如何获得这种最优代码的科学。

“艺术”派认为,有很多方法可以获得最优的代码,这个过程充满了主观性,根据自己的技能和经验做出明智的选择是一种艺术。

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

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

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

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

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

使用C (/ c++)的人只有两种:一种是不懂其他语言的人,另一种是懒得学新语言的人。