超碰av在线|无码精品一区二区三区在线|伊人色色日韩一级片内射视频群批_欧美丰满少妇人妻HD高清在线_亚洲一区二区中文_亚洲无码动漫专区

首頁(yè)

Spring 5 新特性:函數(shù)式Web框架

藍(lán)藍(lán)設(shè)計(jì)的小編

舉例

我們先從示例應(yīng)用程序的一些摘錄開(kāi)始。下面是暴露Person對(duì)象的響應(yīng)信息庫(kù)。很類似于傳統(tǒng)的,非響應(yīng)信息庫(kù),只不過(guò)它返回Flux<Person>而傳統(tǒng)的返回List<Person>,以及返回Mono<Person>的地方返回Person。Mono<Void>用作完成標(biāo)識(shí):指出何時(shí)保存被完成。關(guān)于Reactor類型的更多信息,請(qǐng)參閱

public interface PersonRepository { Mono<Person> getPerson(int id); Flux<Person> allPeople(); Mono<Void> savePerson(Mono<Person> person);
}

下面是我們?nèi)绾伪┞稁в行碌暮瘮?shù)式web框架的資源庫(kù):

RouterFunction<?> route = route(GET("/person/{id}"),
    request -> {
        Mono<Person> person = Mono.justOrEmpty(request.pathVariable("id"))
            .map(Integer::valueOf)
            .then(repository::getPerson); return Response.ok().body(fromPublisher(person, Person.class));
    })
    .and(route(GET("/person"),
        request -> {
            Flux<Person> people = repository.allPeople(); return Response.ok().body(fromPublisher(people, Person.class));
    }))
    .and(route(POST("/person"),
    request -> {
        Mono<Person> person = request.body(toMono(Person.class)); return Response.ok().build(repository.savePerson(person));
}));

下面我們要介紹如何運(yùn)行,比如在Reactor Netty中:

詳解 javascript 的類

藍(lán)藍(lán)設(shè)計(jì)的小編

前言

生活有度,人生添壽。

Javascript從當(dāng)初的一個(gè)“彈窗語(yǔ)言”,一步步發(fā)展成為現(xiàn)在前后端通吃的龐然大物。javascript的受歡迎程度也是與日俱增,今年編程語(yǔ)言又是花落javascript,這實(shí)在是一個(gè)充滿了活力的語(yǔ)言。如今,隨隨便一個(gè)網(wǎng)頁(yè)javascript代碼量都不下數(shù)千行,要是node后端那更不止幾千行了。(WTF)代碼量的增加給編程帶來(lái)的首要的問(wèn)題就是如何去編寫和維護(hù)如此龐大的代碼呢?答案就是模塊化思想,其實(shí)就是面向?qū)ο螅∣OP)編程,如今比較流行的三大前端框架(angular,react,vue)基本都實(shí)現(xiàn)了組件化編程,但組件化和我們所說(shuō)的模塊化又有所不同,應(yīng)該可以這么理解,組件化是模塊化的升級(jí)版,模塊化是組件化的基礎(chǔ)。那么,問(wèn)題來(lái)了,javascript怎么面向?qū)ο缶幊棠兀课蚁脒@很多老鳥也不定說(shuō)的清楚吧,前端雜而活躍的各種社區(qū),很多前端er一度依賴各種插件,根本不需要去了解這些深層的東西卻照樣能完成任務(wù)。但我想作為一個(gè)有追求的前端er還是很有必要去學(xué)習(xí)這些看似用不著的東西的,別的不說(shuō),就單單因?yàn)槲覀兪乔岸薳r,只會(huì)用jquery一個(gè)稍微厲害的后端都能代替你。好吧,廢話不多說(shuō),到底如何面向?qū)ο骳oding呢…..

很不幸,es5中并沒(méi)有給出明確的定義‘類’的概念,所以傳統(tǒng)的面向?qū)ο缶幊趟坪跏切胁煌ǖ模敲从衷撃[么辦呢?值得慶幸的是,前輩們通過(guò)不斷探索總結(jié),成功的用javascript模擬出了“類”。那么,javascript的類又該怎么定義呢?

在面向?qū)ο缶幊讨?,類(class)是對(duì)象(object)的模板,定義了同一組對(duì)象(又稱”實(shí)例”)共有的屬性和方法。

深入了解font-weight

藍(lán)藍(lán)設(shè)計(jì)的小編

1.jpg

問(wèn)題提出

font-weight的屬性值有100、200、300、400、500、600、700、800、900和normal、bold、lighter、bolder,它們的區(qū)別是?
另外,在實(shí)際開(kāi)發(fā)中,我們應(yīng)該使用數(shù)值表達(dá)還是文字表達(dá)呢?

認(rèn)識(shí)font-weight

