我看到"编程成语"这句话被抛出,好像它是普遍理解的.然而,在搜索结果和堆栈溢出中,我看到了一切......
来自微观:
增加变量
代表无限循环
交换变量值
中等:
PIMPL
RAII
格式,评论,风格......
要宏:
编程范例或公共库特征作为成语
过程模型为成语
习语的集合等于一种新的范式
"编程习语"有一个单独的共同定义吗?由于"编程习惯用法"在许多范围内使用:
微:句法细微差别或通用语法
中:共同的风格和模式
宏:编程范式为习语
在任何这些范围中使用短语是否有效?到目前为止,答案主要集中在句法习语上.其他人也有效吗?
编程习惯用法是用特定语言编写任务的常用方法.例如,循环通常在C中写成:
for (i=0; i<10; i++)
PHP将理解类似的构造:
for ($i = 1; $i <= 10; $i++)
但是在PHP中不鼓励循环数组.在这种情况下,您将使用:
foreach ($arr as $value)
而在Ruby中,你会使用:
(1..10).each
对于循环,或:
array.each
在这些语言中编写循环有很多种可能性.使用这个成语使经验丰富的读者可以立即识别.然后他们可以把时间花在更重要的问题上.
(非编程)语言中的"习语"是对特定语言唯一的说法或表达.一般来说,某些东西不符合语言的"规则",只是存在,因为母语人士"只知道"它意味着什么.(例如,在英语中,我们说"一致",但"出来的线" -这将是惯用语)
将其转移到编程领域,我们得到的结果如下:
if(c=GetValue()) {...}
这意味着:
c = GetValue(); if (c != 0) {....}
这是每个C/C++程序员都能理解的,但却完全让那些来自不同编程语言的人感到困惑.
见http://en.wikipedia.org/wiki/Programming_idiom
编程习语是一种模式,算法或结构化代码的方式.谈论编程习语就是谈论那些在代码中频繁出现或提出新代码的模式.
熟悉习语的好处,特别是较大的成语,是在查看代码时你可以看到几行代码,但因为它是一种特殊的习惯用语,你可以在心理上代表和思考代码,而不是单一的成语而不是必须单独阅读和理解每一行.
要说代码不是惯用的,就是说它不会以允许人类读者有效思考代码的方式构建自己.