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

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

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

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


当前回答

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

其他回答

XML和HTML是web的“汇编语言”。为什么还要黑它?

很明显,现在很少有开发人员学习汇编语言/编写代码,因为它很原始,并且使您远离必须在高层解决的问题。所以我们发明了高级语言来封装这些级别的实体,通过我们可以在更高级别上联系到的语言元素来提高我们的工作效率。就像我们可以用计算机做更多的事情,而不仅仅是它的组成部分主板或CPU。

对于Web,在我看来,开发人员仍然在阅读/编写和破解HTML、CSS、XMl、模式等。

我认为这些语言相当于Web或其基础的“汇编语言”。 我们该结束了吗?当然,当出现问题时,我们有时需要破解它。 但可以肯定的是,这是个例外。 我断言,我们正在用等价的web级汇编语言取代机器级的低级汇编语言。

“一切都应该尽可能简单,但不能更简单。”——爱因斯坦。

估计是给我的,不是给你的

作为开发部门经理,评估对我来说是一个有用的工具,可以用来计划我的团队正在做什么。

它们不是在特定日期交付特性的承诺,也不是驱使团队更加努力工作的棍子。

恕我直言,如果你强迫开发者做出估算,你就能得到最安全的数字。

例如:

我认为一个专题大概需要5天左右的时间。有很小的可能性出现问题,需要30天。 如果评估只是为了计划,那么我们都将工作到5天,并考虑到出现问题的小概率。 然而,如果满足这个估计是交付承诺的要求,你认为会给出什么样的估计?

如果开发人员的奖金或工作保障取决于是否达到估算值,你认为他们给出的是最准确的猜测还是他们最确定会达到的估计?

我的这一观点与其他管理层存在争议,并被解释为我试图钻出合适的目标,或者我试图掩盖糟糕的表现。每次都很难说服别人,但我已经习惯了。

软件开发是计算机科学的一个非常小的子集。

人们有时似乎认为这两者是同义词,但实际上,计算机科学的许多方面是普通开发人员很少(如果有的话)接触到的。根据一个人的职业目标,我认为有很多计算机专业的毕业生如果接受某种软件工程教育可能会更好。

我非常重视教育,拥有计算机科学学士学位,并在业余时间攻读计算机科学硕士学位,但我认为许多获得这些学位的人将学位视为达到目的的手段,受益甚微。我认识很多人,他们上过和我一样的系统软件课程,写过和我一样的汇编程序,但直到今天他们都没有看到他们所做的任何价值。

开发人员过度使用数据库

通常情况下,开发人员在DBMS中存储的数据应该以代码或文件的形式存在。我曾经见过一个一列一行的表,它存储“系统密码”(与用户表分开)。我看到过存储在数据库中的常量。我见过的数据库足以让一个成年程序员哭出来。

这些讨厌的程序员对DBMS有一种神秘的敬畏——数据库可以做任何事情,但他们不知道它是如何工作的。dba实践一种黑魔法。它还允许责任转移:“数据库太慢了”,“是数据库做的”和其他借口是常见的。

如果不加检查,这些程序员就会继续开发数据库中的数据库,系统中的系统。(这个反模式有一个名字,但我忘了它是什么。)