系统程序员怎样把代码写得又快又好?

系统程序员怎样把代码写得又快又好?,第1张

很多初学者包括一些有经验的程序员,在敲完代码的最后一个字符后,马上开始编译和运行,迫不急待的想看到自己的工作成果。快速反馈有助于满足自己的成就感,但是同时也会带来一些问题:

让编译器帮你检查语法错误可以省些时间,但程序员往往太专注这些错误了,以为改完这些错误就万事大吉了。其实不然,很多错误编译器是发现不了的,像内存错误和线程死锁等等,这些错误可能逃过简单的测试而遗留在代码中,直到集成测试或者软件发布之后才暴露出来,那时就要花更大代价去修改它们了。

修改完编译错误之后就是运行程序了,运行起来有错误,就轮到调试器上场了。花了不少时间去调试,发现无非是些低级错误,或许你会自责自己粗心大意,但是下次可能还是犯同样的错误。更严重的是这种debug&fix的方法,往往是头痛医头脚痛医脚,导致低质量的软件。

让编译器帮你检查语法错误,让调试器帮你查BUG,这是天经地义的事,但这确实是又慢又烂的方法。就像你要到离家东边1000米的地方开会,结果你往西边走,又是坐车又是搭飞机,花了一周时间,也绕着地球转了一周,终于到了会议室,你还大发感慨说,现代的交通工具真是发达啊。其实你往东走,走路也只要十多分钟就到了。不管你的调试技巧有多高,都不如一次性写好更高效。

下面是我在阅读自己代码时的一些方法:

检查常见错误

第一遍阅读时主要关注语法错误、代码排版和命名规则等等问题,只要看不顺眼就修改它们。读完之后,你的代码很少有低级错误,看起来也比较干净清爽。第二遍游哗重点关注常见编程错误,比如内存泄露和可能的越界访问,变量没有初始化,函数忘记返回值等等,在后面的章节中,我会介绍这些常见错误,避免这些错误可以为你省大量的时间。如果有时间,在测试完成之后,还可以考虑是否有更好的实现方法,甚至尝试重新去实现它们。说了读者可能不相信,在学习编程的前几年,我经神知行常重写整个模块,只我觉得能做得更好,能验证我的一些想法,或提高我的编程能力,即使连续几天加班到晚上十一点,我也要重写它们。

模拟计算机执行

常猛灶见错误是比较死的东西,按照检查列表一条一条的做就行了。有些逻辑通常不是这么直观的,这时可以自己模拟计算机去执行,假想你自己是计算机,读入这些代码时你会怎么处理。北大青鸟认为这种方法能有效的完善我们的思路,考虑不同的输入数据,各种边界值,这能帮助我们想到一些没有处理的情况,让程序的逻辑更严谨。

改装行车电脑主要有四种方式:1、重写汽车驾驶的计算机程序。程序重写是通过OBD接口编写程序来修改和替换原程序。保留原厂所兄橡有控制逻辑关系,只修改部分数值,达到助力的效果。这种方法的优点是保留了原厂的所有补偿和保护功能,集成度高,不影响ECU其他控制功能的正常使用;缺点是车型有限,很多品牌ECU的读写协议都是保密的,不支持直接重写。同时,重写发动机程序是一项非常复杂的工作,需要非常专业的技术,不建议车主自行尝试。2、更换汽车行车电脑的芯片。更换程序芯片是90年代流行的ECU改装方法,现在只适用于老型号的ECU。由于老型号的E-ROM芯片只能写入程序一次,每次修羡大旁改程序都要用刻录机将程序刻成空白芯片,替换原来的芯片。更换不同程序的芯片时,需要拆开ECU背板,拔掉原芯片,换上新的,这样就完成了整个改装过程。3、汽车驾驶电脑外接。外接是指在原ECU外部连接一台可调节的计算机,与原ECU一起使用。它的控制机制是通过拦截或绕过原传感器与ECU之间设置的导线,改变发送给ECU的数据,“诱骗”ECU发出改变供油、点火时间等指令。大多数外部计算机都会附带一个根据不同型号编写的程序,总体来说性能良好。这类产品仿和最大的卖点就是可调性。不同品牌和级别的外接电脑可以提供不同的校准空间。建议由专业人员处理校准工作。如果车辆的动力系统有较大改动,涉及到压缩比、涡轮增压值等重要性能数据,用户需要非常小心,以避免损坏发动机。4、更换车辆运行电脑的ECU,更换ECU。更换ECU的好处是不受原机结构、调整范围和参数的限制,充满了照顾到频繁修改设置、调整数据、行驶记录和加减附件的特殊功能和灵活设计,为工程师提供了一个非常方便灵活的发挥平台。由于大多数替换计算机不是为某种车型设计的,所以整个发动机控制程序应该由改装者自己编写。此外,为新计算机配备特殊传感器并执行诸如重构计算机电缆组和插座的复杂过程是一项困难且昂贵的改造。更换的ECU特别适用于经过大量改装的发动机。但是,只需要确保负责改装的人员是技术熟练、经验丰富的技术人员。新ECU中不会有原有的保护程序,任何错误的设置都会对发动机造成严重损坏。另外,由于原有的ECU已经不存在,一些原有的电子功能(如自诊断故障、ABS、ESP等。)也会丢失。所以更换ECU不适合普通民用改装车,只有非常专业的重型改装车或者赛车才会使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12528487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存