網頁

搜尋此網誌

2011年12月26日 星期一

National Taipei University of Technology 台北科技大學

今年(2011年)捐贈書籍的時間又到了,這次捐贈的數量較少,主要是找不到什麼好書可以捐贈。每次捐贈知會先調查圖書館是否已經購置,沒有購置才會列入我的選書清單之中,接著再將評估看看是否是一本好書,以及總金額是否超出今年的預算。

所謂「好書」,我所指的是內容的品質,主要看有沒有架構與深度。若是國外著作的翻譯本,一般來說都是好書,不好通常是翻譯品質不好,詞不達意、專有名詞錯誤等的問題。

如果是國內電腦相關出版品的話,內容上有濫竽充數、品質參差不齊的現象,用大量貼圖膨脹版面、觀念不敘述(只講述操作步驟)的問題,所幸近幾年已經改善不少,然而多數書籍出版依舊以中初級的程度為主,可能是國內市場不夠大的關係。


這次捐贈的書籍清單如下所述:
  • Paul Barry著,蔣大偉譯,深入淺出 Python,台北:歐萊禮,2011。
  • David Powers著,陳亦苓譯,跟Adobe徹底研究Dreamweaver CS5與PHP,台北:上奇資訊,2011。
  • Alan Beaulieu著,張偉超、林青松編譯,陳佳新審校,SQL學習手冊(第二版),台北:碁峯資訊,2011。
  • Bruce Lawson, Remy Sharp著,陳亦苓譯,Hello!HTML5,台北:松崗,2011。
  • Zoe Mickley Gillenwater著,張雅芳譯,想做好網站一定要會的CSS3,台北:碁峯資訊,2011。
  • 呂昶億、杜慎甄著,Dreamweaver CS 5.5全新進化,台北:松崗,2011。
期望國內能有更多的優良書籍出版,好讓我捐獻給學校。(大家都去借書了,誰來買啊...)
###

2011年12月22日 星期四

Design Patterns 2nd 物件導向設計模式 2讀

書不怕被多翻閱幾次,每次閱讀總會有不同的收穫!拿起身旁的「物件導向設計模式」這本書,兩年前(2009)對於設計模式非常有興趣,不過看完沒有多少體悟,經過兩年的軟體開發經歷,現在對於設計模式有不同的心得感想。

設計模式(Design Patterns)開宗明義指出:「設計物件導向軟體很難,設計可再利用(reusable)的物件導向軟體更難。(Designing object-oriented software is hard, and designing reusable objectoriented software is even harder.)」設計模式的目的與意義就是解決這個設計問題,由四人幫(Gang of Four, GoF)將物件導向設計的成功經驗整理成為「設計模式」,藉由設計模式將成功的設計與架構更容易可再被利用,讓設計師更快設計出正確的軟體,讓新的系統開發者更容易進入狀況。

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides著(所稱「四人幫」),葉秉哲譯,物件導向設計模式:可再利用物件導向軟體之要素,台北:台灣培生教育,2001。譯自:Design Patterns: Elements of resuable object-oriented software

「設計模式」一詞源於美國建築理論學家─克里斯多福‧亞歷山大(Christopher Alexander),他解釋:

每一則模式都在描述某種一再出現的問題,並描述解決方案的核心,讓你能據以變化出各種招式,解決上萬個類似的問題。
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.

物件導向的設計模式由四人幫提出3大類(依據目的劃分)共23種設計模式,由他們對設計模式命名與編纂(ㄗㄨㄢˇ)成型錄。

 X目的
