我来给大家分析下: 2.全局变量过多 就是这个项目程序逻辑,调到我快崩溃了。 不过一组合起来,功能之间就会相互冲突得很厉害,导致改了这里,那里又出问题。 如果你没经历过这种问题,你不会理解程序架构的重要性。 比如说全局变量,后面我也意识到了这个问题。 第一个是要避免全局变量名字重复,第二个如果哪个变量没做注释,1个月后干干净净。 但是,不用全局变量肯定也是不可能的。 我是怎么做的? 一般来说还有中间层,比如解析一些协议之类,项目中间层的代码不多,被我简化了。 跟我做的那个太阳能热水器控制板的程序对比,虽然全局变量的数量可能没变,但是很明显模块化的写法更加清晰。 可扩展性强,听起来是一个专业术语,可能很多新手不是很理解什么意思。 客户测试完,说要改功能,来来回回改个7,8次,你是不是离职的心都有了? 有经验的工程师,从学会有能力偷懒开始,再急的项目,你做完还有空闲时间那才牛X。 下面再来说说可移植性。 比如说这个项目以前我在STM32单片机上做的,现在芯片涨价了,老板要求换成GD32的替代。 有经验工程师写出来的程序,一般只需要改改硬件层的外设接口,应用层的产品逻辑功能代码基本不用动。 一个全局变量的问题,看似简单,要想解决,还是得站在整个程序架构的角度去思考。 就是用结构体。 比如说时间分为年、月、日、周、时、分、秒。 类似的还有很多,比如说GPIO也算一个对象,参数有端口号、引脚号、输入模式、输出模式、频率等。
|