我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
当然,您可以查看FindBugs和PMD,但这些是我最喜欢的陷阱和技巧(所有Java):
字段没有被覆盖,而是被遮蔽。
没有显式的super。超级访问。
未定义构造函数的类具有隐式零参数构造函数。今年我犯了一个与此相关的实际错误。
要获得对内部类的父类的引用,可以使用“Outer”语法。这“消除方法调用或同步的歧义”。
在c++术语中,类是“它们自己的朋友”,该类的任何实例的私有方法和字段都可以从同一类的任何方法引用,甚至是静态方法。这将使我早期的一些clone()和copy构造函数简单得多。
在扩展类的静态上下文中可以访问受保护的方法和字段,但前提是该类在同一个包中。我很高兴flex.messaging.io.amf不是一个密封的包。
其他回答
作为一个新手,我有一个假设,在这个领域工作多年的人自然是更好的开发人员。
编程语言==编译器/解释器 编程语言== IDE 编程语言==标准库
与自动化相结合的编程优雅是老式测试的充分替代品。
我的编程如果由我一个人来执行会更快更好。
我可能花了几天时间试图减少业务层使用的内存,后来才意识到项目的WinForms (GUI)使用的内存是应用程序其他部分的4倍多。