最优准则风格的基础

2021-03-26 20:00:30

在粗糙的水平时,很明显某种形式的布局比其他形式更好。 - 代码完整的Steve McConnell。

冒着科学家们的风险充分发挥不满的理由,我正在申请我相信的原则,我相信有点鲁莽的单面性,......部分是因为在某些情况下,陈述了粗糙的简单性和休假是有用的随后发挥推力和逆行的改进。 - Rudolph Arnheim,艺术和视觉感知

首先,我们想要建立计算机语言不仅仅是让计算机执行运营的方式,而是一种新的正式媒体,可以表达关于方法的想法。因此,必须为人们读取的程序编写程序,并且只偶然地偶然地执行机器。 - Harold Abelson和Gerald Jay Sussman,结构和诠释计算机程序。

实际上,花费的时间比率与写作很好,超过10:1 ......因为这个比例如此之高,我们希望读取代码可以轻松,即使它使写作更加困难。 - Robert C. Martin,清洁代码:敏捷软件工艺手册。

可能没有人需要证明程序文本的可读性是决定其维护和发展成功的决定性因素之一。

通常,在评估程序的易于感知方面评估程序的文本时,使用术语可读性。严格来说,它们并不完全相同,因为,如稍后将显示的那样,感知程序的过程不仅仅是阅读。但是,由于我们正在谈论文本,并且术语可读性相当完全建立,因此我也将在这种意义上使用它。

为了在程序开发期间维护代码的可读性,源代码的某些常见格式规则(代码样式)是共同的。一组这样规则的存在可以对其可读性和质量产生积极影响,因为它首先,它在程序员之间形成了关于他们期望在程序文本中看到的语言结构的某些习惯,其次,它的力量它们更加关注他们所写的内容(当然,除非,代码的格式完全转移到自动格式化工具)。

但是,个人规则通常是可疑的,因为他们选择的标准尚不清楚,并且他们经常与其他类似风格相矛盾的类似规则。

这些规则提供了如何格式化代码以维持可读性的具体详细信息,但没有解释规则如何帮助实现它。在不了解这方面,通过非法遵守正式和经常任意选择的规则,替换为形成可读的工程问题的工程问题(即,在感知的感知感)的解决方案,这些规则通常会从项目移动到项目时,这通常会改变。语言。结果,形成了一个错误的想法,规则所说的是不是如此重要,而一个或其他风格的选择只是一种味道和习惯的问题。

实际上,我们的习惯在很大程度上决定了我们在特定情况中的舒适程度,特别是我们如何感知特定的格式风格。但由于习惯,舒适感的感觉不能是这种风格如何理解的衡量标准。某种风格的习惯只能意味着我们只是停止注意到这种风格的具体特征,实际上可以在形成客观可读的代码的形成感受适得其反。

当我谈到客观可读性时,我的意思是文本的全部可读性包括由我们谈论上面的发达的习惯和技能引起的主观组成部分,以及一个客观的组成部分。该第二组分由感知机制的能力和限制确定了正常心理和物理状态的所有人共同的视觉信息的能力和处理。

因此,主观组件与一些可以改变的私人习惯以及目标 - 与人类的一般心理物理特征相关联。我们不认为可以改变的一般心理物理特征。因此,在谈论优化程序的文本时,只对可读性的客观组成部分交谈有意义,因此在本文中,术语可读性将始终指代该组件。

让'仔细看看我们对视觉信息,阅读纯文本和读取和感知程序文本的人类感知机制的了解。

人的视野相对较大:50°优于60°,下方60°,90°暂时(朝向耳朵)和50°。位于颞次上的正常盲斑,从固定的固定和1.5度下方的正常盲点大约12到17度。在该领域内,视力和颜色感知不均匀分布:1&#39的尺寸的视力;在FOVEA的面积上实现,其形成〜2°的中央(变形)视觉,但在Parafoveal区域(从固定点的两个方向覆盖5°)并不是那么好的周边。 ⁵

同样地,区分颜色的能力从中心到边缘减小,并且对于不同颜色分量,这种变化是不同的。我们可以说,从人视网膜的中心移动到周边,我们似乎发现自己在早期的进化阶段,从最高度有组织的结构转移到原始眼睛,这只区分阴影的简单运动。

图1.人右眼的视野。橙色斑点 - 眼底盲点的投影的地方。 (orig。)

在现代神经心理学中,有一个环境的概念(来自法国势在民族“周围的”)和焦点视觉系统。虽然第一个进化地进化地古老,是负责动态空间定位的,第二个交易对象的识别。

表示必要信息源的对象远不均匀分布。它们通常在视野的小区域内定位。在环境视觉的帮助下,检测到对象的潜在有趣的对象或元素,并且在旨在对象的焦点视觉的帮助下,更详细地感知和分析该信息。当面对新的情况或用新物体,我们作为一项规则,首先看看广阔的观点,只能将我们的注意力集中在细节上。