生成模式
(Creational Patterns)
結構模式
(Structural Patterns)
行為模式
(Behavioral Patterns)
範疇類別 工廠方法模式
(Factory Method)
轉接器模式
(Adapter)
解譯器模式
(Interpreter)
範本方法模式
(Template Method)
物件 抽象工廠模式
(Abstract Factory)
建造者模式
(Builder)
原型模式
(Prototype)
獨體模式
(Singleton)
轉接器模式
(Adapter)
橋接模式
(Bridge)
組合模式
(Composite)
裝飾模式
(Decorator)
外觀模式
(Façade)
享元模式
(Flyweight )
代理模式
(Proxy)
職責鏈模式
(Chain of Responsibility)
命令模式
(Command)
迭代器模式
(Iterator)
仲介者模式
(Mediator)
備忘錄模式
(Memento)
觀察者模式
(Observer)
狀態模式
(State)
策略模式
(Strategy)
訪問者模式
(Visitor)

由上表可以看到設計模式使用的範疇分為兩類,一是類別,另一是物件。類別模式處理類別與子類別之間的設計方式,在程式編譯期間(compile-time)就已經決定,屬於靜態關係。而物件模式則是處理物件之間的設計方式, 在程式執行期間(run-time)才運作,屬於動態關係。

有關物件導向設計模式必須慢慢仔細品嚐,才能發覺其中設計的精神!

###
延伸閱讀
物件導向設計模式

2011年12月15日 星期四

Learning Python 學習手冊

Python程式語言在台灣似乎沒有很多人使用,可能是學校教育大多數是教C和C++這類的程式語言,如果有興趣學習其他程式語言,我優先推薦學習Python,因為Python免費、可移植、功能強大(自動記憶體管理)、易於使用等優點。

中文Python參考書籍是相當少,這裡推薦台灣歐萊禮翻譯出版的「Python學習手冊」,這本書的內容範圍夠廣,討論深度夠深,說是Python聖經本也夠資格。不過目前看來中文已經絕版,不曉得是不是因為英文已經出了第4版,所以第3版的Python學習手冊才不繼續發行。

Mark Lutz原著,陳建勳譯、蘇秉豐編,Python學習手冊‧第三版,台北:歐萊禮,2008。譯自:Learning Python, 3rd Edition. O'Reilly Media.

學習程式語言除了瞭解語法之外,最重要的是程式語言本身的精神(觀念與特質)要掌握住,Python是一種物件導向描述語言(object-oriented scripting language),加上Python是動態定型的方式(資料型態不用宣告)。對於熟悉C++的人而言,很多觀念很像但卻是不一樣,特別是動態定型的特性,這是Python具有彈性的根源,也是讓Python在程式語言的實作上和使用上有所差異的原因。

全書分成8卷共29章,內容不外乎講述語法和觀念,但這本書有講到Python核心,像是「第六章 動態定型簡介」就屬於程式語言如何實作的部份。此外Python的套件(package)、模組(module)是Python獨有的概念,學習上一定要建立觀念,而在物件導向方面則要注意類別(class)物件和實體(instance)物件的觀念。
  • 卷 1 入門簡介
    • 第一章 Python 簡介
    • 第二章 Python 如何執行程式
    • 第三章 如何執行程式
  • 卷 2 型態和運算
    • 第四章 Python 物件型態簡介
    • 第五章 數字
    • 第六章 動態定型簡介
    • 第七章 字串
    • 第八章 串列和辭典
    • 第九章 Tuple、檔案、以及其他一切
  • 卷 3 敘述和語法
    • 第十章 Python 敘述簡介
    • 第十一章 指定敘述、運算式、以及列印
    • 第十二章 if 測試
    • 第十三章 while 與 for 迴圈
    • 第十四章 說明文件插曲
  • 卷 4 函式
    • 第十五章 函式基礎
    • 第十六章 範圍和引數
    • 第十七章 高等函式議題
  • 卷 5 模組
    • 第十八章 模組:大藍圖
    • 第十九章 模組撰碼基礎
    • 第二十章 模組套件
    • 第廿一章 高等模組議題
  • 卷 6 類別和 OOP
    • 第廿二章 OOP:大藍圖
    • 第廿三章 類別撰碼基礎
    • 第廿四章 類別撰碼細節
    • 第廿五章 類別的設計
    • 第廿六章 高等類別議題
  • 卷 7 例外事件和工具
    • 第廿七章 例外事件基礎
    • 第廿八章 例外事件物件
    • 第廿九章 例外事件的設計
  • 卷 8 附錄
    • 附錄 A 安裝和組態
    • 附錄 B 每卷練習題解答
    • 附錄 C Python 中文處理
