javascript
SpringOne Platform 2016回顾
我最近結束了在拉斯維加斯參加SpringOne Platform會議的總結。 這是我第一次參加SpringOne。 這是聆聽演講并與軟件開發領域的一些頂級專家進行對話的一種體驗。
如果您沒有參加SpringOne,那么您肯定會想要閱讀這篇文章。 我們將介紹這四個主題,以及如何在將來的工作中潛在地應用它們。
- 反應設計
- 使用Spring Boot 1.4簡化測試
- 縮短開發反饋循環
- 為開源社區做貢獻
反應設計
將Spring Reactive包含到核心Spring框架中是Spring 5發行版的路線圖 。 結果,SpringOne的許多會議都專門討論了什么是反應式設計以及如何使用它。
Node.js開發人員應該已經熟悉該模式,這確實是Node.js的存在理由。 響應式設計基于事件驅動的非阻塞I / O原理。 如果這一切聽起來令人困惑,那就更好地知道您不是唯一對此概念感到不適的人–我也仍在努力吸收它。
用簡單的術語表示什么:以“標準”(命令式)的方式編寫程序時,對外部源(無論是數據庫還是服務)的調用將使調用線程在繼續執行之前等待響應。 響應式設計通過創建一個承諾(即一個事件)并在以后讀取返回結果(非阻塞)來改變這種情況。
由于大大減少了執行相同工作量所需的線程數量(每個線程占用內存,數據庫和服務只能同時服務于有限數量的連接),因此可以大大減少系統資源的使用。
會談中經常提到的反應式設計的另一個關鍵概念是背壓 。 背壓會在訂戶和生產者之間產生反轉。 生產者通常會規定返回給訂閱者的金額,通常是整個結果集的大小,而背壓則允許訂閱者定義它希望在時間以及何時接收多少(即訂閱者只會處理完先前的退貨后,向生產者請求更多)。 這有助于防止訂戶被大型數據集淹沒,并通過僅發送訂戶準備就緒的工作以及隨時間分配負載來減少對生產者的需求。
這些背壓功能共同幫助創建了更可靠的服務。 我認為,這是整個行業從反應設計中獲得真正好處的地方。
為了對反應式編程進行更正式的介紹,Spring的David Syer撰寫了一個由三部分組成的出色的系列文章,內容涉及使用Spring React進行編程: 第1 部分 / 第2 部分 / 第3部分 。
使用Spring Boot 1.4簡化測試
Pivotal最近發布了Spring Boot 1.4 ,它具有許多有趣的新功能( 例如,從類路徑中的圖片自動生成ascii橫幅! ),并引入了Spring Core 4.3 ,使開發人員的工作更加輕松。
在添加的所有功能中,我最興奮的是所有新的測試支持。 對像Spring這樣的IoC / DI容器的普遍批評是,由于開發人員必須編寫所有上下文設置以測試其代碼,這會使代碼的測試更加困難(盡管也可以通過更好地緩解這些問題來緩解這些問題)代碼設計)。 幸運的是Pivotal和社區已經做出了回應,并添加了一套新功能,以減輕編寫單元測試的負擔。 有關所有新測試功能的全文,請參見此處 。
使代碼易于測試是縮短反饋循環的最重要的使能功能之一,我將在稍后介紹更多內容。 有關Spring Boot 1.4的完整發行說明,請查看此鏈接 。
縮短開發反饋循環
我參加過的以前的會議和演講通常都集中在新工具,新模式或新技術上。 盡管收益可能顯而易見,但將收益引入組織的過程通常很困難。 但是,我很高興看到Pivotal將兩個主題演講的大部分內容用于我最近閱讀的一個領域; 持續交付 。
連續交付的主要原則是,每次提交都應啟動一系列自動化過程(測試,部署),最后將代碼交付給至少一個類似于生產的環境(如果不是生產本身)。
為了實現這一目標,連續交付在很大程度上取決于自動化。 單元測試,以驗證代碼是否滿足質量閾值;集成測試,以確保應用程序在環境中能夠正常運行;部署腳本,以防止在部署至環境時出現配置問題。
在這些過程中,具有增強開發周期的功能,例如允許開發人員更快地驗證更改的單元測試,完全審核更改/部署的能力以及使回滾部署的過程變得非常容易的功能。 所有這些過程從本質上幫助降低了風險,但是與生產的頻繁部署一起通過縮小部署之間的增量來降低風險。
盡管開發環境中沒有靈丹妙藥,但連續交付,快速而自信地部署到生產環境(有時一天數百次)的能力可能是將優秀軟件公司與劣質軟件公司區分開的標志性特征。 而且,任何編寫一行代碼的組織都是一家軟件公司。
為開源社區做貢獻
緊接著以縮短反饋循環為主題,這是開源項目從我們的操作系統(Linux),框架(Spring)和平臺(Cloud Foundry)等眾多領域接管軟件世界的一個核心原因,這是因為開源提供了封閉項目無法提供的反饋循環:工具的用戶可以為此做出貢獻!
這就是使Spring從成為IoC / DI容器發展到幾乎包羅萬象的生態系統( https://spring.io/projects )的原因。 參與開源項目是建立知識庫,學習新思想以及在組織或直接地理區域之外建立聯系的絕佳方法。 對開源項目的貢獻范圍從修復問題到添加新功能 。
所以,如果你有興趣的貢獻, 也 有 很多的更多 機會 ,以 做 如此。
最后的想法
參加SpringOne平臺是一次很棒的經歷。 看到Spring社區在過去幾年中在將新項目添加到平臺并擴展他們已經擁有的項目的功能方面所取得的進步,真是令人驚訝。
有關Spring的繼續更新,請訪問以下博客: https : //spring.io/blog 。 另外,請通過訂閱右側邊欄中的內容確保在Keyhole上關注我們的博客!
Spring 5的新功能以及與Pivotal員工的對話使我對Spring和Java的未來感到非常興奮!
翻譯自: https://www.javacodegeeks.com/2016/08/springone-platform-2016-retrospective.html
總結
以上是生活随笔為你收集整理的SpringOne Platform 2016回顾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaone_JavaOne 2012
- 下一篇: 打印机快捷键设置(打印机快捷键设置方法)