DIY一次搞定網站易用性問題

ROCKET SURGERY MADE EASY
圖片放在 Flickr

本書評由othree 評論於2010/11/17 ,評分為4.5分(滿分5分) ,採創用 CC 姓名標示 授權條款釋出。

Steve Krug的新書,他之前寫過 Don't Make Me Think (如何設計好網站),這次的主題也是 Usability,中文有人翻譯為易用性、優使性等,不過焦點是在意用性測試這點,整本書就是教你如何設計、安排易用性測試,並將測試安排進你的開發流程。其實會買到這本書完全是意外,大概兩週前難得去天瓏想要敗家的時候,一如往常,只花一點點時間在中文區晃一下,不過突然發現某本封面特色讓我很熟悉的書,一哪起來才發現竟然是 Don't Make Me Think 作者的新書,所以二話不說就直接買下了,現在想想就覺得還好出版社沒隨便自己設計新封面,不然我大概完全不會注意到。

整本書大概可以分為兩部分,第一部分是講說他這幾年的經驗,為什麼會需要易用性測試,如何說服長官,什麼時候該開始等等算是前置的問題,第二部分則是如何安排和進行易用性測試,場地軟體的挑選,一些必須遵守的準則等,整本書以我的說法來說就是很實用,就是一步一步的教你把易用性設計導入你的開發流程內,相信有不少人或公司有想進行易用性測試卻不知道該從何開始的,這本書正好適合你,非常值得一讀,當然,最好不要讀完就沒事了,實際下去操作才是重點。

一點補充的,今天剛好看到癮科技報導DELL 創新設計中心,最後一張照片就是一個使用性測試的房間。


JavaScript Patterns

JavaScript Patterns
圖片放在 Flickr

本書評由othree 評論於2010/11/09 ,評分為4.5分(滿分5分) ,採創用 CC 姓名標示 授權條款釋出。

Stoyan Stefanov, phpied.com 的作者,Yahoo Search! 的前端工程師,之前寫過Object Oriented JavaScript(之前寫的書評),這次的新書是 JavaScript Patterns ,內容以 JavaScript 的 Coding Style 和 Design Pattern 為主,程式設計師們長年累積的經驗為主,而且內容扎實,沒有灌水章節,不像Test-Driven JavaScript Development前面又塞了一堆基本的東西,雖然有部分內容之前也在別本書看過,像是The Good PartPro JavaScript Techniques這幾本書都有一些內容在這邊也有出現,不過重新整理過放在一起看感覺還是不一樣,目前市面上也蠻缺少這種書籍的,Douglas 的 The Good Part 算是一本,不過內容的涵蓋範圍還是不太一樣。

分章節來介紹一下:第一章是語言背景概念還有工具介紹,介紹的工具是JSLint和 Console ,分別是用來作程式碼檢查和除錯測試用的,JSLint 我也介紹過不少次。第二章則是寫作 JavaScript 程式必要的知識,裡面包括不少 Good Part 的內容,還有一些基礎的效率問題,比較特別的是還介紹了如何用 JSDoc 這類工具自動產生 API 文件。第三章是程式語法和建構函式,這章開始講到物件的部份,不過還是很初步的接觸而已,第四章是函式的部份,一些函式的使用方法都在這章介紹,像是 callback 或是 return function 、 curry function 等都有。第五章則是回到物件的部份,不過還沒到繼承,而是介紹了不少架構 Framework 的方法,像是 Namespace 的概念,還有比較少人介紹過的 sandbox pattern。第六章終於講到物件繼承的部份,不過其實這章是在講程式碼再利用,所以除了物件繼承外還介紹了 call 和 apply 。第七章就是設計模式了,介紹了 Singleton、Factory、Iterator、Decorator、Strategy、Facade、Proxy (和 jQuery 的 proxy 不一樣)、Mediator 和 Observer,除了 Pattern 的實作外,都還有提到怎樣的場合適合使用。最後一章是比較現實層面的 DOM 操作和瀏覽器差異等,另外還介紹了JSONP