「Python學習手冊‧第三版」以Python 2.5為執行環境,目前Python 2已經有2.7版,而且已經有Python 3了,使用上要注意版本的差異。期望有更多人加入學習Python的行列!也希望中文版的Python學習手冊能有第4版。

###

Object-Oriented Analysis and Design with Applications 物件導向分析設計與應用

物件導向(Object-Oriented, OO)是目前軟體開發中經常使用的設計典範(paradigm),很重要的概念但我一直以來沒有好好瞭解清楚,「物件導向分析設計與應用」這本書正好補足我這方面的知識,閱讀之後感覺相見恨晚,書中內容都是物件導向的經典!這本書的翻譯相當流暢且確實,非常感謝譯者蔡煥麟先生的用心。


Conallen, Young, Maksimchuk, Houston, Booch & Engle著,蔡煥麟譯,物件導向分析設計與應用,台北:碁峯資訊,2009。譯自:Object-Oriented Analysis and Design with Applications, 3/E

「物件導向分析設計與應用」如同書名一樣,內容主要是講述物件導向分析(OOA)物件導向設計(OOD),較少在物件導向程式設計(OOP)上著墨。全書分成3篇共12章,分別是概念(Concepts)、方法(Method)與應用(Applications)三個部分,前兩部分較偏向理論說明,而最後一部分透過實際案例的分析設計,讓我們讀者對於OOAD能有實務的經驗。

我認為這本書最重要的地方是第一篇概念,學習物件導向往往偏重於設計方法與實作的部分,可是卻造成「知其然而不知其所以然」,我們在這本書中可以清楚知道為何需要「物件導向」的原因,難得一見(也可能是自己看的聽的不夠多)。使用物件導向是為了解決軟體複雜性的問題,這個精神一定要謹記在心,分析和設計都是為了這件事。

物件導向利用物件模型(object model)降低系統的複雜性,於是我們才能比較容易處理問題,其中物件模型包含抽象化、封裝、模組化、階層、定型、並行性、續存性等概念,這些都是物件導向的核心概念。使用物件模型提高程式的可再用性與可維護性,讓軟體開發及維護更有效率。

對於正在學習物件導向程式語言(programming language)的人,我特別推薦閱讀這本「物件導向分析設計與應用」,你將可以結合物件導向的精神和程式碼,學習上將更有所體悟。

###

延伸閱讀
System Analysis and Design 系統分析與設計
Unified Modeling Language 統一塑模語言
Object-Oriented Programming物件導向程式設計
Design Patterns物件導向設計模式

譯者在他的部落格中的書籍資訊
Huan-Lin 學習筆記: 《物件導向分析設計與應用 第三版》書籍相關資訊

2011年12月11日 星期日

Brownfield Application Development in .NET 軟體構築美學

軟體開發當中,最不想遇到的情形就是「接手既有的專案」,因為不曉得藏有多少bug,加上各個開發者撰寫程式風格的差異,於是必須先看懂程式碼才能改善或加入新功能,這有時比重新開發要花更多心力,如果又沒有相關的開發文件或規格,接手這樣的專案只能祈求神明保佑。

現在,「軟體構築美學:當專案團隊遇上失控程式,最真實的解決方案」這本書提供我們面對上述這類「棕地應用程式」應該如何處理。所謂棕地(brownfield)這個詞彙是借用建築領域中的定義:

棕地土地(簡稱棕地),主要是用在工業上或商業上的一塊土地,並且這塊土地可能被低濃度的放射性物質或危險的廢物所污染,一旦清除這些污染,有可能將再次的重新使用。