使用头部和身体运动来检查环境和对象的选择,以使用头部和身体运动来叠加在眼球的微妙模式上。最着名的品种是扫视 - 极快(〜500°/秒)跳跃弹道类型,改变眼睛的位置在轨道上,使其可以突出显示场景的片段以供随后的固定。

1977年在大卫纳蒙的实验中开始研究环境(全球)和焦点(本地)视觉处理的关系。他提出了由小写字母组成的大写字母的主题。其中一些复合刺激是"均匀的" - 全局形式和本地元素是相同的字母。其他人和#34;异质" - 全球和本地字母不同(例如," E"和#34; S")。该科目必须尽快识别全球或本地信函。

事实证明,当设置到全局形式时,它是快速且不干扰本地层面的匹配或非匹配字母的干扰。当设置为识别部分(即小字母)时,图片不同。首先,回应较慢。其次,在异质刺激的情况下,反应进一步放缓并变得不太准确。显然,当我们设置自己的粒度时,我们不能总是忽略全球信息。

用纳瓦纳超级信件测试全球和局部加工关系的研究,揭示了大脑后左右半球的可能差异作用。在这种情况下,左半球出现了更多的详细调节器,以及用于全球概述的权利。情绪的影响结果表明非常有趣:负面情绪与积极的情绪相比,加强了对细节感知的态度。

我们愿景的一个有趣的特征是能够将一组对象整体感知。所以在下面的图像中我们看到一只狗,而不仅仅是一种混乱的斑点:

对这些幻想有很多解释。就认知生物造形而言,需要看到形状,边缘和运动(以及面部)的需要,所以通过对生存的需求决定。因此,即使在没有真实的线条或形状的情况下,我们的感官认知系统也使用部分信息来创建这些形状,以试图使看似混乱的世界可理解。

看看下面的图片,你会看到如何随着时间的推移,三角形的方向从一个方向变为另一个方向,三分之一。

因此,我们可以说,在没有明确表达的主导结构的情况下,我们的大脑不断消费资源寻找这种结构。

格式塔心理学家是第一个研究这种感知组织现象的人。它们制定了视觉感知的基本规律,根据该刺激模型被认为是这样的一种刺激模型,即所得到的结构将是给定的条件允许的最简单的。因此,我们完全根据左侧描绘的正方形,而不是以某种方式感知:

格式塔心理学家还制定了6个丑剧组织原则。通过这些原则,对象

将迟早被视为整个人,也不会像环境的不同元素一样被视为环境,或者背景。

在感知组织的若干因素竞争的情况下,优先级通常给予接近因子,然后是颜色,方向或尺寸的相似因子。

将这些原则考虑在感知搜索或认知的情况下,因为,如果根据这些原则组织信息,则根据这些原则组织的解决方案需要较少的努力,因为感知领域进行分组,并且较小的常见资源比例连续地分配给形成的元素组。每个组内的资源分布大致相等。

视觉搜索的任务通常通过添加不相关的物体(分散人)复杂。然而,在令人沮丧的家伙形成视觉上紧凑的组的情况下,允许它们整体忽略,相反,它们可以极大地促进搜索。

类似于左手和右手之间的不对称,我们如何在左右视觉场上感受到一些不对称性。也许这也是由于大脑的左侧和右半球的不对称,这负责分别处理来自右侧和左视野的感官信息。

