歡迎光臨
每天分享高質量文章

2018 Java Nord 論壇回顧

來自:唐尤華

譯自:https://dzone.com/articles/java-forum-nord-2018-retrospecive

2018年的 Java Nord 論壇,你錯過了哪些精彩內容?

 

本文介紹了2018年9月24日,我在德國漢諾威參加的非商業性 Java 會議,該會議被稱為“Java Nord 論壇”。演講內容是德語,但簡報由圖表和程式碼示例組成,便於非德語讀者理解。在這裡我列出了參加的演講、PPT連結以及內容關鍵詞。

 

1. 社交而非浪費:讓我們一起聊聊 — Stefanie Reinicke,Jan-Christian Dammann 博士

 

這個演講討論瞭如何讓開發團隊變強的三個主題:

  1. 經驗分享:
  • 編寫檔案
  • 在部落格或論壇上發表專題文章
  • 組織技術會議
  • 如何對合適的解決辦法達成一致?
  • 主導有爭議性的討論
  • 組織 Q&A; 環節
  • 如何促進經驗的分享?
  • 組織每天一次交流

2. 在 Java 中使用函式式程式設計也是可能的!— Falk Sippach

在這篇簡報中,介紹了一個驗證信用卡號的 Luhn 演演算法的函式式程式設計案例。

函式式程式設計風格實現的 Luhn 演演算法具有直觀、易於閱讀的特點。不僅是函式式程式設計,演講者的程式設計風格也讓內容更容易理解,每個函式都被宣告為一個單獨的變數。

演示的例子使用了下列框架:

  • Vavr
  • Immutables
  • Lombok 專案

演講中提到的其他框架有:

  • 函式式 Java
  • RxJava
  • Vertx
  • JOOQ
  • JDeferred

 

3. 自我管理42.0:充滿激情的軟體工匠如何最佳化生活並取得更大成就 — Steven Schwenke

 

報告分兩部分。

 

第一部分,Steven Schwenke 把自我管理定義為一種與敏捷軟體開發方法 SCRUM 類似的東西。他把每週計劃定義為組織者模組,隨身攜帶併在自己的日常活動中使用。我發現,自我管理42.0計劃方法缺少的是自主性和自由度,因為每個任務都經過深思熟慮,併在組織者的書中進行了描述,這需要投入更多的努力和時間。

 

第二部分,演講者介紹了一些書籍,這些書籍為開發自我管理方法的終極狀態提供了有用的想法。

 

4. 微服務和宏體系結構:垂直應用架構中的三個關鍵設計問題 — Stefan Zörner

 

在這篇簡報中討論了微服務和宏體系結構。 在建立基於微服務的系統之前,需要解決以下問題:

 

  • 與下麵內容互動:
    • UI
    • 溝通與融合
    • I18N
    • 人類工程學
    • 驗證
  • 底層部分:
    • 持久化
    • 安全性
    • 事務處理
    • 會話及狀態處理
    • 事件和錯誤處理
    • 多執行緒
    • 快取
  • 開發:
    • 敏捷軟體方法
    • 版本控制系統
    • 持續交付和整合
  • 生產環境
    • 釋出
    • 部署
    • 高可用性
    • 虛擬化
    • 可擴充套件性

 

垂直應用架構中的三個設計問題:

 

  • UI 問題?提出了兩種方法:
    • 一個客戶端與所有微服務通訊
    • 每個微服務都有自己的 UI
  • 通訊的形式應該是怎樣的?
    • 同步 vs. 非同步
    • 直接通訊 vs. 間接通訊
    • 透過一個例子進行討論,組合了之前的一些條件,比如直接同步通訊
  • 安全性
    • 集中式認證
    • 去中心化授權

 

演講中提到的相關資訊:

 

  • SCS:內建系統(Self-Contained System)
  • IPA:獨立系統架構

 

5. Java 註解處理器讓編寫程式碼又好又輕鬆 — Gunnar Hilling

 

這篇簡報關於處理註解的 API。演講中的註解示例建立一個介面的靜態元模型。接著定義了一個驗證使用正確性的註解驗證器,同時給出了該測試介面實現的測試結果。

 

術語:

 

  • JavaPoet 是一個透過 API 建立 Java 程式碼的開發庫。

 

不得不承認,這演講的主題很有意思ーー對我來說很新鮮。老實說,關於使用這種程式設計方式的動機或好處,我沒有任何結論。也許,我只是被標題中“又好又輕鬆”吸引了。

6. 透過測試容器進行整合測試 — Philipp Krenn

 

這個演講的開場展示了一個場景,單元測試透過但系統功能模組仍然不對。這裡提到的另一個基於模擬資料測試的問題(即針對特定測試用例人為建立的測試資料)。

接下來的演講中,提到了一些框架和開發庫(在簡報中提供了連結):

 

  • 嵌入式 Elasticsearch:一個簡化 Elasticsearch 整合測試構建過程的工具
  • Flapdoodle.embed.process:在單元測試中提供一種平臺無關的方式執行行程
  • Docker-maven-plugin
  • Moby Ryuk:指定時間延時清理 Moby 或 Docker 容器
  • 為測試容器進行 Elasticsearch 容器的 Docker 化

 

7. 結對程式設計與群組程式設計: 現代敏捷成功的基本要素 — Thomas Much

 

譯註:群組程式設計(Mob Programming) 是一種軟體開發方法。在這種方法中,整個團隊在同一時間、同一空間、同一臺計算機上處理同一件事情。這類似於結對程式設計,兩個人坐在同一臺計算機上,同時合作編寫相同的程式碼。透過群組程式設計,可以在團隊中的每個人之間實現協作,同時仍然使用一臺計算機編寫程式碼並將其提交到程式碼倉庫中。

 

這個演講關於結對程式設計和群組程式設計技術。演講中解釋了為什麼結對程式設計對團隊有好處,並介紹結對程式設計的實現方法。此外還介紹了群組程式設計,所有的團隊成員,包括PO、QA 和 Dev Ops 都參與其中。

 

8. 閉幕式主旨演講:持久的軟體架構,數十年沒有技術債務 — Carola Lilienthal 博士

 

  • https://www.youtube.com/watch?v=vp4YQJvafO8
  • https://www.youtube.com/watch?v=Nfzuy4L9_UM
  • https://www.youtube.com/watch?v=M6sprMtD6nA

 

這個演講討論了技術債務。我之所以熟悉這個主題,因為兩年前在一個叫 JavaLand 2016 的會議上聽過相關內容。

 

  • 軟體專案中的技術債務,透過工具來分析軟體找出不良架構
  • 接下來透過重構得到更好的軟體
  • 良好的架構需要:
    • 良好的模組化
    • 清晰的層級
    • 在技術和功能層面具有良好的一致性
  • 監測不良架構的示例
  • 檢測架構錯誤的工具,包括結構錯誤、層次錯誤、依賴關係錯誤

 

9. 總結

 

Java Nord 是一個為期一天的非商業會議,由位於德國北部的幾個 Java 使用者組(JUG)透過四個渠道組織起來,並且對 JUG 成員免費。

 

其中的一些演講,可以從標題和描述中猜出大概內容,其他一些不是那麼明顯。不管怎樣,學習新東西總是一種很好的體驗。

 

在寫這篇文章時,我發現幾乎所有連結的簡報都是用德語寫的,以前的會議並不是這樣。但是,演講中的程式碼和圖表相信對所有開發者都是容易理解的。

贊(0)

分享創造快樂