作者tkcn (小安)
看板Programming
標題Re: [請益] 程式該怎麼越寫越好呢
時間Mon Sep 7 11:09:21 2009
以我目前的程式功力,
老實說我不覺得自己有能力加入這個話題,
影像增強我也完全不了解,
只能憑猜測去理解。
下面這是我個人的一些疑問,
如果有什麼謬誤還請多包涵。
※ 引述《H45 (!H45)》之銘言:
: 程式碼非常清楚地把程式做的事情寫明白了,但是外行人沒做過影像增強根本不懂為什
: 麼要做這些事情。
: 首先,為什麼要建立 window? window 是什麼? 做什麼用的? 看實作細節可能會懂
: 但是還不如直接在上面寫些註解
: // window 是 image 的某一小塊區域,用來圈選增強單一像素所需要考慮的範圍
: 再來,為什麼要收集 pixels?
: // 收集 pixels 了解像素之間的關係,動態且適應性地決定每個像素對增強結果的
: // 重要性。
: 然後,為什麼要計算 difference? 為什麼要推論 similarity?
: 為什麼要做 convolution? 整個流程到底試圖完成什麼事情? 其目的是什麼?
: 這些事情並不是以變數命名或是函數命名就可以輕鬆交代的
假設是個外行人看到這樣的 code,
我覺得他需要的不是從 code 去學到這些知識,
而是學完了相關背景知識才來看這些 code。
程式的 reuse 是一個重要的議題,
難道註解就不能也用 reuse 的概念嗎?
也許每一個影像增強程式都需要用到上述五行程式碼,
難道每一份我都應該做一個完整的說明?
我甚至認為在註解中放個參考書目,甚至是個教學文件網址可能會更好。
: 仍然有很多事情,像是設計樣式、多緒陷阱、演算法註記、TODO、FIXME、……等
: 還是得靠註解和文件幫忙補完
: 如果有那種完全沒有註解與說明文件的程式碼維護兩年以上的
: 請務必告知我。
我只知道一點點的設計模式,
根據我的認知,
各種設計模式似乎也有它們對應程式命名慣例,
例如看到 xxxxFactory,
就可以猜到這可能是用了 Simple Factory...等。
雖然不懂 design pattern 的人,
就無法從 xxxxFactory 判斷出這是 simple factory,
可是同樣的,我認為不懂 design pattern 的人,
應該是先透過其他方式學習 design pattern,
才回來閱讀 "使用了 design pattern 的 code"。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.18.201
1F:推 willhunting:背景知識因人而異 要求不完的 160.39.16.13 09/07 11:34
2F:→ willhunting:與其要求別人都先去了解已經在你腦袋 160.39.16.13 09/07 11:35
3F:→ willhunting:很久的東西還不如好好寫寫該寫的註解 160.39.16.13 09/07 11:36
4F:推 ykjiang:回樓上的,你沒想過註解寫不完的情況嗎? 218.167.64.111 09/07 12:11
5F:→ ykjiang:又不是教科書。故有標準的東西點到即可 218.167.64.111 09/07 12:13
6F:推 H45:tkcn: 你的理解沒有什麼謬誤 :D122.117.172.148 09/07 16:09
7F:推 wa120:認同你說得 專業領域還是需要背景知識 140.133.9.148 09/07 17:46
8F:→ wa120:如果是一個複雜的演算法 要解釋的註解搞不好 140.133.9.148 09/07 17:47
9F:→ wa120:要幾百行 專業領域一個專有名詞就搞定 140.133.9.148 09/07 17:47
10F:→ wa120:而且那個專有名詞還可以當作function name 140.133.9.148 09/07 17:48
11F:→ ksirf:推W120的觀念,程式註解真的很難寫的很詳細 114.43.184.153 09/08 00:02
12F:→ ksirf:重點有點出來就夠了 114.43.184.153 09/08 00:02
13F:推 willhunting:我說的哪裡是要去寫寫不完的註解 160.39.16.13 09/08 02:34
14F:→ willhunting:拿他的例子來說好了 他如果用到了 160.39.16.13 09/08 02:34
15F:→ willhunting:factory pattern,與其啥也不說明 160.39.16.13 09/08 02:34
16F:→ willhunting:我認為可以加一行註解factory pattern 160.39.16.13 09/08 02:35
17F:→ willhunting:這樣對這東西不熟的人至少有個暗示 160.39.16.13 09/08 02:35
18F:→ willhunting:他可以自己再去查那是啥 160.39.16.13 09/08 02:35
19F:→ willhunting:我是說都要求別人已經知道那是什麼 160.39.16.13 09/08 02:35
20F:→ willhunting:反而可能造成後人閱讀效率不彰 160.39.16.13 09/08 02:36
21F:推 H45:我想共識應該快出來了:好的命名和簡要的註解 140.116.247.13 09/08 02:39