Kyle Baley & Donald Belcham著,蔡煥麟、張簡才祿譯,軟體構築美學,台北:精誠資訊,2010。譯自:Brownfield Application Development in .NET

棕地應用程式(Brownfield Application)指的是一個既有的軟體專案,此專案可能因為用了一些不好的開發方式、結構、或設計而產生許多問題,但若經過仔細的整理和重構(refactoring),還是有機會繼續發展使用。棕地應用程式包含三個基本元素:(1)既有程式碼、(2)差勁實務做法所造成的污染、(3)仍有改善或重複使用的潛力

注意到「棕地」不同於「老舊(legacy)」應用程式,棕地介於「綠地(greenfield)」與老舊之間,綠地應用程式沒有舊專案或技術的歷史包袱,而棕地應用程式通常有很沉重的,至於老舊應用程式則是處於維護不開發。有了這些概念之後,就會清楚瞭解這本書主要想說明什麼內容了。

「軟體構築美學」總共13章,分成開發環境(The ecosystem)程式碼(The code)兩個部分,一個開發人員面對的不外乎這兩個範疇。第1章是介紹棕地應用程式,後續幾章則說明棕地應用程式在這兩個範疇中有哪些痛點(pain point)和解決方法。
    • 第1章,認識棕地應用程式(Understanding Brownfield Applications)
  • Part 1 開發環境(The ecosystem)
    • 第2章,棕地專案的版本控制(Version Control in Brownfield Applications)
    • 第3章,持續整合(Continuous Integration)
    • 第4章,自動化測試(Automated Testing)
    • 第5章,軟體度量與程式碼分析(Software Metrics and Code Analysis)
    • 第6章,瑕疵管理(Defect Management)
  • Part 2 程式碼(The code)
    • 第7章,在專案中導入好的物件導向實務(Bringing Better OO Practices to the Project)
    • 第8章,應用程式的重新分層(Relayering Your Application)
    • 第9章,鬆散一些:降低程式碼的依賴性(Loosen up: Taming your Dependencies)
    • 第10章,重整使用者介面(Cleaning up the User Interface)
    • 第11章,重構資料存取(Refactoring Data Access)
    • 第12章,管理系統外部的依賴(Managing External System Dependencies)
    • 第13章,持續改善(Keeping the Momentum)
多數軟體專案常常受到「汙染」(通常不是惡意的,是不得已或無知之錯),隨著開發時間的增長,汙染程度與日俱增,最後根本無法維護利用。「軟體構築美學」適合推薦給專案管理與系統開發人員,裡面有太多正確的觀念和務實的作法非常值得學習,期望閱讀後不要再有「汙染」產生。

###

2011年12月8日 星期四

How We Test Software at Microsoft 軟體測試之道

在實際工作環境之中,軟體測試(Software Testing)在軟體開發流程似乎沒有受到重視,大都將軟體重心放在開發(Development)上,這樣的態度實在不好,最後往往導致有產品卻不能用,Bug太多沒有品質。

「軟體測試之道」介紹微軟(Microsoft)這間大型軟體公司的如何去做軟體測試,書中提到微軟的開發人員與測試人員的比例大約是1比1,並且落實軟體工程。我想因為有這些因素,微軟才能做出複雜又高品質的軟體系統(平台與應用程式),其中微軟的工程領域有鐵三角 (triad),指的是測試、開發與計畫管理三個專業領域,這也說明軟體測試是一個專業的技術。

Alan Page, Ken Johnston, Bj Rollison著,林宗斌譯,軟體測試之道-微軟測試團隊的成功經驗、方法與技術,台北:碁峯資訊,2010。譯自:How We Test Software at Microsoft。

