首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

[翻译]Ext JS 教程-类系统 原

类系统

ExtJS 史上第一次进行了重整新的类系统的大重构。新的架构以ExtJS 4.X所编写的每一个类作为后盾,因此在你编写代码以前理解它是非常重要的。

这个手册主要面向任何想在ExtJS 4.x中新建或者扩展类的开发人员。它分成四个部分:

Ø 部分一:“综观”解释了稳定的类系统的需求

Ø 部分二:“命名规则”讨论给类、方法、属性、变量和文件命名的最佳实践

Ø 部分三:“动手实践”提供详细的一步步编码的例子

Ø 部分四:“错误处理&调试”提供如何处理一场的小建议和小计谋

一 综观

ExtJS 4 靠超过300 多个类驱动。我们拥有一个超过20万来自世界各地,具备各种编程背景的开发人员组成的巨大社区。在一个框架的范围内,我们面对提供一个通用的编码结构的那些大挑战:

Ø 简单易上手

Ø 开发快速、调试简单、部署无忧

Ø 结构良好,可扩展可维护

JavaScript 是 classless 的面向原型的语言。天性使然,灵活是这个语言最强大的特性。使用不同的方式,不同的编码形式和技术,都可以让工作有效。然而就是那个特性,带来了不可预知的代价。没有一个统一的形式,JavaScript代码可能很难去理解、维护和重用。

从另一方面来看,基于类的编程仍然是面向对象编程领域最受欢迎的模式。基于类的语言常常需要强类型,提供封装和标准的编码规范。一般而言要让开发人员遵守一大堆规则,而编码就会变得一直可预知、可扩展和规规矩矩。然而,他们不会有在JavaScript这样的语言中发现的同样的动态能力。

每种方法都有其利弊,但是我们是否可以利用两者好处的同时避免他们的坏处呢?答案是肯定的,我们在ExtJS 4中实现了这个解决方案。

二 命名规范

至始至终为你编码的类、命名空间和文件名使用一致的命名规则有助于保持你代码的组织性、结构性和可读性。

1)类

类名应该只包含字母和数字字符。数字在大多数情况下是不鼓励使用的,除非他们属于一种技术手段。不要使用下划线,连字符或者其它任何非字母非数字的字符。举个例子:

Ø MyCompany.useful_util.Debug_Toolbar 不鼓励这样命名

Ø MyCompany.util.Base64 是可以被接受的

类名应该被组成成为包,在包中合适恰当的使用对象属性点记号(.)分出命名空间。至少,应该只有唯一的顶层命名空间后面跟类名。举个例子:

MyCompany.data.CoolProxy

MyCompany.Application

顶层命名空间和真实类的命名应该采用Camel形式(单词的首字母都大写),其它所有事物都应该是小写的。举个例子:

MyCompany.form.action.AutoLoad

不是Sencha发行的类永远不应该使用Ext作为顶层命名空间的名字。

首字母缩略词也应该遵守上面列出的Camel形似命名规则。示例如下:

Ext.data.JsonProxy 而不是Ext.data.JSONProxy

MyCompany.util.HtmlParser 而不是 MyCompary.parser.HTMLParser

MyCompany.server.Http 而不是MyCompany.server.HTTP

2)源代码

类地址的名字应该直接指向文件被存储的路径。基于此,每个文件中只能有一个类,示例如下:

Ext.util.Observable 被存储在路径 /to/src/Ext/util/Observable.js 中

Ext.form.action.Submit 被存储在路径 /to/src/Ext/form/action/Submit.js中

MyCompany.chart.axis.Numeric 被存储在路径 /to/src/MyCompany/chart/axis/Numeric.js中

Path/to/src 是你的应用程序类所在的路径。所有的类都应该在这个公共的根下面,并且为了获得最好的开发、维护和部署体验,适当的赋予命名空间。

2)方法和变量

跟类名类似,方法和变量的名字应该只包含数字和字母字符。数字被允许的,但在大多数情况下是不被鼓励的

02

认知中的默认网络:拓扑学视角

