javascript
platform_SpringOne Platform 2016回顾
platform
我最近結束了在拉斯維加斯參加SpringOne Platform會議的總結。 這是我第一次參加SpringOne。 這是聆聽演講并與軟件開發領域的一些頂級專家進行對話的一種體驗。
如果您沒有參加SpringOne,那么您肯定會想要閱讀這篇文章。 我們將討論這四個主題,以及如何將它們潛在地應用到您今后的工作中。
- React設計
- 使用Spring Boot 1.4簡化測試
- 縮短開發反饋循環
- 為開源社區做貢獻
React設計
將Spring Reactive包含到Spring核心框架中是Spring 5發布的路線圖 。 結果,SpringOne的許多會議都專門討論了什么是React式設計以及如何使用它。
Node.js開發人員應該已經熟悉該模式,這確實是Node.js的存在理由。 響應式設計基于事件驅動的非阻塞I / O原理。 如果這一切聽起來令人困惑,那就更好地知道您不是唯一對此概念感到困惑的人–我也仍在努力吸收它。
用簡單的術語表示什么:以“標準”(命令式)方式編寫程序時,對外部源(無論是數據庫還是服務)的調用將使調用線程在繼續執行之前等待響應。 響應式設計通過創建承諾(即事件)并稍后讀取返回結果(非阻塞)來更改此設置。
由于大大減少了執行相同工作量所需的線程數(每個線程占用內存,數據庫和服務只能同時服務于有限數量的連接),因此可以大大減少系統資源的使用。
會談中經常提及的React式設計的另一個關鍵概念是背壓 。 背壓會在訂戶和生產者之間產生反轉。 生產者通常會規定返回給訂閱者的金額,通常是整個結果集的大小,而背壓則使訂閱者可以定義自己希望在何時以及何時接收多少(即訂閱者只會處理完先前的退貨后,向生產者請求更多)。 這有助于防止訂戶被大型數據集淹沒,并通過僅發送訂戶準備就緒的工作以及隨時間分配負載來減少對生產者的需求。
這些背壓功能共同幫助創建了更可靠的服務。 我認為,這是整個行業從React設計中獲得真正好處的地方。
為了對React式編程進行更正式的介紹,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
platform
總結
以上是生活随笔為你收集整理的platform_SpringOne Platform 2016回顾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux命令vim修改内容怎么退出(l
- 下一篇: 安卓手机浏览器哪个好用速度快(安卓手机浏