本書分成四大部分,總共16章:
  • Part I, 關於微軟(About Microsoft)
    • Chapter 1, 微軟的軟體工程(Software Engineering at Microsoft)
    • Chapter 2, 微軟的軟體測試工程師(Software Test Engineers at Microsoft)
    • Chapter 3, 工程生命週期(Engineering Life Cycles)
  • Part II, 關於測試(About Testing)
    • Chapter 4, 測試案例設計的實務作法(A Practical Approach to Test Case Design)
    • Chapter 5, 功能測試技術(Functional Testing Techniques)
    • Chapter 6, 結構測試技術(Structural Testing Techniques)
    • Chapter 7, 分析複雜程式碼的風險(Analyzing Risk with Code Complexity)
    • Chapter 8, 以模型為基礎的測試(Model-Based Testing)
  • Part III, 測試工具和系統(Test Tools and Systems)
    • Chapter 9, 管理臭蟲和測試案例(Managing Bugs and Test Cases)
    • Chapter 10, 測試自動化(Test Automation)
    • Chapter 11, 非功能性測試(Non-Functional Testing)
    • Chapter 12, 其他工具(Other Tools)
    • Chapter 13, 用戶反饋系統(Customer Feedback Systems)
    • Chapter 14, 測試軟體加服務(Testing Software Plus Services)
  • Part IV, 關於未來(About the Future)
    • Chapter 15, 防患未然(Solving Tomorrow’s Problems Today)
    • Chapter 16, 創建未來(Building the Future)
第一部分主要說明微軟的軟體開發運作情形,可以看到微軟的開發人員有兩種:軟體開發工程師(Software Development Engineer, 簡稱SDE)軟體測試開發工程師(Software Development Engineer in Test, 簡稱SDET),微軟的測試人員本身就是開發人員!SDET除了設計測試案例(Test Case)之外,還需提出設計改善建議、問題原因分析、参與程式碼複閱...等,不是只有找bug就沒事。

第二部分與第三部分則偏重於軟體測試本身的方法與技術說明,我想這部分對於軟體開發人員都應該好好閱讀瞭解,你會發現軟體測試本身真的不是一件簡單容易的事情!這點常常會被忽略而輕視。最後第四部份則是說明微軟未來在測試和品質的方向。

「軟體測試之道」這本書除了講述軟體測試,也包含很多組織與團隊的內容,不只是一本技術的書籍,也適合管理職位的人閱讀,微軟的軟體工程值得借鏡。

###

2011年12月6日 星期二

Designing Web Interfaces 網頁介面設計模式

自從AJAX技術盛行之後,使用者介面(User Interface, UI)設計越顯得重要,期望能夠提高使用者經驗(User Experience, UX)。

現在,網頁設計師可以參考「網頁介面設計模式」這本書,作者整理網頁介面的精隨成為設計原則(design principles),也就是「設計模式(design patterns)」,相信不管你是不是設計師,藉由參考設計模式也可以做出相當品質的使用者介面。

Bill Scott & Theresa Neil著,古又羽譯,網頁介面設計模式,台北:碁峯資訊,2011。譯自:Designing Web Interfaces: Principles and Patterns for Rich Interactions, O'Reilly Media。

官方網站(英文):http://designingwebinterfaces.com/

