在產(chǎn)品推向市場后,根據(jù)反饋信息對(duì)產(chǎn)品進(jìn)行改進(jìn)調(diào)整、升級(jí)換代是必不可免的,這也涉及到程序
<iframe id="google_ads_frame1" style="LEFT: 0px; POSITION: absolute; TOP: 0px" name="google_ads_frame" marginwidth="0" marginheight="0" src="http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5760667463926779&output=html&h=250&slotname=0199964132&w=300&lmt=1291773932&flash=10.1.102.64&url=http%3A%2F%2Fwww.mcuend.cn%2F%3Fthread-391-1.html&dt=1291773932578&shv=r20101117&jsv=r20101206&saldr=1&correlator=1291773932656&frm=0&adk=2052651388&ga_vid=1639213281.1291773933&ga_sid=1291773933&ga_hid=564260766&ga_fc=0&u_tz=480&u_his=0&u_java=1&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_nplug=0&u_nmime=0&biw=992&bih=589&eid=30143103&ref=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25B5%25A5%25C6%25AC%25BB%25FA%25B8%25DF%25BC%25B6%25BC%25BC%25CA%25F5%25CC%25D6%25C2%25DB%26pn%3D140&fu=0&ifi=1&dtd=187&xpc=J8PhAoPZPq&p=http%3A//www.mcuend.cn" frameborder="0" width="300" scrolling="no" height="250" allowTransparency="allowTransparency"></iframe><iframe style="VISIBILITY: hidden; POSITION: absolute" src="http://pagead2.googlesyndication.com/pagead/s/iframes_api_loader.html" width="1" height="1"></iframe> | 部分的改動(dòng)。但是,好程序也怕千回改,大凡寫程序的人都會(huì)有這種體驗(yàn),就是寧可寫程序,不愿改程序,原因如下:
1.寫程序時(shí),所有資源(IO口、RAM、ROM、堆棧、計(jì)數(shù)器、中斷……等等)都是可用的,可以無拘束地使用;而改程序時(shí),只能利用原先用剩下的資源。
2.寫程序時(shí),面向全局規(guī)劃,可以合理安排各個(gè)功能的實(shí)現(xiàn)方法;而改程序時(shí),是針對(duì)局部,為了避免影響其它部分功能,往往約束較大。
3.大多數(shù)人沒有良好的編程習(xí)慣,事先不規(guī)劃,事后不整理,腳踩西瓜皮,寫到哪里算哪里。待到需要改動(dòng)時(shí),由于當(dāng)時(shí)一些思路已經(jīng)忘記了,沒有留下足夠的注釋和說明文檔,就摸不著邊了。
4.由于沒有一個(gè)統(tǒng)一的編程規(guī)范,如果原先的程序不是自己寫的,那就更糟糕了。光看懂前任的程序就要耗費(fèi)許多時(shí)間;而如果想較大面積地修改它,往往還不如自己重新寫一個(gè)來得快些。
5.每次修改程序都是在原來程序的基礎(chǔ)上打補(bǔ)丁,往往會(huì)為下一次的修改增加難度。最后,量變引起質(zhì)變,活活把個(gè)好好的程序改爛掉了。
6.……
最近,壇子里,對(duì)編程方法思路等方面的討論較多(而雕蟲小技則遭受拋棄)。匠人也來湊熱鬧,請(qǐng)大伙來討論:好程序如何才能經(jīng)得起千回改?
一些不成熟的想法,權(quán)當(dāng)拋磚引玉 程序匠人 發(fā)表于 2004-7-30 11:34 侃單片機(jī) ←返回版面 舉報(bào)該貼
程序的改動(dòng)大多數(shù)情況下都是伴隨著硬件的改動(dòng)。關(guān)于硬件的改動(dòng)不是本貼的主題。不必作深入討論。
程序如何才能經(jīng)歷歲月的考驗(yàn),千錘百改,依然生機(jī)勃勃。一些不成熟的想法,權(quán)當(dāng)拋磚引玉:
1.程序應(yīng)該模塊化,便于拆卸或增加。(這已經(jīng)不算是新鮮觀點(diǎn)了)。
2.使用RAM或IO,必須先定義再使用,避免直接引用。將來需要調(diào)整時(shí),只要修改定義部分就好了。
3.相同或類似的程序段應(yīng)該用子程序來實(shí)現(xiàn),如果受堆棧等資源局限,不能使用子程序,則應(yīng)該用宏來實(shí)現(xiàn),這樣以后需要改時(shí),只要改一“點(diǎn)”,無須改一“片”。
4.寫程序要有足夠的注釋、說明文檔、流程圖、原理圖。便于以后能夠快速勾起往日的回憶……
5.每次修改程序,應(yīng)該同步更新相關(guān)的注釋、說明文檔、流程圖、原理圖。免得下次再改時(shí)對(duì)不上號(hào)。
6.應(yīng)該詳細(xì)記錄每次程序修改的細(xì)節(jié),形成一份歷史記錄。(強(qiáng)烈推薦這一點(diǎn))
7.每次改動(dòng)后的版本都應(yīng)該保留。而不應(yīng)該覆蓋原始文件。
8.所有的設(shè)計(jì)方案應(yīng)該妥善歸類存檔備份,有條件最好刻成光盤。避免日久年長因病毒或硬盤損壞而丟失。(別笑,真有丟了的。)
我想,“能夠經(jīng)得起千回改”是“好程序”的一個(gè)必要(不充分)條件。
|