Soft_Job 板


LINE

上次談了《如何命名「數量變數」?》,收到很多迴響,其中一個最常見的問題是 :「寫程式一定要用英文嗎?」今天就來談談這個題目。 * Google 簡報: https://bit.ly/32rtGy3 * Google 簡報原始檔: https://bit.ly/2DGDhXd * Facebook 相簿: https://bit.ly/3fCF2mv * GitHub 討論區: https://bit.ly/321ResR * Twitter 討論串: https://bit.ly/2ZGtY2l --- # 寫程式一定要用英文嗎? 有的時候,因為既有的產業行規、社群文化、團隊決策、技術限制,我們沒有選擇 ;也就是所謂「人在江湖,身不由己」。 這裡討論的是「可以自己選擇」的情況,從以下兩個層面來思考。 * 技術 * 價值 --- # 技術 ## 推薦「美式英文 + ASCII 字集」 因為歷史因素,英文是電腦科學的通用語,累積了極大的智慧資產,是故,以「相 容性」為考量, * 在程式碼層級,使用 ASCII 字碼來命名變數、方法、類別、等等。 * 在使用各種工具時,使用 ASCII 字碼命名檔案、參數 * 現代鍵盤與字型罕有不支援 ASCII 字碼的。 「美式英文 + ASCII 字集」是個「低成本、高效益」的選擇。 ## 案例討論 * 美式英文 與 英式英文 有些微拼字差異,例如 * Color / Colour * Center / Centre * Serialize / Serialise 當前函式庫、工具鏈,大多以美式英文為主。 * UNICODE 有它的好處,但也有它麻煩的地方, (PTT 對 Unicode 的支援不完整,請到 Google 簡報原始檔看這段: https://bit.ly/2DGDhXd ) 例如 * U+03B1 / U+237A 看起來很相似 * U+00C1 / U+0041 U+0301 顯示出來是同一個字,但是是不一樣的字元 * 有些語言需要用到完整的拉丁字集才能精準表達意思。 後面會討論「在程式碼中使用 Unicode 」的案例。 --- # 價值 程式作品的價值主要來自於「滿足需求,解決問題」,而不是「寫程式時用英文」 。 這 *不是* 在否定「寫程式時用英文 / 與世界潮流接軌 / 讓維護程式的人好做事 」這件事。 若能把英文學好,能流利地寫 commit 訊息、寫註解、寫文件、與洋鄉民交流、開 拓職涯,當然是好事。 這裡我們思考的是「成本與效益的平衡」,也就是說,如果目前英文還沒有那麼好 ,怎麼辦? 也就是「寫程式一定要用英文嗎?」 我的主張是: * 「滿足需求,解決問題」 > 「寫程式時用英文」 * 「正確 + 清楚 + 簡潔的資訊」 >模糊的資訊」 * 「正確 + 清楚 + 簡潔的非英文資訊」 >模糊的英文資訊」 也就是說,當你的程式作品先創造了價值,之後才會有人來想了解它。(也有可能 是兩週後的你自己回來看這程式 XD )。 而「正確 + 清楚 + 簡潔的非英文資訊」會比「模糊的英文資訊」對它更有幫助。 它可以用機器翻譯「正確 + 清楚 + 簡潔的非英文資訊」,它可以找朋友翻譯。 但如果是「模糊的英文資訊」,那它就只能去通靈擲笅了。 ## 錯誤訊息 > 文件 > 註解 撰寫「正確 + 清楚 + 簡潔的 (英文 / 非英文) 資訊」 也需要成本,我會依以下 順序來投資: 1. 錯誤訊息 2. 文件 3. 程式碼註解 我的想法是,「想用工具解決問題的人」會比「想了解工具構造的人」多。 或著說,在一個人對某工具的構造有興趣前,它要先覺得這工具很好用。 是故,我會先投資在程式的「錯誤訊息、警告、參數資訊」上,先幫助使用者解決 它的問題。 這些資訊、訊息通常也較短,不管是寫母語還是寫英文,比較容易做到「正確 + 清楚 + 簡潔」。 ## 文化、產業、地區特有術語 與其硬翻而失真(最後從母語、英文兩邊都看不懂),可以考慮音譯、直譯,並加 上註解。 --- # Unicode (PTT 對 Unicode 的支援不完整,請到 Google 簡報原始檔看這段: https://bit.ly/2DGDhXd ) ASCII 是 1960 年代的東西,就方法、類別命名來說,還是推薦 「美式英文 + ASCII 字集」;但就小塊的程式碼而言,若適當使用 Unicode, 或 許可以增進程式碼的可讀性。 ## Emoji 能這麼做,不代表該這麼做 XD ## 希臘字母 / subscript / superscript 數學、科學計算式常用到希臘字母、 subscript, superscript 。 相對於 * pi * deltaT * F_0 * F_n_1 這樣的傳統 ASCII 寫法, Unicode 提供了另一種可能性。 --- # 寫程式一定要用英文嗎? 就長遠來說,能多學、多練習、加強英文能力當然是好事。 但在英文能力還不到位時,為了滿足眼前的需求,不管是台式英文、漢語拼音、日 文拼音、用中文寫 commit 訊息、寫文件、寫註解,都是成本與效益的取捨。 希望這篇文有提供讀者一些思考的方向,來檢視每個人自己的取捨選擇策略。 有任何程式設計、軟體工程相關的英文問題,都很歡迎到《程式英文》 GitHub 討 論區 https://bit.ly/321ResR 留言;這可以幫助我把這知識庫整理得更完善。 謝謝 :) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.56.13.184 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1594976222.A.175.html
1F:推 alihue: 推推 07/17 18:27
2F:推 tw11509: 推推 07/17 18:41
3F:推 bill0205: push 07/17 19:15
4F:推 CaptPlanet: U質 07/17 23:18
5F:推 lazyfirst: 推推 07/18 08:13
6F:推 jobintan: Nice, dude. 07/18 10:36
謝謝 :) 接下來我打算整理這個題目: * 「種類(type, kind, sort, class, category, classification)」該用哪個字? * https://github.com/EngTW/English-for-Programmers/issues/13 如果有任何感想、問題、建議,請讓我知道 :) ※ 編輯: AmosYang (136.56.13.184 美國), 07/18/2020 13:04:30







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