我一直以來認為技術性的文件很重要,但事實上我做得不好,主要是我想做,但我做得不夠仔細,不夠清晰,不夠完整。不過,我一直在改善著,希望各位多多指點。
今天我想表達的是乙個關於程式模組化的移植性,通過乙個例項來描述。說得好,大家頂一下,說得不好,大家頂兩下,嘻嘻。
函式功能很簡單:掃瞄led led的顯示有不亮、閃爍、常亮 3種方式,其中閃爍次數是有規定的,我的是3次(具體是 閃爍3次,週期是0.5秒,即亮0.25秒 滅0.25秒)
f_flslock = 1;//啟動時閃爍3次
f_flslock =0; f_locken =0;//led不亮
f_flslock = 0; f_locken =1;//led常亮
這是我第一次寫的程式,5毫秒掃瞄一次。
void ledlock(void)
else if(++timeflash <= (100-1))
else
}} else
else
}}
這是我第二次寫的程式,5毫秒掃瞄一次。
void ledlock(void)
else if(++timeflash <= (100-1))
else
}} else }
// if(f_ledlocken)
else
表面可以看出,第2次的程式比第一次多了i個標誌位f_ledlocken 。
更深一點:如果這兩個程式的移植性是那個好呢?這就是我今天主要說的,如果
這兩個程式都用在乙個相同的驅動電路,即vdd-led-電阻-gnd,那麼
就沒有什麼區別。但如果用在復用,即按鍵和led共用乙個io或者led共
用com,這時功能相同,led驅動更改肯定要的,但判斷是否顯示和閃爍是
時間和次數可以不改,對此,如果抑制第乙個程式,那得大改了,哈哈,
那又得浪費時間了,但第二個程式,只需要更改led驅動方式,再通過
f_ledlocken來確定是否亮與不亮即可。
總的來說,這裡就是將判斷led是否亮的模組和led驅動模組完全區分開,
這樣,兩個模組就可以單獨移植和修改卻不相互影響。
此篇見解至此已完,說得不好,歡迎扔磚。
點點滴滴的努力著!!!
程式的模組化的一些見解5 移植性 例項說明
我一直以來覺得技術性的文件非常重要,但其實我做得不好。主要是我想做。但我做得不夠細緻,不夠清晰,不夠完整。只是,我一直在改善著,希望各位多多指點。今天我想表達的是乙個關於程式模組化的移植性,通過乙個例項來描寫敘述。說得好。大家頂一下。說得不好,大家頂兩下,嘻嘻。函式功能非常easy 掃瞄led le...
程式的模組化的一些見解2
在寫程式的時候,經常會遇到增加或者修改程式,此時,如果程式的邏輯 在沒有完全理清時或者真有必要時,我們也許總喜歡增加乙個標誌位來達到修改程 序的目的。然而,這往往就會存在bug。或許會是致命的 bug,所以,按我的經驗 來說,我建議專門寫這樣乙個函式,我叫他clearflag,在這個函式,每次我增加...
前端模組化的一些總結
目前前端模組化規範比較多,有主張非同步載入的amd和cmd,還有同步載入的commonjs,還有es6實現的esm,等等 以後再有新知識再補充 這裡做一下總結 amd和cmd都使用非同步載入的方式,代表作如下 規範代表作 amdrequirejs cmdseajs 我個人比較喜歡seajs,用起來方...