2017-10-29 用中文命名API的意義和途徑

来源:https://www.cnblogs.com/program-in-chinese/archive/2019/03/04/benefits-of-naming-API-in-Chinese.html
-Advertisement-
Play Games

""中文編程"知乎專欄原鏈" 在前文 "對在代碼中使用中文命名的質疑與回應" 中闡述了在代碼中使用中文命名的益處. 此文將從軟體使用者的角度闡述對API中文化的意義並探討實現途徑. 當然, 文中面向的用戶是以中文為母語的開發者. 首先請看一個 "實例" , 演示效果在 "此" : 這個庫提供了一系列 ...


"中文編程"知乎專欄原鏈

在前文對在代碼中使用中文命名的質疑與回應中闡述了在代碼中使用中文命名的益處. 此文將從軟體使用者的角度闡述對API中文化的意義並探討實現途徑. 當然, 文中面向的用戶是以中文為母語的開發者.

首先請看一個實例, 演示效果在:

p5js英文演示代碼

p5js中文演示代碼

這個庫提供了一系列繪圖相關的API. 後者是筆者將這些API封裝成了中文之後的對應代碼.

此文的大前提是, 對以中文為母語的開發者, 中文介面版本的代碼更易理解.

API作為程式和程式之間交流的"語言", 在軟體生態圈中的重要性不言而喻. 擁有一套設計良好, 易於理解的API是大多數流行框架和庫共有的特征. 當然, 絕大多數的API都是英文的. 導致中文用戶在學習和使用時就要更多地依賴文檔和註釋.

中文API的命名更能被中文用戶接受. 它將直接降低使用者的學習門檻, 並降低維護成本. 當然, 第三方庫對中文字元的支持問題仍然會對這一實踐造成麻煩, 但個人認為在實踐中解決這些麻煩是降低軟體開發成本付出的代價, 而且解決的越早, 後人越能乘涼.

現狀是, 即使一些國人主創, 且幾乎完全面向國內用戶的框架, 也沒有中文的API. 這裡絕無指摘之意, 因為冰凍三尺非一日之寒, 更何況這些框架問世之時中文字元的支持程度也遠不如今日.

以在下淺見, 開發中文API的途徑包括:

  • 用中文封裝現有的英文API
  • 在設計時就首選中文API

如果能夠做到在內部代碼和API都使用中文命名, 當然是最理想的, 但個人認為API的命名是更關鍵的一部分. 中文的命名規範幾乎是空白, 這需要實踐和集體智慧來填補.

封裝現有的英文API也許比較有爭議. 常見的一種觀點是"XX語言的核心庫, 先漢化給我看看". 這是一個尋找切入點的問題. 一個主流編程語言的核心庫, 往往經歷十數年甚至更長時間的積累, 介面不下萬個. 而一些特定領域的庫的API, 介面不過數十個. 領域受眾也是很重要的因素. 有興趣的請在跨界: 哪些中文非IT領域會偏好中文API, 編程/腳本語言?一起探討.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分享下我自己的axios封裝axios是個很好用的插件,都是一些params對象,所以很方便做一些統一處理 當然首先是npm安裝axios 很簡單$ npm install axios --save在src下新建文件夾 service / index.js接著上代碼 以上請求之前的一些處理就完成了下 ...
  • 客戶端打開小程式的時候,就將代碼包下載到本地進行解析,首先找到了根目錄的 app.json ,知道了小程式的所有頁面。 在這個Index頁面就是我們的首頁,客戶端在啟動的時候,將首頁的代碼裝載進來,通過微信的機制,就渲染出來了頁面。 小程式在啟動的時候,首先通過 App() 定義的 App() 實例 ...
  • 前端時間,做一個小網站的時候,需要用到很多小圖標,UI設計好之後不知道如何使用,如果使用圖片那會很麻煩,相信一些前端更喜歡iconfont這樣的標簽直接調用,這樣包括顏色和大小以及使用都更方便快捷,於是我們經過交流之後決定使用阿裡巴巴適量圖標庫,這是我們第一次使用,也順便把經驗分享給大家,希望可以對 ...
  • 來自:https://blog.csdn.net/qq_38658877/article/details/78092649 侵刪 Document ...
  • 來自:https://blog.csdn.net/qq_38658877/article/details/78092649 侵刪 Document ...
  • 來自:https://blog.csdn.net/sheng_li/article/details/84347987 侵刪<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" cont ...
  • 註意的是: 加上了冒號是為了動態綁定數據,等號後面可以寫變數。如果不使用冒號,等號後面就可以寫字元串等原始類型數據。這是就無法進行動態綁定數據了 ...
  • 在做js開發的時候用到了startsWith函數時,發現各個瀏覽器不相容問題,因為對開發來說,chrome瀏覽器最好用,就一直在chrome瀏覽器中使用這兩個函數沒有任何問題,但在ie瀏覽器訪問就直接報錯,因為ie沒有這兩個函數,要麼修改方法,換別的方法,但是一兩個還好改,多了就不好改,這個時候就只 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...