作者AmosYang (泛用人型编码器)
看板Soft_Job
标题[心得][英文] 如何命名「分段」功能?
时间Fri Sep 25 11:13:12 2020
# 本周主题 + 结论:
* 分段 Slice, Split 有什麽不一样?
* Slice: 从大块东西上削下小块
* Split: 把东西打碎成多块
* 分开 Detach, Disconnect 有什麽不一样?
* Detach: 把东西分开来
* Disconnect: 切断(东西中间的)连结
* 分界点 Delimiter 有哪些概念相关字?
* Separator: 分隔器、分隔物
* Divider: 空间区块中的分隔物
* Splitter: 某些 UI 框架会用 splitter 来代表「分割(split)画面的 UI 元件」
* Break: 断行(line break), 断页(page break)
---
* GitHub 讨论
https://bit.ly/321ResR
* Google 简报
https://bit.ly/3mPCOEa
感谢参与
https://github.com/EngTW/English-for-Programmers/issues/35 讨论
的网友。
---
# Slice, Split 有什麽不一样?
* Slice: 从大块东西上削下小块
* Split: 把东西打碎成多块
## Slice
* 语源:古法文 ← 法兰克文(今法国北部) ← 古德文
* 1300 年代:名词「碎片」,动词「击碎」
* 今日
* 从大块食物(面包、肉、蛋糕)切下来的宽薄片状小块
* (特别指食物)将东西切成宽薄片状小块
* 从大块东西上削下小块
* 电脑科学例子
* .NET `Memory<T>.Slice()`
* .NET `Span<T>.Slice()`
* "array slicing" 从阵列中切出小阵列
* 日常生活例子
* 如何切洋葱 how to slice an onion
* 如何切凤梨 how to slice a pineapple
## Split
* 语源:古德文(今德国西部)
* 1580, 1590 年代:动词「分裂、裂开」,名词「裂缝」
* 1610 年代:「由裂开形成的木块」
* 今日
* (强力)把东西打碎成多块
* 分裂、裂痕、裂缝
* 电脑科学例子
* .NET `Regex.Split()`
* .NET `String.Split()`
* Unix `split` 指令(把档案拆成小块)
* 日常生活例子
* 如何分割 iPad 萤幕 how to split screen on iPad
## 参考资料
*
https://en.wikipedia.org/wiki/Array_slicing
*
https://en.wikipedia.org/wiki/Split_(Unix)
*
https://www.etymonline.com/word/slice
*
https://www.etymonline.com/word/split
*
https://www.lexico.com/en/definition/slice
*
https://www.lexico.com/en/definition/split
---
# Detach, Disconnect 有什麽不一样?
* Detach: 把东西分开来
* Disconnect: 切断(东西中间的)连结
## Detach
* 语源:古法文
* 1680 年代、今日:「为了特别的目的,把东西分开来」
* 电脑科学例子
* .NET `ObjectContext.Detach(object)`
* Java `VirtualMachine.detach()`
* 日常生活例子
* 如何在 iMovie 中把声音分离 how to detach audio in iMovie
* 如何分开 Surface Book; how to detach Surface Book
## Disconnect
* 语源:拉丁文
* 1770 年代、今日:「切断(东西中间的)连结」
* 电脑科学例子
* .NET `Socket.Disconnect()`
* 日常生活例子
* 如何移除汽车电池 how to disconnect a car battery
* 如何移除 PS4 手把 how to disconnect a PS4 controller
## 参考资料
*
https://docs.microsoft.com/en-us/dotnet/api/system.data.objects.objectcontext.detach?view=netframework-4.8
*
https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.disconnect?view=netcore-3.1
*
https://docs.oracle.com/en/java/javase/15/docs/api/jdk.attach/com/sun/tools/attach/VirtualMachine.html#detach()
*
https://www.etymonline.com/word/detach
*
https://www.etymonline.com/word/disconnect
*
https://www.lexico.com/en/definition/detach
*
https://www.lexico.com/en/definition/disconnect
---
# Delimiter 有哪些概念相关字?
* 语源:法文 ← 拉丁文
* delimit: 1852 年代,动词「标记、固定边界」
* delimiter: 1960 年代、今日,在电脑领域中,用来标记 资料区块/资料流 起
始、终结点的字元
## Separator
分隔器、分隔物。
* 语源:拉丁文
* 14 世纪未期:「把东西拉散开来」
* 1600 年代:「分离主义者」
* 1831 年代:「将东西分开来的机械装置」
* 今日:分隔器、分隔物
* .NET 例子
* `System.Windows.Controls.Separator` class; 用来分隔 UI 元件的 UI 元件
* `String.Join(separator, ...)`; 把字串连接在一起的字串
* `NumberFormatInfo.NumberDecimalSeparator`; 分隔整数位与小数位的符号
* `NumberFormatInfo.NumberGroupSeparator`; 分隔整数位群组的符号
* `Path.PathSeparator`; 分隔档案路径的符号
* `Path.DirectorySeparatorChar`; 分隔档案路径中资料夹名称的符号
* 日常生活例子
* 电池正负极中间的阻隔物
* 分离原油中各种成分的分离器
* 分离乳脂、乳清的分离器
## 参考资料
*
https://docs.microsoft.com/en-us/dotnet/api/system.globalization.numberformatinfo.numberdecimalseparator?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.globalization.numberformatinfo.numbergroupseparator?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.io.path.directoryseparatorchar?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.io.path.pathseparator?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.string.join?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.windows.controls.separator?view=netcore-3.1
*
https://en.wikipedia.org/wiki/Delimiter
*
https://en.wikipedia.org/wiki/Separator_(electricity)
*
https://en.wikipedia.org/wiki/Separator_(milk)
*
https://en.wikipedia.org/wiki/Separator_(oil_production)
*
https://www.etymonline.com/word/delimiter
*
https://www.etymonline.com/word/separator
*
https://www.lexico.com/en/definition/separator
## Divider
空间区块中的分隔物。
* 语源:拉丁文
* divide: 14 世纪早期,「把东西分裂成多块」
* divider: 1520 年代,「分配东西的人」
* 1959 年代、今日,「(尤其指分隔房间的)间隔物、屏风」
* 今日,「把东西分成多块的人事物」
* .NET 例子
* `System.Windows.Forms.DataGridViewRow.DividerHeight`; 资料表格横列间
的间隔高度
* `System.Windows.Forms.DataGridViewColumn.DividerWidth`; 资料表格直列
间的间隔宽度
* 日常生活例子
* 文字之间的分隔符号,例如空白、空行
* 房间中用来隔间的屏风
## 参考资料
*
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridviewcolumn.dividerwidth?view=netcore-3.1
*
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridviewrow.dividerheight?view=netcore-3.1
*
https://en.wikipedia.org/wiki/Word_divider
*
https://www.etymonline.com/word/divider
*
https://www.lexico.com/en/definition/divider
## 其它: Splitter, Break
* Splitter: 某些 UI 框架会用 splitter 来代表「分割(split)画面的 UI 元件」
* Break: 断行(line break), 断页(page break)
* HTML 的 `<br>` 标签
## 参考资料
*
https://en.wikipedia.org/wiki/Line_wrap_and_word_wrap
*
https://en.wikipedia.org/wiki/Newline
*
https://en.wikipedia.org/wiki/Page_break
*
https://html.spec.whatwg.org/#the-br-element
---
# 结语
适当的命名可以帮助你的读者了解你的程式码的意图,降低沟通成本,减少误会的
机率。
这系列文章将继续从语源资料、实用性的角度,探讨《程式英文》字汇的语意、使
用情景,帮助大家提昇程式码的可读性。
欢迎推文留言讨论、提问 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1601003622.A.9E4.html
1F:推 sniper2824: 先推 09/25 12:56
谢谢 :)
2F:推 j5128709: 推 希望有机会介绍区域 region area seg等等 09/25 13:50
谢谢 :) 很有意思的题目,我开了
https://github.com/EngTW/English-for-Programmers/issues/63 来追踪。
3F:推 alihue: 推推 09/25 18:41
谢谢各位的欣赏 :)
※ 编辑: AmosYang (136.56.13.184 美国), 09/25/2020 19:24:02
4F:推 Ouranos: 推推! 谢谢分享 :) 09/25 22:45
5F:推 NexonL: 先推,晚点来看XD 09/26 00:58
6F:推 lmr3796: 推推推 09/26 04:14
7F:推 sjuujs2000: 感谢分享 09/26 11:33
谢谢各位的欣赏 :)
8F:推 vani1995: 推 不过对detach跟separate的差异依然感到困惑 09/26 15:58
我开了
https://github.com/EngTW/English-for-Programmers/issues/64 来追踪
这个题目 :)
9F:推 regulator: 好像很好玩 09/27 00:14
有任何疑问、建议,都欢迎提出来讨论 :)
※ 编辑: AmosYang (136.56.13.184 美国), 09/27/2020 11:27:43