返回列表 上一主題 發帖

關於 請養成良好的寫程式習慣 結帖

請養成良好的寫程式習慣

本帖最後由 white5168 於 2012-5-8 10:16 編輯

我在這裡提出個人在最近觀察後的建言,如有不中意聽或有得罪的話請個位大大多多包涵,無非也希望讓這個討論區好

我覺得不管是寫得多少年程式或是版主,超級版主等等,都應該有必要在程式是中加上應有說明與良好的習慣才是
剛開始投身於程式工程師時也是跌跌撞撞,從一個只會胡亂命名,甚至只會將所有功能寫在同一個函數中的毛頭小子
慢慢變成會要求下屬寫程式要有模組化函數名稱與變數名稱要定義為有意義的名字
並且告誡他們寫程式不是寫給自己看的爽就好,也要能讓後面維護程式碼的人可以快速了解當初寫程式的想法及思路
至於要在程式中加入註解,剛開始也是很不能適應為何一定要在程式裡加上說明,但久而久之習慣了,沒加反而不習慣
因為哪一天自己需要再回過頭來看的時候,就可以很快就能回憶上手,才不會再花時間去回想當初的想法

各位寫小程式時可能比較沒有感覺,可是像我們在寫大型程式,一次都幾百萬行在看的時候,加上註解與明確的定義就真的很重要
因為一旦要debug時,真的會很想死,尤其是像這樣幾百萬行的程式通常不會只有一個人寫,一定是4~5個人以上甚至更多人寫,如果加上每個人風格都不同時那更是痛苦萬分
所以文字的表達就更顯重要,若是函數,變數,註解與log沒有加完整甚至不明確的話,那這樣更是會想打人,光是看那幾百萬行的程式碼時,眼睛就會有那種"脫窗"的感覺

因此在此誠心的建議各版版主們應該好好思考一下,各討論版在程式碼上的是否應該要求版友們在寫程式的習慣,以讓此討論區越來越更有看頭與成長茁壯
不過我相信版主們會認為,要要求版友做到這樣實在有困難,可是如果現在有些事不做以後會更困難更後悔
"不要為失敗找藉口,要為成功找方法",這是很多人說過的話

個人的建議,
對於寫程式已久的人,是否應該思考的該如何寫得讓人家看得懂的程式,而非寫給自己看的爽的程式,
對於剛開始接觸新程式語言的新人,更應該學習養成良好的寫程式習慣,這樣哪天回頭來複習的時候可以更清楚當初的思路
要將程式碼貼上的同時,請先了解完整個思路,有的程式碼是網路上搜尋找到貼上的,真的很希望各位版友在放置程式碼的同時也應該去理解他,不要淪為只會做複製貼上的大學生

模組化:將有意義的功能包成一個個明確且可重複使用的函數,以建立屬於"麻辣家族討論版版"的函數庫,如建立Library
我覺得在"麻辣家族討論版版"中有很多不錯使用且具重複性的資源可以整合成讓使用者使用的Library,只是在想為什麼版主沒有這樣的觀念及想法

函數與變數的命名:我看了很多人回應的程式碼,甚至各個討論版得版主所回應的程式碼,在程式碼中很多的變數常常寫x, y, k等等,不具任何意義名稱的變數
而在工作上我會要求下屬們,函數命名一定要式一個動詞接一定名詞,如取得股票股價,命名的函數就會是GetStockPrice()或ReadStockPrice()

說了這麼多,無非也是希望各位大大們能了解,不管是寫了程式多少年,沒有一個好的習慣養成,這樣程式的可讀性真的很低
為了這個討論區好請各位大大認真思考以上所說的內容
以上的言論如有冒犯的地方請多多包涵

TOP

不錯的想法,可惜大家的時間有限,要持之以恒就難了。
看來你是做事很嚴謹的一個人,但無法要求每個人像你一樣嚴謹的。
vba在excel中只是一個輔助的小工具,要如何看待如何處理則見仁見智啦!
幾百萬行的程式要從小寫到老,應該無法在討論區討論,而且一般人也沒這種超級電腦可以跑的。

TOP

如果像版大所說的
那建議從版主做起.彼此在相互監督

TOP