過去我覺得 JavaScript 有兩本必讀的書,第一本是PPK on JavaScript,第二本是 JavaScript The Good Part,現在 JavaScript Patterns 或許可以成為第三本,天瓏那邊也賣的蠻不錯的,我要買的時候老闆還問了我一下這本是什麼,現在也缺貨中。PPK 和 Good Part 都有出中文版,希望這本之後也能出版,不過 O'Reilly 退出台灣後,會是哪間出版社來出版就不知道了。


Object Oriented Javascript

Object Oriented JavaScript

本書評由othree 評論於2009/03/29 ,評分為4.5分(滿分5分) ,採創用 CC 姓名標示 授權條款釋出。

看書名就知道,這本書是專門在講 JavaScript 的物件導向,其實看完這本書我當下的想法是:「媽媽我不要用 JavaScript 寫物件導向程式 Q_Q。」

這本書總共有八章,我大概可以切成三段,首先是一到四章,講基礎的 JavaScript,裡面有些東西後面會用到還蠻重要的,再來是本書最重點的五六兩章,在講 prototype 和物件繼承,最後是剩下的BOM、DOM、design pattern和附錄,前後的部份我也沒看的很仔細,主要還是五六章為主。

第五章介紹 JavaScript 特有的 prototype 屬性,接著第六章就開始講解要怎樣利用 prototype 來實作物件繼承,這部份真是越看越不想用 JavaScript 來寫 OO 的程式,作者一種方法接著一種方法介紹,然後再說有什麼問題,解著介紹比較好的方法,整章看下來早就忘了已經介紹幾種方法了,就是看完這張才讓我有了上面的感想,不過用像Base這種已經寫好的 library 我到還可以接受啦。

總之,結論,這本在 prototype 和 JavaScript 物件繼承的部份,講的很詳細,是別本書無法取代的,如果對這部份想要深入研究的,那我會推薦來看這本,不過很多時候的 Web Develop 是用不太到這些東西的(開發 Firefox Extension 用到的機會還比較大)。


Everything You Know About CSS Is Wrong 書評

The Principles of Beautiful Web Design

先節錄一下我在IRC上講的內容摘要:

01:01 @othree 基本上就是在講css-table來排版
01:01 @othree 可能遇到的問題 ex: position:ralative, colspan, rowspan
01:02 @othree 然後要如何應付就瀏覽器 1.不理他 2.做個簡單排版給他 3.用現在的技術做給他
01:03 @othree 中間有稍微講如果要做到3那為什麼還要用css-table
01:03 @othree 最後講css3的一些排版的新東西
01:04 @othree multicolumn, grid, advanced layout(書內是用template layout)

我是覺得這本書的中心思想是不錯的,不該拿來做排版的東西就不應該拿來排版,不過css-table也不像是拿來排版的東西啊,CSS規格書上的說法讓我覺得他是為了XML那種資料格式可以直接使用表格形式呈現而設計的,我是覺得不該用作來做為整個網頁的版面配置用,CSS一直以來都有一個問題,就是程式設計師和平面設計師學起來都不容易,在這個問題點上,我覺得用上css-table其實也沒什麼改變,更何況css-table沒真的table靈活,沒有colspan和rowspan,要做到類似的效果變成要用nested-table,大福增加HTML結構的複雜度,怎麼看都是弊大於利,我實在是不覺得用css-table來做排版是個好選擇。

最後,如果要我挑理想的排版方法的話,我是覺得還在制定中的CSS Template Layout比較理想,畢竟是圖形化的編排方式,對於設計師來說直觀許多,而且在設計上也確實是排版用的屬性。


JavaScript 優良部分

JavaScript 優良部分

JavaScript 優良部分(JavaScript: The Good Parts)在英文版出版消息出來時我就很有興趣了,本來也預訂要購買了,沒想到中文版很快就出了,當然是二話不說就買下來了,畢竟不管英文閱讀能力如何,我看中文吸收還是比較快,書到手時首先被他的厚度嚇了一跳,全書才160多頁,定價420,不過內容實在是很不錯,我是覺得收穫/頁數比Pro JavaScript Techniques還要高。

