打印

列出你所知道和编程思想有关的内容,五花八门什么都行!

[复制链接]
楼主: keer_zu
手机看帖
扫描二维码
随时随地手机跟帖
21
Agave07| | 2014-10-11 11:46 | 只看该作者 回帖奖励 |倒序浏览
确实啊,想多学点编程思想,不上系统那种,想实现多任务并行,和消息处理,还想尽可能减少全局变量,减少代码冗余,这是个值得研究的话题。

使用特权

评论回复
22
SRF| | 2014-10-15 09:16 | 只看该作者
浓缩精华就是五个字:接口与实现。
规范的事从来就不是简简单单的事,更不是一天两天规范得出的。需要长时间的积累和修正,更需要很多乐于贡献和分享的人。
规范的最终效果可以说就是模块化的函数了。也就是接口与实现。能否做到:你的这一个函数,别人只需知道应该输入什么,输出什么。其它的一概不用去关心,更无需担心移植这个函数后会怎样,会不会影响到了我的程序?会不会有些变量改变了?内存呢?等等一系列蛋疼的费时间费心思的问题!

使用特权

评论回复
23
原野之狼| | 2014-10-15 09:32 | 只看该作者
多看看优秀的开源代码  尽量少闭门造车   这个世界真的很大很精彩

使用特权

评论回复
24
keer_zu|  楼主 | 2014-10-15 10:09 | 只看该作者
原野之狼 发表于 2014-10-15 09:32
多看看优秀的开源代码  尽量少闭门造车   这个世界真的很大很精彩

Linux基金会这几天公布了四轴飞行器的开源项目,以后类似的“涉硬”项目开始越来越成气候了。应该是下一个行业发力点。

使用特权

评论回复
25
原野之狼| | 2014-10-15 10:33 | 只看该作者
keer_zu 发表于 2014-10-15 10:09
Linux基金会这几天公布了四轴飞行器的开源项目,以后类似的“涉硬”项目开始越来越成气候了。应该是下一个行 ...

是滴   KEEP OPEN~

使用特权

评论回复
26
lwm1368| | 2014-10-18 09:46 | 只看该作者
有个想法,想与各位分享并共同讨论。
前述:
在一些前后台的架构中,我们有时会用到消息队列。
消息队列的特性即为先进先出,也称FIFO。
不管什么消息,产生时一律都插入到最后的位置,必须等到比它靠前的消息事件都处理完毕,才能被处理。
问题:
假设现在有个实时性要求高的消息产生了,但是由于在它前面还有许多事件等待着处理,它必须等待着许多的消息处理完才能运行,这可能会导致这个消息错过及时的处理时机。
假想:
为每个消息都添加一个优先级(优先级可相同),每次消息入队时依然是插入到“消息缓冲”(前面的队列)的最后端,但是消息取出时,则不再按原先的“先进先出”特性从第一个取出,而是寻找优先级最高的消息取出并进行处理。
问题:
那么,如果一个低优先级的消息产生后,由于后面来了一连串高优先级的消息,这种情况则又可能造成CPU一直忙于处理高优先级而要等待很久才能处理前面产生的低优先级的消息。
假想:
所以我想给消息的优先级增加一个新特性,随时间自增——每次有消息从“消息缓冲”取出并进行处理时,未处理的消息优先级全部自增+1.这样随着时间的增长,会使前期的一些消息不断提高优先级,从而降低等待很长时间才能处理的风险。
当“消息缓冲”中有两个相同优先级时,优先取出靠前的那个消息进行处理。
大家帮忙评论下可行性

使用特权

评论回复
27
keer_zu|  楼主 | 2014-10-18 12:50 | 只看该作者
lwm1368 发表于 2014-10-18 09:46
有个想法,想与各位分享并共同讨论。
前述:
在一些前后台的架构中,我们有时会用到消息队列。

恩,不错的想法。
不过我觉得有个问题,如果某个消息正在处理,而且占据的时间很长,后边过来的优先级高的消息也无法得到及时执行,真正要保证实时性还是需要从并发和可抢占入手,有了这个基础再考虑对不同消息的分级处理。你认为呢?

使用特权

