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

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

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

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


当前回答

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

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

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

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

例如:

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

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

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

其他回答

vb6可以用来做好事,也可以用来作恶。在编码过于复杂的时代,这是一个快速应用程序开发环境。

我过去非常讨厌VB,现在还在嘲笑VB。NET(可能是开玩笑)作为一种Fisher Price语言,因为我不喜欢经典的VB,但在它的时代,没有什么能打败它完成工作。

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

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

c++的STL库是如此通用,以至于它对任何人都不是最优的。

如果你没有读过手册页,你就不是一个真正的程序员。

从长远来看,开源软件的成本更高

对于常规的业务公司来说,开源看起来是免费的,但隐藏着成本。

当你考虑到质量的不一致性,可变的可用性和UI/UX,互操作性和标准的困难,增加的配置,相关的培训和支持需求的增加,开源的总拥有成本要比商业产品高得多。

精通技术的程序员类型接受开源的解放并与之一起运行;他们“得到它”,可以采用它,并定制它,以满足他们的目的。另一方面,主要是非技术性的,但需要软件来运行他们的办公室、网络和网站的企业正在冒着痛苦的风险,并在时间损失、生产力和(最终)支持费用方面付出沉重的代价,以及/或一起放弃实验的成本。