回復 3# white5168
    在討論區中,要找到像閣下如此用心在學習與討論的人,不是沒有但為數不多
來討論區大部分的人是撿現成,找人代工,根本不在乎程式的結構與邏輯的探討
VBA是一個高階語言,很多函數都已經在函式庫中,只是使用者沒去發掘與應用
他不像C語言或VB等低階語言,還需要自己寫一堆函數甚至物件類別模組
從過去的討論中,不難發現一個現象,資料操作的方法不外乎那幾項
每次的方法都是相同,只是資料位置或型態稍微改變,又是一個問題出現了
這純粹是使用者沒有去思考的原因
註解是良好的習慣沒錯,可以幫助日後程式的維護
不過,這是要自己確實了解程式邏輯去註解,日後自己才會知道
相信您也會看到GBKEE版主通常會在回復時加註解
這對於好學如你的人,當然受用無窮,但是往往這類問題仍然產生
最後還是感謝您對論壇的支持與關心
至於您提到的問題,那就看解答者是否有這個時間去加註
至於模組化一事,前面已經提到,內建函數很多,至於一些技巧性的也會整理成值得關注或置頂連結
當然這需要人手,希望有這份熱忱的朋友能夠加入版主行列,來為版務盡一份心力!!
學海無涯_不恥下問

TOP

回復 1# white5168
你的建議很好 接受了.  但誠如 oobrid 超版 所說 vba在excel中只是一個輔助的小工具
線上回答都是一些小程式的問題, 並非是在寫一個應用程式, 不會有如你所說會有百萬行的程式碼.

TOP

  1. vba在excel中只是一個輔助的小工具
複製代碼
可惜~~~小弟學了好一陣子,還是摸不着頭腦.......@_@"
50 字節以內
不支持自定義 Discuz! 代碼

TOP

vba在excel確實是一個輔助工具,但卻也是舉足輕重的角色!
在講求資料倉儲的時代,資料格式是固定的,但是使用者分析的角度卻永遠在改變。
此時Excel - VBA的功能就很好用了,不但可以很容易的連接資料庫,也可以針對使用者的需求做相當多的變化。敝公司都常用Excel - VBA產出客戶用報表,經濟又實惠!
但也因為如此,幾千幾百行的vba程式並不少見~~此時適當的註解就很重要了
千萬不要小看VBA啊 ~~~

TOP

一個數千行的過程,執行時EXCEL通常會告訴你"過程太大"而中斷。
當你須要撰寫一個複雜龐大的過程時,最好把處理的過程分門別類成幾個子過程調用
讓這些子單獨負責一個工作,這樣一看就知是執行什麼。
個人覺得程式碼要乾淨清爽可讀性才會高。
首先得剔除多餘的代碼與敘述。
若加上一堆註解會看得眼花瞭亂
程式碼的縮排會很方便閱讀
讓每個循環自成一組,FOR 對齊 NEXT  ,IF 對齊 END IF
在多層套坎時可以立刻看出層次來,這樣才是可讀性高與方便維持的書寫方式。

TOP

大大的想法跟建議~ 真的很不錯~
版大們的回覆也都很貼切~

若有註解是能更增加想要了解的人~ 來吸收這些要傳承的知識~
但版大們說的是很符合事實~ 很多人的需求只是要結果~ 不太會深入的探討~

主要的癥結點在:[學習者的態度]
學習者若永遠只想要只得到結果~ 不下苦功的學會應用~
版大們再多努力的註解及程式層次分明也是枉然~

反之~ 個人之前也發表過提問的方式~ 是學習者要加強的地方~
很多發問者~ 提的問題都不清楚到底要什麼(個人初期也是一樣)~ 讓版大們也很困擾~
提升提問的品質~  回答問題的品質也會相對的提升~

若真的想學習的人~ 不太會在乎版大們是否有註解~
因為不懂就會再發文~ 請版大或大大們指導~
學習才能提升自己

TOP

這個小的身受其害,
因為小的學的不正統,
往往程式克出來就有點"長度",
程式執行結果雖然差強人意的可以接受,
但是一出問題就要查半天,
所以這個真的很重要,
希望在這裡可以吸收到更多更好的想法

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題