Programming 板


LINE

※ 引述《adrianshum (Alien)》之銘言: : 其實, 往往要寫一千字去解釋, 我覺得那不算真的高手. : 我一向的目標都是要把程式寫得 self-descriptive, 要 : 別人不看 comment 也看得懂. : comment 就留在偶然為了效率寫得難明, 或有特別東西要 : 別人留意的時候才用吧. : (還在磨練中) 同意,還要寫註解那就代表程式碼本身描述力不足。 「程式可讀性」有個很經典的例子 XD 假設有一個 Date 類別,請問建構函數要怎麼設計? Date date1 = Jan(12, 2008) ; Date date2 = Feb( 9, 2009) ; 忘記在哪邊看到的了... XD -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.160.254.105
1F:→ adrianshum:這個... 是反面教材嗎?... 202.155.236.82 08/21 18:18
2F:→ ykjiang:這個例子很正面,程式本身就很具描述性 61.59.85.180 08/21 19:54
3F:→ tinlans:黑書前兩章的地方有提過。118.160.106.184 08/21 20:19
4F:→ chessjim:很不錯,只是要定義較複雜的語意就難摟 59.113.69.129 08/21 21:20
5F:→ ykjiang:好的介面設計就是讓人一看用例就懂, 61.59.85.180 08/21 21:25
6F:→ ykjiang:並且不容易忘記,因為是如此的自然 :) 61.59.85.180 08/21 21:26
7F:→ ykjiang:這時如果再加註解,那就顯得多餘了 61.59.85.180 08/21 21:26
8F:→ wa120:我反而不喜歡這樣設計這個Date Object 140.133.9.148 08/22 04:24
9F:→ wa120:Date的原意在日期 這樣重點(Method)跑道 140.133.9.148 08/22 04:26
10F:→ wa120:月份去了 140.133.9.148 08/22 04:26
11F:→ ykjiang:不會跑到月份啦,看也知道是日期 61.59.85.110 08/22 13:06
12F:→ ykjiang:用高階的方式思考,不要侷限在語言 61.59.85.110 08/22 13:06
13F:→ ykjiang:program into a language; 61.59.85.110 08/22 13:10
14F:→ ykjiang:NOT program in a language. 61.59.85.110 08/22 13:10
15F:→ ykjiang:Jan(12, 2008) 不但易懂,還防呆 61.59.85.110 08/22 13:17
16F:→ tinlans:跑到月份去的話那寫 Date date = 幹嘛。 118.160.106.29 08/22 14:05
17F:推 kuninaka:何必呢218.164.154.105 08/22 14:16
18F:→ ykjiang:還有,月份只有 Jan ,不會有 (12, 2008) 61.59.85.110 08/22 15:27
19F:→ adrianshum:你可以說我古板, 但 method 就該是動詞 202.155.236.82 08/24 14:50
20F:→ adrianshum:當你看到一個叫 Jan 的 method, 那有什 202.155.236.82 08/24 14:50
21F:→ adrianshum:麼好處呢?... 要防呆, 我寧願弄個enum 202.155.236.82 08/24 14:50
22F:推 kuninaka:青菜蘿蔔各有喜好 218.164.144.88 08/24 17:31
23F:推 adrianshum:我還是老論點: 這種違背正常設計原則的 202.155.236.82 08/25 10:43
24F:→ adrianshum:創新方法, 待把程式撰寫作為工藝磨練好 202.155.236.82 08/25 10:44
25F:→ adrianshum:才搞這種 "創新" 吧. 我實在不能苟同一 202.155.236.82 08/25 10:45
26F:→ adrianshum:個叫 Jan 的 method, 超詭異的 202.155.236.82 08/25 10:45
27F:→ adrianshum:Date d=getDate(2008, Month.JAN, 1); 202.155.236.82 08/25 10:46
28F:→ adrianshum:這會比起那個寫法難讀嗎? 我覺得還比較 202.155.236.82 08/25 10:46
29F:→ adrianshum:易讀, 防呆也沒分別 202.155.236.82 08/25 10:46
30F:推 bobju:有些規範比較嚴格的軟體公司會限制程設師用 59.104.183.16 08/25 11:16
31F:→ bobju:這類'別樹一格'的語法. 59.104.183.16 08/25 11:17
32F:→ bobju:為什麼?搞得跟人家不一樣只會造成大家的困擾 59.104.183.16 08/25 11:17
33F:→ bobju:.一看就懂嗎?只怕未必.因為人家還是希望有標 59.104.183.16 08/25 11:19
34F:→ bobju:準文件做為參考基準.而不是讓程式自己說話. 59.104.183.16 08/25 11:19
35F:→ ykjiang:to adrianshum, 你那樣寫的確也防呆, 218.167.67.14 08/25 12:09
36F:→ ykjiang:看起來也很清楚,但用起來卻顯得比較累贅 218.167.67.14 08/25 12:10
37F:→ ykjiang:若 Jan() 或 Date() 視為 constructor , 218.167.67.14 08/25 12:12
38F:→ ykjiang:或 factory method ,就不必堅持使用動詞 218.167.67.14 08/25 12:12
39F:→ ykjiang:to bobju, 不確定你說的標準文件的內含, 218.167.67.14 08/25 12:16
40F:→ ykjiang:為啥該文件會跟這個用例衝突, 218.167.67.14 08/25 12:16
41F:→ ykjiang:就我知道,很少程式規範到那麼細的地方 218.167.67.14 08/25 12:17
42F:→ ykjiang:另外,請區分 function 及 procedure 218.167.67.14 08/25 12:19
43F:→ ykjiang:procedure 命名才會建議用動詞 218.167.67.14 08/25 12:19
44F:→ ykjiang:我想 adrianshum 一定把這段碼當成 JAVA, 218.167.67.14 08/25 12:25
45F:→ ykjiang:剛好想到 JAVA 的 new 也很累贅... 218.167.67.14 08/25 12:26
46F:推 Schelfaniel:這就是Java程設師和C++程設師的不同 163.29.29.137 08/25 17:06
47F:推 bobju:to ykjiang簡單講就是不要用自創的'程式語法 59.104.183.16 08/25 23:57
48F:→ bobju:寫程式.你寫的程式碼用法最好都有官方文件為 59.104.183.16 08/25 23:58
49F:→ bobju:參考根據. 59.104.183.16 08/25 23:58
50F:→ adrianshum:和 C++/Java 沒關吧?! method 是動詞是218.103.237.217 08/26 00:42
51F:→ adrianshum:基本 OOAD 的做法吧...218.103.237.217 08/26 00:42
52F:推 zerodevil:樓上看rails的document一定會看到吐血.. 220.133.186.66 08/26 01:53
53F:推 zerodevil:寫起來像英文是好事啊 不一定要堅持什麼 220.133.186.66 08/26 01:56
54F:→ zerodevil:OOAD的作法.. 220.133.186.66 08/26 01:56
55F:→ Schelfaniel:Java寫久了自然會比較接受Java那一套 163.29.28.137 08/26 08:29
56F:→ adrianshum:其實我是幹了五六年 C++ development 202.155.236.82 08/26 11:29
57F:→ adrianshum:最近幾年才主力寫 Java 而已. 我說的原 202.155.236.82 08/26 11:30
58F:→ adrianshum:則在 C++ 的時候已經有遵從. 我常說, 202.155.236.82 08/26 11:30
59F:→ adrianshum:創新不是問題, 但待你把基本的磨練好 202.155.236.82 08/26 11:31
60F:→ adrianshum:才想創新的玩法吧. 202.155.236.82 08/26 11:39
61F:→ ykjiang:內文明明就說是問「建構函式」怎麼設計 218.167.67.14 08/26 13:02
62F:→ ykjiang:而不是問 object methods 218.167.67.14 08/26 13:03
63F:→ ykjiang:例如數學函式也都命名為 sin(), cos() 等 218.167.67.14 08/26 13:05
64F:→ ykjiang:不會是 getSin(), getCos() 218.167.67.14 08/26 13:05







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