2011-04-25

使用 Google Plugin for Eclipse 的十大理由

原文網址:http://googlewebtoolkit.blogspot.com/2011/03/top-ten-reasons-to-use-google-plugin.html


就像我再 JUGs 以及世界各地的研討會說的,我常常訝異於有些人從來沒有見識過 Google Plugin for Eclipse 當中的優秀功能,例如在 GWT application 當中使用 Eclipse debugger。所以呢,這裡沒有特別排序地列舉了十個你應該用 Google Plugin for Eclipse (GPE)的理由。

  1. GWT+GAE 變得簡單。GPE 是開始使用 GWT 與 Google App Engine(GAE) 最簡單的方法。只要在 Eclipse update site 安裝 plugin 時勾選 SDK 就可以了。 用這個方法升級 SDK(Help→Check for updates)也很容易,當有新版本時 Eclipse 的狀態列也會提示你。
  2. Wizards。建立生平第一個 GWT+GAE 的 project 十分簡單。按下 File→New→Web application project,然後一個範例 application 就出現了,你可以在本機端踹看看有沒有問題,然後 deploy 到 GAE 上頭去。除了建立一個新的 project,還有建立 UiBinder template、ClientBundles、GWT module 以及 entry point 的 wizard。要使用這些 wizard,按下 File→New,然後找到 GWT 標誌底下的項目(或是按下 File→New→Other,然後瀏覽 Google Web Toolkit 的目錄)。
  3. GWT Designer,現在整合到 GPE 中,讓你快速地建立一個 GUI。要看它的運作狀況,先建立一個 extends GWT Composite 的 class,然後在檔案上頭按下右鍵→Open With→GWT Designer。當編輯器開啟後,按下底端 Design 這個 tab。當 GWT Designer 啟動後,在工具區點選一個工具(例如 LayoutPanel),然後在設計視窗的空白處按一下,好讓 widget 放到你指定的地方。按下 Source 的 tab 可以看到 GWT Designer 幫你寫的程式碼。這是學習新的 cell widget(像 CellTable 跟 TextColumn)的好方法。此外,GWT Designer 還內建了所見即所得的 CSS 編輯器。
  4. Quick Fix 和警告訊息幫助你把 GWT 寫的又快又好。舉例來說,當你建立一個 extend GWT RemoteService 這個 class 的 interface,GPE 會提醒你建立 GWT-RPC 所需對應的 async interface。在紅色錯誤訊息按下 Ctrl+1(Quick Fix),就能解決了。
  5. Dev mode 與 GPE 的整合可以讓你快速地測試程式碼。Run As→Web Application,會啟動 GWT 的 development mode 以及(如果適用)App Engine dev server,你就可以在 browser 上測試成果。當 dev mode 啟動,在 Development Mode 的 tab 中找尋 URL 並在上頭點兩下,就會在預設的 browser 中啟動你的程式。在 GWT dev mode 執行時,你可以改變 Java 碼,然後在 browser 上頭按下 refresh,你會馬上看到對應的變化。
  6. 在 dev mode 中除錯。在 Eclipse 中設定一個中斷點,然後在 project 上按下右鍵→Debug As→Web Application。切換到 browser 並執行程式。Eclipse 會打開 Debug perspective,你就可以逐行執行程式、檢查變數.....等等。
  7. 按一次鍵就 deploy 到 GAE。按下工具列的 Google App Engine 標誌,你就知道啦。
  8. 支援 Maven 。GPE 透過 m2eclipse 來使用 Maven project(見安裝說明)。把一個 Maven project(例如用 GWT+GAE 寫的開支經費範例)check out 進你的 workspace,然後按下 File→Import→Existing maven project,並指定到 pom.xml 檔案。Maven 會下載所有 POM 需要的 jar 檔與 plugin,GPE 會根據 POM 來設定 GWT project 以及 App Engine SDK。你可以從外部執行 Maven 指令,或是在 Eclipse 用 Run As→Web Application 來執行。
  9. 測試。Run As→GWT Junit Test 讓你輕易地執行 extend GWTTestCase 的測試案例。
  10. SpeedTracer。你可以在 Eclipse 中啟動 Speed​​Tracer。按下 GPE 工具列上頭的綠色碼表按鈕,GPE 會 compile、執行你的 application,並在 Chrome 中啟動 SpeedTracer 來監控你的 application。