書中主要是分成分成語法、物件、函式、繼承、陣列和正規表示式(Regular Expression)幾個部分來介紹JavaScript的優良部分,除了語法部分外,每章都講到不少慣例的寫法,許也可以稱為設計模式,像是var that = this;這個作法,我以前比較有印象是看過var self = this;,我自己則沒有特別用哪個變數名稱,不過看到這段之後去google了一下,用that的其實比較多。書中比較難的大概還是函式和繼承這部份吧,以繼承來說,JavaScript其實在設計上並沒有真的講到繼承(inherit)的,資料封包也是,不過都有其他方法可以做到這些事情,書中提到的繼承方法大概有三四種,其特性都有介紹。至於函式的部份我還有一些還沒花腦袋去把code看懂,不過就已經理解或是用過的方法而言,這章節介紹的東西都很有用,寫小script可能用不到,不過需要複雜一點的演算法的時候,相信裡面的東西就會很有幫助了。

除了優良部分外,還有一篇附錄是講JavaScript不良的部份,像是每本書都會提到的 == 的怪異行為,一些可能會造成錯誤解讀的用法等等,除了這些優良部分和不良部份的介紹外,其實書中在各個章節,都若有若無的在強調寫code要保持良好的程式碼風格,到第九章還特別把這件事提除來強調,即使到附錄的不良的部份也還事宜在提到這些事情,這部份的內容其實我覺得是蠻意外的收穫,因為這些慣例的寫法通常不屬於規格的一部分,如果沒人整理出來要靠自己學習事很花時間的,為此接下來也還要買Pro JavaScript Design Patterns,希望也會是一本好書。

JavaScript 優良部分整體而言內容紮實,長度短了點,雖然部分內容有些複雜,不過就如序文所說,這本書我也推薦給剛開始接觸JavaScript的人,畢竟,不該碰的東西,該養成的習慣都是早點知道比較好啊。


赤朽葉家的傳說

赤朽葉家的傳說

上週日下午把之前買的「天才搶匪盜轉地球」看完,接著拿起赤朽葉家的傳說,想說隨便看一點,結果,一個下午我就把這本389頁的書看完了,看的時候幾乎是整個陷入那一端的世界,書中的種種都可以在我腦海裡描繪出來,即使看到第三部的時候,旁邊電視的聲音和影像也影響不了。

關於書中內容我不會講太多,不過如果確定會看這本書的人,或許還是不要往下看比較好。赤朽葉家的傳說分為三部,第一部的標題是神話年代,我在初看這部份的時候,還覺得說神話年代真是有點言過其實,但是等到進入第二部的時候,整個感覺完全改變,同樣的人物、地點,時間推移的這麼平順,但是透過櫻庭一樹的描寫,兩邊卻呈現完全不一樣的風格,這時候才感覺到,第一部時的故事什麼都帶著點神話色彩,到了第二部,巨大而空虛的時代,神話色彩消失,但卻一點也不突兀,描寫到了第三部,時間幾乎與現在無異,回想第一部的種種,神話的感覺又更加的強烈。這三部之間文字風格的轉換,是令我最感到厲害的地方。

書中的角色每個我都很喜歡,大家都是好人,努力的在自己的時代活下去,比較讓人捨不得的是第二代的幾位,雖然早就知道泪會死,不過真是想不到對整個家族影響這麼大,從那邊開始時間好像加速停不下來一樣,直到毛毬也過世,這段應該是整本書最讓人難過且喘不過氣的一段了。

看的時候我一直有淡淡的鬱卒感,不只是汨過世到毛毬過世那段,即使在赤朽葉家最輝煌的那段時期也是一樣有種淡淡的鬱卒感,雖然這不是第一本讓我有這種感覺的書了,不過赤朽葉家的傳說卻把這種感覺控制的很微妙,鬱歸鬱,卻不影響心情,還真是蠻微妙的感覺,我想主要是因為赤朽葉家隨著時間的推移,整個家勢都是在衰退的吧,這也是為了要和書末要傳達給讀者的訊息相關,不過看到最後的時候,我已經不太在意書中想傳達什麼訊息了,而是充滿了即將要把書看完的寂寞感。