這本書的架構以6個設計原則為主體,共14章,包含75種介面設計模式:
  • 原則1, 操作直接性(Make it Direct)
    • 第一章,頁內編輯(In-Page Editing)
      • 單欄直接編輯(Single Field Inline Edit)
      • 多欄直接編輯(Multi-Field Inline Edit)
      • 覆蓋視窗編輯(Overlay Edit)
      • 表格編輯(Table Edit)
      • 群組編輯(Group Edit)
      • 模組組態設定(Module Configuration)
    • 第二章,拖放功能(Drag and Drop)
      • 拖放模組(Drag and Drop Modules)
      • 拖放清單(Drag and Drop List)
      • 拖放物件(Drag and Drop Object)
      • 拖放動作(Drag and Drop Action)
      • 拖放集合(Drag and Drop Collection)
    • 第三章,直接選取(Direct Selection)
      • 雙態觸變選取(Toggle Selection)
      • 集合選取(Collected Selection)
      • 物件選取(Object Selection)
      • 混合選取(Hybrid Selection)
  • 原則2, 保持輕質(Keep it Lightweight)
    • 第四章,情境工具(Contextual Tools)
      • 永遠顯示工具(Always-Visible Tools)
      • 滑過顯示工具(Hover-Reveal Tools)
      • 雙態觸變顯示工具(Toggle-Reveal Tools)
      • 多層級工具(Multi-Level Tools)
      • 副選單(Secondary Menu)
  • 原則3, 同頁作業(Stay on the Page)
    • 第五章,覆蓋視窗(Overlays)
      • 對話型覆蓋視窗(Dialog Overlay)
      • 詳細型覆蓋視窗(Detail Overlay)
      • 輸入型覆蓋視窗(Input Overlay)
    • 第六章,嵌入面板(Inlays)
      • 對話型嵌入面板(Dialog Inlay)
      • 清單型嵌入面板 (List Inlay)
      • 詳細型嵌入面板(Detail Inlay)
      • 欄標(Tabs)
    • 第七章,虛擬頁面(Virtual Pages)
      • 虛擬捲動(Virtual Scrolling)
      • 直接分頁(Inline Paging)
      • 捲動分頁(Scrolled Paging)
      • 虛擬平移(Virtual Panning)
      • 可縮放使用者介面(Zoomable User Interface)
    • 第八章,程序流程(Process Flows)
      • 互動式單頁程序(Interactive Single-Page Process)
      • 直接輔助程序( Inline Assistant Process)
      • 對話型覆蓋視窗程序(Dialog Overlay Process)
      • 組態設定器程序(Configurator Process)
      • 靜態單頁程序(Static Single-Page Process)
  • 原則4, 送出邀約(Provide an Invitation)
    • 第九章,靜態邀約(Static Invitations)
      • 採取行動邀約(Call to Action Invitation)
      • 遊覽邀約(Tour Invitation)
    • 第十章,動態邀約(Dynamic Invitations)
      • 滑過邀約(Hover Invitation)
      • 可視線索邀約(Affordance Invitation)
      • 拖放邀約(Drag and Drop Invitation)
      • 推理邀約(Inference Invitation)
      • 更多內容邀約(More Content Invitation)
  • 原則5, 善用轉換效果(Use Transitions)
    • 第十一章,轉換模式(Transitional Patterns)
      • 打亮與轉暗(Brighten/Dim)
      • 展開與摺疊(Expand/Collapse)
      • 自我復原淡出(Self-Healing Fade)
      • 動畫(Animation)
      • 聚光燈效果(Spotlight)
    • 第十二章,轉換效果的目的(Purpose of Transitions)
      • 滑進與滑出(Slide In/Slide Out)
      • 面板(Faceplate)
      • 翻轉(Flip)
      • 手風琴式展開(Accordion)
      • 旋轉木馬跑馬燈(Carousel)
      • 淡入(Fade)
      • 放大(Zoom)
      • 知覺效能(Perceived Performance)
  • 原則6, 即時反應(React Immediately)
    • 第十三章,查詢模式(Lookup Patterns)
      • 自動完成(Auto Complete)
      • 即時建議(Live Suggest)
      • 即時搜尋(Live Search)
      • 精煉搜尋(Refining Search)
    • 第十四章,回饋模式(Feedback Patterns)
      • 即時預覽(Live Preview)
      • 漸進式揭示(Progressive Disclosure)
      • 進度指示器(Progress Indicator)
      • 定期重新整理(Periodic Refresh)
作者在每個設計模式中,除了說明功能和特色之外,還有「問題探討」與「重要常規」兩個部分,「問題探討」講述這個設計模式可能淺在的議題,而「重要常規」則是使用上建議必須遵守的規則。這些內容都只有在書籍中才有敘述,官方網站上沒有細部說明,因此建議購買或借閱來看,這些寶貴的經驗絕對值得。

