- 什麼是TDD
- TDD(測試驅動開發),是極限編程中提倡的開發方法,其開發流程為先寫測試碼,然後再寫實現的功能。在使用TDD的過程中,會將程式架構切割成多個小元件,便於將來debug與維護。並且在測試碼寫好之後,利用自動化測試也比較容易找到bug的位置,更多的介紹可以查看維基百科。
- 什麼是Junit
- 這是Java使用的開源單元測試框架,並且相容於許多常用的framework如structs, spring, gwt, gae, android等等。標準的JUnit能夠幫助邏輯層面跟JavaSE的部份做單元測試,而各個framework有其特殊的JUnit功能,可以用來測試個framework的特殊功能。
2012年3月18日 星期日
JUnit 與 TDD
2012年3月14日 星期三
Apache Ant 簡介
- Apache Ant是什麼?
- Ant 可以說是一種開源軟體,一種軟體工程的工具,這裡有它的網頁。它是用來協助使用者建立Java的專案,包括編譯、上傳、測試等等。使用者會在build.xml撰寫一些描述碼,並且利用簡短的指令執行這些描述碼,以達到do it once and only once的效果。
- 為什麼要使用Ant
- Ant 的使用,是為了要替programmer處理一些開發且瑣碎的事務,讓programmer可以集中心力在其他較重要的部份。例如當要發展一個比較大型的Project時,很可能,我們需要將Project裡面不同的部份,分別部署到不同的平台上面,此時若是利用Ant,可以解決分開部署到多個平台上的繁雜步驟。ant有一些功能使用shell script也可以做到,但是因為ant是用java寫的,是跨平台的,並且內建在一些熱門的IDE,如eclipse,這一點又比shell script好一些。
- 常用到的功能
- JavaSE
- 在GAE上使用Ant
- 在GWT上使用Ant
- Android
- 上傳FTP
- 使用JUnit
- svn 與 git (或是直接將指令包在Ant裡面)。
2012年3月12日 星期一
GAE for Java 簡介
- 什麼是GAE
- GAE全名Google App Engine,是Google提供的一個PaaS形式的雲端服務,它可以執行使用者上傳的程式(都是屬於WebService的程式)。在GAE裡面所使用的程式語言有三種,Python,Java與Go(google 自行開發的程式語言),而後面所講的都是屬於Java的部份。
- 它的優點
- 它提供了許多已經建立好的工具,例如流量監控、Logs、IP阻擋、Cron Jobs等等。
- 一開始是免費的。
- 使用前必須先建立Google帳戶並用手機號碼認證,認證完可以免費建立10個Application。
- 除了預設的domain以外,可以使用其他你所擁有的domain(需搭配Google Apps)。
- 可以調用google的認證API來認證google帳戶。
- 不必煩惱網路(中國地區除外)、電源等基礎設施。
- 它的缺點
- 免費的Quota不多,且超過免費的配額之後收費並不便宜(計費資訊)。
- 在資料的儲存上與傳統的RDBMS並不相同,如果data schema較為複雜,資料備份以及平台轉移較為不易。
- 如果使用一些GAE上面特有的Service一樣不利於平台轉移。
- 沒有較為方便的客服機制。
- 不能使用file system, socket, thread。
- 欲使用JavaMail時,不須指定from and password,因為這個部份是綁定的,也就是你只能使用建立該Application時的gmail來寄信,並且不能收信。
- 其他特色
- App Engine Datastore 可以選擇Master/Slave Datastore與High Replication兩種,建議以High Replication 為優先選擇。
- 除了App Engine Datastore 以外,還有兩種儲存方式,Google Cloud SQL與Google Cloud Storage。這兩種都是較新,且在實驗階段的功能,第一種讓GAE可以執行一般的SQL語法,第二種提供存取檔案的功能。
- 並非所有的JavaSE的功能皆有提供,詳細情形請看 JRE Classes White List。
- 有些Java 的第三方工具可以使用,有些不行,詳細請看 WillItPlayInJava 。
- SSL的功能只支援預設的domain(*.appspot.com)。
2012年3月11日 星期日
GWT 介紹
1. 這是什麼
3. 有哪些使用GWT開發的網站
5. 如何與其他js library搭配
6. 與java的相容性
- GWT是一種javascript framework。在這個framework裡面,我們使用java 撰寫 server 端與 client 端 (Javascript)的程式碼,並且利用GWT-Compiler 將屬於client 端的程式碼 compile 成 Javascript 程式碼。
- 優點
- 利用Java 物件導向的特性,結構化Javascript 的程式。
- 利用GWT開發Ajax較為方便。
- GWT-Compiler 會針對不同的瀏覽器編譯出不同的javascript,當瀏覽器瀏覽該頁面時會載入適合該瀏覽器的javascript(實務上在開發的同時還是要檢查不同瀏覽器的效果)。
- 根據經驗,ie與其他瀏覽器在使用eval時結果會有所不同,還有在使用巢狀panel時,ui也會有所不同。
- GWT 可以與其他不同的javascript library(如jquery)搭配使用。
- 預防XSS (cross-site script)與XSRF(cross-site request forgery)攻擊較為容易。
- 便於建立client端的i18n。
- 缺點
- 一開始載入頁面的時候,需要較長的載入時間。所以如果一個頁面所需要的javascript功能較少,則使用native javascript較為恰當。
- Compile後的javascript 即使是使用pretty style, 也是不易trace。也就是在deploy之後,還需要額外保存compile 前的 source code(java code)。
3. 有哪些使用GWT開發的網站
4. 如何開始
5. 如何與其他js library搭配
6. 與java的相容性
- GWT 並不是完全的與java相容,尤其是在javascript與java語言特性的差異上,詳情請參考官網的相容性介紹。
2012年3月4日 星期日
(翻譯)Chome 版本的憤怒鳥現在使用了Web Audio Api
原文連結
翻譯 :
上周憤怒鳥的chrome版本,使用Web Audio API更新了所有遊戲內的音效,讓所有在chrome上的使用者不需使用任何外掛,就能擁有完整的憤怒鳥體驗。Web Audio API支援了多種不同的使用案例,包括了遊戲中高品質還有低延遲的需求。而其他支援Web Audio API的瀏覽器的使用者,將透過Flash 或是 Html5聽見這些聲音。
這種跨瀏覽器音效的神奇魔法是怎麼運作的 ? 你可能曾經聽過,憤怒鳥有相當多的部分可能使用了跨平台的開源程式庫 - PlayN。當在網頁平台,PlayN高度仰類Google Web Toolkit 與 gwt - voices 來提供最佳的跨瀏覽器網頁體驗與音效體驗給使用者。
其中, gwt-voices 負責為遊戲音效選擇最適當的音效API。如果你想要聽聽其他Audio API的效果,你可以試著用 Web Audio API, Flash, HTML5 Audio 和 native audio 來訪問 Audio API。你的進展將會因為瀏覽器、平台和你安裝的插件而產生巨大的改變。如果你所需要的Audio API在你的環境裡運作並不正常,gwt-voice也會為你準備一個最好的備案。
想要了解更多?請參考 Web Audio API tutorial ,還有,不要讓那些豬囂張太久。
翻譯 :
上周憤怒鳥的chrome版本,使用Web Audio API更新了所有遊戲內的音效,讓所有在chrome上的使用者不需使用任何外掛,就能擁有完整的憤怒鳥體驗。Web Audio API支援了多種不同的使用案例,包括了遊戲中高品質還有低延遲的需求。而其他支援Web Audio API的瀏覽器的使用者,將透過Flash 或是 Html5聽見這些聲音。
這種跨瀏覽器音效的神奇魔法是怎麼運作的 ? 你可能曾經聽過,憤怒鳥有相當多的部分可能使用了跨平台的開源程式庫 - PlayN。當在網頁平台,PlayN高度仰類Google Web Toolkit 與 gwt - voices 來提供最佳的跨瀏覽器網頁體驗與音效體驗給使用者。
其中, gwt-voices 負責為遊戲音效選擇最適當的音效API。如果你想要聽聽其他Audio API的效果,你可以試著用 Web Audio API, Flash, HTML5 Audio 和 native audio 來訪問 Audio API。你的進展將會因為瀏覽器、平台和你安裝的插件而產生巨大的改變。如果你所需要的Audio API在你的環境裡運作並不正常,gwt-voice也會為你準備一個最好的備案。
想要了解更多?請參考 Web Audio API tutorial ,還有,不要讓那些豬囂張太久。
訂閱:
文章 (Atom)