因此,在景区艺术中,众所周知,舞台的左半和右半角之间存在差异:当窗帘在剧院升起时,观众倾向于首先向左侧看,并识别出现的字符那边。因此,在所谓的阶段区域中,左侧(来自观众' s视点)被认为是强大的。在一组演员中,最远的人偏离了现场。观众与他识别出来,将其他人从他的立场视为对手。同样,观察者经历了一张图片,好像他面对左侧。他主观地识别了左侧,无论出现什么都认为最重要的是。因此,除了视场中心的自然平衡点之外,还形成额外的中心。

当我们读完时,我们的眼睛不断地使机械快速制作(即,不受意识控制)的运动,扫视。平均而言,它们的长度是7-9个字母的空间。此时我们没有收到新信息。

扫视的主要功能是将新的文本区域带入硬膜视觉(〜2°的中央视野),以便进行详细分析,因为读取基于Parafoveal或外围信息的读数难以不可能。

在扫视之间,我们的眼睛保持相对一动不动地在固定的持续时间(约200-300毫秒)。在此期间,我们认识到文本的可见部分,并计划在哪里进行下一次跳跃。

表1.阅读,视觉搜索,场景感知,音乐阅读和键入近似平均固定持续时间和扫视长度

字母空间是使用适当的指标,因为扫视遍历的字母数是在不同距离的相同文本时相对不变的,即使字母空间会使不同的视角。 ⁷

虽然在读取期间修复了文本中的大多数单词,但是跳过了许多单词,以便不需要每个单词的铸造过程。

大约10-15%的时间,读者在文本(回归)中移动他们的凝视来重新读取已经读取的内容。由于文本的难度增加,固定持续时间和回归频率增加,并且扫视的长度降低。

在固定期间,我们从感知跨度获取信息。该区域的大小相对较小,在字母划分的情况下(例如,以欧洲语言)从固定字的开头开始,但在固定点的左侧没有超过3-4个字母的空间,并延伸到这一点右侧约14-15个字母的空间(总共17-19个空格)。

识别跨度,即识别固定字所需的范围,小于感知跨度,通常不会超过固定右侧的7-8个字母空间(总计约10-12空间)。

在先前的固定期间,单词的前三个字母的可用性导致该字上的固定时间减少。还有一些研究还表明,固定右侧的字母信息可用于确定应跳过下一个单词。

大多数研究表明,边界信息(由单词之间的空间传达)是决定在何处移动到下一个的主要决定因素;扫视长度受固定字的长度和固定右侧的单词的影响。

由于没有空间信息,大多数读者减慢了(平均约30%),并且实验证明了缺乏空间信息的单词识别过程和眼睛指导。

结果发现,当为泰语的读者提供空间信息时(不习惯在单词之间用空格读取),它们比正常更有效地阅读。有报道称,通过插入空间,易于读取长德国复合词,即使这种格式是不可否认的,在正常读数中从未遇到过。

因此,似乎安全得出结论,空间信息用于引导读取的眼睛。

字格长度信息不仅可以在确定下一个固定的位置,而且可以在使用Parafoveal信息的位置使用。也就是说,可以从短词中提取足够的PARAFOVEAL信函信息,以便可以识别和跳过它们,而从更长的剖面性单词中提取的部分字信息(前三个字母)可以很少允许它们完全识别,但是促进随后的污水处理。

Word-Lenge信息也在读者修复程序中的位置扮演明确的角色。虽然眼睛在一句话中落在一个字的地方有变异性,但读者倾向于在一半之间的一词和一个单词中间的一词上进行第一次固定。

字长信息有助于引导眼睛朝着优选的观看位置,即单词的开始和中间之间的位置。当在ParafoVEA中可见指示单词N + 1的位置的空间时,该字的第一个固定更接近优选的观看位置,而不是当Parafoveal预览不包含该空间信息时。

虽然单词的平均着陆位置位于一个单词的开始和中间之间,但该位置随着与先前发射站点的距离而变化。例如,如果到目标字的距离很大(8-10个字母空间),则着陆位置被移位到左侧。同样,如果距离很小(2-3个字母空间),则着陆位置被移位到右侧。

第一个固定的位置位于单词的开始和中间,用于单词为4-10个字母长(用于单词中的第一个固定或仅进行单个固定)。然而,随着更长的单词,效果突破,读者倾向于固定在单词的开头附近,然后在单词的末尾进行第二个固定。

信息的信息密度(或形态学结构)影响了对单词的每一半都有多长时间。例如,如果这个词从前6个字母(单词通常为约12个字母),则读者通常在这个词的前半部分中取出固定,然后将目光移到下一个字;如果他们在这个词上做了第二个固定,它往往很短。然而,如果只有通过了解结束是什么,读者通常只能识别,则读者通常在开始时进行短固定,然后在单词的末尾进行更长的固定。

关于视觉搜索任务,发现当目标处于小偏心率时,它与单个扫视准确定位;当目标更加外围时,错误地定向初始扫视是常见的(高达40%的时间)。同样在复杂的搜索任务中,眼睛最初被引导到全局显示器的中心,然后递归到递归较小的物体组的中心,直到获得目标。

程序以两种重要方式与自然语言文本不同。首先,程序是与自然语言文本的词汇和语法不同。词汇表,它们由有限的词汇表组成,用用作编程语言关键字的一些单词,而其他单词则作为标识符使用更自由地用于命名程序构造,如变量和方法。句法地,程序被制定并与自然语言文本不同地组织。它们具有更好的使用正式定义的结构和多种形式的缩进布局(水平和垂直)。第二个区别是语义。自然语言文本通常以两个并发阶段理解:文本(如何写入)和域(它意味着什么)。然而,源代码理解需要理解的第三维度:执行。因此,要了解程序的目标,程序员必须能够跟踪源代码执行以发现其运行语义。 ⁶

心理模型描述了要理解的程序的开发人员和#39;认知模型描述了程序员头部的认知过程和临时信息结构,用于形成心理模型。 编程计划是代表编程中典型方案的代码的通用碎片。 例如,排序程序将包含一个循环,该循环比较每次迭代中的两个数字。 临近计划 - 计划 ......