我一直以來覺得技術性的文件非常重要,但其實我做得不好。主要是我想做。但我做得不夠細緻,不夠清晰,不夠完整。只是,我一直在改善著,希望各位多多指點。
今天我想表達的是乙個關於程式模組化的移植性,通過乙個例項來描寫敘述。
說得好。大家頂一下。說得不好,大家頂兩下,嘻嘻。
函式功能非常easy:掃瞄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 移植性 例項說明
我一直以來認為技術性的文件很重要,但事實上我做得不好,主要是我想做,但我做得不夠仔細,不夠清晰,不夠完整。不過,我一直在改善著,希望各位多多指點。今天我想表達的是乙個關於程式模組化的移植性,通過乙個例項來描述。說得好,大家頂一下,說得不好,大家頂兩下,嘻嘻。函式功能很簡單 掃瞄led led的顯示有...
程式的模組化的一些見解2
在寫程式的時候,經常會遇到增加或者修改程式,此時,如果程式的邏輯 在沒有完全理清時或者真有必要時,我們也許總喜歡增加乙個標誌位來達到修改程 序的目的。然而,這往往就會存在bug。或許會是致命的 bug,所以,按我的經驗 來說,我建議專門寫這樣乙個函式,我叫他clearflag,在這個函式,每次我增加...
前端模組化的一些總結
目前前端模組化規範比較多,有主張非同步載入的amd和cmd,還有同步載入的commonjs,還有es6實現的esm,等等 以後再有新知識再補充 這裡做一下總結 amd和cmd都使用非同步載入的方式,代表作如下 規範代表作 amdrequirejs cmdseajs 我個人比較喜歡seajs,用起來方...