毕业论文需要写代码。代码经常要修改。修改代码让人头疼。修改代码很重要。代码修改不好论文就写不好。
开始写代码时想得很简单。代码要解决一个问题。问题分解成几个步骤。每个步骤写成函数。函数组合起来完成整个任务。实际写代码时发现很多问题。想的功能代码实现不了。代码运行结果不对。代码运行速度太慢。代码占用内存太多。其他同学看不懂你的代码。老师要求增加新功能。这些问题都需要修改代码。
第一次修改代码是因为代码跑不通。代码写完了点运行。命令行报错了。错误信息看不懂。错误信息是英文的。单词一个一个查字典。查完还是不明白。问同学同学也不知道。上网搜索错误信息。网上说缺少一个库。安装这个库又报错。折腾半天终于解决了。原来是因为拼写错误。一个字母大小写写错了。修改后代码能运行了。
代码能运行不代表结果正确。运行结果和预期不一样。预期结果是十实际结果是五。检查代码逻辑。逻辑看起来没问题。加打印语句看中间结果。发现一个变量计算错了。变量赋值时用了整数除法。应该用浮点数除法。修改后结果正确了。但打印语句忘记删除了。提交代码时打印语句还在。老师运行代码看到很多多余输出。这是不好的习惯。
代码运行正确还要考虑效率。处理小数据时很快。处理大数据时很慢。等半个小时才出结果。论文提交有时间限制。不能每次都等这么久。需要优化代码速度。找到耗时最长的部分。用更快的算法替换。循环次数太多就减少循环。重复计算就保存结果。内存占用太多就释放变量。优化后速度快了十倍。
代码不仅要自己能看懂。别人也要能看懂。同学帮你检查代码。老师评审你的论文。他们都看你的代码。代码写得太乱别人看不懂。变量命名随意。abcxyz不知道代表什么。函数没有注释。代码逻辑复杂。修改时添加说明。变量名改成有意义的单词。user_name代替un。data_list代替dl。函数开头写注释。这个函数做什么。输入是什么。输出是什么。重要的步骤加注释。这样别人容易理解。
老师要求增加新功能。原来的代码不支持。需要修改代码结构。把一些功能独立出来。写成单独的函数。公共的部分提取出来。减少重复代码。增加新功能时调用这些函数。这样修改起来更容易。不会牵一发而动全身。
修改代码要小心。改一个地方可能影响其他地方。本来正常的功能出问题了。这种问题叫回归错误。避免回归错误需要测试。写一些测试用例。测试正常情况。测试边界情况。测试异常情况。每次修改后运行测试。测试通过了再提交。
代码版本管理很重要。今天修改代码明天想改回来。不记得原来怎么写的。用版本管理工具。每次修改后保存一个版本。写清楚这次修改了什么。想回到之前版本很容易。版本管理工具能比较不同版本。看到底改了哪些地方。
修改代码是常态。没有一次写好的代码。总是要反复修改。接受这个事实。耐心修改代码。每次修改让代码更好。代码更健壮。代码更快速。代码更清晰。代码更灵活。
修改代码需要知识。学习调试技巧。设置断点。单步执行。查看变量值。学习算法知识。选择合适的数据结构。使用高效的算法。学习软件工程原则。写可维护的代码。写可复用的代码。
修改代码需要经验。写得多了就有感觉。知道哪些地方容易出错。知道怎么避免常见错误。遇到问题不慌张。有条理地排查问题。从简单到复杂。从明显到隐蔽。
论文中的代码代表你的工作。代码质量影响论文成绩。认真对待代码修改。花时间改进代码。好的代码让论文更完整。好的代码让工作更可信。
修改代码不只是技术问题。也是态度问题。认真负责的人会仔细修改代码。马虎的人随便改改就提交。你的态度体现在代码中。老师看代码就知道你用了多少心。
不要害怕修改代码。修改是进步的机会。每次修改都学到新东西。对问题理解更深。对编程掌握更好。代码修改多了水平就提高了。
论文写作和代码修改相辅相成。写论文时发现代码不足。修改代码后论文更完善。论文修改又需要调整代码。两者交替进行直到完成。
记住几个原则。修改前先备份。修改时小步进行。修改后充分测试。代码要有注释。变量要有意义。函数要短小精悍。
这些建议很基础。但很实用。遵循这些建议代码修改会更顺利。毕业论文会完成得更好。