打印

如何提高程序的利用率?

[复制链接]
1322|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 | 只看该作者
模块化, 采用宏来定义常数, 代码考虑独立性.
不过单片机上, 往往只是思想和算法上重用, 代码很难直接重用

使用特权

评论回复
5
kseeker| | 2013-11-20 01:15 | 只看该作者
面向对象的设计方法,目前来讲除了实现用户界面和用户交互(包括网站),在其他领域几乎没有任何优势可言。
而且事实上,极少有面向对象的代码是易于移植,方便重复利用的。被大量移植和重用的库大多是过程化的,少数
是基于对象的。原因其实很简单:用户界面和交互这东西本质上就是没法移植,不需要重用的。

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

另外,通用性和易用性之间存在权衡。通用的程序面面俱到,但在面对具体问题时一般都不如专用的程序易用。
毕竟,如果你专门针对一个问题进行设计,就可以针对性的进行优化,比如说,去掉具体问题种用不到的功能。
所以对于一些简单的程序,如果重写一下不太费事,非要弄得通用了不一定是好事。

使用特权

评论回复
6
nqyijian| | 2013-11-20 08:09 | 只看该作者
模块化,划分应用层和底层,中间层。
只是换平台,改底层。
只是应用稍微改动,该应用层。
利用率很高

使用特权

评论回复
7
zjxcml| | 2013-11-20 09:30 | 只看该作者
支持楼主,我也在考虑这方面的问题。看样子还是要多读多想啊

使用特权

评论回复
8
ballack_linux| | 2013-11-20 14:05 | 只看该作者
把底层驱动模块封装成.C和.H文件, 需要用到的工程就添加进去 ,直接调用API

使用特权

评论回复
9
黄小俊| | 2013-11-20 20:05 | 只看该作者
模块化是好的办法。。这问题全世界都在考虑,

使用特权

评论回复
10
123嘻嘻987| | 2013-11-20 20:50 | 只看该作者
.这个其实也还好啦

使用特权

评论回复
11
MadaraII| | 2013-11-21 07:29 | 只看该作者
程序利用率和程序效率有着牵连的关系,如果你本人不是太在意效率的话,
那可以尽量把程序的功能给抽象出来做到黑盒子程度的通用化,
不过,你要是项目做得很多很多的话,将来就会发现:你手头的东西越来越像WINDOWS系统,各种版本的库库库库~~~
最终的结果将是:你想要做任何功能都有现成的库可以拿来用,可是,但是,可但是,但可是,到底那个是不用修改直接就可以用的?

使用特权

评论回复
12
趣味单片机|  楼主 | 2013-11-21 11:53 | 只看该作者
电子产品涉及的面太广,一个模块不可能包罗万象,改一点硬件就软件就得动。单片机软件和电脑软件还有很大区别在于电脑基本不用考虑硬件,而单片机随时都有硬件参与。单片机工程师很需这样一种软件,输入一些参数和要求,输出源代码,比如数码管驱动,输入一些硬件信息,共阴共阳,管脚的顺序,位数,即可获得源代码。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:厚积薄发

25

主题

196

帖子

1

粉丝