2013 Java Developer Day 筆記心得

趁頭腦還清楚記錄今日的心得,有些比較不熟悉或是沒聽懂的部分就省略了,免得誤導看到本文的人。最下方有放 陳奕孝 baterme@gmail.com 整理出來這次會議的懶人包(本人沒有影分身術無法同時參加四個議題 XD),回家要交作業的人可以連去複習!


55個Java SE 8的新功能(Stephen Chin)

  • 主要最大的更新就是 Lamda,然後其他54個功能我都…

心得

  • 只有60分鐘要介紹55個功能,怎麼可能都記得。


Java EE7全新企業平台:提高生產力與支援HTML5(Reza Rahman

)

  • 新的 API 或是更新的 API(JMS、WebSocket、JSon、JAX-RS、JPA、JTA、JSF、Batch)。
    • 介紹了很多但不外乎就是以下兩個好處。
    • 簡化舊版本的寫法。
    • 再也不用使用第三方的 API。
  • BeanValidation
    • 在變數前面加上 annotation(ex: @NotNull、@Max(10)) 判斷變數的合法性。

心得

  • 講師完全是火力全開,完全把大家當成美國人的速度在講課。
  • Manning: EJB 3 in Action 這本書惠我良多,但都買不到實體書,只好含淚放棄簽書的計畫。如果你有這本書要賣,請 mail 給我,持續徵求實體書中(簡中原文皆可)。
  • 解開了從講師手上拿到獎品的成就...
1095089_615306678492287_1882015555_n


淺談 Lambda 運算式(Stephen Chin)


雖然知道 Lambda 基本上就是能將方法本身當作參數傳遞,也在 Ruby / C 上實作過,但 Java 8 的 lamda 實作我目前還無法融會貫通(有點當初 Java 5 導入 Generic 昏頭的狀況 XD ),這邊就不亂寫筆記以免誤導大家。
這堂課主要就先說明 Java 中 Lambda 的語法。透過一個類似貪食蛇的遊戲,說明 Collection 在支援了 Lambda 後(集合內的元素,篩選、根據條件修改、轉換成不同的元素…),可以省去很多寫程式碼的時間。

心得

  • 連聽三堂英文,已經昏昏欲睡。


整合SOA、 jBPM、 Rule 引擎建置次世代的企業應用雲端系統(林瑋玫 Christina)

  • JBoss AS 7(JBoss 的 Java EE Server 社群版) 更名為 Wild Fly。
  • Rule
    • 條件判斷(一堆 if else)抽取成 Rule。
    • 方便修改。
    • 不用重新 compile code。
  • BPM
    • 商業邏輯(jBPM)可以去串這些 Rule 來用。
    • Rule 可以設計成可獨立的最小單位,而非為了商業邏輯將多個 Rule 合併成一個大的 Rule。方便重用 Rule。
    • 可視化的畫面讓業務人員能參與流程設計。
  • Gurvor
    • 可以作為 Rule 和 BPM 文件的儲存庫。想成是程式碼的 SVN 或是 Git 版本控管系統。
  • Camel
    • 資料流的處理,輸入資料(FTP、JMS、HTTP…)、處理資料(修改格式、物件轉換、路由…)、輸出資料。
  • SwitchYard
    • 我最想聽的部分,結果沒有時間就草草代過了。這邊就我導入的心得作補充。
    • JBoss ESB 的後繼者,目前剛進入1.0版。
    • SwitchYard 是一個可以實踐 SOA 的平台(採用 SCA 的架構來設計 SOA)。
    • 第一,它是一個 ESB,可以把所有的外部的服務掛上來。
    • 第二,它其中可以建立 Java Bean 元件、Camel 元件、BPM 元件…,而這些元件又能去使用作為 ESB 掛上來的外部服務。
    • 第三,將完成的功能(利用元件 + 外部服務)再以 SOAP、FTP、Queue…等方式再發佈出去。
    • 綜合以上三點,SwitchYard 把散落在不同系統的功能收集起來,串成新的功能再重新發佈成新的功能。

心得

  • BPM 實作太長了太深入了,沒有把 SwitchYard 講完很可惜,聽眾不容易了解 JBoss SOA 整個架構。
  • 比較扯的是C大的同事聽到疑似打瞌睡有點…


從 Web Services 到 Mobile Services(蘇國鈞)

  • 過去 Client/Server 架構之於現在 WebApp,MobileApp/Cloud。
  • Service Invocation
    • Client 端怎麼去呼叫到 Web Service(簡化定義就是透過 HTTP 取得的資料)。
    • Restful 的 Web Service 透過 HTTP 的 Post/Delete/Get/Post 就可以完成呼叫。
    • SOAP 的 Web Service 必須要先 parse WSDL,產生對應的 SOAP 才能完成呼叫。
    • 前端(JavaScript)沒法透過 HTTP 的方式(比較簡單),就必須透過其他工具呼叫 SOAP 的 Web Service(比較麻煩)。
  • Data Format
    • 討論 JSON 格式定義的正確性,實作中要注意符合定義。
  • 認證
    • OAUTH
      • 授權除了確認身分外,還會分享個人資料(如果使用者也同意授權這些資料的話)。
    • OpenID
      • 只有確認身分,並沒有任何個人資料可以分享。
    • OAUTH / OpenID 本質上並非是一樣的概念,請視開發需求決定要使用哪種 solution。
    • 如果只是要確認身分,就不一定要導入OAUTH。

心得

  • 超級賽亞人(升級)、火影忍者(擴充!? 我有點忘了)梗 + 10 分!
  • Live Demo 就是會出問題,然後只是老師故意鋪的梗也 + 10 分!


排隊應用開發(王建興 Qing)

  • Why Queue
    • 演算法實作。
    • 分配有限的資源。
    • 跨行程(不同 VM、不同主機…)有收送訊息的需求。
  • Queue 的本質
    • 非同步的傳送方式。在大家都在忙的情況下,有人的需求不會馬上被滿足。
    • Buffer。作不完的事情都先被記錄下來等等在做。
    • 標準化的溝通介面。大家都照著一樣的規則,把需求丟進 Queue、把需求從 Queue 拿出來,不同的程式語言之間也可以透過 Queue 做溝通、合作(想像成 C# 和 Java 之間可以用 XML 作資料交換)。
  • In Process Queue
    • 訊息在同一個 VM 上。
    • 不用序列化,效能快,但擴展性差(升級CPU、RAM…)。
  • NetWork-based Queue
    • 訊息在不同 VM 傳輸(ex: JMS)。
    • 需要續列化,擴展性佳(加入新的主機)。
    • 可加入備援、容錯機制。
  • 沒有完美的實作,視需求來選擇要導入的 Queue。

心得

  • 很多 Queue 基本的觀念,然後投影片熱騰騰的,Q 大平常應該就保留很多梗可以寫(有 Mr. 6 的風格)。
  • 臨時加入上廁所的 Queue 實例照片加10分。
  • 中間口頭置入式行銷 Cubie(約三秒)。


 JAVA Day 2013 非官方懶人包

2 則回應:

陳奕孝 bater.chen 提到...

可以借我收錄到懶人包嗎? 感謝
http://goo.gl/nZVcKg

tangblack 提到...

當然可!