我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。

你坚持时间最长、最终被纠正的假设是什么?

例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。

坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。


当前回答

评论越多越好。我总是试图让我的代码尽可能具有可读性——主要是因为我几乎肯定是那个会修复我漏过的bug的人。所以在过去的几年里,我经常会收到一段又一段的评论。

最终,我明白了,有一个点,更多的评论——无论结构多么整齐——没有增加价值,实际上成为一个麻烦的维护。这些天,我采取了目录+脚注的方法,每个人都为此感到高兴。

其他回答

与UNIX相比,NT操作系统的设计有缺陷。事实证明,NT内核和设计决策与任何现代的UNIX类系统非常相似,内核中的大多数问题都是由有漏洞的公司编写的第三方漏洞驱动程序造成的。

ide会变得更快。

私有成员变量是实例私有的,而不是类私有的。

Unix和Linux操作系统设计得很好……我可能应该限定这个(!)

首先,这一观点被一些反真理的观点所强化,例如:

每个后续开发的操作系统最终都以对Unix的拙劣重新设计而告终(Lisp也是如此,在那里它更正确)。 构成“Unix哲学”的一系列规则。这并不是说他们错了,而是暗示Unix本身紧跟他们的步伐。

更确切地说,它们设计得很好/做得很好,当然其中一部分确实如此,但即便如此,这也只是相对的判断,相对于一些糟糕的Windows版本。下面是一些做得不好的事情的例子:

配置一团糟,特别平面文件配置不好 C语言在很久以前就应该被(类似D语言的)语言所取代 Shell脚本是精神分裂。它不利于开发,因为它是为快速输入而设计的速记。 目录结构命名不当 GNU工具链是不必要的神秘 一般目的总是胜过特殊目的的信念

总的来说,它们需要不必要的专业知识来操作。或者更确切地说,有大量的知识,而只有适度的理解。

也不全是坏事。Linux在政治上更好,不会被业务需求所破坏,但遗憾的是,在很大程度上,很多技术高地已经失去了。

软件的质量会带来更大的销量。有时确实如此,但并非总是如此。