推薦序提到一個建築觀念,以設計原則為主並以設計考量(design considerations)為輔去建構出建築物,我想這個概念同樣適用於網頁設計上,只要我們掌握住上述這些設計模式,設計時考量各種限制與衝突,則建立優異的使用者經驗將不會是一件困難的事情!

###

2011年12月5日 星期一

Stunning CSS3 想做好網站一定要會的CSS3

Cascading Style Sheets (CSS)是網頁中用來設計樣式的語言,重要性與HTML和JavaScript相當,一個網頁設計師應該要熟悉這三種語言。W3C持續訂定CSS第3版的規範,稱為CSS3,CSS3不只是舊版CSS2.1的延伸,還加入一些新功能!

目前有關CSS的書籍不多,這本「想做好網站一定要會的CSS3」講述CSS3的重要功能,並提出「漸進式增強(Progressive Enhancement)」的網頁製作方式,雖然CSS3標準尚未制定完全(請參考目前CSS3工作進度),各瀏覽器也未必完全支援,但作者認為漸進式使用CSS3的好處多於缺點。

Zoe Mickley Gillenwater著,張雅芳譯,想做好網站一定要會的CSS3,台北:碁峯資訊,2011。譯自:Stunning CSS3: A Project-based Guide to the Latest in CSS

本書共分成7章,第1章說明CSS3的概況,第2章至第7章介紹CSS3的重要功能,基本上是對應於CSS3中不同模組(module)的規範,書中介紹的主題如下:
推薦這本書給想認識CSS3的人,注意「想做好網站一定要會的CSS3」不是參考工具書喔!想要看CSS規範請至W3C網站查詢。

###

延伸閱讀
3 Elements of A Web Page網頁三元素

2011年12月3日 星期六

HTML5: Up and Running

HTML5的話題一直持續不斷,HTML5已經是未來網頁的標準(據說要到2022年才會定案)。最近仔細研究了一下HTML5,發現HTML5的範疇比想像中還要大,不能只說是網頁(Web pages)的標準,由於HTML5新增不少功能,可不只是定義網頁的元素標記(tag)。

因此,我認為HTML5是一個網頁應用程式(Web Applications)的標準,這幾乎是全新的一個「HTML網頁標準」!很多HTML5新功能需要JavaScript的操作才能使用,於是要學好HTML5可能需要花費更多心力,變成HTML5和JavaScript都要熟悉了。

Mark Pilgrim著,莊惠淳譯,「HTML5:建置與執行」,台北:碁峰資訊,2011。譯自:HTML5: Up and Running。

這本書總共10章,第一章「從頭說起」說明HTML的歷史,第二章說名檢測HTML5的方法,使用Modernizr這個JavaScript程式庫工具,從第三章到第十章探討8個主題:
  1. 新的語義元素,HTML5新增的語義元素標記。
  2. 繪圖,使用<canvas>標記。可以參考HTML5 canvas - the basics的說明
  3. 可以內嵌在網頁中的影片,使用<video>標記。
  4. 地理位置,位於navigator物件的geolocation屬性。
  5. 永久性的本地端儲存功能,位於window物件的applicationCache屬性。
  6. 離線的網頁應用程式,位於window物件的localStorage屬性。
  7. 改良的HTML表單,新增input標記的型別。
  8. 微資料(microdata),客製用語典(custom vocabularies)。
整體而言,這本書可以讓我們窺見HTML5的概況,內容方面是講述大方向、以概念為主,因此,「HTML5:建置與執行」適合給想認識HTML5的人。若想細部瞭解HTML5的語法和用法,需要再去閱讀HTML5的規範與相關應用的程式碼。

###

延伸閱讀
3 Elements of A Web Page網頁三元素

熱門文章