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

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

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

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


当前回答

计算机科学或其他IT领域的学位确实会让你成为一个更全面的程序员

我不在乎你有多少年的工作经验,读过多少博客,参与过多少开源项目。一个资格证书(我建议超过3年)会让你接触到一种不同的思维方式,给你一个很好的基础。

仅仅因为你写了一些比计算机科学学士更好的代码,并不意味着你比他更好。你所拥有的,他可以在瞬间学会反之则不然。

拥有资格证书表明了你的承诺,你会超越经验,成为一名更好的开发人员。擅长自己的工作并且有资格的开发人员可能会非常令人生畏。

如果这个答案被否决,我也不会感到惊讶。

而且,一旦你有了资格,你就会慢慢停止和其他有资格的人比较(我的经验)。你意识到到最后一切都不重要了,只要你们能很好地合作。

始终仁慈地对待其他开发人员,无论其资格如何。

其他回答

我坚信非托管代码不值得这么麻烦。与查找内存泄漏相关的额外维护性开销(即使是最好的程序员偶尔也会引入这种开销)远远超过从c++这样的语言获得的性能。如果Java, c#等不能得到你需要的性能,买更多的机器。

Variable_Names_With_Bloody_Underscores

或者更糟

CAPITALIZED_VARIABLE_NAMES_WITH_BLOODY_UNDERSCORES

应该在全球范围内清除……与偏见!CamelCapsAreJustFine。 (全局常数不承受)

GOTO语句仅供11岁以下的开发人员使用

任何不支持指针的语言都名不副实

.Net = .Bloat 微软网站开发的最佳范例(无表情web 2) 是缓慢膨胀的最好的例子cr@pw@re曾经写过。 (可以试试Web Studio)

回应: 好的,让我来谈谈下划线的问题。从你提供的C链接:

-全局常量应该全部大写,用“_”分隔符。 我实际上同意这一点,因为这太明显了

-以NetworkABCKey为例。注意ABC中的C和调音中的K是如何混淆的。有些人不介意这一点,有些人只是讨厌它,所以你会在不同的代码中发现不同的策略,所以你永远不知道该如何调用某个东西。

我属于前者。我选择名字非常谨慎,如果你不能一眼看出K属于Key,那么英语可能不是你的第一语言。

C函数名 在c++项目中应该有很少的C函数。 对于C函数,使用GNU约定的所有小写字母,以'_'作为单词分隔符。

的理由

* It makes C functions very different from any C++ related names. 

例子

int some_bloody_function () { }

这些“标准”和惯例只不过是随时间而传下来的任意决定。我认为,虽然它们有一定的逻辑意义,但它们使代码变得混乱,使一些本应简短而易于阅读的东西变得笨拙、冗长和混乱。

C被采纳为事实上的标准,不是因为它友好,而是因为它无处不在。我可以用一种语法友好的高级语言用20行代码编写100行C代码。

这使得程序流易于阅读,并且我们都知道,在一年或更长时间后重新访问代码意味着要到处跟踪面包屑。

我确实使用下划线,但只对全局变量,因为它们很少,而且它们很明显。除此之外,一个经过深思熟虑的CamelCaps()函数/变量名还没有让我失望!

方法/函数参数的先决条件应该是语言的一部分,而不是程序员总是检查它。

PHP太烂了;-)

见分晓。

我有争议的观点是,“While”结构应该从所有编程语言中删除。

你可以很容易地复制而使用“重复”和一个布尔标志,我只是不相信这是有用的,有两个结构。事实上,我认为同时拥有“重复……”直到”和“While..”一种语言中的EndWhile”会让新程序员感到困惑。

更新-额外说明

新程序员在使用While时常犯的一个错误是,他们认为一旦测试条件标记为false,代码就会中断。因此,如果While测试在代码进行到一半时标记为假,则假定While循环爆发。使用Repeat时就不会犯这么多错误。

只要只有一个循环类型,我实际上并不关心这两个循环类型中哪一个被保留。我选择Repeat而不是While的另一个原因是“While”功能用“Repeat”写比用“While”写更有意义。

第二次更新: 我猜,我是目前唯一一个得分为负的人,这意味着这实际上是一个有争议的观点。(不像你们其他人。哈!)