※ 本文轉寄自 ptt.cc, 文章原始頁面
[心得][英文] 如何命名「刪除」功能
「刪除(delete)」是資料處理 CRUD 四大基本項目之一。
這篇文章收錄了幾個與「刪除」有關的程式設計常用字,以及回答讀者相關問題。
* 如何命名「刪除」功能?
* Clear / Empty / Delete / Remove
* 有什麼不一樣?
* Google 簡報 https://bit.ly/2XazA2P
* Facebook 相簿 https://bit.ly/2EsPmj9
* GitHub 討論 https://bit.ly/321ResR
# 先說結論
* 在實作後端時,「清除資料容器所有內容物」,使用 clear 。
* 在設計前端時,「清除容器內容物」,使用 clear 、 empty 都可以。
* 在實作後端時,「(從容器)移除物件」,使用 remove 。
* 「刪除物件」,使用 delete 、 remove 都可以。
---
請試試看將以下「刪除、清除」等詞對應到英文。(本文末有參考答案)
1. 清除文字欄
2. 清空購物車
3. 刪除文字欄中第三行字
4. 移除購物車中第三項貨品
如果這對你來說很容易,可以到《程式英文》 GitHub 討論區 https://bit.ly/321ResR
看看有沒有更有趣的題目,或提出你在寫程式時遇到的英文問題;這能幫助我把這
個知識庫整理得更完善。謝謝 :)
---
# 從有到無
用來表達「刪除」動作的字可略分為兩大類:
* 清除「容器、區域、空間」的內容物
* clear, empty
* 消滅或移除物件
* delete, remove
這篇文章將會探討以上兩組動詞,以及回答讀者提問:
* clear vs. clean
* delete vs. erase
* cancel vs. dismiss
---
# 清除容器內容物: Clear vs. Empty
* clear 意指「清除某區域中的(障礙)物件」。
例如,影劇中醫生電擊急救病人時會大喊 "Clear!" 來要求其它人「清場、讓開
、離遠一點」。
* empty 意指「清空某容器的內容物」。
例如,電影《瞞天過海:13王牌》中 Al Pacino 演的角色大吼
"Everyone in this room! Empty your pockets! Now!"
「房間裡的每個人!掏空清出你口袋裡的東西來!現在馬上!」
易言之,作為動詞,
* clear 偏向於「清場」;「場」可以是實體區域,或著是資料容器。
* empty 強調「清空(實體)容器的內容物」
* 例如「口袋」、電商網站的「購物車」
## clear 的應用實例
* .NET 與 Java 採用 clear 作為「清空容器」 [1] 的方法動詞。
* C++ Standard Library 採用 clear 作為「清空容器」 [7] 的方法動詞。
* 《微軟 PowerShell 動詞表》 [2] 推薦使用 clear 作為「清空容器」的動詞。
## empty 的應用實例
* .NET 採用 empty 作為「取得空的容器、字串、 Guid 、等等」 [3][9][10]
的方法動詞、成員名字。
* C++ Standard Library 採用 empty 作為「測試此容器是否為空的」 [6] 函式名字。
---
在實作後端時,我推薦使用 clear 來表達「清空資料容器」的動作。
在設計前端時,例如,電商網站、 webmail 介面, clear 與 empty 都可以用來
表達「清空購物車」、「清空垃圾筒」的動作,而 empty 會比 clear 更能強調「
清空」這個動作。
---
# 消滅或移除物件: Delete vs. Remove
* delete 意指「刪除」,把東西從存在變成消滅。
* remove 意指「移除」,也可以表達「刪除」。
## delete 的應用實例
* Facebook 刪除文章
* Twitter 刪除文章
* HTTP 動詞之一
* C++ 銷毀物件(釋放記憶體)
* Windows 刪除檔案
* SQL 刪除資料
* .NET 與 Java 用 delete 作為「刪除檔案」 [4] 的方法動詞
## remove 的應用實例
* 《微軟 PowerShell 動詞表》 [2] 推薦使用 remove 表達「從容器移除物件」
的動作
* .NET 與 Java 採用 remove 作為「從容器移除物件」 [5] 的方法動詞
* Facebook 「從好友建議名單移除某帳號」
* Linux 刪除檔案
## 互相替代性
* remove 多半可以用來取代 delete 表達「刪除」的意思
* 例如在 Linux 上刪除檔案的 `rm` 指令
* 但 delete 多半無法取代 remove 表達「(從容器)移除物件」的意思
---
# 讀者問題: Clear vs. Clean
* clear 偏向「清場」的意思。
* clean 意指「清潔、去除污垢」的意思。
假設這樣的情景:「桌上散著書本紙張」,而我們會用「雜亂」來形容這桌子。
這時候, clear 與 clean 都可以表達「清掃整理」的意思。
再假設另一個情景:「桌上滿是湯水油污」,而我們會用「骯髒」來形容這桌子。
這時候,就適合用 clean ,而不適合用 clear 。
寫作程式時,就「清空容器」來說,例如「清空房間裡的怪物」, clear 會比
clean 更適合。
另外,有時候會用 clear 或 clean 這個字來表達「初始化記憶體區塊」這個動作
,然而,「初始化」用 initialize 表達會更適合。
---
# 讀者問題: Delete vs. Erase
* delete 的原意是「畫記、畫線槓掉想消除的文字」
* 例如, HTML 的 `<del>` 標籤
* erase 的原意是「以擦、抹消除文字」。
在現代數位世界裡,
* 在與人溝通時, delete 與 erase 都可以表達「刪除資料、檔案」。
* 在寫程式時,多半用 delete 表達「刪除資料、物件、檔案」。
* C++ Standard Library Vector 採用 erase 來表達「刪除容器中的物件」 [8]
的函式動詞。
* 可能是為了避免與 C++ 關鍵字 delete 衝突。
* 在「抹除儲存媒體資料」時(例如:磁帶),用 erase 。
---
# 讀者問題: Cancel vs. Dismiss (前端設計)
在前端設計的情景下,
## Cancel 「取消」
* 適用於「讓使用者選擇停止、放棄正要進行的動作」
* 例如:「是否要將此文章發佈出去?」
* Cancel (取消)
* OK (確認)
## Dismiss 「廢棄某想法 / 屏除、遣散某人」
* 適用於「讓使用者打發掉提示、提醒、警告、錯誤訊息」
* 例如:「__首家線上賭場上線啦!」
* Dismiss (朕知道了)
---
# 結語
每個人都是從零開始學起的。 :)
有任何寫程式時遇到的英文問題,歡迎推文留言。
或到《程式英文》討論區提問:
* GitHub: https://bit.ly/321ResR
* Facebook: https://bit.ly/2EsPmj9
這可以幫助我把這知識庫整理得更完善,謝謝 :)
---
# *參考* 答案
1. clear
2. empty
3. delete
4. remove
---
[1]:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.collection-1.clear?view=netcore-3.1
[2]:
https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7
[3]:
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.empty?view=netcore-3.1
[4]:
https://docs.microsoft.com/en-us/dotnet/api/system.io.file.delete?view=netcore-3.1
[5]:
https://docs.microsoft.com/en-us/dotnet/api/system.collections.objectmodel.collection-1.remove?view=netcore-3.1
[6]:
https://docs.microsoft.com/en-us/cpp/standard-library/vector-class?view=vs-2019#empty
[7]:
https://docs.microsoft.com/en-us/cpp/standard-library/vector-class?view=vs-2019#clear
[8]:
https://docs.microsoft.com/en-us/cpp/standard-library/vector-class?view=vs-2019#erase
[9]:
https://docs.microsoft.com/en-us/dotnet/api/system.string.empty?view=netcore-3.1
[10]:
https://docs.microsoft.com/en-us/dotnet/api/system.guid.empty?view=netcore-3.1
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.56.13.184 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1596190126.A.449.html
45 則留言
AmosYang 作者的近期文章
Re: [請益] 雲端技術是Java工程師的必備技能嗎
聊到雲的資安問題,有興趣可以參考一下 Homomorphic Encryption (HE) 這東西。 === 「資料保密」這個題目可粗分為 3 大方向: * 儲存(at rest) * 運輸(in transit) * 使用(in use
12Soft_Job
Re: [請益] Side Project 轉正該爭取什麼?※ 引述《d8888 (Don)》之銘言: : 想請問版大們有沒有更好的解決方法,該爭取什麼好?謝謝。 「讓『搜尋病歷』更快、更準、更省人力」是很棒的,但最後還是要看這些好處與 決策者 (有權決定預算、要對預算負責的人) 它自身的利益是否一
推
推
推
推
→
→
推
→
推
推
推
推
推
推
→
推
推
推
推
推
推
推
→
推
→
推
→
推
推
推
推
推
推
→
推
推
推
→
→
推
→
→
推
推
推