专栏全年主题合辑-代码中文命名相关实践

简介: 在中文编程知乎专栏创立一周年之际, 对使用中文命名代码中的标识符的相关实践作回顾小结. Summary of practice of using Chinese naming for identifiers in source code one year after starting "Programming in Chinese" column.

注: 本文仅对个人亲自参与的尝试作一小结, 专栏中其他作者的尝试还望各自总结. 文中所有例子都尽量使用了中文命名

一些对中文命名的早期实践:

在2017年发现多数流行编程语言已经支持Unicode/中文命名, 并开始小结中文命名的风格和特点. 2017年7月编写了中文代码示例教程之Java编程一天入门, 体验了选取例程题材的趣味与难度. 同月也在Maven Central发布中文API的Java库(后话, 在一年后喜获V2EX的用户反馈"第一次见以汉字命名的 Java 类"). 8月尝试对现有图形库p5js的接口进行中文化, 是在JDK接口中文化之后, 从通用库转向专用库的一步. 必须提到的是, 在2017年初发现13年前就有同仁提出中文命名的可读性优势与IDE支持问题, 而在半年后成立的"中文编程"GitHub讨论组中, 有幸碰到通过IDE插件实现拼音输入法和自动补全功能集成的同好.

在"中文编程"知乎专栏于2017年11月9月开通之前, 对现有框架的入门教程的示例代码尝试中文化, 并与VueJS开发组进行了中文命名相关问题的交流:

专栏开通之际编写的对在代码中使用中文命名的质疑与回应是对之前看到的各种反对声音的总结, 至今尚未看到有力的反证, 并且在一路上的探索中发现了越来越多的佐证, 比如11月末发现的Python3选择支持非ASCII码标识符的缘由.

专栏开通的初期, 进行了一系列的相关思考, 对今后的实践方向有不小影响:

对在线编程对中文命名的支持初步调研:

之后重心转向自研编程语言, 也进行了一些相关项目的中文命名尝试:

在2个月后的2018年4月, 开始对Python官方入门文档的示例代码进行中文命名:

原本是打算至少完成入门部分, 但过程中逐渐发现原教程示例的局限性, 如代码考古-Python3官方教程字典例程, 认为花精力在自己编写教程上也许更值得. 就有了"西游记"主题Python入门示例尝试-数据结构 5.1-5.1.2. 也尝试对国人原创教程中的示例进行中文化: 解谜计算机科学第一章示例汉化尝试

接下来是一段比较嘈杂的时期, 为Chrome和火狐浏览器编写扩展应该是为在插件中实现计算/编程工具做的技术复习. 此时发现了一系列针对中文编程/命名的软文:

不禁针对性地写了在代码中进行中文命名(类/变量/方法等)的优势. 至此, 深切感觉到进一步积极推广中文命名的必要性.

继续进行一些以中文命名作示例的小教程的编写:

至此, GitHub讨论组已创建一年, 深感核心项目的必要性. 下面围绕编程术语命名进行了一些技术摸索:

8月末, 源于组内讨论, 开始了批量代码汉化工具的尝试, 并开发了必需的英汉词典相关工具, 从浏览器插件, 在线服务原型, 到今天的vscode插件:

主要出于此项目对中文命名的推广意义, 打算将这个系列作为个人在代码中进行中文命名实践的短期目标

8月之后在V2EX上交流甚多, 也催生了用Python3+tkinter开发简单图形界面程序这样的合作项目, 很希望看到类似项目的开展.

另有一个中期的目标来自于首次发现在例程中使用日语命名的编程书籍, 之后做了日语命名的调研:
它山之石-日本推广编程中使用日语命名的渊源. 发现将编程与传统学科结合的现实紧迫性, 并初步尝试将传统学科的内容程序/数据化. 这不仅与中文命名紧密相关, 也是潜在的中文语法编程语言的土壤(见前文末段). 个人非常期待.

2018-11-10

相关文章
|
存储 C语言
C 语言文件读取全指南:打开、读取、逐行输出
要从文件读取,可以使用 r 模式: FILE *fptr; // 以读取模式打开文件 fptr = fopen("filename.txt", "r"); 这将使 filename.txt 打开以进行读取。 在 C 中读取文件需要一点工作。坚持住!我们将一步一步地指导您。 接下来,我们需要创建一个足够大的字符串来存储文件的内容。 例如,让我们创建一个可以存储多达 100 个字符的字符串:
1178 2
C 语言文件读取全指南:打开、读取、逐行输出
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
512 0
|
JavaScript 前端开发 NoSQL
【入门毕设项目】基于 Vue 的医院门诊预约挂号系统(一)
【入门毕设项目】基于 Vue 的医院门诊预约挂号系统
800 0
|
6月前
|
缓存 NoSQL Java
G1原理—9.如何优化G1中的MGC
本文主要探讨了因大对象导致频繁Mixed GC的问题及其优化方案。通过一个电商平台缓存更新的案例,分析了商品信息大量写入缓存时引发的GC问题,包括Redis锁等待、大对象分配及RegionSize调整不当等原因。文章详细介绍了Mixed GC的优化策略,分为避免策略(如调整RegionSize和新生代大小)与提速策略(如提升分配与回收速度),并深入解析了相关参数(如InitiatingHeapOccupancyPercent、G1ReservePercent等)的作用与调优方法,为解决类似性能问题提供了全面指导。
161 15
G1原理—9.如何优化G1中的MGC
|
9月前
|
数据采集 监控 定位技术
探讨代理IP使用中用户体验差异的原因
在信息化时代,互联网已成为生活的重要部分。使用HTTP代理IP的应用日益增多,但不同用户的代理IP有效率却各不相同。本文介绍了影响代理IP有效率的几个方面,包括代理服务器的性能与稳定性、IP资源质量、目标网站的防护策略和负载情况,以及用户使用时的并发请求控制和网络环境稳定性。通过选择高质量代理、使用就近服务器、定期轮换IP和监控代理池,可以提高代理IP的使用效率。
202 10
|
10月前
|
机器学习/深度学习 人工智能 算法
探索人工智能在医疗诊断中的最新进展
探索人工智能在医疗诊断中的最新进展
330 14
|
10月前
|
存储 负载均衡 算法
Hash介绍与应用详解
哈希算法在计算机科学中有着广泛而重要的应用,从数据存储、数据完整性校验到密码安全和分布式系统中的负载均衡,哈希函数都发挥着关键作用。通过本文的介绍和示例代码,希望您能更好地理解哈希的基本概念和实际应用,并在您的项目中有效地应用这些知识。
1732 3
|
10月前
|
存储 监控 安全
数据泄露后的应对措施:个人和企业的行动指南
数据泄露后的应对措施:个人和企业的行动指南
1040 2
|
机器学习/深度学习 人工智能 自然语言处理
多模态大模型技术原理与实战学习笔记(1)
多模态大模型技术原理与实战学习笔记
378 4
|
关系型数据库 MySQL 数据库连接
9-13|django.db.utils.OperationalError: (2006, 'Server has gone away') 报错
9-13|django.db.utils.OperationalError: (2006, 'Server has gone away') 报错