摘要:默认网络(DMN)是一组广泛分布于顶叶、颞叶和额叶皮层的大脑区域。这些区域通常在需要集中注意力的任务中表现出活动减少,但在多种形式的复杂认知中活动增加,其中许多与记忆或抽象思维有关。在大脑皮层内,DMN位于距离感觉和运动系统最远的区域。在这里,我们考虑如何利用我们对DMN的拓扑特征的知识,更好地理解该网络如何有助于认知和行为。 1 . 映射默认网络 虽然DMN最初是通过测量其在任务中的活性来识别的(图1b),但通过研究其静止时的内在活性来绘制其结构已经取得了重要进展(图1a)。例如,研究评估了大脑区域的功能连通性(一种基于大脑不同区域的神经活动之间的时间相关性计算的度量),表明DMN区域在休息时显示协调的时间活动,这是现在已知的大规模网络的定义特征。 研究人员还能够利用静息活动的测量来进一步分解DMN(图1c,d)。通过对不同个体进行平均的分析,即群体水平分析,表明DMN被分为三个子系统:一个固定在外侧颞区、背侧前额叶区和顶叶区(称为背侧内侧子系统),第二组集中于内侧颞叶和外侧顶叶皮层(称为内侧颞叶子系统),第三组被描述为参与中线顶叶和额叶区域(称为核心子系统)(图1c)。这些不同的子系统和不同类型的功能之间的映射已经在文献中提出(见下文关于DMN在高阶思想中的作用的讨论)。最近,对个体在休息和任务期间的深入分析提供了一个不同的视角。这些对单个个体的高分辨率研究表明DMN由两个独立并置的子网组成(图1d)。与上面描述的空间上不同的子系统不同,这两个子网络广泛分布,每个子网络包含大致相同的区域集,但组织成复杂的交错排列。 有人认为,这种在皮层区域的交错允许时间和空间信息的整合,这表明这种细粒度结构的发现可能为DMN有助于认知的机制提供线索。这些不同的DMN映射方式如何相互关联目前是一个悬而未决的问题。 还研究了DMN和其他神经系统之间的关系。研究表明,在任务期间与DMN相反的显示出大脑活动模式的区域(例如,随着任务的需要而增加活动)也显示出与休息时DMN区域的相关性相对降低的模式。 然而,最近采用多变量方法绘制神经功能的研究证实,DMN区域内的神经活动(如PMC)包含与不同系统(包括DMN以外的系统)的神经功能相关的信号。这些观察结果表明,DMN不仅形成了一个有凝聚力的网络,还可以代表在其他皮层系统中发生的大脑活动,这些活动代表了来自其他神经网络内的活动,通常被称为回声。因此,这些研究确定了DMN的活动也可以提供关于任务积极系统活动的信息,这一模式与经典观点不一致,即DMN本质上与涉及外部目标导向思维的区域隔离。 这一关于大脑功能的更复杂的观点已经通过应用一类与主成分分析相关联的皮层分解技术,以测量大脑活动和连通性而得以正式化。 这些方法生成了一系列大脑活动在大脑皮层分布的低维表示,每一种都描述了观察到的静止时大脑活动变化的独特模式。这些通常称为连通性梯度,并基于数据矩阵中的协方差模式。这些梯度根据初始数据中每个主成分所解释的方差的百分比(称为已解释方差)进行排序。 在每个梯度内,大脑区域的组织是基于他们观察到的活动模式彼此之间的相似性。在这些梯度中,聚集在一端的大脑区域随着时间的推移具有相似的活动波动,并且总体上与维度另一端的区域组表现出较少的相似性(它们在时间进程上也相似)。在一项将该技术应用于静息大脑活动的研究中,发现三个连接梯度中有两个涉及DMN(图1e,f),这三个连接梯度解释了活动的最大差异,因此是关于皮层神经功能组织的最丰富信息。第一个梯度(解释了最大的差异)表明DMN与单峰皮层区域的差异最大,即视觉、听觉、躯体感觉和运动皮层占据这一维度的一端,而DMN占据另一端。相比之下,在第三个梯度中(根据解释的差异),DMN的区域占据维度的一端,额顶叶网络占据另一端,该网络被认为是协调外部任务状态的。因此,对连接性梯度的分析表明,将DMN的内在活动定性为主要与任务正性系统的活动隔离或对抗,并不能提供其行为的完整表征。相反,正如我们下面将要讨论的,DMN的内在行为包含多种操作模式,其中一些与外部任务相关,而另一些则不相关。

00
领券