老貓學出版

老貓學出版

現在我在Bloglines裡面訂閱的消息來源已經超過三百個了,不過很多的文章我都只是快速掃過,不少文章連標題都還沒看清楚就被我略過了,而老貓學出版是在這三百多個消息來源中,我少數會每篇新文章都從頭到尾看完的部落格,不過即使如此,我卻還是懶得回去看他之前的舊文章,數百篇的文章要在線上看完,那真是會讓我受不了,對於那些一直沒看過的好文,也只能怨歎相見恨晚了,不過就在今年,老貓把部落格上的精華文章整理出書了,我自然沒錯過這個好機會,從博客來訂了一本。

書的厚度是我本來預計的1.5倍厚,所以看起來花了不少時間,內容大概分為四大類,從編輯的入門、心得到果國內外市場分析都有,要我說我對這本書有什麼感想的話,其實沒有什麼特別的感想,只不過這些文章的內容我都很有興趣,在看完這本書之後,我試著思考為什麼我會對出版工作、市場一直有些興趣,或許和我收藏不少漫畫有關係,任何東西只要接觸多了,自然會對他越來越熟悉,即使只是漫畫,漸漸的也會在意起書籍的紙質、價錢定位、翻譯品質等等,如果有人問我國內漫畫哪家出板社的品質比較好,我不但可以馬上回答對方,還可以多講上一堆相關的東西。而最近一次我認真的想了解出版相關業務的其實就是在去年,也是因為漫畫的關係,因為aNobii網路書櫃的關係,我發現到尖端和長鴻兩間出版社出版的漫畫都沒有申請ISBN,我覺得這根本就是瞧不起漫畫的行為,即使尖端出版的書籍品質還不錯,甚至是早期品質最好的。寫信過去詢問,結果都沒的到正面的回應,尖端直接沒回信,長鴻則是有發公告說會在內部討論(因為當時不只我寫信去關切,不過時至今日,長鴻出版的漫畫依然沒ISBN),當時我就有去了解相關的作業流程,於是深切的瞭解到,申請ISBN一點也不難...

除了我對出版的工作事務有些興趣外,看完這本書後我明確的瞭解到編輯到底是幹什麼用的,不知道可不可以算是意外的收穫,這種感覺和我看交響情人夢一樣,看交響情人夢之前,我一直都不知道指揮到底是做什麼用的,看過之後,或許不能明確的講出來,但是我確實知道指揮在樂團中的地位為何。所以,編輯還真是辛苦,需要負責的東西實在比我原來所能想像到的東西多太多了。

最後我要回應一下老貓部落格上的調查,關於紙本和網路版本的閱讀經驗比較,我一直是比較喜歡紙本閱讀的,我實在無法想像要用電腦來看整本都是文字的書,所以即使很多原文書網路上都抓的到,我要看的話還是會用買的,而不考慮已經有書的狀況,即使文長都不長,像是老貓學出版那樣,我也不會有動力去翻過往的文章來看,對我來說太花時間了,進入網路時代後,除非是看小說看的很投入,我看書也會看一陣子就會看看網路上有沒有新文章,甚至網路上的文章看到一半跑去看有沒有其他地方有新文章,過陣子再回來看(有時候是幾天後,像我現在瀏覽器分頁裡就有兩三篇文章還沒看完),如果老貓沒出書的話,這些文章我大概一輩子都不會看到吧,而書中大概不到10篇是我在網上有看過的,不過網路版不是完全沒用,最新的文章依然只有網路上才有,當然如果紙本能像網路這樣方便迅速的就得到最新的內容的話,我大概還是會選紙本吧,這有點像我對電子書的期望,我的期望是目前技術還做不到的程度,我期望的理想電子書只要能開PDF就好,畫面不閃爍、解析度夠高(現在有些電子墨水的技術可以做出不閃爍的效果),輕薄,但是不用很短小,當然能折疊攜帶更好。