根據(jù)W3C Fonts節(jié)章的規(guī)范標(biāo)準(zhǔn),可知:

一起理解Virtual DOM

藍(lán)藍(lán)設(shè)計(jì)的小編

前言

React 好像已經(jīng)火了很久很久,以致于我們對(duì)于 Virtual DOM 這個(gè)詞都已經(jīng)很熟悉了,網(wǎng)上也有非常多的介紹 React、Virtual DOM 的文章。但是直到前不久我專門花時(shí)間去學(xué)習(xí) Virtual DOM,才讓我對(duì) Virtual DOM 有了一定的理解,以致于要懷疑起很久之前看過(guò)的那些文章來(lái)。倒不是這些文章講得不對(duì),而是現(xiàn)在在我看來(lái)角度不太好,說(shuō)得越多,越說(shuō)不清。

讓我能夠有所開(kāi)竅(自認(rèn)為)的,是這篇文章:


Change And Its Detection In JavaScript Frameworks
Monday Mar 2, 2015 by Tero Parviainen


作者看問(wèn)題的角度很棒,從數(shù)據(jù)變更與UI同步的角度來(lái)介紹各個(gè)典型框架,特別是對(duì)于 React 的 Virtual DOM,從這個(gè)角度理解起來(lái)更容易些。

了解并使用CSS中的rem單位

藍(lán)藍(lán)設(shè)計(jì)的小編

什么是 rem

可能在你使用收音機(jī)或者用其他音樂(lè)播放器之前,就已經(jīng)聽(tīng)過(guò)“R.E.M.”這個(gè)詞了。在這個(gè)樂(lè)隊(duì)眼中,這個(gè)詞是“淺睡眠時(shí)眼球的快速轉(zhuǎn)動(dòng)”的縮寫,而在 css 中,rem 代表著“以根元素為參照物的 em 單位“。他不會(huì)讓你拋棄你的宗教信仰也不會(huì)讓你相信那個(gè)遠(yuǎn)在月球的人,但是它可以幫助你實(shí)現(xiàn)一個(gè)和諧、平穩(wěn)的設(shè)計(jì)。

根據(jù) W3C 規(guī)范中對(duì) 1rem 的定義:

1rem 與等于根元素 font-size 的計(jì)算值。當(dāng)明確規(guī)定根元素的 font-size 時(shí),rem 單位以該屬性的初始值作參照。

Web服務(wù)器、應(yīng)用程序服務(wù)器、HTTP服務(wù)器區(qū)別

藍(lán)藍(lán)設(shè)計(jì)的小編

WEB服務(wù)器、應(yīng)用程序服務(wù)器、HTTP服務(wù)器有何區(qū)別?IIS、Apache、Tomcat、Weblogic、WebSphere 都各屬于哪種服務(wù)器?這些問(wèn)題困惑了很久,今天終于梳理清楚了:

Web服務(wù)器的基本功能就是提供Web信息瀏覽服務(wù)。它只需支持HTTP協(xié)議、HTML文檔格式及URL。與客戶端的網(wǎng)絡(luò)瀏覽器配合。因?yàn)閃eb服務(wù)器主要支持的協(xié)議就是HTTP,所以通常情況下HTTP服務(wù)器和WEB服務(wù)器是相等的(有沒(méi)有支持除HTTP之外的協(xié)議的web服務(wù)器,作者沒(méi)有考證過(guò)),說(shuō)的是一回事。

應(yīng)用程序服務(wù)器(簡(jiǎn)稱應(yīng)用服務(wù)器),我們先看一下微軟對(duì)它的定義:”我們把應(yīng)用程序服務(wù)器定義為“作為服務(wù)器執(zhí)行共享業(yè)務(wù)應(yīng)用程序的底層的系統(tǒng)軟件”。 就像文件服務(wù)器為很多用戶提供文件一樣,應(yīng)用程序服務(wù)器讓多個(gè)用戶可以同時(shí)使用應(yīng)用程序(通常是客戶創(chuàng)建的應(yīng)用程序)”

通俗的講,Web服務(wù)器傳送(serves)頁(yè)面使瀏覽器可以瀏覽,然而應(yīng)用程序服務(wù)器提供的是客戶端應(yīng)用程序可以調(diào)用(call)的方法(methods)。確切一點(diǎn),你可以說(shuō):Web服務(wù)器專門處理HTTP請(qǐng)求(request),但是應(yīng)用程序服務(wù)器是通過(guò)很多協(xié)議來(lái)為應(yīng)用程序提供(serves)商業(yè)邏輯 (business logic)。

JavaScript 中對(duì)象的深拷貝

藍(lán)藍(lán)設(shè)計(jì)的小編

