Programming 板


LINE

其實這個真的要考慮到很多方面 要看你的好是讓程式看起來很漂亮 還是要方便修改 比方說程式高手 或許別人需要花二三百行寫的code 他可以不到一百行就輕易解決了 或許這樣的code看來簡潔有力 有大師之風 可是將來等大師腦力衰退或是其它人來接手時 會覺得看起來很吃力 相反的那二三百行完成的code修改容易 而且容易讓人了解當初作者的意思 程式是寫來服務人的 不是寫來折磨人的 ※ 引述《sorryChen (陳揚和)》之銘言: : 我覺得要多問人..看別人的code..不然都是自己閉門造車 : 我自己花了很久的時間閉門造車 其實很多時候用更方便的語法 : 應該說要多用別人的code..就會快很多 : 另外就是要寫test. 最好是unit test 其實應該是test driven programming : 為了一時方變求快 往往導致後面更長的時間在debug.. : 只要寫大一點點改code有錯就可能花一兩天來找 非常可怕 : 如果可以有人review 你的code那是進步最快的 : ※ 引述《yoco315 (眠月)》之銘言: : : 我不是高手,我懂一點點程式設計,但是我可以分享一點點經驗。 : : 程式設計是一門藝術, : : 多寫當然很重要,但是閉門造車狂寫的話,除非是絕世天才,不然就掰了, : : 多看大師等級的程式碼絕對比自己死命寫進步的快好幾倍。 : : 就像音樂跟繪畫,多看多接觸多欣賞別人的經典,絕對是好的。 : : 但是看要看得懂,光看到程式碼看不懂背後設計的精髓的話還是沒用, : : 要看懂那些東西你得先有基本的資料結構、演算法跟進階的設計模式等功力, : : 當然,除了理論以外,程式語言本身你也要熟撚。 : : 所以以上基本教材先念熟,這是進入高階殿堂的鑰匙。 : : 這些東西沒有的話,想要進殿堂連門都沒有。 : : 然後去找網路上有些「xx源碼解析」, : : 裡面都會找一些經典的程式碼,然後解釋背後的設計理念, : : 看懂就是你的,這個時候你對軟體的結構就開始有點概念了。 : : 看不懂的話,你就去好一點的討論版問, : : 因為到這個程度,死大學生討作業的爛版已經不能滿足你問題的難度了。 : : 高手不少,但是既然是高手,他們對無聊的問題就一點興趣也沒有, : : 要把他們釣出來你的問題就要夠好,他們遇到好的問題就會掏心掏肺, : : 因為他們有些人很無聊,每天都在看板,但是很少發文,因為沒的發揮, : : 難得有機會發揮的話,他們就不會放過,所以你要看這個。 : : http://catb.org/~esr/faqs/smart-questions.html : : 當然閱讀吸收很重要,但是還要多寫, : : 寫沒多久你就會發現開發環境很重要,選一個好的 IDE,絕對不要虐待自己。 : : 選用的時候要多看多問多評估,因為這是你寫程式的時候會一直接觸的東西, : : 程式設計師需要保持快樂,不快樂的程式設計師就是沒有產能的程式設計師。 : : 程式碼累積一定程度之後你會發現程式碼的整理也很重要, : : 這個時候你可能會注意到有版本管理系統這種東西, : : 當然,選用之前要多評估,爛的版本管理系統會讓你大腦發煙。 : : 也許有一天你需要回頭用或是看自己的程式碼, : : 你會發現幹他媽的寫這個程式的人是他媽的豬嗎!?為什麼我一行都看不懂!? : : 所以你需要寫文件跟註解,請選一個好的文件系統。 : : 文件也可以避免別人看著你的程式碼罵你是他媽的豬。 : : 而且懶惰是程式設計師的美德,如果你不想一直解釋重複的問題, : : 寫好文件就是讓你脫離當幼稚園老師的不二法門:「Read The Fucking Manual」 : : 搞不好你在當學生的時候就可以作到以上全部, : : 然後不管你工作了沒有,你可能會開發大型軟體, : : 我是說大型軟體,一個人寫不出來的那種。 : : 這個時候你會發現寫軟體就像是蓋房子,需要工程方法, : : 一堆程式設計師在一起沒有統籌跟良好方法的話,是作不出好的大東西的, : : 大東西可能做的出來,但是不好的大東西不叫做大程式,叫做大便, : : 真的,因為你會看著那堆程式碼整天直呼「shit!」 : : 軟體工程,不過他不是大型軟體才需要, : : 你最好在越過學徒階段之後就要抱有軟體工程的概念。 : : 如果你有幸堅持到這一步, : : 當別人問你是不是高手的時候, : : 你也許就可以回答他說「我懂一點點程式設計」然後跟他分享你的經驗了。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.131.68.5 ※ 編輯: mpk 來自: 220.131.68.5 (08/21 15:10)
1F:→ adrianshum:長短與易維護與否並無一定關係. 我見過 202.155.236.82 08/21 15:11
2F:→ adrianshum:太多大量 copy and paste 改一點點的又 202.155.236.82 08/21 15:11
3F:→ adrianshum:臭又長的 code, 這些絕對是又長又難維 202.155.236.82 08/21 15:11
4F:→ adrianshum:護的垃圾... 202.155.236.82 08/21 15:11
5F:→ adrianshum:個人覺得高手才不會硬為少較少行數而用 202.155.236.82 08/21 15:12
6F:→ mpk:當然不是指又臭又長的垃圾 220.131.68.5 08/21 15:13
7F:→ adrianshum:晦澀的寫法, 為了短不惜寫得難明反而是 202.155.236.82 08/21 15:14
8F:→ adrianshum:新手常犯的錯誤 202.155.236.82 08/21 15:14
9F:→ mpk:比方說 這一行明明有兩個意思在裡面 220.131.68.5 08/21 15:14
10F:→ mpk:有些高手就會常以一行來解決 220.131.68.5 08/21 15:15
11F:→ adrianshum:你說這種情況反而是新手常犯比較多.. 202.155.236.82 08/21 15:17
12F:→ adrianshum:至少依我工作一路來看, 寫得好的人, 常 202.155.236.82 08/21 15:17
13F:→ mpk:我就曾經解別人的bug 最後是把那行拆開來處理 220.131.68.5 08/21 15:18
14F:→ adrianshum:會為了易懂反而多寫東西, 程式短通常是 202.155.236.82 08/21 15:18
15F:→ mpk:那個bug的發生是因為 整個系統被改掉而產生 220.131.68.5 08/21 15:19
16F:→ adrianshum:因為整個流程想得清楚帶來的. 倒是有些 202.155.236.82 08/21 15:19
17F:→ mpk:如果當初兩個意思的事情 能分開來寫 220.131.68.5 08/21 15:20
18F:→ adrianshum:人寫得不思長進, 就會整天在省variable 202.155.236.82 08/21 15:20
19F:→ adrianshum:名稱幾個字, 或 { } 這類, 但程式流程 202.155.236.82 08/21 15:21
20F:→ adrianshum:就寫得左堆右砌沒有細心思考... :( 202.155.236.82 08/21 15:21
21F:→ adrianshum:其實我之前說: 維護一下爛 code 也能增 202.155.236.82 08/21 15:24
22F:→ adrianshum:進功力, 其實就是像 m 君那種情況, 當 202.155.236.82 08/21 15:24
23F:→ adrianshum:看過差的 code, 感受過它為維護者帶來 202.155.236.82 08/21 15:24
24F:→ adrianshum:的痛苦, 以後就會避免犯上前人的問題. 202.155.236.82 08/21 15:25
25F:→ kuninaka:去看一下國際C語言混亂代碼大賽的作品XD 218.164.146.49 08/21 15:25
26F:→ mpk:對我來說能清楚表達意思的就是好code 220.131.68.5 08/21 15:25
27F:→ kuninaka:好擴充 易懂 效率好XD 218.164.146.49 08/21 15:26
28F:→ mpk:好的code能讓人在精神不太好的時候 依然看得懂 220.131.68.5 08/21 15:26
29F:→ kuninaka:能在中間平衡 就看功力了 218.164.146.49 08/21 15:27
30F:→ kuninaka:除非有特殊需求 否則沒必要寫到沒人看懂 218.164.146.49 08/21 15:27
31F:→ mpk:其實那個不是讓人看不懂 而是只有本人看得懂 220.131.68.5 08/21 15:29
32F:→ mpk:就像是大師作品一樣 初學者一定看不懂 220.131.68.5 08/21 15:30
33F:推 adrianshum:同意 mpk 所言. 我一句寫程式(或要求別 202.155.236.82 08/21 15:30
34F:→ adrianshum:人) 最基本的就是 可讀性. 效率我反而 202.155.236.82 08/21 15:30
35F:→ kuninaka:所以我才說看需求阿 218.164.146.49 08/21 15:31
36F:→ kuninaka:看你寫的目的是什麼 功能是什麼 218.164.146.49 08/21 15:31
37F:→ kuninaka:山不轉路轉 CODE是人在寫 218.164.146.49 08/21 15:31
38F:→ adrianshum:不會那麼錙銖必較, 有時用一點心, 不要 202.155.236.82 08/21 15:32
39F:→ adrianshum:寫明顯是很笨的低效率 code, 就已經足 202.155.236.82 08/21 15:33
40F:→ adrianshum:夠了 202.155.236.82 08/21 15:33
41F:→ kuninaka:這沒有一定的準則 一切依需求 218.164.146.49 08/21 15:33
42F:→ adrianshum:我覺得無論什麼需求, 可讀性是不可能視 202.155.236.82 08/21 15:35
43F:→ adrianshum:若無賭的. 個人認為這些是寫程式的道德 202.155.236.82 08/21 15:36
44F:→ adrianshum:問題, 實在不能用需求胡混過去... 202.155.236.82 08/21 15:36
45F:→ kuninaka:國際C語言混亂代碼大賽裡面就沒啥可讀性 218.164.146.49 08/21 15:42
46F:→ kuninaka:還有用程式碼化圖的 218.164.146.49 08/21 15:42
47F:→ kuninaka:道德就言重了 有些是寫給自己爽的 218.164.146.49 08/21 15:44
48F:→ adrianshum:那個就是故意要寫得難明吧... 那很不同 202.155.236.82 08/21 16:12
49F:→ adrianshum:吧 XDD 我自己是寫爽也盡量寫得讓以後 202.155.236.82 08/21 16:12
50F:→ adrianshum:的自己也看得懂 202.155.236.82 08/21 16:13







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP