響應式API的設計、實現(xiàn)和應用
在本例中,值和錯誤都傳遞給了訂閱服務器。需要記住的是,當使用CountDownLatch時,只有一個onError()或onComplete()被調用。因此,在錯誤和成功的情況下你都必須要釋放鎖。
可組合方法引用
正如你所想象的,任何嚴重依賴于lambdas的編程模型都容易受到“回調地獄”的影響。但是,具有一定的規(guī)范和方法引用,就不是問題了。所有明智的Ruby開發(fā)人員都會告訴你的是,小的私有方法(甚至只有一行程序!)在可讀性方面非常有價值。如果你很好地為方法命了名并使用方法引用語法,那么你就可以創(chuàng)建出非??勺x的流。
public Flux<ApplicationSummary> list() { return Mono .zip(this.cloudFoundryClient, this.spaceId) .flatMap(function(DefaultApplications::requestSpaceSummary)) .flatMapMany(DefaultApplications::extractApplications) .map(DefaultApplications::toApplicationSummary); }
在這個例子中,這個流就很易讀。為了獲得一個Flux
點自由風格
在本文中,你可能已經注意到我們使用了非常緊湊的風格。 這叫做Pointfree style。它的主要好處是它幫助開發(fā)人員站在編寫函數(shù)(高層關注)的角度來思考,而不是擺弄數(shù)據(低層次的關注)。我們不會說在編寫響應式編程時這是一個硬性要求,但是我們發(fā)現(xiàn)大多數(shù)人最終都更喜歡它。
Mono<Void> deleteApplication(String name) { return PaginationUtils .requestClientV2Resources(page -> this.client.applicationsV2() .list(ListApplicationsRequest.builder() .name(name) .page(page) .build())) .single() .map(applicationResource -> applicationResource.getMetadata().getId()) .flatMap(applicationId -> this.client.applicationsV2() .delete(DeleteApplicationRequest.builder() .applicationId(applicationId) .build())); }
如果你看一下這個例子,你會發(fā)現(xiàn)許多地方在分配變量、返回結果,通常這讓它看起來更像傳統(tǒng)的命令式代碼。而這,并不會增加它的可讀性。相反,添加更多的大括號、分號、等號和返回語句,雖然識別了數(shù)據來自哪里,希望能夠更加明確,但可能會混淆流本身實際的重點。
響應式編程是一個巨大的課題,幾乎每個人都在開始接觸它。在編寫響應式代碼時,“錯誤”的選擇非常少,但同時,大量的選擇會讓許多開發(fā)人員感到困惑,不知道什么是最好的入門方法。我們的意見來自于一個大型項目的經驗,我們希望它能對你的響應式之旅有所幫助,我們鼓勵你通過實驗來推動技術發(fā)展,并將你的發(fā)現(xiàn)回饋給社區(qū)。

責任編輯:售電衡衡
-
權威發(fā)布 | 新能源汽車產業(yè)頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業(yè),設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數(shù)據中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務,新能源消納,能源互聯(lián)網
-
新基建助推 數(shù)據中心建設將迎爆發(fā)期
2020-06-16數(shù)據中心,能源互聯(lián)網,電力新基建 -
泛在電力物聯(lián)網建設下看電網企業(yè)數(shù)據變現(xiàn)之路
2019-11-12泛在電力物聯(lián)網 -
泛在電力物聯(lián)網建設典型實踐案例
2019-10-15泛在電力物聯(lián)網案例
-
新基建之充電樁“火”了 想進這個行業(yè)要“心里有底”
2020-06-16充電樁,充電基礎設施,電力新基建 -
燃料電池汽車駛入尋常百姓家還要多久?
-
備戰(zhàn)全面電動化 多部委及央企“定調”充電樁配套節(jié)奏
-
權威發(fā)布 | 新能源汽車產業(yè)頂層設計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設
2020-11-03新能源,汽車,產業(yè),設計 -
中國自主研制的“人造太陽”重力支撐設備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業(yè)發(fā)展
-
探索 | 既耗能又可供能的數(shù)據中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務,新能源消納,能源互聯(lián)網 -
5G新基建助力智能電網發(fā)展
2020-06-125G,智能電網,配電網 -
從智能電網到智能城市