www.e4938.cn-老师你下面太紧了拔不出来,99re8这里有精品热视频免费,国产第一视频一区二区三区,青青草国产成人久久

<button id="60qo0"></button>

<strike id="60qo0"></strike>
<del id="60qo0"></del>
<fieldset id="60qo0"><menu id="60qo0"></menu></fieldset>
  • 響應(yīng)式API的設(shè)計(jì)、實(shí)現(xiàn)和應(yīng)用

    2018-03-20 17:01:48 InfoQ  點(diǎn)擊量: 評(píng)論 (0)
    這篇文章來(lái)自于SpringOne的一個(gè)演講。在過(guò)去的幾年里,Java世界中在大力推動(dòng)響應(yīng)式編程的。無(wú)論是NodeJS開(kāi)發(fā)人員使用非阻塞api的成功,還是
    IllegalStateException())) .subscribe(System.out::println, t -> { t.printStackTrace(); latch.countDown(); }, latch::countDown); latch.await(); }

    在本例中,值和錯(cuò)誤都傳遞給了訂閱服務(wù)器。需要記住的是,當(dāng)使用CountDownLatch時(shí),只有一個(gè)onError()或onComplete()被調(diào)用。因此,在錯(cuò)誤和成功的情況下你都必須要釋放鎖。

    可組合方法引用

    正如你所想象的,任何嚴(yán)重依賴于lambdas的編程模型都容易受到“回調(diào)地獄”的影響。但是,具有一定的規(guī)范和方法引用,就不是問(wèn)題了。所有明智的Ruby開(kāi)發(fā)人員都會(huì)告訴你的是,小的私有方法(甚至只有一行程序!)在可讀性方面非常有價(jià)值。如果你很好地為方法命了名并使用方法引用語(yǔ)法,那么你就可以創(chuàng)建出非常可讀的流。

    public Flux<ApplicationSummary> list() {
      return Mono
        .zip(this.cloudFoundryClient, this.spaceId)
        .flatMap(function(DefaultApplications::requestSpaceSummary))
        .flatMapMany(DefaultApplications::extractApplications)
        .map(DefaultApplications::toApplicationSummary);
    }

    在這個(gè)例子中,這個(gè)流就很易讀。為了獲得一個(gè)Flux,我們先從cloudFoundryClient和一個(gè)spaceId開(kāi)始。我們使用這些去請(qǐng)求空間摘要,從這些空間摘要中提取應(yīng)用程序,然后將這些應(yīng)用程序映射到應(yīng)用程序概要。對(duì)于任何單獨(dú)的操作,我們不知道它具體是怎么做的,但我們并不需要知道這一點(diǎn)。如果需要,IDE很容易就能遍歷這些方法引用,而每個(gè)方法的代碼實(shí)現(xiàn)也不會(huì)混亂。

    點(diǎn)自由風(fēng)格

    在本文中,你可能已經(jīng)注意到我們使用了非常緊湊的風(fēng)格。 這叫做Pointfree style。它的主要好處是它幫助開(kāi)發(fā)人員站在編寫(xiě)函數(shù)(高層關(guān)注)的角度來(lái)思考,而不是擺弄數(shù)據(jù)(低層次的關(guān)注)。我們不會(huì)說(shuō)在編寫(xiě)響應(yīng)式編程時(shí)這是一個(gè)硬性要求,但是我們發(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()));
    }

    如果你看一下這個(gè)例子,你會(huì)發(fā)現(xiàn)許多地方在分配變量、返回結(jié)果,通常這讓它看起來(lái)更像傳統(tǒng)的命令式代碼。而這,并不會(huì)增加它的可讀性。相反,添加更多的大括號(hào)、分號(hào)、等號(hào)和返回語(yǔ)句,雖然識(shí)別了數(shù)據(jù)來(lái)自哪里,希望能夠更加明確,但可能會(huì)混淆流本身實(shí)際的重點(diǎn)。

    響應(yīng)式編程是一個(gè)巨大的課題,幾乎每個(gè)人都在開(kāi)始接觸它。在編寫(xiě)響應(yīng)式代碼時(shí),“錯(cuò)誤”的選擇非常少,但同時(shí),大量的選擇會(huì)讓許多開(kāi)發(fā)人員感到困惑,不知道什么是最好的入門方法。我們的意見(jiàn)來(lái)自于一個(gè)大型項(xiàng)目的經(jīng)驗(yàn),我們希望它能對(duì)你的響應(yīng)式之旅有所幫助,我們鼓勵(lì)你通過(guò)實(shí)驗(yàn)來(lái)推動(dòng)技術(shù)發(fā)展,并將你的發(fā)現(xiàn)回饋給社區(qū)。

    大云網(wǎng)官方微信售電那點(diǎn)事兒

    責(zé)任編輯:售電衡衡

    免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
    我要收藏
    個(gè)贊
    ?
    国产成人亚洲综合a∨婷婷| 久久综合伊人77777| 精品国产AⅤ一区二区三区| 大又大又粗又硬又爽少妇毛片| 丰满人妻无码AⅤ一区二区| 久久精品国产精品亚洲毛片| 狠狠亚洲婷婷综合色香五月加勒比| 亚洲国产无套无码AV电影| 五月天AV免费观看| 无码精品中文字幕a|