中文代码示例之冒泡算法, 后感

之前探讨过中文命名在业务部分的优点大于算法部分. 今天又一次看到了这个以冒泡算法的例子: 刘然:批判易语言的人是否用过这门语言,批判它的缘由又是什么?有些感触. 先尝试对变量命名进行改进, 来看看是否会有不一样观感. 注: 本文不讨论输入效率问题, 也不讨论易语言python

时间太有限, 仅对帖子中的Python程序做粗浅探讨. 另外一个易语言语法的例程也有不一样方面的改进空间, 就不展开了. 有兴趣/质疑的欢迎提其余例程一同探讨.算法

for i in xrange(len(a)):
    for j in xrange(i + 1, len(a)):
        if a[i] > a[j]:
            a[i], a[j] = a[j], a[i]
复制代码

首先, 在嵌套循环中使用i和j的一个问题是, 二者看起来有点像. 下面的视觉区分度更大:编程

forin xrange(len(a)):
    forin xrange(甲 + 1, len(a)):
        if a[甲] > a[乙]:
            a[甲], a[乙] = a[乙], a[甲]
复制代码

也能够赋予变量名以更多语义, 来凸显变量的某些性质, 以下. 而英文命名想要表达相似语义就要长一些了:数组

forin xrange(len(a)):
    forin xrange(前 + 1, len(a)):
        if a[前] > a[后]:
            a[前], a[后] = a[后], a[前]
复制代码

后感

中文命名很天然是个考验中文修养的活. 用中文命名的代码能够像天书同样"仅仅是符号", 也能够像好文章同样用词考究恰如其分, 固然更多的(包括在下写的)限于功力或者开发时间限制也许只能达到流水帐的水平.markdown

哪里用中文最有效果(对可读性加强最大), 哪里是鸡肋(好比上面的a, 能够更名为"数组", 但效果逊一些, 也许更合适放在注释中), 也与程序的目的/设计/理解很是相关.less

相比数理能力, 更大量的编程任务更须要的是逻辑与思辨能力, 这种任务的比重只会愈来愈大. 而逻辑思辨能力是文理相通的. 与编程相配套的文档编写和阅读也更偏文, 团队建设/客户交流之类软实力更不用说. 相信随着IT产业的逐渐成熟, 文科背景的开发者将会愈来愈多, 长远看这确定是好事.ide

论文Concise and Consistent Naming: Ten Years Later提到:工具

Approximately 70% of the source code of a software system consists of identifiers. Hence, the names chosen as identifiers are of paramount importance for the readability of computer programs and therewith their comprehensibility. However, virtually every programming language allows programmers to use almost arbitrary sequences of characters as identifiers which far too often results in more or less meaningless or even misleading naming.oop

很想看全文(尤为是那个辅助命名工具的十年实践的总结)但下载的pdf里只有摘要. 若是有哪位同窗有全文请分享一下, 先谢了.spa

2018-02-16

相关文章
相关标签/搜索