程式的模組化的一些見解5 移植性 例項說明

2021-06-22 09:42:36 字數 1162 閱讀 2779

我一直以來認為技術性的文件很重要,但事實上我做得不好,主要是我想做,但我做得不夠仔細,不夠清晰,不夠完整。不過,我一直在改善著,希望各位多多指點。

今天我想表達的是乙個關於程式模組化的移植性,通過乙個例項來描述。說得好,大家頂一下,說得不好,大家頂兩下,嘻嘻。

函式功能很簡單:掃瞄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,用起來方...