- Java編程方法論:響應式RxJava與代碼設計實戰
- 知秋
- 735字
- 2019-09-20 15:06:17
第1章 響應式編程總覽(Reactive Programming)
估計在Java語言誕生的時候,它的開發者怎么也想不到,僅僅20年的時間,人們的需求會出現如此爆炸式的增長,也正是因為Java語言“write once,run anywhere”的特性吸引了眾多開發者,成就了巨型社區。隨著這些年智能手機的發展和普及,我們的服務器端要應對日益增長的巨大流量。從開發的角度來看,這就要求我們必須設計出高擴展性和高可用性的程序,以確保能夠適應日益增長的請求所帶來的壓力。而從使用者的角度來看,他們并不會關心后臺到底是怎樣的,而更關注App界面的易用性和是否美觀,最重要的是每次操作能否得到快速的響應。
舉一個例子,在CPU還是單核的年代,計算機上只運行一個程序就能夠將CPU占用得滿滿當當。如果計算機上同時運行兩個程序,用戶就會覺得卡頓,此時CPU要通過上下文切換輪流處理這兩個程序,而這個切換過程會消耗CPU資源,以及占用更多的內存資源。而在CPU是多核的時代,我們可以同時打開多個程序,還可以隨意切換,并且沒有絲毫停滯感。
與硬件端的發展相似,現在Web前端已經可以實現單頁應用。舉一個例子,在使用音樂App的場景下,點開一個歌單,這個獲取歌單的過程可能由于多種原因而產生延時;與此同時,可以切換到這個App的評論區,查看評論將絲毫不影響后臺正在進行的獲取歌單的任務,等切換回來時可以立馬展示獲取到的歌單。
于是,對開發人員來說,有兩種選擇擺在面前。第一種是在從數據庫中查找歌單任務完成之前,讓用戶一直等待,而不能進行其他操作;第二種是用戶可以在查找歌單任務執行期間同時使用其他功能,而不是切換回來之后重新查找。
對于用戶來說,第二種肯定是最佳選擇,至此引出了我們的話題:基于異步的開發模式和傳統的基于同步的開發模式。后者比較簡單,不必多說,因此我們接下來要介紹的就是基于異步的開發模式,即異步編程模式。
- Learning ROS for Robotics Programming(Second Edition)
- Learning Spring 5.0
- Practical UX Design
- Apache Spark 2 for Beginners
- Selenium Design Patterns and Best Practices
- 軟件測試項目實戰之性能測試篇
- C++對象模型詳解
- Advanced Express Web Application Development
- Spring MVC+MyBatis開發從入門到項目實踐(超值版)
- 零基礎學C語言程序設計
- OpenCV with Python Blueprints
- Instant Zurb Foundation 4
- Python期貨量化交易實戰
- 創意UI Photoshop玩轉移動UI設計
- Mastering ASP.NET Web API