其他:寫這篇文章我才想到oc是怎麼來的XD。


Pro JavaScript Techniques 書評

Pro JavaScript Techniques

雖然年假期間幾乎都在打電動,不過還是有一天晚上忘了什麼原因沒辦法打,所以把這本書剩下的最後兩三章一口氣看完了,這本書大致上可以分為三個部份,第一部份是關於開發方法的,這裡介紹了js的物件觀念、如何產生可再利用的程式碼以及開發和除錯工具。第二部份則是不亂入的JavaScript,這部份從DOM開始介紹,接著介紹怎樣控制事件、怎樣增進網頁的易用性,最後則是實際提供了兩個case。第三部份則是Ajax,這部份一開始先介紹Ajax相關的知識,介紹完的時候也建好一個Ajax Library,而後續就使用這個Ajax Library來時做了幾個case,其中包括現在很常見的auto complete。

這本書的內容理所當然都是屬於進階的內容,入門看ppk on javascript,繼續深造就看這本,書中介紹了不少中小型的JavaScript Library,而且不只是介紹用途,還有講解程式碼,其實看的過程中,我會漸漸覺得非不得已不需要使用Library,因為這些Library包的功能通常都比你需要的還多很多。除此之外,書中對開發工具的介紹也很詳細,想必大家都知道JavaScript是出了明的難開發的,因為每個瀏覽器行為都不同,又不是每個瀏覽器都有Firebug可以用,提供的錯誤訊息常常都很沒用,要是在IE上出錯都要找半天,甚至是使用試誤法來找,雖然這本書沒有提供更好的IE除錯辦法,但是對Opera和Safari的除錯工具都有介紹,像Safari的要用終端機輸入指令才會打開除錯工具,以前我根本不知道,一直以為只有nightly build才有。那至於IE要怎麼辦?其實微軟有提供Internet Explorer Developer Toolbar,只不過時間是在這本書出版之後,雖然沒Firebug強大,還是可以幫助解決不少問題了,唯一有個小問題是只支援IE7。

其實在這本書還沒看完的時候,我因為一些原因看起jQuery的程式碼,也了解了其中一部分的架構,剛好這本書的作者也是jQuery的開發者,所以其實看到不少熟悉的東西。除此之外,我還用書中提到的Dean EdwardsBase做了一個電腦模擬課程的作業,base2是一個用來讓JavaScript有物件繼承能力的base class,因此可以用來開發物件導向的程式。在經歷這些之後,我覺得自己對使用JavaScript的觀念和以前又不一樣了,要說差在哪的話,之前我可能都用jQuery,現在我到是很想只用Dean Edwards的Base和addEvent來開發個什麼東西。

結論:看完jQuery作者的書後反而不想用jQuery了XD。

補充:我一直沒把Base和base2分清楚@@。


黑暗元素三部曲

黑暗元素三部曲

這次的心得是先在BBS發文,分前後兩篇,後面那段是補充,所以有點不連貫。

這故事算是顛覆傳統的吧,所以我才會覺得在西方這種題材竟然能成為兒童文學感到有點困惑,故事是從另一個世界開始的,主角萊拉的世界裡,科學家們發現一種稱為塵的粒子,而塵被認為是構成原罪的基本粒子,不過在觀察塵的時候,艾塞列公爵發現了不同於他們世界的其他世界,重疊在一起,但卻永遠都碰不到,於是他便想連接這些不同的世界,他想毀滅塵的源頭,如此一來,人類就不在有罪惡...etc,這是第一集的主軸,在第一集的最後,艾塞列公爵成功的築起了通往其他世界的橋樑,萊拉也跟著他的腳步前往其他世界(不過我忘了當時動機)。

