目录
18 关系: 封裝 (物件導向程式設計),介面 (程式設計),命名空间,呈现与内容分离,全局变量,关注点分离,動態HTML,置标语言,用户代理,设计模式,软件测试,闭包 (计算机科学),HTML,JavaScript,MVC,抽象層,样式表,渐进增强。
- JavaScript
- 响应式网页设计
封裝 (物件導向程式設計)
在物件導向程式設計方法中,封裝(Encapsulation)是指,一種將抽象性函式介面的實作細節部份包裝、隱藏起來的方法。同時,它也是一種防止外界呼叫端,去存取物件內部實作細節的手段,這個手段是由程式語言本身來提供的。這兩個概念有一些不同,但通常被混合使用。封裝被視為是物件導向的四項原則之一。 適當的封裝,可以將物件使用介面的程式實作部份隱藏起來,不讓使用者看到,同時確保使用者無法任意更改物件內部的重要資料。它可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。.
查看 非侵入式JavaScript和封裝 (物件導向程式設計)
介面 (程式設計)
--(英語:interface),--。介面泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式,就如物件導向程式設計提供的多重抽象化。介面可能也提供某種意義上的在講不同語言的實體之間的翻譯,諸如人類與電腦之間。因為介面是一種間接手段,所以相比起直接溝通,會引致些額外負擔。 人類與電腦等資訊機器或人類與程式之間的介面稱為使用者介面。電腦等資訊機器硬體元件間的介面叫硬體介面。電腦等資訊機器軟體元件間的介面叫軟體介面,其存在於分離的軟體元件間,並提供一種機制使這些元件可以溝通。這條目主要述及程式編寫或設計的方法論中所關心的介面,這些介面作為程式元件功能的抽象化,屬於軟體介面的一類。.
命名空间
命名空间(Namespace,名前空間),也称名字空间、名称空间等,它表示着一个标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其他命名空间中。 例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。 这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隱藏區域標識符的機制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。 在编程语言中,命名空间是对作用域的一种特殊的抽象,它包含了处于该作用域内的标识符,且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。许多现代编程语言都支持命名空间。在一些编程语言(例如C++和Python)中,命名空间本身的标识符也属于一个外层的命名空间,也即命名空间可以嵌套,构成一个命名空间树,树根则是无名的全局命名空间。 函数和类的作用域可被視作隱式命名空间,它們和可見性、可訪問性和对象生命周期不可分割的联系在一起。.
呈现与内容分离
呈现与内容分离(或“样式与内容分离”,原则的特例)是一句常见的熟语、一种设计哲学,同时也是在多种出版技术纪律中应用的一种方法学,涉及到信息检索、、网页设计、網頁程式設計、文字处理、桌面出版、等出版领域。其为关注点分离这个更加宽泛的哲学的特例。.
全局变量
在程序设计中,全局变量是在所有作用域都可访问的变量,与之对应的是局部变量。 通常,使用不必要的全局变量被认为是坏习惯,这正是由于全局变量的非局部性:全局变量可能被从任何地方修改(除非位于保护内存中),也可能被任何地方所依赖。于是全局变量便拥有了建立相互依存关系的无限可能,而互相依存关系的建立会使得复杂度增加,参见远隔作用(Action at distance)。然而,在少数情况下是适合使用全局变量的。例如,可以通过全局变量的使用来避免常用变量在一系列函数间的频繁传递。 C++语言中全局变量的例子:.
关注点分离
注點分離(Separation of concerns,SOC)是對只与「特定概念、目标」(關注點)相关联的软件组成部分進行「标识、封装和操纵」的能力,即标识、封装和操纵关注点的能力。是处理复杂性的一个原则。由于关注点混杂在一起会导致复杂性大大增加,所以能够把不同的关注点分离开来,分别处理就是处理复杂性的一个原则,一种方法。 关注点分离在計算機科學中,是將計算機程序分隔為不同部份的設計原則,是面向对象的程序设计的核心概念。每一部份會有各自的關注焦點。關注焦點是影響計算機程式代碼的一組資訊。關注焦點可以像是將代碼優化過的硬件細節一般,或者像實例化類別的名稱一樣具體。展現關注點分離設計的程序被稱為模組化程序。模組化程度,也就是區分關注焦點,通過將資訊封装在具有明確界面的程序代碼段落中。封裝是一種資訊隱藏手段。資訊系統中的分層設計是關注點分離的另一個實施例(例如,表示層,業務邏輯層,數據訪問層,維持齊一層)。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用(將针对特定领域问题代碼抽象化成較少的程式碼,例如將代碼封裝成function或是class),业务逻辑同特定领域问题的关系通过侧面来封装、维护,这样原本分散在整个应用程序中的变动就可以很好的管理起来。 關注點分離的價值在於簡化計算機程序的開發和維護。當關注點分開時,各部份可以重複使用,以及獨立開發和更新。具有特殊價值的是能夠稍後改進或修改一段代碼,而無需知道其他部分的細節必須對這些部分進行相應的更改。.
動態HTML
動態HTML(Dynamic HTML,简称DHTML、DHML)指的是网页内容随着用户或计算机程序提供的参数而变化的HTML,通过结合HTML、用戶端脚本语言(Client Side Script,如JavaScript)、串接樣式表(CSS)和文件物件模型(DOM)来创建動態網頁內容。.
置标语言
置标语言(也称--、--、--、--、markup language)是一種将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识。当今广泛使用的置标语言是超文本置标语言(HyperText Markup Language,HTML)和可扩展置标语言(eXtensible Markup Language,XML)。置标语言广泛应用于网页和网络应用程序。标记最早用于出版业,是作者、编辑以及出版商之间用于描述出版作品的排版格式所使用的。.
用户代理
在计算机科学中,用户代理(User Agent)指的是代表使用者行为的所提供的对自己的一个标识符。例如,一个电子邮件阅读器就是一个电子邮件客户端,而在会话发起协议(SIP)中,用户代理指代的是一个通信会话的所有两个终端。 在很多场合,用户代理作为一个主从式架构的分布式计算系统中的通信所用网络传输协议的客户端而行为。特别是在超文本传输协议中指定要求发起请求的客户端软件要使用一个“User-Agent”请求表头,即使在客户端不由用户操纵的时候。SIP协议(基于HTTP)沿用了这一用法。.
设计模式
设计模式可以指:.
软件测试
軟體測試(software testing),描述一種用來促進鑑定軟體的正確性、完整性、安全性和品質的過程。據此,您可能會想,軟體測試永遠不可能完整的確立任意電腦軟體的正確性。然而,在可計算理論(計算機科學的一個支派)一個簡單的數學證明推斷出下列結果:不可能完全解決所謂「當機」,指任意電腦程式是否會進入無窮迴圈,或者罷工並產生輸出問題。換句話說,軟體測試是一種實際輸出與預期輸出間的稽核或者比較過程。 软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量軟體品質,并对其是否能满足设计要求进行评估的过程。 軟體測試有許多方法,但對複雜的產品執行有效測試不僅僅是研究過程,更是創造並嚴格遵守某些呆板步驟的大事。測試的其中一個定義:為了評估而質疑產品的過程;這裡的“質疑”是測試員試著對產品做的事,而產品以測試者腳本行為反應作為回答。雖然大部分測試的智力過程不外乎回顧、檢查,然而「測試」這個词意味著產品動態分析──讓產品流暢運行。程式品質可能,而且通常會,隨系統不同而有差異;不過某些公認特性是共通的:可靠性、穩定性、輕便性、易於維護、以及實用性。請參照至ISO標準ISO 9126有更詳盡的說明。.
闭包 (计算机科学)
在计算机科学中,闭包(Closure),又稱词法闭包(Lexical Closure)或函數閉包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。 闭包的概念出现于60年代,最早实现闭包的程序语言是Scheme。之后,闭包被广泛使用于函数式编程语言如ML语言和LISP。很多命令式程序语言也开始支持闭包。 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。其中所引用的变量称作上值(upvalue)。 闭包一词经常和匿名函数混淆。这可能是因为两者经常同时使用,但是它们是不同的概念。.
HTML
超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计令人赏心悦目的网页、网页应用程序以及移动应用程序的用户界面。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。 HTML元素是构建网站的基石。HTML允许嵌入图像与对象,并且可以用于创建交互式表单,它被用来结构化信息——例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。HTML的语言形式为尖括号包围的HTML元素(如),浏览器使用HTML标签和脚本来诠释网页内容,但不会将它们显示在页面上。 HTML可以嵌入如JavaScript的脚本语言,它们会影响HTML网页的行为。网页浏览器也可以引用层叠样式表(CSS)来定义文本和其它元素的外观与布局。维护HTML和CSS标准的组织万维网联盟(W3C)鼓励人们使用CSS替代一些用于表现的HTML元素。.
JavaScript
JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直譯語言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、Firefox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。 虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。.
MVC
MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 MVC模式最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。MVC模式的目的是实现一种动态的程式设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:.
抽象層
抽象層(abstraction layer, abstraction level,或 a layer of abstraction)是一種隱藏獨特功能執行細節的方法。使用抽象層的軟體模型包含OSI網路協定七層模型、OpenGL繪圖函式庫及以Unix為原本的輸入輸出(I/O)模型,並適用於大部分新一代的作業系統。 在Unix作業系統中,大部分的輸入輸出形式被視為從裝置讀寫的串流值。而串流值模型為了提供獨立裝置被檔案及終端機I/O所使用。為了在應用層讀寫裝置,程式呼叫函數開啟像是終端機的實體裝置或是網路、檔案系統的虛擬裝置。裝置的實體特徵是被允許程式設計師讀寫資料的作業系統所調用。接著作業系統操作正確的讀寫轉換。 大部分的繪圖函式庫,像是OpenGL,提供抽象圖形裝置模型。這種函式庫的主要功能在於轉換程式設計師的指令到圖形元件。這個特殊的繪圖指令與對傳統陰極射線管銀幕的指令不同,而是隱藏了抽象介面的細節。 在資訊科學,抽象層是模型或演算法的推廣。 Category:電腦架構.
样式表
样式表是一种将网页的内容和表示分离的网页设计形式,在网页设计中网页标记(HTML或XHTML)包含页面的语义内容和结构,但没有定义其可视化布局(风格)。相反,风格的定义是在一个外部的样式表文件中,使用如CSS、XSLT样式表语言。这种设计方法被认为是一种“分离”,因为它在很大程度上取代了以前风格和结构在一起的定义方法。 这种方法背后的哲学是一种关注点的分离。.
渐进增强
渐进增强(Progressive enhancement)是网页设计的一种策略,强调可访问性,语义HTML标记,外部样式表和脚本技术。渐进增强使用Web技术以分层的方式,允许所有人访问网页的基本内容和功能,使用任何浏览器或互联网连接,同时还给更先进的浏览器软件或更大的带宽提供了这些页面的一个增强版本。.
另见
JavaScript
- Asm.js
- JavaScript
- JavaScript函式庫
- JavaScript引擎
- XMLHttpRequest
- 代理自动配置
- 小书签
- 極簡化
- 立即调用函数表达式
- 萨米 (计算机蠕虫)
- 非侵入式JavaScript