在JavaScript中,對(duì)對(duì)象進(jìn)行拷貝的場(chǎng)景比較常見(jiàn)。但是簡(jiǎn)單的復(fù)制語(yǔ)句只能對(duì)對(duì)象進(jìn)行淺拷貝,即復(fù)制的是一份引用,而不是它所引用的對(duì)象。而更多的時(shí)候,我們希望對(duì)對(duì)象進(jìn)行深拷貝,避免原始對(duì)象被無(wú)意修改。

對(duì)象的深拷貝與淺拷貝的區(qū)別如下:

  • 淺拷貝:僅僅復(fù)制對(duì)象的引用,而不是對(duì)象本身;
  • 深拷貝:把復(fù)制的對(duì)象所引用的全部對(duì)象都復(fù)制一遍。

一. 淺拷貝的實(shí)現(xiàn)

淺拷貝的實(shí)現(xiàn)方法比較簡(jiǎn)單,只要使用是簡(jiǎn)單的復(fù)制語(yǔ)句即可。

1.1 方法一:簡(jiǎn)單的復(fù)制語(yǔ)句

/* ================ 淺拷貝 ================ */ function simpleClone(initalObj) { var obj = {}; for ( var i in initalObj) {
        obj[i] = initalObj[i];
    } return obj;
}

JavaScript世界萬(wàn)物誕生記

藍(lán)藍(lán)設(shè)計(jì)的小編

一. 無(wú)中生有

起初,什么都沒(méi)有。

1.png

 

造物主說(shuō):沒(méi)有東西本身也是一種東西啊,于是就有了null:

現(xiàn)在我們要造點(diǎn)兒東西出來(lái)。但是沒(méi)有原料怎么辦?

有一個(gè)聲音說(shuō):不是有null嘛?

另一個(gè)聲音說(shuō):可是null代表無(wú)啊。

造物主說(shuō):那就無(wú)中生有吧!

于是:

2.png

更快學(xué)習(xí)JS的6個(gè)簡(jiǎn)單思維技巧

藍(lán)藍(lán)設(shè)計(jì)的小編

當(dāng)人們嘗試學(xué)習(xí) JavaScript , 或者其他編程技術(shù)的時(shí)候,常常會(huì)遇到同樣的挑戰(zhàn):

  • 有些概念容易混淆,特別是當(dāng)你學(xué)習(xí)過(guò)其他語(yǔ)言的時(shí)候。
  • 很難找到學(xué)習(xí)的時(shí)間(有時(shí)候是動(dòng)力)。
  • 一旦當(dāng)你理解了一些東西的時(shí)候,卻很容易再一次忘記。
  • 可以使用的工具甚多且經(jīng)常變化,所以不知道從哪里開(kāi)始入手。

幸運(yùn)的是,這些挑戰(zhàn)最終都可以被戰(zhàn)勝。在這篇文章里,我將介紹 6 個(gè)思維技巧來(lái)幫你更快的學(xué)習(xí) JavaScript ,讓你成為一個(gè)更快樂(lè)更多產(chǎn)的程序員。

對(duì)于很多學(xué)習(xí) JavaScript 的人來(lái)說(shuō),他們問(wèn)的第一個(gè)問(wèn)題是選用哪個(gè)框架(現(xiàn)有框架非常多)。但是如果你還不熟悉原生的 JavaScript ,那這就是個(gè)不該問(wèn)的問(wèn)題。你會(huì)花費(fèi)你全部的時(shí)間去查詢不同的框架并且不會(huì)取得任何進(jìn)展。

詳解JS 變量、作用域及內(nèi)存

藍(lán)藍(lán)設(shè)計(jì)的小編

基本類型值有:undefined,NUll,Boolean,Number和String,這些類型分別在內(nèi)存中占有固定的大小空間,他們的值保存在棧空間,我們通過(guò)按值來(lái)訪問(wèn)的。

 

1)值類型:數(shù)值、布爾值、null、undefined
2)引用類型:對(duì)象、數(shù)組、函數(shù)。
 
如果賦值的是引用類型的值,則必須在堆內(nèi)存中為這個(gè)值分配空間。由于這種值的大小不固定(對(duì)象有很多屬性和方法),因此不能把他們保存到棧內(nèi)存中。但內(nèi)存地址大小是固定的,因此可以將內(nèi)存地址保存在棧內(nèi)存中。
 
<script type="text/javascript”>
var box = new Object();  //創(chuàng)建一個(gè)引用類型
var box = "trigkit4";   //基本類型值是字符串
box.age = 21;    //基本類型值添加屬性很怪異,因?yàn)橹挥袑?duì)象才可以添加屬性。
alert(box.age);  //不是引用類型,無(wú)法輸出;
</script>
 

日歷

鏈接

個(gè)人資料

存檔