在第二集,故事從我們的世界開始,所有世界的關係也才明朗化,所有的世界都是平行世界,在什麼時候產生分岐,然後就越來越多世界,天使有能力穿越不同的世界,所有世界的神其實都是同一個,在萊拉的世界被稱為無上權威,在我們的世界被稱為上帝,不過也不是所有世界都有他們的勢力,總之,這位無上權威其實也是天使,而且是第一位天使,他騙其他在他之後誕生的天使說是他創造了他們,以便君臨其下,艾塞列公爵的目標變成打垮此一勢力,於是他找了一個什麼都沒有的世界開始建立根據地,從不同的平行世界廣結同盟,他的軍隊包含了各種各樣的奇怪種族,有科技世界來的,也有奇幻世界來的,而這一個軍隊在第三集還會和天使的聯軍對戰,敵人也不是只有天使,各個世界在他們旗下(教會)的軍隊也都派遣過來,然後因為種種原因,那時戰場還會有幽靈、靈魂,我看到這時真是超期待電影到時後會拍成怎樣XD,不過在那的時間沒很長就是~_~。

艾塞列公爵要做的事其實就和路西法背叛上帝時是一樣的,不過我覺得他真的是超帥的,路西法至少本來就是一名高階天使,還帶領了三分之一的天使叛變,但是艾塞列公爵,只是一名肉身的人類,竟然也想做一樣的事情,而他招集的軍隊,甚至比路西法的軍隊還龐大。

再來講講其他,在這堆世界當中的智慧生命體(因為有些不是人形),可能都流傳著類似的傳說,每個生命都有三個部份,肉體、靈魂、守護精靈,即使在我們這裡也是一樣,只是我們的守護精靈不會顯現,我們也不知道他們存在,無上權威所作的其中一件豐功偉業,就是在人死後,只有靈魂會被帶到冥界,困在那,什麼也做不了,另外兩個部份都會消散為世界中的粒子,守護精靈會直接消散,肉體會漸漸腐敗被大自然所吸收,但是靈魂卻會被困在冥界,這裡其實很地海XD,另外冥界有種人首妖鳥,我直覺想到妖鳥死麗濡,然後黃金羅盤的功用是和塵溝通,中國的易經也是一種和塵溝通的方法,在裡面看到不少其他東西的影子,還蠻有趣的。

最後,作為一本小說他很出色,一段一段看著,不知不覺就看了好幾段,但是要改編成電影應該會有些難度,主要是三本結尾的地方其實都不如過程有力,要怎樣做出一個漂亮的結尾還蠻令人期待的。

昨天寫完後才發現萊拉我完全沒寫XD,不過講真的我不太知道要寫什麼,我知道旅程結束後,他有所成長,他學到了些東西,但是我不知道是什麼,他的旅程說來都是塵為了修復世界所造成的,正因為是有辦法完成塵所交待的任務的他才會受到塵的指引,這是他的幸運,也是不幸,所以當失去解讀真理探測儀的能力時,他才會那麼惶恐,要是我,我寧願不要從恩惠中這種能力。


有告有希望?

這篇其實是Web Accessibility第一、二章的感想。

第一章就是簡單介紹網頁親和力,包括基本認識、好處、迷思等等,其中迷思的部份有興趣的可以看看我之前翻譯過的親和力迷思與錯誤觀念,不過書中講的還要更多一點。

第二章則是網頁親和力的法律簡述,看了之後才知道,美國的發展是因為有身心障礙者因為無法使用網站,提出告訴,然後政府才開始有注意,之後才有了相關法律和Section 508,而Section 508其實也不只是網站的親和力方針而已,其實包含了軟體、作業系統、網站、網路應用程式、資訊、文件和支援等等,而WCAG就只是針對網頁而已。回過來看台灣,網頁親和力議題這麼不受重視,想必是因為還沒人告吧,不過我覺得這也是民情造成,台灣的人大概比較不會往自己的權益受到侵害的方面想,更不用說要對公家單位提出告訴了,讓我想到暑假上英文時,外籍老師知道我們18歲要當兵,但是20歲才能投票時,驚訝的說:「你們在還不能決定國家大事的時候就要被迫上場打仗!」


此類別所有文章