我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
:
for (int i = 0; i < myObj.variable; i = i + 1)
优化为:
int j = myObj.variable;
for (int i = 0; i < j; i = i + 1)
哇,当我意识到它们每次都在运行时,我停止在j的地方放入函数调用!
原因:
for (int i = 0; i < myObj.variable; i = i + 1){
if (function_argument == NULL){
myObj.variable++;
} else {
printf("%d", myObj.variable);
}
}
并不等同于:
int j = myObj.variable;
for (int i = 0; i < j; i = i + 1){
if (function_argument == NULL){
myObj.variable++;
} else {
printf("%d", myObj.variable);
}
}
任意的例子,但是您可以看到优化将如何改变执行。
其他回答
大的注释/代码比率是一件好事。
我花了一段时间才意识到代码应该是自文档化的。当然,如果代码不能更清晰,或者有重要的原因,这里或那里的注释是有帮助的。但是,一般来说,最好还是把注释时间花在重命名变量上。它更清晰,注释不会与代码“不同步”。
XML将是一种真正可互操作的、人类可读的数据格式。
我认为我应该尽可能地进行抽象。我的脑袋被这个撞了,因为太多交织在一起的小功能。
现在我试着让事情尽可能的简单和分离。重构使事物抽象比预测需要如何抽象要容易得多。
因此,我从开发规则它们的框架转移到完成工作的功能片段。从来没有回头,除了当我想起那段时间,我天真地认为我会是那个开发下一个大东西的人。
在我完成计算机学校的学习后,我可以开始一份工作,并将我在学校学到的知识应用到现实世界中。 (我真的希望我不要浪费4年的时间学习操作系统和prolog)
通过实现客户想要的东西来满足客户——不幸的是,这意味着客户知道他想要什么。