CSSE 板


LINE

reader大討論的議題很大 我就只回小一點的議題:p [恕刪] ※ 引述《reader (讀者)》之銘言: : 好像又離題了,總之,對於除錯這件事,我的結論是要用整體的觀點來做 : 系統化的有效管理,不要去依賴除錯工具,這樣我們將永遠也不能學會讓 : 程式碼寫得嚴謹。 這點我相當的贊同 : 至於如何有效閱讀程式碼,我的結論是,買高解析度的大螢幕才是正道, : 沒有任何軟體工具比得上大螢幕的巨大而直接的效用,我現在使用 19 吋 : TFT 螢幕,解析度 1280 * 1024, 用 proggy tiny 字型在 EditPlus 下 : 可以有超過 200 字元的寬度,超過 80 行的高度。 這個我反而不是很喜歡 以前覺得螢幕大,code應該一次看的比較多 但是當我使用17'LCD之後 我發現到其實看的code變多,其實並不會增加performance 因為資料量變多,search的時間相對也會變慢 人的眼睛能注意的東西是有限的,放那麼多code只會增加眼睛的overhead 目前採用vim的folding,跟註解技巧 他可以讓螢幕顯示該顯示,以及我想看到的東西就好 舉個例子, 假設我在改ls的code裡面一個叫做mastercmp的function 他是位於ls.c裡面的730行左右 當我利用folding改良之後 +--131 lines: 宣告跟include------------------------------------------------------- +---288 lines: int main(int argc, char *argv[])----------------------------------- +-- 69 lines: static void traverse(int argc, char *argv[], int options)----------- +--242 lines: static void display(FTSENT *p, FTSENT *list)------------------------ +-- 6 lines: mastercmp 的註解---------------------------------------------------- static int mastercmp(const FTSENT **a, const FTSENT **b) { int a_info, b_info; a_info = (*a)->fts_info; if (a_info == FTS_ERR) return (0); b_info = (*b)->fts_info; if (b_info == FTS_ERR) return (0); if (a_info == FTS_NS || b_info == FTS_NS) return (namecmp(*a, *b)); if (a_info != b_info && (*a)->fts_level == FTS_ROOTLEVEL && !f_listdir) { if (a_info == FTS_D) return (1); if (b_info == FTS_D) return (-1); } return (sortfcn(*a, *b)); } +-- 18 lines: static u_quad_t makenines(u_long n)--------------------------------- 注意到了嗎? 上述的只有30行的大小,但是他其實包含了780行的code 而且除了我正在改的function是詳細顯示之外 function其他就用一行帶過 但是其實在coding時,我也只需要那一行 input and output的資訊即可 善用這個技巧,我寫程式很少用page UP/DOWN的 因為再大的code我都只需要一到兩個畫面就可以完整顯示 : 並且我極用力地精減程式碼,使用大量的巨集和 inline function, 它們 : 基本上都可以寫在一行裡 (200 字元的寬度往往足夠寫下 10 行敘述), : 到最後幾乎所有模組,都在一兩個畫面中就完全呈現。 : 至此,我已不需要任何輔助工具,再怎樣也不會比眼睛一掃來得快,並且 : 區塊之間,也都會手動加上輔助用的、長短不一的區隔線,不同的長度有 : 不同的意思,並不會很容易看到眼花。 reader大可不可以show一下你的code 還蠻好奇長的什麼樣子的:p --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.207.173







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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP