Soft_Job 板


LINE

这周的主题是「复制」: Copy, Clone, Duplicate 。 我们将从语源学的角度来分析 copy, clone, duplicate 的「复制」语意差别,辨 别什麽情况适合用哪个字。 * Google 简报 https://bit.ly/3guPFaE * GitHub 讨论 https://bit.ly/321ResR --- # Copy copy 起源於 14 世纪後期,原意是「抄写复制文字/文件」;在 1950 年代开始用 来描述「复制电脑资料」,到今日「电脑资料」包含了从文字到影音的各种数位化 资料、档案。 ## 语源 * 14 世纪後期:抄写、复制文字/文件 * 1640 年代:模仿 * 1953 :复制电脑资料 * 1983 :送一份 文件/信/email 给第三方 ## 案例 * 复制电脑档案/资料 * 网页内容(文字、图片、影音) * .NET `File.Copy()` * 影印机(copy machine) * 复制保护(copy protection) * 着作权(copyright) ## 参考资料 * https://www.etymonline.com/word/copy * https://www.lexico.com/definition/copy * https://en.wikipedia.org/wiki/Copy --- # Clone clone 是相对近代( 1903 年)才出现的字,原意是「一群从母体分支移植培育的 植物」,在 1970 年代开始被用来描述「在遗传基因层级复制人/动物」的观念, 例如 1973 年的电影《The Clones》,即是以「复制人」为剧情设定。 目前没有足够资料来推论 clone 这个字是怎麽转移到电脑领域的,我能找到的最 早的纪录是 Linux 1.0.0 版(於 1994 年 3 月释出)有 `clone` system call 。 ## 语源 * 1903 :(植物学)一群从母体分支移植培育的植物 * 1959 :开始被当作动词使用 * 1970 :由单个细胞开始、在遗传基因层级复制人/动物 * 1994 : Linux 1.0.0 system call `clone(2)` ## 案例 * Git `clone` * Linux system call `clone(2)` * Java Object `clone()` * .NET ICloneable `clone()` * 复制品 * Diablo clone 类/仿 Diablo 的游戏 * Facebook clone 类/仿 Facebook 的网站 ## 参考资料 * https://www.etymonline.com/word/clone * https://www.lexico.com/definition/clone * https://en.wikipedia.org/wiki/Clone * https://en.wikipedia.org/wiki/Fork_(system_call)#Clone * https://man7.org/linux/man-pages/man2/syscalls.2.html * https://www.imdb.com/title/tt0071336/ --- # Duplicate duplicate 起源於 15 世纪,形容「双份的」,作为动词「把东西复制成双份」, 或是指「(之於某物)一模一样的东西」。 ## 语源 * 15 世纪早期:双份的 * 15 世纪晚期:复制成双份 * 1530 :(之於某物)一模一样的东西 ## 案例 * .NET Linq `DuplicateKeyException` * 代码重复/复制 duplicate code * 游戏中复制物品 dupe / duping ## 参考资料 * https://www.lexico.com/definition/duplicate * https://www.etymonline.com/word/duplicate * https://en.wikipedia.org/wiki/Duplication * https://en.wikipedia.org/wiki/Duplicate_code * https://en.wikipedia.org/wiki/Duping_(video_games) --- # Copy, Clone, Duplicate 有什麽不一样? 作为动词时, copy, clone, duplicate 都能让读者联想到「复制」这个观念,就 看你想强调「复制」的哪一个面向。 比较特别的是 duplicate 做为形容词「双份的」时,则是 copy, clone 无法替换 的;例如下列的 `DuplicateKeyException` 。 * 「抄录资料」 → copy * .NET File.Copy() 复制档案1的内容到档案2 * .NET Array.Copy() 复制阵列1的元素到阵列2 * .NET List<T>.CopyTo() 复制此串列的元素到串列2 * 「个体繁殖」 → clone * Git clone 复制 Git repo * .NET Object.MemberwiseClone() 浅 (shallow) 复制此物件 * 「双份的;制造双份」 → duplicate * .NET Linq DuplicateKeyException 「同样的物件 key 已存在」例外 * Office Shape.Duplicate() 复制一形状 (shape) 物件为双份 ## 参考资料 * https://docs.microsoft.com/en-us/dotnet/api/system.io.file.copy?view=netcore-3.1 * https://docs.microsoft.com/en-us/dotnet/api/system.array.copy?view=netcore-3.1 * https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.copyto?view=netcore-3.1 * https://git-scm.com/docs/git-clone * https://docs.microsoft.com/en-us/dotnet/api/system.object.memberwiseclone?view=netcore-3.1 * https://docs.microsoft.com/en-us/dotnet/api/system.data.linq.duplicatekeyexception?view=netframework-4.8 * https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.core.shape.duplicate?view=office-pia --- # 「复制」深浅度、连动关系 copy, clone, duplicate 并没有明确统一的实作惯例。 每套框架可能有它自己的实作风格。 * 深 (deep) 复制 / 浅 (shallow) 复制 * 本体 与 复制体 之间是否有连动关系 --- # 结语 有「复制」语意的字汇不只 copy, clone, duplicate 这三个,但从 GitHub 及 Microsoft doc 取样的结果来看, copy, clone, duplicate 在程式码中的出现频 率比其它「复制」字汇(例如 replicate, mirror, repeat )来得高,所以先研 究这三个字。 非常感谢参与 https://github.com/EngTW/English-for-Programmers/issues/17 讨论的网友。 有任何疑问、建议、感想,欢迎推文留言讨论。 :) --- # 徵求意见回馈 本周简报有两个版本: * 正式发布版: https://bit.ly/3guPFaE (含讲者稿) * 实验版: https://bit.ly/31yi5w4 (含讲者稿) 如果方便的话,请告诉我你对这两种版本/写作取向的感觉,谢谢 :) --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1598586794.A.F2D.html ※ 编辑: AmosYang (136.56.13.184 美国), 08/28/2020 11:56:01
1F:推 CaptPlanet: 推 08/28 12:38
2F:推 Aobanan: 推 08/28 12:38
3F:推 hans1461: 推 08/28 13:47
4F:推 ga4567896: 推 08/28 13:56
5F:推 DCTmaybe: 想请问php references的这种情况 $a=&$b; 适合用哪个字? 08/28 14:23
6F:推 lazyfirst: 实验版和正式发布版的写作口气差好多,是大大写的吗? 08/28 14:46
7F:推 sniper2824: 推 08/28 17:37
8F:推 summerleaves: 推文推 08/28 17:59
9F:→ summerleaves: 优** 08/28 17:59
10F:推 alihue: 推 08/28 18:08
11F:推 Ouranos: Amos 必推! 08/28 21:43
12F:推 wulouise: reference是参照不是复制吧 08/28 22:01
13F:推 alihue: 正式版编排比较读得下去,有别人用法的实务范例好懂很多 08/28 22:12
14F:→ alihue: 工程师比较不喜欢那麽多废话 想看重点XD 08/28 22:12
15F:推 DCTmaybe: 好像也是,算了当我没问XD 08/28 22:14
16F:推 brianhsu: 这里提到的复制应该比较像真的有两个不同的记忆体区块但 08/28 23:22
17F:→ brianhsu: 内容相同,单纯的两个 pointer / reference 指到同一个 08/28 23:22
18F:→ brianhsu: 物件好像不太会用这些词。 08/28 23:22
19F:推 jasonwung: 推 08/29 00:18
谢谢各位的欣赏 :) --- > 推 DCTmaybe: 想请问php references的这种情况 $a=&$b; 适合用哪个字? > 推 wulouise: reference是参照不是复制吧 > 推 brianhsu: 这里提到的复制应该比较像真的有两个不同的记忆体区块但 > → brianhsu: 内容相同,单纯的两个 pointer / reference 指到同一个 > → brianhsu: 物件好像不太会用这些词。 我会从「想聚焦在哪个场景」这个角度来看,例如说, * 从 `=` 这个 "assignment operator" (指派运算子) 的层级来看,我会用 "assign" 这个动词。 * 往实作细节去看的话,我想一定会有以下的动作:「读取 $b 的 reference 的 『值』,将其写入 $a 的储存空间」;在描述如此「抄写一个『值』」的动作时 ,我会用 copy 这个动词。 * 如果是要强调「已经有了 $b, 现在再多产生一个相等的 $a 」,那我会用 duplicate 这个动词。 而 duplicate 的语意可以是正面也可以是负面,例如说, * 我们 duplicate 了 $b, 所以接下来当 $b 消失、被更动,我们还有 $a 可以 用 ← 在此 duplicate 就是偏向正面的「备份、备援」 * 我们 duplicate 了 $b, 但後来发现这样做没什麽正面效益,可能还多了一个 变数 $a 要多花心力维护 ← 在此 duplicate 就是偏向负面的「冗赘」 也就是说, duplicate 比 assign, copy, clone 更能带出「双份 / 不止一份」 的语意。 --- > 推 lazyfirst: 实验版和正式发布版的写作口气差好多,是大大写的吗? 不是 :) 但的确是我想要做的实验,试着找到「简洁, 好懂, 平易近人」的平衡, 还有不同媒体 (文字、影音) 适合的内容走向。 > 推 alihue: 正式版编排比较读得下去,有别人用法的实务范例好懂很多 > → alihue: 工程师比较不喜欢那麽多废话 想看重点XD 十分感谢你的意见回馈 orz 我能体会那种感觉,想要「高密度、以一贯之的实用 资讯」 :D ※ 编辑: AmosYang (136.56.13.184 美国), 08/29/2020 07:28:47
20F:推 unmolk: 推实用!学生受益良多 08/29 09:52
谢谢你的欣赏 :)
21F:推 Csongs: 个人喜欢语源学来了解英文语系的思路,以前学英文字根多少 08/29 11:53
22F:→ Csongs: 就有这个意味 08/29 11:53
十分同意;接触语源学的资料後,之前一些自己也说不明白的「语感」,也开始变 得更明白。
23F:推 DCTmaybe: 感谢说明~推推 08/29 21:24
不客气 :) ※ 编辑: AmosYang (136.56.13.184 美国), 08/30/2020 02:36:13
24F:推 BlazarArc: 推 09/01 09:16
25F:推 kyukyu: 09/03 12:12
谢谢 :)
26F:推 APTON: 谢谢!GIT按星星并追踪了 09/03 12:55
27F:→ APTON: 以後有人故意要战命名就叫他先看完这个系列!XD 09/03 12:56
谢谢你的欣赏 :) 我猜想,有时候「战命名」可能就只是每个人心智/逻辑/思维模型不同,抽象层的 分界点不一。 这系列文章是尽量建构於客观参考资料、应用实例之上,希望能降低因主观语感而 起争议的机率。 :D ※ 编辑: AmosYang (136.56.13.184 美国), 09/04/2020 12:12:50
28F:推 janbarry168: 推 09/05 09:59
谢谢 :) ※ 编辑: AmosYang (136.56.13.184 美国), 09/06/2020 08:00:45







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