如何提高程序的利用率?

[复制链接]
1973|11
 楼主| 趣味单片机 发表于 2013-11-19 15:38 | 显示全部楼层 |阅读模式
做项目多了会发现,很多项目有相似之处,又有不同之处。有时候想,何不用原来的程序直接改到这个项目来?改起来后才发现,还不如重做。发现有很多可以重复利用的子程序,模块程序,因为没有管理好,或者用多了全局变量,使得使用率不高。你是如何做的?如何管理有相对通用的子程序?如何提高程序利用率?大家分享一下自己的经验。
ayb_ice 发表于 2013-11-19 16:40 | 显示全部楼层
各种功能模块尽量标准化,稍加移植即可使用
香水城主 发表于 2013-11-19 20:13 | 显示全部楼层
建议LZ去学学 面向对象的编程,比如C++、Java等。掌握了面向对象的编程,就能设计出易于移植、方便重复利用的模块了。
airwill 发表于 2013-11-19 21:05 | 显示全部楼层
模块化, 采用宏来定义常数, 代码考虑独立性.
不过单片机上, 往往只是思想和算法上重用, 代码很难直接重用
kseeker 发表于 2013-11-20 01:15 | 显示全部楼层
面向对象的设计方法,目前来讲除了实现用户界面和用户交互(包括网站),在其他领域几乎没有任何优势可言。
而且事实上,极少有面向对象的代码是易于移植,方便重复利用的。被大量移植和重用的库大多是过程化的,少数
是基于对象的。原因其实很简单:用户界面和交互这东西本质上就是没法移植,不需要重用的。

要写出可以重用的代码,最关键的是深刻理解要解决的问题领域,从其中抽象出一个良好定义的接口。如果
对每个具体的问题都满足于能工作就行,就导致设计出一些看起来很像,但又有那么一点不一样的模块。
。理解了问题的本质,下一步就是设计经验的问题了。这没什么捷径可走,看的多了,写的多了,走的弯路多了,
动的脑筋多了,才能有所进步。个人感觉,对问题理解加深后,经常性的对已有代码进行重构对经验积累很有帮助。
当然,这么做的话,时间和精力,进度的压力常常都是问题。

另外,通用性和易用性之间存在权衡。通用的程序面面俱到,但在面对具体问题时一般都不如专用的程序易用。
毕竟,如果你专门针对一个问题进行设计,就可以针对性的进行优化,比如说,去掉具体问题种用不到的功能。
所以对于一些简单的程序,如果重写一下不太费事,非要弄得通用了不一定是好事。
nqyijian 发表于 2013-11-20 08:09 | 显示全部楼层
模块化,划分应用层和底层,中间层。
只是换平台,改底层。
只是应用稍微改动,该应用层。
利用率很高
zjxcml 发表于 2013-11-20 09:30 | 显示全部楼层
支持楼主,我也在考虑这方面的问题。看样子还是要多读多想啊
ballack_linux 发表于 2013-11-20 14:05 | 显示全部楼层
把底层驱动模块封装成.C和.H文件, 需要用到的工程就添加进去 ,直接调用API
黄小俊 发表于 2013-11-20 20:05 | 显示全部楼层
模块化是好的办法。。这问题全世界都在考虑,
123嘻嘻987 发表于 2013-11-20 20:50 | 显示全部楼层
.这个其实也还好啦
MadaraII 发表于 2013-11-21 07:29 | 显示全部楼层
程序利用率和程序效率有着牵连的关系,如果你本人不是太在意效率的话,
那可以尽量把程序的功能给抽象出来做到黑盒子程度的通用化,
不过,你要是项目做得很多很多的话,将来就会发现:你手头的东西越来越像WINDOWS系统,各种版本的库库库库~~~
最终的结果将是:你想要做任何功能都有现成的库可以拿来用,可是,但是,可但是,但可是,到底那个是不用修改直接就可以用的?
 楼主| 趣味单片机 发表于 2013-11-21 11:53 | 显示全部楼层
电子产品涉及的面太广,一个模块不可能包罗万象,改一点硬件就软件就得动。单片机软件和电脑软件还有很大区别在于电脑基本不用考虑硬件,而单片机随时都有硬件参与。单片机工程师很需这样一种软件,输入一些参数和要求,输出源代码,比如数码管驱动,输入一些硬件信息,共阴共阳,管脚的顺序,位数,即可获得源代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:厚积薄发

25

主题

196

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部