引言
日常工作中,我们经常需要编写各种各样的 sql 语句。为方便和帮助研发部门编写出正确、合理的 sql 语句,dba 团队提供了用于验证 sql 语句的可视化平台,于是自然的产生了如下的工作流程模式。
- 编写 sql 语句。
- 在可视化平台运行,查看是否有报错信息。
- 将正确的 sql 语句拷贝到提测邮件中。
过程从来都是完美无缺,可惜现实往往令人遗憾。
在可视化平台中校验通过的 sql,提测时却反复被 dba 团队打回。得益于 dba 团队对 sql 的严格审核,问题 sql 并未造成生产事故。
这是一件着实让我疑惑的事情。我严格依照流程作业,为何还会出错呢?
重现案发现场
程序员和测试交流时,有一句口头禅:「你把这个 bug 重现一下。重现不了?那肯定是你的环境问题。」
将输入法调整为半角输入法,在文本编辑器中编写正确的 sql 语句。
将编写好的 sql 语句,通过语句校验平台的校验后,粘贴到邮件客户端中。
仔细观察,完全正确的语句在粘贴到邮件客户端以后,语句的最后一个 「"」变成了「”」。好吧,既然重现了问题,那肯定不是一时的环境问题。邮件客户端为什么要自作聪明的帮我们替换掉最后一位标点符号?
乔布斯帮你的一点小「忙」
引号的弯与直
众所周知,引号不是一个符号,而是一对符号,有前后之分;它们是双引号 “”(U+201C 和 U+201D Left/Right Double Quotation Mark)或单引号 ‘’(U+2018 和 U+2019 Left/Right Single Quotation Mark),即所谓的「弯引号」。但是,键盘上却只有一个「引号」键,而且输入的也不是「正牌」的、弯曲的引号,而是垂直的 '(U+0027 Apostrophe)和 "(U+0022 Quotation Mark),即所谓的「直引号」。这种违反直觉的安排实际上是打字机时代的遗产:为了节省空间、减少机械结构,打字机的键位安排思路是「能少一个是一个」,而现代键盘则为了迁就习惯而将其原封不动地继承了下来。
引号的「弯」「直」之辨是西文排版的入门课之一。翻开任何一本英文排版书籍,几乎都能找到对于直引号痛心疾首的批判,理由也很明显——太丑。在排版中使用直引号(常常也被嘲讽地称为「打字机引号」或「呆(dumb)引号」)被认为是一种偷懒或业余的行为。
macOS 和 iOS 作为一家设计导向的公司的产品,显然不会「放任」这种审美上的瑕疵,默认情况下所有的直引号都会被自动纠正为成对的弯引号。
macOS 对于细节的执着,造成了正确的 sql 语句自动「纠正」为了不正确的 sql 语句。只要取消软件的自动纠正功能,即可避免上述问题的发生。
请使用规范的标点符号
正确认识常用标点符号,规范使用常用标点符号不仅仅能避免在 sql 语句这样的专业性问题上出错。我们来看下面几个例子。
直角引号
引号输入还有一个非常中国特色的问题,即是否应该使用「直角引号」(「」,U+300C 和 U+300D Corner Brackets)。无论国家标准如何制定,由于直角引号使中文的排版显得更加的优美,现在已经成为了各大互联网社区推崇的用法和事实上的习惯。
另外,直角引号在香港、台湾和日本都是官方规范。这3个地区都属于汉语文化圈,所以这也为将其「进口」到简体中文世界提供了依据。
各种「横线」
另一组误用频率不亚于引号的符号,大概就是包括连字符、连接号和破折号在内的各种「横线」形符号了。它们一方面数量繁多且形态相近,另一方面在中英文中的形态和用途并不完全对应,从而更容易产生误认。
连字符、连接号、破折号、等横线是常常被误用的符号。在中文中,破折号常常被用来用于句中的插入语前后(类似逗号)、引出补充说明或列举(类似冒号)、标示中断或间隔等。而连字符和连接号等横线,在中文里并无太大的用武之地。只要能够正确的输入破折号即可。
输入破折号,最通用的做法是连续使用两个 em dash ——
如果你是专业的文字排版工作者,你可以参阅我在文章底部给出的参考资料,里面对各种横线进行了详尽的讨论。
各种「圆点」
省略号
中文状态下输入省略号几乎人人都会,Shift + 6 组合键会输出连续的两个…(U+2026 Horizontal Ellipsis),这也是中文省略号的标准形态。
掌握程度普遍较差的是英文状态下省略号的输入方法。实际上这也是很多英文用户搞不清楚的,原因还是拜打字机所赐。当时,由于键盘上没有省略号的一席之地,人们的权宜之计是连用三个句点 .(U+002E Full Stop)代表省略号,有时还在两两之间加上空格,即 . . .。这种不规范的习惯被保留至今。虽然大多数自动纠正机制都会把三个点自动替换成正确的省略号 …,但正宗的输入方式还是值得一记:Option + ;(分号键)。
间隔号
间隔号这个名字听起来或许令人有些陌生,实际上却是一个被频繁使用的标点,外文人名(史蒂夫·乔布斯)、词曲名(《天净沙·秋思》)、节日和纪念日(「3·15」消费者权益保护日)中的「圆点」,用的都是间隔号。根据标准,间隔号对应的字符是 ·(U+00B7 Middle Dot)。大多数中文输入法将这个字符映射在 ~ 键(即紧邻主键盘区数字 1 左边的按键)上,直接按下即可输入。
可见,标点符号还能使的文章排版更加的赏心悦目,提高悦读与易读性。
结语
对于标点符号的探讨,并不是要鼓吹完美主义。但是在国内的职场上,胡乱的断句表达,随意使用标点符号和语气词的情况十分多见并且十分严重。特别是在跟外部交流时,这会给对方留下缺乏专业素养甚至是「无礼」的表现。
在互联网时代,文字不仅仅是沟通的媒介,更能够表达情感。最重要的,它代表了你的专业素养和工作态度,是一种站在别人(用户)的角度上考虑问题的思维方式。
回到编程的工作上来讲,一个代码格式工整,注释清晰准确,日志表达通顺的员工,可能不一定是一个特别聪明的员工,但一定是一个团队中值得依靠的人。
参考资料
本文有大量内容参考引用了下列资料。若你有更为专业的需要请参阅以下内容。
-
别再用「六个点」当省略号了,这些标点都有更规范的输入方式,by Platycodon
网友评论