Translate-CS 板


LINE

blog 版:http://blog.dontcareabout.us/2015/02/library.html BBS 版以 markdown 語法撰寫 原文網址:http://games.greggman.com/game/ when-to-find-a-library-vs-when-to-write-code/ 譯註:我幾乎完全不認同這篇的說法, 更不用說 [HappyFunTimes] 也是一個 library [大笑]。 只是拿來恢復一下翻譯的感覺... 身為一個 C / C++ 碼農,除非是很大的 project,不然我很少找 library。 舉例來說,如果我需要讀 BMP / TGA 檔,帳面上要寫的程式碼不到 100 行。 看一下資料格式、寫一些程式、打完收工。 要是我需要載入 JPG / PNG 這些格式異常複雜的檔案, 我終究會去找一個 library。 我現在寫 JavaScript 就不太一樣, 在 JavaScript 的世界中有數以萬計[針對各種狀況的小型 library][1], 讓我不知道該自幹程式還是找找看有沒有 library。 這常常讓我覺得很浪費時間。 例如我要有一個非常簡單的功能:把字串裡頭的關鍵字換掉: replaceParams("Hello %(name)s", {name: "World"}); // produces: // Hello World 後來為了可以這樣搞,所以拓展到 20 行: replaceParams( "Hello %(name)s from %(user.country)s", { name: "Joe", user: { country:"USA", }, }); // produces: // Hello Joe from USA 最近我希望可以用路徑插入其他檔案,像這樣: replaceParams("->%(insertfile: foo/bar/moo.txt)s<-"); 如果 `moo.txt` 裡頭是 `this-and-that`,結果會是: -->this-and-that<-- 只需要幾分鐘的時間就可以加這個功能, 但是... JavaScript 中的 template 系統超級多, 我建一個 template 很快。 也許我應該去用那些 template 系統而不是重新再造輪。 那麼,第一個問題是:要用哪一個? 我聽過 mustache、handlebars、jade、ejs...... 為什麼要選 A 而不選 B? 我花了大概 20 分鐘搜尋、試圖比較... 來讓我知道哪一個比較優秀。 我看到「ejs = 嵌入 JS」看起來很像 PHP; 我看到 handlebars 是以 mustache 為基礎但是快了很多。 我決定用 handlebars、花了大概 20 分鐘來改程式碼, 它輸出相同的結果,一切看起來很棒。 然後我試著加上我那個 `insertfile` 指令, 靠夭,炸了 AFAICT,除了關鍵字以外都沒辦法傳進 template 中。 現在已經過了一小時了,誰能告訴我為什麼我要再作一次這件事情? 這就是為什麼寫這篇文章《啥時找 library?啥時自幹?》。 當然,在這個例子中, 如果我不去找 library 就可能只會花掉我 5~10 分鐘。 我選用的 library 有一些功能,像是可以擴展功能... 自幹版當然也可以加功能。 另外它可以選擇要不要轉換跳脫字元, 自幹版當然也可以有這個功能。 我其實沒有答案...... 我知道的是... 找 library 讓我覺得分心、浪費時間。 前頭我很誇張地描述許多我下載的熱門 library 證實是爛掉的, 時間都花在找尋、設定跟測試。 相對地,也有人告訴我應該使用更多 library。 像最近在 [HappyFunTimes] 就有人說我應該用 [body-parser] 來自動分析 JSON 而不是自己處理。 我的程式有 5... 也許 10 行,但是 body-parser 有 2000 行。 好啦好啦,它能處理一堆 case, 但是這些 case 在 HappyFunTimes 幾乎都不會遇到。 我試了 body-parser 結果發現它也沒有處理我沒法處理的錯誤。 如果我能解決這些錯誤,在網路上找答案是不會解決的, 只會找到誰也遇到這個問題而且一樣沒辦法解決。 我想用 library,因為我會假設他們處理一些我不知道的特殊狀況。 不過它們搞出來的麻煩往往多過它們的價值。 [1]: http://npmjs.org/ [HappyFunTimes]: http://greggman.github.io/HappyFunTimes/ [body-parser]: https://www.npmjs.com/package/body-parser -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.88.218
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Translate-CS/M.1425017911.A.F3A.html
1F:推 AmosYang: markdown is dead. long live commonmark :D 03/01 00:55







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

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

TOP