版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、 PHP1、 php是以來(lái)劃定界限的,而且可以與HTML混合使用,php的控制結(jié)構(gòu)同樣適用于HTML。 ?php for ($i=1; $i Hello World ! 2、變量名必須以“$”開頭,只能與數(shù)字、字母、下劃線組成,并且只能與字母、下劃線開頭。變量沒(méi)有類型,且無(wú)須在使用前聲明,但是數(shù)組需事先聲明。一條語(yǔ)句可以跨越多行,通常以“;”結(jié)束。注釋可以用“/”或者“/*/”。從其他文件引進(jìn)的代碼,要用include 或者include_once包含進(jìn)來(lái)。算術(shù)運(yùn)算符:+、-、*、/、%;自增自減運(yùn)算符:+、-;賦值運(yùn)算符:+=、=、-=、*=、/=、%=、.=;3、字符串連接用“.”,若
2、是用+號(hào),則為數(shù)字相加。例:$A=”1”+”2”,結(jié)果為3;$A=”1”.”2”,其結(jié)果為12。4、所有的變量都是默認(rèn)都為local,除非在其前加global,如:global $a;5、比較運(yùn)算符:=, !=, , =, !=, , = 數(shù)組運(yùn)算符:+, =, !=, , =, !=6、邏輯運(yùn)算符:and, &, or, |, xor, ! 位運(yùn)算符:&, |, , , , 7、數(shù)據(jù)類型:integer、float、boolean 、string、array、object、resource、NULL;字符串類型在數(shù)值操作中自動(dòng)轉(zhuǎn)換為數(shù)值類型。字符串類型,用單引號(hào)或者雙引號(hào)括起來(lái)。8、數(shù)組可以
3、同一條語(yǔ)句中進(jìn)行聲明和初始化,數(shù)組的元素本身可以是數(shù)組。例:$def = array(1.23, 4.56, 7.89);9、$GLOBALS (all variables in global scope)、$_SERVER (web server variables)、$_GET (values passed through URL)、$_POST (values passed through HTTP Post)、$_COOKIE (values passed by user cookie)、$_FILES (values passed by HTTP file upload)、$_ENV
4、 (values passed via the environment)、$_REQUEST (values passed by URL, Post, or user cookie)、$_SESSION (values passed by user session)無(wú)需明確聲明,即可直接使用。10、例子:11、Foreach 循環(huán)的格式:foreach ( as | = ) ; break; continue; 12、調(diào)用類的屬性和方法class SimpleClass() public $var = A default value; public function displayVar ec
5、ho $this-$var; $obj = new SimpleClass();$obj-displayVar();13、一個(gè)文件在使用前必須被打開: = fopen(, mode);在不需要的時(shí)候必須被關(guān)閉:fclose();14、r:只讀,指針在開始;r+:讀寫,指針在開始;w:只寫,指針在開始;w+:讀寫,指針在開始;a:只讀,指針在最后;a+:讀寫,指針在最后。15、普通文件的讀命令:fgets(,) read until (length-1) bytes, newline, or EOF fread(,) read until length bytes of EOF fgetcsv(
6、,=,=) same as fgets except the line will be parsed for commas and the values put into an array普通文件的寫命令:fwrite(,) write content of string into the file; if length is specified then only write length bytes fputs(,) same as fwrite fputcsv(,=,=) writes the array into the file with the appropriate delimi
7、ter and enclosure 16、php通常使用MySQL,但是其他的數(shù)據(jù)庫(kù)也可以支持,具體有四個(gè)步驟:連接到數(shù)據(jù)庫(kù)服務(wù)器 連接到數(shù)據(jù)庫(kù) 發(fā)出數(shù)據(jù)庫(kù)命令 處理結(jié)果 17、PDO (PHP Data Object):是數(shù)據(jù)庫(kù)訪問(wèn)的一個(gè)抽象層,這使得用那些需要用不同的數(shù)據(jù)庫(kù)來(lái)編寫PHP的應(yīng)用成為可能。 18、PHP中的許多函數(shù)都沒(méi)有標(biāo)準(zhǔn)的命名空間或命名規(guī)則。在PHP 5中增加了面向?qū)ο蟮奶攸c(diǎn)。Encourages sloppy programming二、軟件架構(gòu) 1、架構(gòu)是一個(gè)軟件結(jié)構(gòu)內(nèi)的元素及其它們之間的關(guān)系具體化的組織基礎(chǔ),這個(gè)環(huán)境和這個(gè)規(guī)則可以指導(dǎo)它的設(shè)計(jì)和開發(fā) 2、軟件架構(gòu)包括一整
8、套有意義的關(guān)于一個(gè)穩(wěn)定的軟件的結(jié)構(gòu)元素和他們接口的選擇的軟件系統(tǒng)的組織的決定。定義了這些元素之間共同協(xié)作的性能。這些結(jié)構(gòu)的和動(dòng)作的元素被組合在一個(gè)更大的子系統(tǒng)中,而一個(gè)架構(gòu)的風(fēng)格可以引導(dǎo)這種組織。軟件架構(gòu)也包含功能性的、可用性的、恢復(fù)性的、表現(xiàn)性的、可復(fù)用性的、可了解性的、經(jīng)濟(jì)性的、技術(shù)性的約束、交互性的、美觀的關(guān)注。3、 一個(gè)好的架構(gòu)設(shè)計(jì)將會(huì)更容易提供給用戶他們所需要的。4、一個(gè)好的架構(gòu)應(yīng)該具備的特點(diǎn):Comprehensible(可理解性的)、Economical(經(jīng)濟(jì)性的)、Flexible(靈活性的)、Modifiable(可修改性的)、Extensible(可擴(kuò)充性的)、Scalab
9、le(可擴(kuò)展性的)、Usable(可用性的)、Robust(健壯性的)、Testable(可測(cè)試性的)、Serviceability(可服務(wù)性的)、Secure(安全保密性的)。5、軟件架構(gòu)的一些原則:關(guān)注用戶的經(jīng)驗(yàn) Build to change instead of build to last Model to analyze and reduce risk Use models and visualizations as a communication and collaboration tool Identify key engineering decisions6、Patterns:
10、軟件設(shè)計(jì)中可執(zhí)行性的一個(gè)可復(fù)用性的解決方法,每一個(gè)Pattern被設(shè)計(jì)用來(lái)解決一個(gè)特殊的問(wèn)題,大家都知道Patterns是被用來(lái)解決設(shè)計(jì)者之間交流的一個(gè)方式。 7、Idioms:特定的編碼技術(shù)來(lái)保證代碼的健壯性和高質(zhì)量性。經(jīng)常被綁定到流行的編程語(yǔ)言或者操作平臺(tái),如ResourceReleases, CheckDontCatch, UseEnumerationsNotForLoop8、 架構(gòu)與應(yīng)用9、 什么是軟件架構(gòu)?將商業(yè)的和用戶的需求翻譯成為技術(shù)上的規(guī)格說(shuō)明書,建立一個(gè)應(yīng)用的整體設(shè)計(jì),要將用戶的需求和技術(shù)上的約束考慮進(jìn)去,Manages trade-offs and compromises
11、。10、 軟件架構(gòu)的成熟度模型:11、 skill sets12、13、Content Management System (CMS)Content:以任何的表單、格式來(lái)表示用戶的信息CMS:管理內(nèi)容以及他們之間的關(guān)系的創(chuàng)建、更新、訪問(wèn)、表示和刪除。對(duì)有多個(gè)內(nèi)容的創(chuàng)建者和維護(hù)者特別有用。一個(gè)CMS利用網(wǎng)頁(yè)技術(shù)來(lái)提供所有的功能。Separates the responsibility of the overall look of a website from the contribution of contents Content can be created or updated withou
12、t having to create new HTML pages The entire look of the site can be eaily “refreshed”14、訪問(wèn)一個(gè)DRUPAL網(wǎng)站: 基于CMS的流行的站點(diǎn):開源的、高效率的、靈活的、可擴(kuò)展的、好的訪問(wèn)控制。對(duì)多個(gè)內(nèi)容創(chuàng)建者的站點(diǎn)非常適用。關(guān)于DRUPAL的評(píng)價(jià):開發(fā)者為開發(fā)者而設(shè)計(jì)的,大部分的主題都需要HTML、CSS、PHP的知識(shí)來(lái)修改,一些模塊需要基本的電腦科學(xué)的經(jīng)驗(yàn),解決復(fù)雜性和困難性的沖突,在線支持承擔(dān)一個(gè)確定的專業(yè)知識(shí)層次的資料 對(duì)于初學(xué)者來(lái)說(shuō)不容易使用:安裝一個(gè)模塊需要多個(gè)步驟,下載、提取、啟動(dòng)、配置、許可;
13、促成一個(gè)模塊不需要跟隨一樣的規(guī)則;模塊間的交互,能得到出乎意料的結(jié)果 15、用戶和角色 一個(gè)角色是一個(gè)站點(diǎn)或應(yīng)用的用戶類型,Drupal定義了兩個(gè)默認(rèn)的角色:anonymous和authenticated,管理員可以定義另外的角色,每個(gè)角色定義了一套許可;當(dāng)一個(gè)用戶被創(chuàng)建,她被賦予一個(gè)或多個(gè)角色,這個(gè)用戶的許可是它擁有的角色的許可的聯(lián)合。 管理員可以用Administer/User Management/User Setting來(lái)決定怎么樣創(chuàng)建一個(gè)用戶 16、增加和啟用模塊 提取一個(gè)模塊到站點(diǎn)、all、模塊,每個(gè)模塊都在它自己的文件夾中;在用戶站點(diǎn)的創(chuàng)建模塊中啟用這個(gè)模塊,用管理員的模塊來(lái)配置
14、這個(gè)模塊;配置任何需求的許可。 17、Core Modules that Should be EnabledProfile allows additional user information(允許額外的用戶信息)Path allows author to specify the path to a node(允許作者定義路徑到一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)中)Upload allows file upload(允許文件傳輸) 18、輸入格式控制用戶進(jìn)入到內(nèi)容后可以使用的HTML標(biāo)簽;備有兩個(gè)過(guò)濾器:Filtered HTML(過(guò)濾的HTML)、Full HTML(全部HTML);過(guò)濾的HTML可以來(lái)用來(lái)修改去
15、改變標(biāo)簽的可用性(允許性);可以增加新的過(guò)濾器。19、 Menus:許多站點(diǎn)都有兩個(gè)菜單欄,A top horizontal menu that is the same for every page A left menu that changes depending on where the user is in the website20、 Content Type:每個(gè)內(nèi)容模塊都是基于內(nèi)容類型的,有:Page basic informationBlog for user blogs, with comments enabled Book for hierarchical organiza
16、tion of information Story similar to Page, with comments enabled and author information displayed by default管理員可以在創(chuàng)建新的有著另外的區(qū)域的內(nèi)容類型(Administrator can create new Content Type, with additional fields);一些模塊可以增加它們自己的內(nèi)容類型21、 Core Components (1)Modules:一個(gè)或多個(gè)的PHP程序組合在一起提供明確的功能,Core Drupal有33個(gè)模塊組合來(lái)的;管理員可以啟用或
17、不啟用一個(gè)模塊;這些模塊架構(gòu)使得Drupal如此的靈活和高效。(2)Users:控制用戶可以訪問(wèn)的網(wǎng)頁(yè)和功能;角色是一系列權(quán)限的集合(a “Writer” can only edit documents that he wrote but an “Editor” can edit documents by any author);一個(gè)用戶可以被賦予一個(gè)或多個(gè)的角色,她的權(quán)限是這些角色的集合;User 1 is the administrator with complete control over the entire website(3)Notes:是Drupal中的一個(gè)內(nèi)容容器,內(nèi)容中的每
18、一塊都是一個(gè)Note;Each node has at least a Title and a Body;Each node is automatically assigned a “node number” for access;管理員也可以給一個(gè)更容易記憶的別名(4)Aggregator collects and displays new feeds(5)Block manages different part of the page (6)Blog individual blog per user(7)Comment comments to other nodes(8)Contact s
19、ite-wide contact forms(9)Forum discussion forums(10)Help provides help function(11)Logging error and message logging(12) Menu manages menus(13) Path URL aliases(14) Search full text search(15) Taxonomy categorizing nodes(16) Trigger allows certain events to invoke Actions(17) Upload file upload22、 T
20、heming System:一個(gè)主題是由一套HTML、CSS、Javascript和PHP文件來(lái)確定一個(gè)網(wǎng)站的外觀,包括:字體;背景;slogan(口號(hào))、徽標(biāo)、站點(diǎn)的名字的鏈接方式;不同類型區(qū)域的鏈接方式及大??;特定節(jié)點(diǎn)類型的外觀;菜單的行為。 每個(gè)用戶可以擁有一個(gè)不一樣的主題,創(chuàng)建一個(gè)新的主題可能會(huì)很復(fù)雜;Drupal由四個(gè)基本主題組成。23、 分配的模塊:自愿提供開發(fā)和維護(hù)(Developed and maintained by volunteers);提供從代碼模塊中不可用的額外的功能(Provide many additional functions not available fr
21、om the Core Modules);所有的都有一個(gè)好的設(shè)計(jì)慣例以致于它們可以一起工作;可能會(huì)有幾個(gè)模塊提供相似的功能,所以要仔細(xì)、認(rèn)真的選擇。 24、一些有用的分配模塊:CCK Content Creation Kit, add fields to content types. CCK itself comes with a number of field types, there are additional field types that can be installed Views A very flexible modules for selecting and display
22、ing nodes based on a very flexible set of criteria(標(biāo)準(zhǔn)) FCKEditor a “some what” WYSIWYG editor to help content authors who are not familiar with HTML. The administrator can designate what fields can use this editor I18n (Internationalization) a collection of modules to help in the translation of user
23、 interface (e.g. menus) and content Workflow defines a process for the flow of documents through the system and manages the process IMCE manages upload(上傳), resizing(改變大?。? and display of images25、 Drupal Folder Structure(文件夾結(jié)構(gòu))includevarious include files used by Drupal misc miscellaneous graphics
24、and other files modules core modules, one subfolder per module profiles installation profiles, one subfolder per profile scripts various script files used by Drupal sites all modulescontributed modules for the site, one subfolder per module themesadditional themes, one subfolder per theme default fi
25、les folder for uploaded files themes themes, one subfolder per theme 26、The Work of a Software Architect(1)商業(yè)需求:What are the business problem(s) that this application will solve?(該應(yīng)用將解決什么樣的商業(yè)問(wèn)題);誰(shuí)是該應(yīng)用的主要用戶(內(nèi)部的、外部的);其它的誰(shuí)會(huì)從這個(gè)應(yīng)用中受益(公司的其它部門?外部的各方?);給公司帶來(lái)什么樣的利益(可見的【實(shí)在的】:花費(fèi)節(jié)省、額外的收入、增加顧客、增加訪問(wèn)者和用戶;不可見的【無(wú)形的】
26、:顧客的滿意、顧客信息的收集、更快的交易、公司形象);源于該應(yīng)用有什么有競(jìng)爭(zhēng)力的優(yōu)點(diǎn)(競(jìng)爭(zhēng)上的突破、Matches competitions);什么時(shí)候需要這個(gè)應(yīng)用。(2)功能需求:數(shù)據(jù)操作(類型、源程序、用戶、進(jìn)程、工作流、數(shù)據(jù)庫(kù)、觸發(fā)器、審計(jì)跟蹤Audit trail、限制);用戶事務(wù)(類型、用戶、數(shù)據(jù)庫(kù)、工作流、審計(jì)跟蹤、限制);集成(應(yīng)用內(nèi)部的集成、和其他應(yīng)用集成、原子);Deprecation反對(duì)(不再支持的功能、備選的反對(duì)的功能);升級(jí)(自動(dòng)升級(jí)、推行升級(jí)、pull upgrade);其他的(搜索引擎的優(yōu)化、數(shù)據(jù)編碼)。(3)用戶經(jīng)驗(yàn)需求:用戶是如何和這個(gè)應(yīng)用進(jìn)行交互的(用戶接口設(shè)
27、備:胖客戶端、瘦客戶端、Smartphone【智能手機(jī)】、特殊設(shè)備、其他;導(dǎo)航;反應(yīng)時(shí)間;可訪問(wèn)性;本地性【局部性】;Translation【翻譯、轉(zhuǎn)換】);(4)安全需求:用戶身份驗(yàn)證(用戶名、密碼;安全設(shè)備;緊急備用設(shè)備【On-screen keyboard】);數(shù)據(jù)安全(Certificate、網(wǎng)絡(luò)安全、備份、加密);惡意攻擊的免疫性(黑客、服務(wù)的脫離【Denial of Services】、病毒、蠕蟲、竊聽【Eavesdropping】);物理安全(訪問(wèn))。(5)兼容性需求:向后兼容(應(yīng)用的目前版本、現(xiàn)行的數(shù)據(jù)庫(kù));并存(多個(gè)版本一起工作、一個(gè)數(shù)據(jù)庫(kù)支持多個(gè)版本);與其他應(yīng)用兼容(AP
28、I、DATA)(6)Connectivity(接合性)需求:硬件設(shè)備(網(wǎng)絡(luò)設(shè)備)網(wǎng)絡(luò)帶寬;外部應(yīng)用(協(xié)議、數(shù)據(jù)的樣式、數(shù)據(jù)的編碼)。(7)內(nèi)部的技術(shù)需求:硬件的基礎(chǔ)設(shè)施(服務(wù)器、客戶端、內(nèi)存);軟件的基礎(chǔ)設(shè)施(操作系統(tǒng)、變成語(yǔ)言、數(shù)據(jù)庫(kù)、軟件庫(kù)、開發(fā)工具、測(cè)試工具);網(wǎng)絡(luò)基礎(chǔ)設(shè)施(硬件、軟件、協(xié)議、帶寬)。(8)外部的技術(shù)需求:外部用戶的硬件標(biāo)準(zhǔn);外部用戶的軟件標(biāo)準(zhǔn);外部用戶的帶寬標(biāo)準(zhǔn);外部應(yīng)用的通信協(xié)議;外部應(yīng)用的數(shù)據(jù)格式。(9)組織的需求:公司的哪些部門是這個(gè)應(yīng)用的利益相關(guān)者;公司的哪些部門是這個(gè)應(yīng)用開發(fā)的資金投入者;那些利益相關(guān)者對(duì)公司的成功更加關(guān)鍵;那些利益相關(guān)者可以幫助解決需求的沖突
29、(不一致)。(10)時(shí)間約束:這個(gè)應(yīng)用什么時(shí)候需要完成;這個(gè)應(yīng)用什么時(shí)候必須完成;延遲的花費(fèi)(cost)是多少。(11)資源約束:人力資源(該運(yùn)用需要多少設(shè)計(jì)者、開發(fā)者、測(cè)試者;這些工程師的技能級(jí)別是什么;哪些開發(fā)技術(shù)是他們最熟悉的;公司有沒(méi)有資源【講師、資金】去訓(xùn)練他們新的技術(shù));IT(公司有沒(méi)有用于開發(fā)和測(cè)試的硬件和軟件資源)。(12)依賴性和需求沖突:其它功能需要的或者依靠其它功能的功能;不可能要求的功能目前技術(shù)沒(méi)辦法實(shí)現(xiàn)的功能;不重要的功能投資后有一個(gè)小的回報(bào)的功能(ROI);功能沖突兩個(gè)功能不能同時(shí)存在;功能與基礎(chǔ)設(shè)施的沖突功能不能在當(dāng)前的基礎(chǔ)設(shè)施上工作;功能和資源的沖突功能不能在當(dāng)
30、前可用的人力和IT資源下實(shí)現(xiàn);功能和時(shí)間的沖突功能不能在可用的時(shí)間內(nèi)實(shí)現(xiàn)。(13)利益相關(guān)者文檔:一組在開發(fā)團(tuán)隊(duì)和利益相關(guān)者之間充當(dāng)“合同”的文檔(這個(gè)應(yīng)用的商業(yè)證明;被承認(rèn)(已接受)的主要請(qǐng)求的列表;將被實(shí)現(xiàn)的主要功能請(qǐng)求的列表;那些沒(méi)辦法實(shí)現(xiàn)的主要功能列表,以及沒(méi)辦法實(shí)現(xiàn)的原因和解決方法【將來(lái)發(fā)行或拒絕】;預(yù)算;必要的人力資源【必要的技能、工程師的數(shù)量】;交付時(shí)間;風(fēng)險(xiǎn)及其減輕風(fēng)險(xiǎn)【一張可能的風(fēng)險(xiǎn)清單,以及它們將會(huì)如何被處理】)。(14)技術(shù)文檔:設(shè)計(jì)者、開發(fā)者和測(cè)試人員的技術(shù)計(jì)劃(應(yīng)用的概述;所有要求的列表;所有將要被實(shí)現(xiàn)的功能列表;整體的設(shè)計(jì)風(fēng)格;數(shù)據(jù)和進(jìn)程流;主要模塊以及它們的職責(zé)的
31、詳細(xì)描述;主要模塊間的接口的詳細(xì)描述;和外部應(yīng)用的接口的詳細(xì)描述;開發(fā)和測(cè)試的平臺(tái);詳細(xì)設(shè)計(jì)中采用的設(shè)計(jì)模式;主要的測(cè)試區(qū)域;整體計(jì)劃)。(15)Triage(鑒別)文檔:關(guān)于在架構(gòu)設(shè)計(jì)過(guò)程中所作決定的文檔(所有要求的列表;每個(gè)要求的解決方法【實(shí)現(xiàn);延期釋放該功能及其解釋;拒接該功能及其解釋】)。(16)其他:數(shù)據(jù)庫(kù)需求 UML diagrams示意圖 仿真軟件和原型 UX 原型。27、Architecture風(fēng)格(客戶端-服務(wù)器、模型-視圖-控制器、面向?qū)ο?。)An overall division of responsibilities of the different component
32、s of a system(軟件中不同組件的職責(zé)的整體劃分) 組件結(jié)構(gòu)的整體描述 組件成分之間的通信的整體描述28、Some Architecture Styles (1)管道和過(guò)濾器A Filter reads streams of data on its input and produces streams of data on its output(一個(gè)過(guò)濾器在輸入時(shí)的讀取數(shù)據(jù)流,在輸出時(shí)處理數(shù)據(jù)流);管道在過(guò)濾器之間傳送數(shù)據(jù)流;Generally, a Filter processes the data incrementally so that it begins to produc
33、e the output stream before the entire input stream has been read(總之,一個(gè)過(guò)濾器處理增加的數(shù)據(jù),以至于在輸入流被讀取之前產(chǎn)生輸出流);一個(gè)過(guò)濾器不知道輸入的源地址和輸出的目的地。在一個(gè)過(guò)濾器中的處理獨(dú)立于其它過(guò)濾器的狀態(tài);As long as a Filter follows the specifications of the input and output, it can be replaced without affecting any other Filters(只要過(guò)濾器跟隨著輸入輸出的規(guī)定,會(huì)被替換而不會(huì)影響其他的過(guò)
34、濾器); In general, the output of a Pipes and Filters network should be independent of the order of the Filters used(總之,一個(gè)管道和過(guò)濾器網(wǎng)絡(luò)的輸出應(yīng)該獨(dú)立于過(guò)濾器的使用);過(guò)濾器應(yīng)該認(rèn)真設(shè)計(jì),因?yàn)榫W(wǎng)絡(luò)中的吞吐量取決于最慢的過(guò)濾器的吞吐量;對(duì)大量的相對(duì)無(wú)關(guān)的數(shù)據(jù)適用,而對(duì)交互應(yīng)用和時(shí)間是關(guān)鍵的應(yīng)用不適用例子: (2)面向?qū)ο笠粋€(gè)對(duì)象是現(xiàn)實(shí)生活中概念的程序表示;An object is a discrete collection of procedures and data perti
35、nent to the concept(一個(gè)對(duì)象是一個(gè)分立的過(guò)程和與概念相關(guān)的數(shù)據(jù)的集合);應(yīng)用中的其它部分只能通過(guò)其它可用對(duì)象的特定函數(shù)來(lái)訪問(wèn)對(duì)象;使用對(duì)象使現(xiàn)實(shí)生活中的概念模型更簡(jiǎn)單;通過(guò)將一個(gè)問(wèn)題分解為對(duì)象交互的集合來(lái)設(shè)計(jì)一個(gè)應(yīng)用比較簡(jiǎn)單;因?yàn)閷?shí)際上使用一個(gè)對(duì)象是隱藏的,一個(gè)對(duì)象可以被改變而不會(huì)影響其他的對(duì)象;一個(gè)對(duì)象需要知道所有和交互以及它們接口的所有對(duì)象,一個(gè)好的初始設(shè)計(jì)師很重要的,否則將很難使它有所改變;許多交互的合并使面向?qū)ο髴?yīng)用很難測(cè)試 (3)事件驅(qū)動(dòng)、Implicit【內(nèi)含的】調(diào)用該應(yīng)用是事件驅(qū)動(dòng)的;每一個(gè)模塊都會(huì)記錄那些想要被報(bào)告的事件;當(dāng)一個(gè)事件在一個(gè)模塊中發(fā)生,這個(gè)模塊
36、將會(huì)通知事件,每個(gè)模塊都會(huì)為事件登記能執(zhí)行的需要的動(dòng)作;不想面向?qū)ο髴?yīng)用,事件發(fā)生的模塊事先不知道調(diào)用哪些模塊;當(dāng)事件被高告知后,模塊著手處理其他的任務(wù);一個(gè)模塊可以通過(guò)改變其注冊(cè)表來(lái)使它不可用或移除,而不會(huì)影響其他的模塊;一個(gè)被事件調(diào)用的模塊必須獨(dú)立于其它模塊;一個(gè)模塊不知道其他模塊在同一個(gè)事件中被調(diào)用;一個(gè)應(yīng)用不依賴于特定模塊的執(zhí)行順序。這樣的架構(gòu)適用于以下的應(yīng)用:Requires reuse Are implemented progressively Have functions that can be independently executed Have functions that
37、 change frequently要確保滿足測(cè)試的覆蓋率是一種挑戰(zhàn)。 (4)分層系統(tǒng)分層系統(tǒng)的系統(tǒng)被組織成層次結(jié)構(gòu);每一層向它的上一層提供服務(wù);每一層充當(dāng)它的下一層的客戶端;Inner layers are (theoretically) hidden from all except the adjacent outer layer(內(nèi)部層對(duì)除了與它相鄰的外部層以外都是隱藏的?);在大多數(shù)的執(zhí)行中這個(gè)劃分并不是很清楚;支持這個(gè)設(shè)計(jì)是基于增加抽象層,將一個(gè)復(fù)雜問(wèn)題劃分為一系列遞增的步驟;,容易提,因?yàn)槊恳粋€(gè)層次至多與兩個(gè)層次進(jìn)行交互即上一層和下一層;其他的層次版本很容易被添加;不是所有的系統(tǒng)都
38、能用這種方式組織;Rigid adherence to the architecture can adversely affect performance(這種架構(gòu)的嚴(yán)格固定,對(duì)性能不利);可能很難定義不同的層次。(5)Repositories【庫(kù)?】有兩個(gè)主要的組件:一個(gè)中心數(shù)據(jù)結(jié)構(gòu),一個(gè)獨(dú)立模塊的集合;模塊不能和其他模塊進(jìn)行直接交互,they read and write to the data structure(他們通過(guò)數(shù)據(jù)結(jié)構(gòu)進(jìn)行讀寫);所有的信息通過(guò)數(shù)據(jù)結(jié)構(gòu)的指引在模塊中進(jìn)行傳送;Program flow can be controlled by one of three ways
39、(程序流可以用三種方式中的一種進(jìn)行控制?);每個(gè)模塊一個(gè)正規(guī)的準(zhǔn)則從數(shù)據(jù)結(jié)構(gòu)讀取信息,并且在適當(dāng)?shù)臅r(shí)候開始處理,然后將處理結(jié)果寫回到數(shù)據(jù)結(jié)構(gòu)中;數(shù)據(jù)結(jié)構(gòu)也包含程序代碼,基于狀態(tài)改變時(shí)調(diào)用適當(dāng)?shù)哪K;一個(gè)分開的模塊控制基于在數(shù)據(jù)結(jié)構(gòu)中的信息的程序流;對(duì)不同的處理進(jìn)程可以并行執(zhí)行的復(fù)雜數(shù)據(jù)的處理特別適用; (6)客戶端-服務(wù)器處理在服務(wù)器和客戶端之間被分開;總之服務(wù)器對(duì)數(shù)據(jù)和邏輯處理承擔(dān)責(zé)任,客戶端對(duì)presentation(表示?)承擔(dān)責(zé)任;這種架構(gòu)減少服務(wù)器端的負(fù)荷(負(fù)載?),使用客戶端處理的能力,減少通信所需的帶寬。瘦客戶端:沒(méi)有特殊的客戶端軟件的支持,通常是基于瀏覽器或基于規(guī)范的;容易建立
40、和維護(hù);受限于瀏覽器的能力;沒(méi)有數(shù)據(jù)存儲(chǔ)在客戶端。胖客戶端:經(jīng)常用Java、C、C+編寫的;必須下載到客戶端系統(tǒng)才能使用;更多用戶的交互經(jīng)驗(yàn)。目前瘦客戶端的應(yīng)用可以通過(guò)使用Javascript、AJAX來(lái)使其具有更多的交互,數(shù)據(jù)可以被更新,而無(wú)需進(jìn)行刷新。這種架構(gòu)已經(jīng)被擴(kuò)展到3層(或者N層0架構(gòu),來(lái)更好的劃分工作負(fù)荷,Client、Application Server、Database Server。RESTful (素雅的)Client-Server:任何時(shí)候,客戶端不是處于應(yīng)用狀態(tài)就是處于“休息”狀態(tài);A client at rest requires no load and consum
41、es no storage on the server(客戶端在靜止的時(shí)候沒(méi)有負(fù)載,不消耗服務(wù)器的內(nèi)存?);客戶端需要被服務(wù)的所有信息的請(qǐng)求包括:用戶的確認(rèn)和驗(yàn)證、當(dāng)前應(yīng)用(application)的狀態(tài)是怎樣的、渴望應(yīng)用的狀態(tài)是怎樣的。 (7)模型-視圖-控制器(MVC)對(duì)圖形用戶接口的應(yīng)用來(lái)說(shuō),一個(gè)典型模型的延伸是:輸入-處理-輸出;將一個(gè)應(yīng)用劃分成可以反應(yīng)現(xiàn)實(shí)生活的處理過(guò)程的組件:用戶輸入的數(shù)據(jù)、對(duì)輸入進(jìn)行處理、將結(jié)果顯示給用戶;Model:一個(gè)特定任務(wù)的功能(函數(shù)?)和數(shù)據(jù)操作的集合,功能和數(shù)據(jù)操作應(yīng)該是相關(guān)的,一個(gè)應(yīng)用將會(huì)為這個(gè)功能提供多個(gè)“models”View:從model中取得
42、數(shù)據(jù)并進(jìn)行翻譯,然后呈現(xiàn)給用戶;可以有多個(gè)視圖,每一個(gè)設(shè)備類型有一個(gè),由控制器確定要調(diào)用哪個(gè)視圖,Model不知道視圖顯示數(shù)據(jù)的設(shè)備類型。Controller:控制器處理用戶的輸入,控制器調(diào)用適當(dāng)?shù)哪K處理數(shù)據(jù),控制器調(diào)用適當(dāng)?shù)囊晥D來(lái)顯示數(shù)據(jù)(8)面向服務(wù)(SOA)(例子:Google Map)一個(gè)服務(wù)是:a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent wi
43、th constraints and policies as specified by the service description.(是一種使訪問(wèn)一個(gè)或多個(gè)的能力成為可能的機(jī)制,提供使用一個(gè)規(guī)定的界面和符合規(guī)定和政策的約束的服務(wù)性描述?)。 一個(gè)服務(wù)包括:程序代碼提供的功能(函數(shù)?)、一套標(biāo)準(zhǔn)的接口、一個(gè)發(fā)行的服務(wù)提供的和規(guī)定的約束和政策描述。 一個(gè)服務(wù)可以用任何語(yǔ)言編寫,在任何平臺(tái)上運(yùn)行;一個(gè)應(yīng)用是服務(wù)的一個(gè)“顧客(消費(fèi)者)”,使用大量的源碼的服務(wù);在“顧客”與“服務(wù)提供者”之間,通過(guò)標(biāo)準(zhǔn)格式,通常是XML或JSON進(jìn)行通信;一個(gè)服務(wù)的提供者也可能成為一個(gè)服務(wù)的消費(fèi)者;一個(gè)服務(wù)可能是免費(fèi)
44、,或者需要收費(fèi);SOA使用Web技術(shù),經(jīng)常被稱為Web服務(wù)或web 2.0。一些經(jīng)常使用的協(xié)議:WSDL Web Services Description Language、SOAP Simple Object Access Protocol。一個(gè)服務(wù)可以被封裝在一個(gè)現(xiàn)有的程序中,使他們的功能在更新的應(yīng)用中可用;企業(yè)的服務(wù)總線(ESB)在服務(wù)中是一個(gè)關(guān)鍵的元素;ESB使用標(biāo)準(zhǔn)的協(xié)議在服務(wù)的提供者和服務(wù)的消費(fèi)者之間提供鏈接。SOA的優(yōu)點(diǎn): Takes full advantage of standards Cross platforms Flexible hardware and softwar
45、e platform choices Dynamically(動(dòng)態(tài)) search and connect to services Leverage existing investment through reuse(通過(guò)重復(fù)使用,利用現(xiàn)有的投資) Maximize return of investment through providing the same service to multiple systems(通過(guò)提供相同的服務(wù)給多個(gè)系統(tǒng)得到最大的投資收入) Loosely coupled so that the whole system is more fault tolerant(松
46、耦合以至于系統(tǒng)可以有更好的錯(cuò)誤容忍度) Location independence the services can be located anywhere(位置的獨(dú)立服務(wù)可以坐落在任何地方) 29、決定使用哪種風(fēng)格: Processing large quantity of unrelated data sequentially(處理大量的不相關(guān)的數(shù)據(jù)) Pipes and Filters General applications that model real world objects(應(yīng)用是現(xiàn)實(shí)世界的對(duì)象模型) Object oriented The applications func
47、tions are still evolving and expected to change over time(應(yīng)用的功能經(jīng)常演變,期望隨著時(shí)間改變) -Event-based, implicit invocation The application can be divided into layers of abstraction(應(yīng)用可以被劃分為幾個(gè)抽象層) - Layered system The application requires multiple independent modules working with the same set of complex data(應(yīng)用
48、要求多個(gè)獨(dú)立的模塊和相同的一套復(fù)雜數(shù)據(jù)進(jìn)行工作)-Repository The processing of the application can be easily divided into data processing and presentation(應(yīng)用的處理過(guò)程可以容易的被劃分成數(shù)據(jù)處理和表示)-Client-server Highly interactive applications, using graphical user interface (GUI)(高度的應(yīng)用交互,使用圖形用戶接口) - Model-View-Controller An application requ
49、iring connection and interaction with multiple external applications developed using different technologies and platforms(一個(gè)應(yīng)用要求和多個(gè)的使用不同的技術(shù)和平臺(tái)開發(fā)的外部應(yīng)用進(jìn)行連接和交互) - Service Oriented Architecture 相同的應(yīng)用可以使用不同的風(fēng)格不同的方式實(shí)現(xiàn),沒(méi)有一個(gè)簡(jiǎn)單的、正確的答案;一個(gè)應(yīng)用可以用多種風(fēng)格組成; 架構(gòu)的風(fēng)格與實(shí)現(xiàn)的風(fēng)格不同!30、Drupal High Level Architecture(1)Menu Modu
50、le:解析URL來(lái)確定哪些動(dòng)作是需要的;確定用戶是否有權(quán)限來(lái)決定這個(gè)動(dòng)作;確定在這個(gè)動(dòng)作和執(zhí)行中哪些模塊被調(diào)用;管理菜單的客戶化(customization)。(2)Path Module:Roles with the right permission can specify a URL path for a node that is easy to remember(有權(quán)限的角色可以確定一個(gè)容易記憶的節(jié)點(diǎn)的URL路徑);解決執(zhí)行階段的URL路徑。(3)Form API:通過(guò)不同模塊來(lái)處理元素窗體工具欄,呈現(xiàn)給用戶;當(dāng)一個(gè)表單被提交,處理鍵入數(shù)據(jù)的校驗(yàn);校驗(yàn)之后,處理數(shù)據(jù)提交到適當(dāng)?shù)哪K。(4
51、)Node Module:管理節(jié)點(diǎn)提交到應(yīng)用中;管理用戶節(jié)點(diǎn)的顯示;管理應(yīng)用的內(nèi)容類型,并允許管理員創(chuàng)建新的內(nèi)容類型。(5)Search Module:Drupal通過(guò)內(nèi)容索引來(lái)執(zhí)行對(duì)整篇文本的搜索;搜索模塊的內(nèi)容索引,和搜索需要的內(nèi)容;搜索模塊在編制索引和搜索之前調(diào)用預(yù)加工模塊來(lái)對(duì)文本進(jìn)行預(yù)加工;(6)Taxonomy(分類) Module:分類是將內(nèi)容分成在應(yīng)用的不同部分可以被使用的一種分類方法;分類模塊管理每一塊內(nèi)容分類的指派;(7)User Module:管理用戶的創(chuàng)建過(guò)程;管理用戶的登錄過(guò)程。(8)System Module:允許管理員配置該應(yīng)用;檢查和報(bào)告系統(tǒng)級(jí)別的錯(cuò)誤。(9)Bl
52、ock Module:一個(gè)塊是那些在主要顯示內(nèi)容區(qū)域外顯示的文本或功能的片段(碎片),如News feed、Calendar、Language switch;該模塊管理塊的位置和rendering(工具欄?)的定義。(10) Theme System:是信息表示給用戶的最后一步;該模塊收集關(guān)于一個(gè)特定節(jié)點(diǎn)的有關(guān)信息,如:Overall theme、Each block can be themed separately、The output from each module can be themed separately。31、 開發(fā)一個(gè)應(yīng)用的被推薦的步驟:Write down your un
53、derstanding of the requirements and prioritize themDecide on an architecture style and a technical approach (e.g. what programming language(s) to use)Document the technical issues, including those that you do not know how to solveAssign responsibilitiesDecide overall schedule:Research and Design、Cod
54、e、TestResearch solution Design user experience Design application CodeTest Prepare Final Report Prepare Final Presentation三、AJAX1、ajax是:(1)Asychronous once the client program issues a request, it can continue to run and does not need to wait for the servers response(2)Javascript (3)And (4)XML:是一種在服務(wù)
55、器和客戶端傳送數(shù)據(jù)的方式,但不僅僅是這種方式。當(dāng)其他人在發(fā)送計(jì)劃文本時(shí)喜歡使用JSON2、使用其他技術(shù)的缺點(diǎn):任何要改變頁(yè)面需要刷新整個(gè)頁(yè)面(反應(yīng)時(shí)間慢、增加服務(wù)器的負(fù)荷、是用戶感到厭煩,對(duì)桌面應(yīng)用不友好。AJAX不是一種新的技術(shù),但是它是一種在現(xiàn)有技術(shù)上的創(chuàng)新。兩個(gè)關(guān)鍵的概念:(1)Javascript能動(dòng)態(tài)改變DOM DOM (and therefore to the appearance of a webpage);(2)Javascript can make a request to the server and receive data back without requiring a page refresh(Javascript可以發(fā)送請(qǐng)求到服務(wù)器,接收返回的數(shù)據(jù)而不需要刷新頁(yè)面)。AJAX的優(yōu)點(diǎn):(1)使建立更多的交互站點(diǎn)和應(yīng)用成為可能;(2)是模式和架構(gòu)鼓勵(lì)的創(chuàng)建方式(3)Use existing technology supported by all modern browsers, no download requir
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二元培訓(xùn)制度
- 崗位培訓(xùn)制度流程
- 進(jìn)階培訓(xùn)制度
- 機(jī)關(guān)培訓(xùn)制度
- 非公黨建教育培訓(xùn)制度
- 學(xué)科帶頭人培訓(xùn)制度
- 公務(wù)人員法制培訓(xùn)制度
- 局會(huì)議培訓(xùn)制度
- 保險(xiǎn)柜面培訓(xùn)制度
- 種質(zhì)資源培訓(xùn)制度
- 新能源電站單位千瓦造價(jià)標(biāo)準(zhǔn)值(2024版)
- 軍隊(duì)院校招生文化科目統(tǒng)一考試模擬試卷
- 03課題三-建筑運(yùn)行大數(shù)據(jù)安全與數(shù)據(jù)質(zhì)量-20180703
- 工業(yè)區(qū)物業(yè)服務(wù)手冊(cè)
- 2024新能源集控中心儲(chǔ)能電站接入技術(shù)方案
- 河南省信陽(yáng)市2023-2024學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量檢測(cè)數(shù)學(xué)試題(含答案解析)
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué) 期末復(fù)習(xí)講義
- 零售行業(yè)的店面管理培訓(xùn)資料
- 培訓(xùn)課件電氣接地保護(hù)培訓(xùn)課件
- 污水管網(wǎng)工程監(jiān)理月報(bào)
- 安徽涵豐科技有限公司年產(chǎn)6000噸磷酸酯阻燃劑DOPO、4800噸磷酸酯阻燃劑DOPO衍生品、12000噸副產(chǎn)品鹽酸、38000噸聚合氯化鋁、20000噸固化劑項(xiàng)目環(huán)境影響報(bào)告書
評(píng)論
0/150
提交評(píng)論