评论回复
28
xhdyshb| | 2014-10-19 20:50 | 只看该作者
lwm1368 发表于 2014-10-18 09:46
有个想法,想与各位分享并共同讨论。
前述:
在一些前后台的架构中,我们有时会用到消息队列。

这就用到状态机思想了,把功能细分,尽量在很短的时间内运行完。
楼主的那个优先级+1的思想,我也想到过,英雄所见略同!

一些单片机由于资源有限,不可能上系统内核,但是可以运用状态机尽量缩短任务执行时间,再加上消息机制,定时中断实现任务切换,可以实现类似基于时间片调度的系统。

使用特权

评论回复
29
xlsbz| | 2014-10-19 22:37 | 只看该作者
本帖最后由 xlsbz 于 2014-10-19 22:44 编辑

思想就是如果有固定行业 或者 经常用某个功能 如 串口啥的。

就得考虑让下个项目做得快点。

说白了 就是易用。

易用。。。。
易用。。。。

采访乔布斯,我记得乔布斯想了半天,最终还是那两个字 最高追求就是易用。

最起码自己的代码 自己用着方便。当然更高的境界就是自己的代码别人用着方便。


如何易用?就是说如何用起来才能简单。???

往往需要表面看起来比较复杂的设计,但是整体看起来确实层次性强的简单的设计。
=================================





使用特权

评论回复
30
lwm1368| | 2014-10-20 09:20 | 只看该作者
本帖最后由 lwm1368 于 2014-10-20 09:25 编辑
keer_zu 发表于 2014-10-18 12:50
恩,不错的想法。
不过我觉得有个问题,如果某个消息正在处理,而且占据的时间很长,后边过来的优先级高 ...

是的,这种情况下我通常是想法让任务细分,尽可能使单个任务的执行不会占用太多时间,毕竟前后台的框架始终是阻塞性的。
由于条件、资源的限制,目前没办法跑OS,所以要真正实现抢占性还是有些难度的。

使用特权

评论回复
31
keer_zu|  楼主 | 2014-10-20 10:11 | 只看该作者
xlsbz 发表于 2014-10-19 22:37
思想就是如果有固定行业 或者 经常用某个功能 如 串口啥的。

就得考虑让下个项目做得快点。

方案确定了吗?

使用特权

评论回复
32
xlsbz| | 2014-10-20 14:52 | 只看该作者
keer_zu 发表于 2014-10-20 10:11
方案确定了吗?

大拿  ,什么方案?
控制台方案?

使用特权

评论回复
33
keer_zu|  楼主 | 2014-10-20 15:01 | 只看该作者
xlsbz 发表于 2014-10-20 14:52
大拿  ,什么方案?
控制台方案?

你的控制台

使用特权

评论回复
34
xlsbz| | 2014-10-20 15:35 | 只看该作者
keer_zu 发表于 2014-10-20 15:01
你的控制台

在本版的 帖子 《单片机usart串口控制台大揭秘》里面啊

使用特权

评论回复
35
keer_zu|  楼主 | 2014-10-20 16:13 | 只看该作者
xlsbz 发表于 2014-10-20 15:35
在本版的 帖子 《单片机usart串口控制台大揭秘》里面啊

哦,有时间欣赏一下大作。哈哈

使用特权

评论回复
36
xlsbz| | 2014-10-20 16:15 | 只看该作者
keer_zu 发表于 2014-10-20 16:13
哦,有时间欣赏一下大作。哈哈

和你比 我还差两个层次

使用特权

评论回复
37
keer_zu|  楼主 | 2014-10-20 16:19 | 只看该作者
xlsbz 发表于 2014-10-20 16:15
和你比 我还差两个层次

这话说的,各有所长罢了。没啥层次不层次的。哈哈

使用特权

评论回复
38
xlsbz| | 2014-10-22 16:52 | 只看该作者
keer_zu 发表于 2014-10-20 16:13
哦,有时间欣赏一下大作。哈哈

给点建议啊

使用特权

评论回复
39
keer_zu|  楼主 | 2014-10-22 17:43 | 只看该作者
xlsbz 发表于 2014-10-22 16:52
给点建议啊

要我建议啊,哈哈,继续,继续 往下走啊。

使用特权

评论回复
40
hnkf118| | 2014-12-15 14:51 | 只看该作者
make

使用特权

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

本版积分规则