還沒試過這些東西嗎?馬上就安裝 GPE 吧!

2011-04-23

App Engine 1.4.3 版釋出

原文網址:http://googleappengine.blogspot.com/2011/03/announcing-app-engine-143-release_30.html


就在春天,我們提供一個新的 App Engine 版本,讓 Java 與 Python 的運作狀況更為接近。Python 方面,我們已經推出了測試的 library 來滿足現有的 Java 測試 framework;Java 方面則引入了 Deferred 與 Remote 這兩個 API。此版本還引入了一個新的 Blobstore 寫入方式、Python 版的實驗性質 Prospective Search API,以及一些 Task Queue 與 Cron 的好東西。

Python

  • Prospective Search API:實驗性質的 Prospective Search API 允許 Python 用戶在寫入符合特定條件數據時,偵測到並有所反應。在這個實驗性質的版本中,使用者可以執行 10000 次 Prospective Search API 的 subscription 。至於價錢會在完整啟用後再次公告。
  • Testbed 單元測試 framework:給 Python 使用的 Testbed 套件提供了一個簡單的 interface 讓使用 App Engine API 可以像已經存在的 Java 測試 framework 一樣整合。你不用依賴呼叫 App Engine 的 production service 就能為你的 application 建立測試,因而加速完成測試以及消除與外部 service 的相依性。在 Google 裡頭有廣為人知的測試文化,我們希望這個 API 會讓你更快地開發更穩定的程式碼。

Java

  • Concurrent Request:直到現在,Java application 仍依賴啟動額外的 instance 來動態擴展以應付更高的流量。現在,concurrent request 讓每個 application 可以同時處理多個使用者的 request。開始使用前,請先確保你的 application 程式是 threadsafe,然後在 appengine-web.xml 當中加入 來啟動 concurrent request。
  • Java Remote API 與 Deferred APIRemote APIDeferred API 這兩個 library 在 Python 版已經支持一段時間了,現在也可以在 Java 上頭用了!remote API 讓你可以在自己的機器上頭操作 application 的 datastore。這對於並不完全符合 App Engine 的 request/response model 的作品特別有用。Deferred API 讓使用者可以更簡單撰寫與執行 ad hoc 的 task。我們的文件當中包含了更多的資訊以及範例,告訴你如何在 Java 版的 App Engine 當中使用這兩個 API。

新的 API

  • File API:新的 File API(Python 版與 Java 版)讓你可以用程式讀寫 Blobstore 中的資料。這個 API 可以用來產生報告、匯出資料、或是任何你想要對二進位大檔所作的操作。

service 變更

  • 更新 Task Queue 與 Cron:我們已經滿足一些 Task Queue 與 Cron 上頭的優先需求。在此版本中,你可以設定 task queue 或是 cron 對特定的 application 版本發出 request。想要用像「11:00~17:00 之間每隔五分鐘(every 5 minutes from 11:00 to 17:00)」這種區間語法嗎?現在 1.4.3 版也提供啦。最後還有一點,Admin Console 的 Task Queue 頁面現在對 queue 包含超過兩千個 task 的 queue 可以顯示更精確估算 queue 的大小。

即將推出...
最後,我們要預告 1.4.4 版。在 1.4.0 當中,我們引入「讓使用者下載已經 deploy 到 App Engine 的程式碼」這個功能。1.4.2 版中,我們發表了 admin role 讓擁有者也能下載。在 1.4.4 版中,我們預計改變讓上傳程式碼的人跟(列在 Admin Console 中的) project 擁有者都能下載。 為了這個功能而作準備,一定要確保有在 Admin Console 當中妥善地對 每個開發者指定 role。或者,你仍然可以永久關閉下載程式碼這個功能。

就這些了,如果要了解更多資訊,請閱讀完整的 release note,包括 Java 版和 Python 版的所有新的功能和問題修正 。歡迎所有鼓勵與回饋的意見。