Soft_Job 板


LINE

「删除(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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1596190126.A.449.html
1F:推 nyyn: 受教了 推推 07/31 19:05
2F:推 iceman5566: truncate 表示: 07/31 19:27
3F:推 lairx: 推 07/31 19:28
4F:推 CaptPlanet: 推推 07/31 19:54
5F:→ newversion: 没有wipe吗? 07/31 20:03
6F:→ allenxxx: 川普:我都用fire 07/31 21:03
7F:推 qrtt1: dispose 呢? 07/31 21:11
8F:→ Domos: 我个人都用annihilate 07/31 21:44
9F:推 EntHeEnd: 推 07/31 21:46
10F:推 mathrew: 我都用 getout 07/31 21:56
11F:推 alihue: 我都用 kim 07/31 22:10
12F:推 GGFACE: 我都用kill 07/31 22:17
13F:推 naestnecniv: 那purge勒 07/31 23:59
14F:推 FY4: 推 08/01 00:35
15F:→ aoisama: drop table users 08/01 01:07
16F:推 FatSquirrel: 我都用Nuke 08/01 01:38
17F:推 Bencrie: free release destroy 08/01 02:05
18F:推 KOD: 推推 08/01 09:49
19F:推 mybluesky: 赞 08/01 10:12
20F:推 Esvent: 有时候会用eliminate 08/01 10:12
21F:推 blueskier: 还没看 先推个 08/01 11:11
谢谢各位的欣赏 :) 推文里提到了不少与「删除」有关的字,来整理一下我对这些字的「感觉」: # 与资料库 / SQL 有关的 * drop * 多见於「删除资料库物件」的情景 * truncate * 也有用在其它情景,用来表达「截短」的动作 * 相关字 trim 的动作也是「截短」,但更强调「删除 *多余的* 东西」 # 与资源管理有关的 * 释放资源 * free * release * dispose 常指「(妥善)处理掉要销毁的物件」的动作 # 语气更强烈的「删除」 * destroy * 有时候 delete 的实作方式是所谓 "soft delete", 会有 undelete 还原的选 项;而 destroy 暗示着「不可逆的删除」。 * purge * 原意是「暴力强制驱离」,可以想成「强制执行 delete 」 # 其它 * kill 常用於「终止 (OS) process (长期、持续运作的流程) 」 * wipe 与 erase 相似: * 表示「抹除」资料 * 也多常用在「抹除资料储存媒体」的情景 # 相对口语化的用词 * annihilate * eliminate * nuke 其它还有 * eradicate * terminate * obliterate * expunge # 我参不透的梗 XD * getout * kim # 要有霸王色霸气才能用的 XD * 龙老母 Daenerys Targaryen: Dracarys! * 川普: You are fired! ※ 编辑: AmosYang (136.56.13.184 美国), 08/01/2020 14:10:11
22F:推 alihue: kim = 金正恩 08/01 14:37
XD ※ 编辑: AmosYang (136.56.13.184 美国), 08/01/2020 14:46:55
23F:→ Vitaceae: 尽量用前人的动词表, 英语能力不适合在这里发挥 08/01 15:30
同意。 愈是在公开、可见度高的 * API 介面 * 使用者介面 * 文件 我会愈倾向使用该领域人员常用的术语。
24F:推 smart0eddie: 但是empty有些是拿来确认容器是否为空 08/01 17:11
25F:→ smart0eddie: 像是c++ std:: vector 08/01 17:11
你说的对。 我的解读是,那不像直接利用 empty 在英文中「清空容器内容」的动词语意;那 比较像是 IsEmpty() 这样「测试此容器是否为空(形容词)」的意思。 而就「清空容器内容物」来说, C++ Standard Library 看来也是用 clear 这个 字。(我猜 clear() 的实作是会去呼叫 erase() ) 十分感谢你的提醒,我已编辑我的原文,在上面提到 empty, clear, erase 的章 节都补充了 C++ Standard Library 应用实例,谢谢 :)
26F:推 mychiux413: 请问如果一种是丢到垃圾桶可复原的,一种是完全删除 08/01 17:31
27F:→ mychiux413: ,应该用什麽比较妥当? 08/01 17:31
这要看情景、需求及此功能的使用者习惯的术语。 现代个人电脑使用者大概已经很习惯了「删除(delete)只是 "soft delete", 删掉 的东西还可以从回收筒救回来」这件事。所以不少使用者介面都会特别注明 "permanently delete" 字样来强调其「不可复原性」。 就你描述的情形,或许可以这麽做: * 提供 hide / show 功能 * 提供 delete 功能 让使用者看到有 hide, delete 两种功能,区分其可复原性、不可复原性。 ※ 编辑: AmosYang (136.56.13.184 美国), 08/01/2020 18:47:55
28F:推 yupog2003: 推推 08/01 18:06
谢谢 :) ※ 编辑: AmosYang (136.56.13.184 美国), 08/01/2020 19:51:07
29F:推 ms79392002: 觉得你真的很棒 08/02 01:07
30F:推 siuoly: 推 有学到 08/02 07:34
谢谢 :)
31F:推 csfgsj: 所以说,写程式,国文也要好 08/02 08:21
同意。 目的是沟通,语言是工具,文字是载体。 需要依对象、情景来思考怎麽使用语言及文字。 例如,机器、使用者、团队成员、商业人员「想听的东西」跟「听得懂的东西」不 同。 而随着情景时空改变,就算是「刚写完程式的自己」跟「写完程式两周後的自己」 ,「想听的东西」跟「听得懂的东西」也不同 XD 这的确是需要持续练习精进的题目。
32F:推 skizard: 我都用Magic 08/02 08:32
XD
33F:推 hanshsu: prune勒? 08/02 09:43
34F:→ HamalAri: virsh: destroy undefine 08/02 11:53
很有意思,整理一下我的想法: * prune 与上面推文讨论中提到的 trim 类似,意指「修剪」。 * truncate / trim / prune 与 delete 的差别在於: delete 偏向「整个删除 」,而 truncate / trim / prune 偏向「消除部分」。 * destroy 上面推文讨论有提到,感觉是「语气更强烈」、「(暗示)不可逆」的 删除。 * undefine 我的 *感觉* 是,这像是 set / unset 的组合。 undefine 似乎常与 define 一起出现,而少有单独出现的情形。 ※ 编辑: AmosYang (136.56.13.184 美国), 08/02/2020 14:20:03
35F:推 wulouise: undefime好像很少用动词耶,用adj的倒是很多undefined 08/02 20:57
同意。
36F:推 DCTmaybe: Dismiss 08/02 21:07
是的,另外还有 discard, 我的感觉是相对偏向前端设计会使用的字。 ※ 编辑: AmosYang (136.56.13.184 美国), 08/02/2020 21:54:37
37F:推 unmolk: 推!很受用 08/03 00:32
38F:→ unmolk: 现在大二,学资结的时候常常看到实作的function是用remove 08/03 00:32
39F:→ unmolk: 或clear常常觉得疑惑,现在终於比较清楚一些了 08/03 00:32
如果有其它让你觉得困惑的单字,请让我知道 (在这里推文、站内信、 Facebook 简讯、 Twitter 简讯都可以) ,这可以帮助我把这方面的知识整理得更完善 :) * GitHub 讨论区 https://bit.ly/321ResR * Facebook 相簿 https://bit.ly/2EsPmj9 * Twitter 讨论 https://bit.ly/2D57pM5
40F:推 ian90911: 感谢分享 08/03 10:59
不客气 :) ※ 编辑: AmosYang (136.56.13.184 美国), 08/03/2020 16:35:58
41F:→ APTON: 推!非常感谢 08/04 09:53
不客气 :)
42F:→ APTON: 没想到当初没深度的战文可以引出这麽好的系列文! 08/04 09:53
> 当初没深度的战文 这是指哪个讨论串? :) 我想去看看那讨论串里有没有可以独立出来研究的题目。 ※ 编辑: AmosYang (136.56.13.184 美国), 08/04/2020 16:13:53
43F:推 jack42107: 推 08/06 01:47
谢谢 :)
44F:推 CoNsTaR: 我都不用删除,我都直接 YEET!!! 掉 08/07 03:07
XD ※ 编辑: AmosYang (136.56.13.184 美国), 08/08/2020 03:10:54
45F:推 gkkswae: 问 Dracarys适合用在那种程度的清除? 08/08 17:36
当你需要把整个资料中心从地图上消灭的时候? XD ※ 编辑: AmosYang (136.56.13.184 美国), 08/12/2020 07:49:57







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

请输入看板名称,例如:Tech_Job站内搜寻

TOP