Re: [心得] 學好程式設計的訣竅

看板C_and_CPP作者 (愛不趴 不愛趴)時間15年前 (2010/10/08 06:58), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串4/14 (看更多)
※ 引述《snoopy0907 (超強氣)》之銘言: : ※ 引述《TeaEEE (ECFA內容不明 毛毛的)》之銘言: : : 因為手癢回了一段話,想想把一些心得也整理出來,當然每個人的學習方法可能有所不同 : : 若有不同學習方式也歡迎分享 : : 學校老師授課可能會教寫程式寫註解是好習慣,但我會建議不要寫註解,也避免看註解。 : : 不知道您是否有看過金庸的一本小說,俠客行,故事中一位武林高手將其絕學隱於俠客行 : : 的詩中,並透過大量的註解誤導眾多武林高手耗費數十年的精力而不可得的故事。 : : 現實的生活可能不會有這麼壞心的人故意寫"假"註解來騙人(可能要離職前會幹這種事嗎, : : =.="),但過多或多餘的程式註解,常會影響到我們對原始程式碼的理解,一個最常發生的 : : 例子是當程式碼修正時,註解可能未更新,年代久遠後就會造成資訊上的落差。所以與其 : : 花心思在寫/讀註解上頭,不如一開始就把程式寫好,學習直接閱讀原始的程式碼。 : 這部分我稍微持跟您不一樣的看法,也是之前的RD教我的 : 還是要保持寫註解是好習慣,至少重點的程式碼一定要寫 : 誰能保證幾個月後或幾年後你再次看這個程式時時還能懂呢? : 自己的小程式就算了 但實際的工作狀況是通常BOSS馬上會要你修改程式碼 : 之前的人沒寫註解的話...你花的時間會非常可觀 : 尤其是有幾萬甚至幾十萬的程式碼話....相信我 加班都加不完 : 不過您說的有提到一個重點 : "要保持修改程式碼時註解也要跟著更新的習慣" : 這不光是為了您自己下次的方便,也是為了別人的方便 : 我覺得這樣才是一個優秀的程式設計師 : 看過很多不負責任的人,沒寫註解,沒多久又跑掉.... : 讓之後接他Case的人....痛不欲生啊~~ : 還有越大型的程式...幾乎沒有一開始就能寫好 : 要經過不斷的測試、Debug、修改才行 : 小小拙見 : : 雖然我建議避免寫註解,不過我會註解公式來源,表格,因為這是從程式碼中較難看出來 : : 的資訊,此外如果vision control系統不提供簽入註釋或是團隊沒習慣做此動作,程式的 : : 改版資訊也是我會加入註解的一個項目。 RD Manager與老師教學生寫程式要加註解我是同意的,但學生在學習寫程式的過程中,我 建議是不要寫註解。很吊詭嗎? RD Manager是從工作的角度來談,他當然希望寫出來的程式,能除了開發者以外其他人也 能接手,就像你提的,開發過程中可能會做出不是很合理可是能動的code,例如一些魔術 數字,特殊的例外邏輯,這時若沒有加註,其他接手者(or自己)可能會很難維護。 但我從學習的經驗來談時,避免在程式中寫註解,也避免看註解,是對自己的一種訓練, 如果我們寫出來的程式碼,不靠註解無法理解時,是否該想一下如何讓自已的碼更為簡單 且可以理解?如果看自己半年前的程式碼無法理解,那是否該趁機做些改善,是否要重構 或重新設計?這些在職場上迫於時間壓力或許無法允許如此做,若不趁學生階段養成寫好 code的習慣,未來可能就難以擺脫。開始這樣做時應該會很痛苦吧!但也只有這樣,才能 讓自己的coding習慣提升到一開始就能寫出看的懂的程式。 同理,學習閱讀無註解的程式碼,也是一種訓練。如果,寫的再濫的code,我們都可以直 接看code而理解其問題所在,在未來職場上就不會受限於前輩的濫碼而有加不完的班。 如果是很複雜的程式,那要寫多少註解才能解釋的清楚?這時我們需要的不是註解,而是 規格與設計圖。其間的修改需要的是版本控制。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.85.162

10/08 15:02, , 1F
贊同您的意見~ 我是從工作的角度談沒錯~
10/08 15:02, 1F

10/08 15:03, , 2F
我只是覺得這種習慣從自己在學習時就養成比較好~
10/08 15:03, 2F

10/08 15:12, , 3F
"該在哪邊下註解"不也是一種訓練嗎~跟您想法沒衝突的~
10/08 15:12, 3F

10/08 15:14, , 4F
學在哪適當加註解 學看程式碼不加註解 都是一種學習~~
10/08 15:14, 4F

10/08 17:15, , 5F
註解本身也不可能解釋太清楚...最好的解釋方式還是程式碼
10/08 17:15, 5F

10/08 17:15, , 6F
只是要怎麼寫的容易被解釋就要靠一些小技巧><
10/08 17:15, 6F

10/08 18:02, , 7F
我同意,應做到程式可讀性極高(沒有註解),變數名一看即知用
10/08 18:02, 7F

10/08 18:03, , 8F
途和其資料型態(匈牙利式命名法)
10/08 18:03, 8F
文章代碼(AID): #1Chi4hI- (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 4 之 14 篇):
文章代碼(AID): #1Chi4hI- (C_and_CPP)