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

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

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

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


当前回答

开发项目一定会失败,除非程序员团队作为一个整体被赋予完全的权力来做出与所使用的技术相关的所有决策。

其他回答

我可能会因此被炒,但是

在python中使不可见字符具有语法意义是一个坏主意

它会分散注意力,给新手带来很多微妙的bug,在我看来,这是不必要的。我所见过的唯一没有自愿遵循某种像样的格式指南的代码是来自计算机科学一年级的学生。即使代码不遵循“漂亮”的标准,也有很多工具可以将其转换成更令人满意的形状。

编写小方法。程序员似乎喜欢编写冗长的方法,在这些方法中他们可以做多种不同的事情。

我认为应该在任何可以命名的地方创建方法。

世界需要更多的goto

人们虔诚地避免goto,除了“我的教授告诉我goto不好”之外,没有其他理由。它们有一个目的,可以在很多地方极大地简化生产代码。

也就是说,在你所编写的99%的代码中,它们都是不必要的。

观点:SQL是代码。这样对待它

也就是说,就像c#、Java或其他喜欢的对象/过程语言一样,开发一种可读且可维护的格式化样式。

我讨厌看到草率的自由格式SQL代码。如果您在页面上看到两种样式的花括号时都尖叫,那么当您看到自由格式化的SQL或模糊JOIN条件的SQL时,为什么不尖叫呢?

如果你是一个开发人员,你应该会写代码

去年我做了很多面试,在我的面试部分,我应该测试人们的思维方式,以及他们如何在白板上实现简单到中等的算法。我一开始的问题是:

假设可以使用函数4 *(1 - 1/3 + 1/5 - 1/7 +…)来估计圆周率,使用更多的项来获得更高的精度,编写一个计算圆周率的函数,其精度为小数点后5位。

这是一个应该让你思考的问题,但对于一个经验丰富的开发人员来说不应该是遥不可及的(它可以用大约10行c#来回答)。然而,我们的许多候选人(应该是中介机构预先筛选的)甚至无法开始回答这个问题,甚至无法解释他们将如何回答这个问题。所以过了一段时间,我开始问一些更简单的问题,比如:

给定圆的面积是π乘以半径的平方,写一个函数来计算圆的面积。

令人惊讶的是,超过一半的候选人不能用任何语言编写这个函数(我可以阅读大多数流行的语言,所以我让他们使用他们选择的任何语言,包括伪代码)。我们有“c#开发人员”,他们不能用c#编写这个函数。

我对此感到很惊讶。我一直认为开发人员应该会写代码。现在看来,这似乎是一个有争议的观点。当然是在面试中!


编辑:

在评论中有很多关于第一个问题是好是坏的讨论,以及你是否应该在面试中问这么复杂的问题。我不打算在这里深入研究这个问题(这是一个全新的问题),除了说你在很大程度上错过了文章的重点。

是的,我说过人们在这个问题上无法取得任何进展,但第二个问题很琐碎,许多人在这个问题上也无法取得任何进展!任何自称为开发人员的人都应该能够不假思索地在几秒钟内写出第二个问题的答案。很多人做不到。