聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

一月 24, 2009
» (製作分享) JBoss - Seam 2.0 正體中文手冊

老魚常跟小沙瀰們說 ...
” 我們當前走的這條”IT路”不管您是誰, 也不管您當前的年齡是小或老,
只要停滯學習, 甚至不專注於您自己的IT領域,
隨著時代的演進, 您的IT能力就被判定過時, 而且非常之明顯迅速!
將來的您我都極大的機率被當時點的小朋友就可取代您的角色."""

就如同下面這影片背後帶來的另一層思考 ...
過時的社會價值觀與行為的鑑定標準, 在新生代身上卻極可能是一種誤判


首先感謝來自簡體中文團隊- 满江红开放技术研究组 的英翻中的貢獻!!!
沒有他們的付出, 老魚也無法在正體中文的語意上下功夫完成本文件來分享給大家.

繼前天老魚對 JBoss Seam 的特色介紹, 對於參考手冊也替各位製作完成,
如果您未閱讀了解為何老魚在"當前"(未來不保證~呵)較推崇 Seam 的理由文章:


在本篇同樣貢獻給想學習或正在使用 Java EE 軟體架構的正體中文朋友們.
在這篇老魚再補上幾點使用 Seam 的理由:
  1. Seam 同其名只是縫合線的工具集
    Seam 在 Java EE 5 以上的版本使用, 盡可能只做為對 EE 規範的不足的"小細節"上擔任縫合的角色(如下圖)

    不同於其它近似 EE Frameworks, 大膽加諸自家的技術規範, 偏離 EE 規範.
    Seam是一個功能完整(full-stack)的應用程式框架。Seam的功能正如其名,它扮演了「技術縫合劑」的角色。Seam可以輕易的整合許多新世代的技術,包括JSF、EJB3、Portlet以及jBPM workflow。
  2. 非 EE 標準框架林立帶來的資訊成本是極高的
    建構在 Java EE 之上各式開放源碼的應用程式框架(Application Framework)如雨後春筍般出現。Java 開發人員可以根據其不同的喜好和需求去選擇不同的技術,並加以組合。是的, 這結果創造了豐富的 Java 參考資源, 但評估與選擇各式開放源碼應用程式框架的工作需要許多時間與經驗,太多的選擇有時也讓新手們無所適從,在學習上也是一種很大的負擔
    更何論站在使用其特定框架做為公司 Base 開發的軟體專案, 公司的技術框架的選用評估, 很易因一失足成千古恨的風險性提高。遵循 EE 規範可能不是最佳的, 但卻是相對選用技術風險性較低的, 且隨著最多公司採用的 Spring Fremework 也加入到 EE 6 的制定專家組的行列, 可預見的 EE 標準最終還是巨型企業的軟體架構.
  3. Seam 是一個採用 JavaEE 5 官方規格的整合性應用程式框架
    雖然官方規格是否為最好的選擇每個人的看法不盡相同,但是儘可能遵守標準規格可以確保具有第三方廠商的IDE工具支援開發,及針對其規格所提出的實作成品,相關的解決方案和產品的支援服務也會相對的比較有保障。
  4. Seam 的 MVC 架構樣式
    由 JSF 來負責展現層的資料展示,EJB 3 的 Session Bean 負責商務邏輯層,而永續層則是由 EJB3 的 Entity Bean 負責資料的存取。Seam則介接於各層之中,以簡單且統一的方法來替開發者處理各個元件間的呼叫及生成。讓使用者可以免除撰寫多餘的程式碼,專心致力於商務流程與資料的呈現。
更詳盡的說明與第一個入門範例請轉讀:
最後要附上老魚轉製的 JBoss - Seam 正體中文手冊
當然建議搭配最新的英文手冊內容閱讀, 才不致於迷失於新舊版本間的小差異 !
至於如果您有學習上的問題和想進行討論請移至

一月 22, 2009
» 當前較佳的 Java EE 5+ 開發用框架 - Seam Framework

繼前篇的的課外音樂選, 獲得不少朋友跟老魚說"好像有一點點腦力有效...",
那老魚這回分享給大家不失活潑的對唱, 女主唱同樣是 Sissel,
這回男主唱是位風趣的小提琴家 Kalle Moraeus :


聽完了對唱, 腦袋是不是較有精神了呢 ?

明天 23 號是老魚的大壽之日 !!!
老魚將奉上新的正體書(電子檔- -), 送給各位學習參考用!

  • Seam 2.0 正體中文手冊
這篇的標題要先交待一下, 老魚沒經歷過 Java EE 1.4 含以前的時代,
老魚是從 Java EE 5 才正式想深入這軟體架構,
至於為什麼 ... 嗯~當中的"苦"老魚不想罵人, 各位就當從零開始就好~呵
所以
  • 如果你也是正要開始深入 EE, 那請你從 EE 5 版學起即可 !!!
繼前篇的幾個重點, 再加上網友留下的問題, 在這篇就順便交待一下.

如何開始進入 EE 5 ?
這問題離不開 Sun 精心"安排"的 Java 技術認證的目標,
您可以從這頁連結去了解自己處於在那一階段,
每一張都有考試範圍, 至於學習方式呢 ?
看到範圍聰明的會去找書自己K, 懶的人就花錢找個好老師教囉~
但老魚沒要求你一定要取得認證才算哦!!!
(證照"薄紙"可以短期速成取得, 相信老魚真的很薄~
有些證書根本自己用印表機印也很像呀~呵
真正的技術是真的需要你用長歲月投入換來的!
)

在前篇老魚曾說到Java Web "框架(Framework)"技術, 夠用就好,
也提到框架不一定完全遵從著 EE 5 的構成組件與堆疊理論來發展,
這問題將導致幾點您必須思考的軟體長期成本的風險估算:
  1. 納投名狀,結兄弟誼,死生相托,吉凶相救,福禍相依,患難相扶。(電影~投名狀)
    這類型框架組織的發展通常會由"曾經"的輕巧, 逐漸走向自樹一格完整的平台化產品, 您的團隊被迫必須不斷學習它甚至再堆疊入你的產品, 好的是新 idea 不斷被它所創建, 該平台的產品也易於被組建, 但可能的風險就隨著像毒品般你離不開它 ...
  2. 推陳出新的版本速度快過您開發團隊的學習曲線
    團隊被迫停在舊的框架版次上, 進退不得, 安慰自己說: 版本太新問題很多, 那反之呢 ? 框架本身的安全性修補, 你落後了!!!
以上的現象經常發生在 Java 當前的眾多 Web 應用框架中,
尤其是在 2006 年 EE 5 未定案前,
那到底當前站在想應用上標準規範的 EE 5 甚至今年即將定案的 EE 6,
有無較好的學習參考框架或框架入侵架構較淺的產品呢 ?
(當然如果您是位反 EE 軟體架構的人,
而堅信其它號稱仍是輕量型的框架技術追隨者, 這篇就不合您囉~)


老魚在這跟各位推薦 - Seam Framework

老魚的理由是 Seam 是當前在骨架上真的落實去使用 EJB 3.0, JSF 1.2, JPA 1.0 等 Java EE 5 堆疊的框架, 在 EE 6 時也將同時採用更佳的 EJB 3.1, JSF 2.0, JPA 1.2 等改良, 並加入 JSR #299 - Web Bean 的新 EE 6 子規範於 Seam 中實作, JSR 299 專案的領導人正是有名的 Gavin King (Hibernate 及 Seam, Web Bean 的原創者) .

Seam 框架最讓老魚欣賞的是, 在其 Seam 的文件中它自述的第一項及其中另2項特點:
  • Seam 只是一個"工具"
    (真是夠誠實~呵, 同它的名字僅充當縫合 EE 中各項組件於易用性)
    Seam為你的應用程序中所有的 EE 企業邏輯定義了一種統一的元件模型。
  • EE 規範也非盡善盡美
    我們認為最新的 Java EE 規範很不錯。但是我們知道它還遠不夠完美。在規範中有許多漏洞(例如,GET請求的JSF生命週期中的局限性),Seam修正了這些漏洞。 Seam的創建者們正與 JCP 專家組一道,確保這些修正恢復到標準的下一次修訂中。
  • 對 Groovy 的支持是內定的
    你可以在 Seam 中靈活應用 Groovy 帶來的優點 (其實是Seam本身就有使用它~呵)


老魚將 Seam 文檔中提到的其它特點轉述摘要如下, 有興趣的人可以前往 Seam 官網閱讀它:
  • 將 JSF 與 EJB 3.0 整合
    Seam 將 JSF 和 EJB 3 的元件模型合二為一,消除了膠合程式碼,使得開發者專注於業務問題。編寫「一切」都是 EJB 的 Seam 應用程序是有可能的。
  • 在任何Java EE應用程序伺服器中都可以運行
    Seam 在任何 Java EE 應用程序伺服器中都可以運行,甚至在Tomcat中也可以。如果你的環境支持EJB 3.0
  • 整合 AJAX
    Seam支持兩個最好的、開源的基於 JSF 的 AJAX 解決方案:JBoss RichFaces 和ICEfaces。 Seam 也提供了內置的 JavaSctipt 遠端存取層,它讓你非同步地從客戶端JavaScript 中調用元件,而不需要中間的 action 層。
  • 將企業流程作為首要的基礎建築
    Seam 可以選擇通過 jBPM 提供透明的企業流程管理(BPM)
  • 宣告式狀態管理
    宣告式應用程序狀態管理通過Seam定義的豐富的context model(上下文模型)而成為可能。
    Seam擴展了Servlet規範—定義的上下文模型——請求、Session、應用程序—增加了兩個新的上下文— 交談和企業流程—,從企業邏輯的角度來看它們更具意義。
  • Bijection(雙向注入)
    Inversion of Control(IoC, 控制反轉) 或者 Dependency Injection(DI, 依賴注入) 的概念出現在 JSF 和 EJB3 以及很多所謂的「輕型容器」中。
    Bijection(雙向注入)和IoC的不同之處在於它是動態的、語境相關的以及雙向的。
  • 工作區管理(Workspace Management)和多視窗瀏覽
    Seam應用程序讓使用者自由地在多個瀏覽器視窗中切換,每個視窗都與一個不同的、安全隔離的交談關聯。Seam 不僅提供正確的多視窗操作,還提供在一個視窗中模擬多個視窗的操作。
  • 更喜歡 XML 註解
    Seam 擴展了EJB 3.0 提供的註解,以用於宣告式狀態管理和宣告式上下文劃分。 這讓你擺脫了對繁瑣的 JSF managed bean(JSF 受管 bean)的配置,減少了所需的XML,只剩下那些真正屬於XML的資訊(JSF導航規則)。
  • 整合測試輕而易舉
    你可以輕易地編寫重現與使用者完整交互的 JUnit 或 TestNG 測試,來演習除了視圖View(JSP 或者 Facelets 頁面)之外的所有系統元件。
  • Web 應用程序不只是服務 HTML 頁面
    Seam 為持續化整合了JPA 和 Hibernate 3,為輕量化的非同步性整合了EJB Timer ServiceQuartz,為工作流整合了jBPM,為業務規則整合了JBoss 規則,為電子郵件整合了Meldware Mail,為完整的文本搜尋整合了Hibernate SearchLucene,為訊息整合了JMS,以及為頁面片斷捕捉整合了JBoss Cache。 Seam 在JAAS 和 JBoss 規則之上,創建了一個新的基於規則的安全框架。甚至有用來輸出 PDF、在線電子郵件和圖表及wikitext的JSF標籤資源庫。
  • Seam 元件可以同時作為一個Web Service進行調用,非同步地從客戶端 JavaScript 或者 Google Web Toolkit,或者當然也可以直接從 JSF 調用。
再接下來的日子, 老魚將陸續分享相關 Seam 的心得 ...

support:

biggo.com.tw

biggo.sg

A Django site.