wed數(shù)據(jù)庫面試常見的幾大問題
發(fā)布時間:2019-09-25 廣州兄弟連IT教育 訪問 : 489是時候讀一些評論和做一些總結(jié)了。當(dāng)我們開始寫這一系列博客時,我們知道JAVAScript/網(wǎng)絡(luò)應(yīng)用程序框架不是一個好的總結(jié)。我們試圖回答這個無法回答的問題:我應(yīng)該使用什么樣的框架?
在本文中,我們將總結(jié)本系列中提到的每個框架,包括我們認(rèn)為的優(yōu)勢和劣勢。此外,我們還留給你一些值得思考的問題。wed數(shù)據(jù)庫面試常見的幾大問題在下面看看對您有沒有幫助呢?
我需要使用框架嗎?
如果我們不嘗試回答這個問題,那就是我們的失職,這已經(jīng)成為社會上一些人的口頭禪。關(guān)于網(wǎng)絡(luò)平臺的爭論也發(fā)展到這樣一個程度,即無需額外的應(yīng)用編程接口就可以更容易地創(chuàng)建網(wǎng)絡(luò)應(yīng)用程序。像本系列的所有內(nèi)容一樣,我們的答案大多基于這些內(nèi)容。
盡管沒有框架它也能正常工作,但它也是有代價的。那些提倡無框架手寫Javascript的人,以及那些通常被認(rèn)為是斯德哥爾摩綜合癥(情感依賴且容易移動)的人,忘記了網(wǎng)絡(luò)平臺上有許多快速開發(fā)的應(yīng)用編程接口集,至少有三種不同的技術(shù)和三種完全不同的語法。該網(wǎng)絡(luò)平臺已經(jīng)標(biāo)準(zhǔn)化并確定了12,000多個應(yīng)用編程接口。事實上,瀏覽器中的文氏圖也顯示了這些巨大的差距。
如果你是一個有著深厚技能和經(jīng)驗的人,你真的可以不用框架坦誠相待。但是你團(tuán)隊的其他成員呢?你的人在哪里?還是你的決定給你帶來了麻煩?在這種情況下,我們將看到一個不需要承擔(dān)風(fēng)險的框架的團(tuán)隊,最后他們將發(fā)現(xiàn)他們已經(jīng)創(chuàng)建了一個需要自己維護(hù)的框架。接下來就是尋找人才的問題了。他們不需要知道框架是如何工作的。他們只需要尋找能夠調(diào)用網(wǎng)絡(luò)平臺應(yīng)用編程接口的高技能人才或者一些自稱有經(jīng)驗的人才,卻發(fā)現(xiàn)他們?nèi)狈τ欣趫F(tuán)隊發(fā)展的深度技能和經(jīng)驗。
團(tuán)隊?wèi)?yīng)該避免虛假對等的陷阱。顯然,創(chuàng)新型公司在應(yīng)用網(wǎng)絡(luò)技術(shù)方面正在不斷提高其市場價值和競爭力。谷歌、臉書和網(wǎng)飛就是很好的例子。但大多數(shù)公司不是,他們應(yīng)該承認(rèn)這一點。
角度2+
優(yōu)勢是什么?
角度2+的最大優(yōu)勢是它的受歡迎程度。有些人還認(rèn)為它的名字與谷歌密切相關(guān),會影響團(tuán)隊對它的使用。Angular 1正迅速變得流行起來,因為來自其他交互式應(yīng)用程序開發(fā)環(huán)境的人會發(fā)現(xiàn)類似的模型視圖模式來開發(fā)單頁網(wǎng)頁應(yīng)用程序。通過角力1的現(xiàn)代化和框架某些部分的重建,角力2+真的爆發(fā)了。正規(guī)和非正規(guī)培訓(xùn)機(jī)構(gòu)的數(shù)量令人印象深刻,開發(fā)商具有強(qiáng)大的市場競爭力。對于用戶來說,它有一套豐富的組件來構(gòu)建用戶界面,這也是本系列中能夠做到這一點的少數(shù)框架之一。
缺點和挑戰(zhàn)是什么?
我們認(rèn)為角度框架側(cè)重于在單頁應(yīng)用程序中創(chuàng)建用戶界面,而沒有處理構(gòu)建完整的網(wǎng)絡(luò)應(yīng)用程序這一更大的問題。如果不及早確定,將導(dǎo)致整個項目難以維持。在實際項目中,在運行時提供不屬于核心框架的技術(shù)通常是不可思議的,這大大降低了TypeScript對最終開發(fā)人員的價值。
未來是什么?
角度5剛剛發(fā)布,這似乎是角度已經(jīng)成功地證實了它的承諾,迅速發(fā)布版本。在谷歌的不斷支持下,安格魯將變得越來越成熟。
像許多大型組織一樣,谷歌有多重人格。從外部來看,安格爾的團(tuán)隊和那些專注于瀏覽器標(biāo)準(zhǔn)的團(tuán)隊似乎是和諧的。但是我們認(rèn)為和諧只是一層薄薄的窗簾布。Angular團(tuán)隊對于網(wǎng)絡(luò)組件和漸進(jìn)式網(wǎng)絡(luò)應(yīng)用程序沒有真正的解決方案。我們相信業(yè)內(nèi)普遍接受的標(biāo)準(zhǔn)將在角度框架內(nèi)逐步實施,這將影響如何更好地構(gòu)建角度應(yīng)用,并將成為中長期風(fēng)險。
何時選擇角度2+
如果您需要在一個大框架內(nèi)獲得技術(shù)資源,那么框架內(nèi)的技術(shù)通常很容易移植?;蛘?,您需要在框架中培訓(xùn)開發(fā)人員,并對他們將在短時間內(nèi)獲得一定的開發(fā)能力抱有一定的信心,因此您可以考慮角度2+。需要注意的是,Angular1(angular.js)和Angular2+完全不同,應(yīng)用、技術(shù)和經(jīng)驗不能直接移植到Angular2+的開發(fā)中。
如果您的網(wǎng)絡(luò)應(yīng)用程序可以很好地轉(zhuǎn)換成標(biāo)準(zhǔn)的模型視圖模式,那么您也可以忽略使用Angular2+的其他直接考慮因素。
如果你對谷歌材質(zhì)UX的設(shè)計模式感到滿意,那么材質(zhì)角度是一個快速、簡單和可靠的遵循模式的方法。
反應(yīng)+還原
優(yōu)勢是什么?
“反應(yīng)”和“還原”的最大優(yōu)勢是它們相對簡單和集中。做一件事并把它做好是非常困難的,但是兩個圖書館都有效地實現(xiàn)了他們的目標(biāo)。盡管某些狀態(tài)容器的方法可能是外部的,但大多數(shù)開發(fā)人員仍然可以輕松掌握概念,理解單向數(shù)據(jù)架構(gòu)的好處,并簡化大量用戶界面應(yīng)用程序。
缺點和挑戰(zhàn)是什么?
反應(yīng)和還原的最大弱點不是它們是什么,而是它們不是什么。要構(gòu)建一個功能豐富的網(wǎng)絡(luò)應(yīng)用程序,您需要許多功能。一旦您離開React和Redux以及其他庫的核心,您將會發(fā)現(xiàn)一個非常分散的社區(qū),其中有許多不容易集成的解決方案和模式。
因此,盡管React和Redux是非常專注的庫,但是沒有經(jīng)驗的團(tuán)隊很容易生成不可維護(hù)的解決方案,而不會意識到他們的選擇會導(dǎo)致性能差或錯誤。甚至有經(jīng)驗的開發(fā)人員也可能意識到一個松散的架構(gòu)或約定可能會在未來給他們帶來麻煩。
虛假存錢是對自己的一種欺騙。在組織內(nèi)采用反應(yīng)和還原將很容易降低效率。沒有其他庫和模式的廣泛約定和標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化的React+Reux比我們用來編寫應(yīng)用程序的JavaScript更有效。
未來是什么?
臉譜網(wǎng)和反應(yīng)公司最近已經(jīng)擺脫了復(fù)雜的專利糾紛,并意識到,像其他項目一樣,一個更廣泛的社區(qū)可以提高自己的聲音。我認(rèn)為這有助于臉譜網(wǎng)認(rèn)識到他們無法更好地了解我們,并相信我們會指導(dǎo)這個項目。希望這將繼續(xù)貫穿項目的特點和技術(shù)方向。
很難預(yù)測反應(yīng)和還原的未來。然而,將庫聚集在一起確實顯著提高了適應(yīng)性,并且大多數(shù)React+Redux模式促進(jìn)了一個可以容易地重構(gòu)和迭代的獨立架構(gòu)。兩年前,每個人都喜歡反應(yīng)+流量,但整個社區(qū)很快就接受了Redux。思維或模式的其他重大變化也很容易被采納。這一關(guān)鍵能力可能會持續(xù)到未來。
何時選擇反應(yīng)+還原?
如果你很少需要實踐指導(dǎo),并且正在尋找一個更好的庫而不是一個全面的框架,反應(yīng)+還原可能是正確的。在這個過程中,您不僅需要對團(tuán)隊和組織的能力誠實,還需要在初始開發(fā)和整個應(yīng)用程序的長期維護(hù)期間誠實。
優(yōu)勢是什么?
增量構(gòu)建能力是vue的最大優(yōu)勢,js. vue具有簡潔合理的架構(gòu),這使得理解和構(gòu)建變得容易。
Vue擁有一個強(qiáng)大而充滿激情的社區(qū),這為vue.js增加了巨大的價值,并使得為空白項目創(chuàng)建一個全面的解決方案變得非常容易。
缺點和挑戰(zhàn)是什么?
模型視圖應(yīng)用程序和狀態(tài)容器類型應(yīng)用程序之間的相互轉(zhuǎn)換可能會令人困惑,即使沒有從一種模式到另一種模式的完美轉(zhuǎn)換,也讓人感覺希望保持兩種模式之間的相關(guān)性。對于那些期望從vue.js獲得完美解決方案并可能難以維護(hù)不一致的應(yīng)用程序的人來說,這至少令人困惑。
一個更大的挑戰(zhàn)是vue.js依賴于一個人。顯然,其他項目基本上是由一個組織支持的,但這讓人們感覺更有意義。雖然它有一個強(qiáng)大的文檔社區(qū)和許多創(chuàng)新的新項目,vue核心的開發(fā)基本上落在一個人身上。
我們很高興看到vue更容易接受新興的標(biāo)準(zhǔn)方法,但是它的類似網(wǎng)絡(luò)組件的模式并不是真正的網(wǎng)絡(luò)組件,這可能是vue弊大于利的地方。
未來是什么?
盡管vue.js被廣泛使用,但很難預(yù)測這種勢頭在中期會持續(xù)多久。它不是由商業(yè)組織直接支持和維護(hù)的。因此,它在很大程度上取決于維護(hù)者的生存能力和他們維護(hù)它的愿望。
它還顯示了一定程度的語言適應(yīng)性,并隨著一些模式的落后和失寵,繼續(xù)保持自己語言的現(xiàn)代化和更新。目前,沒有跡象表明vue.js架構(gòu)不能適應(yīng)未來的進(jìn)一步發(fā)展。
什么時候被選中?
如果您有一個傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用程序,并且需要一個強(qiáng)大的應(yīng)用層,vue.js可能是一個很好的選擇,它有一個清晰的模式,甚至沒有經(jīng)驗的團(tuán)隊也可以正確或錯誤地使用它。盡管虛擬環(huán)境UX框架沒有現(xiàn)成的功能,但是大量的應(yīng)用程序可以在虛擬環(huán)境中持續(xù)構(gòu)建,這將有利于您的項目。
Dojo 2優(yōu)勢是什么?
Dojo2側(cè)重于帶來更多基于狀態(tài)容器系統(tǒng)的動態(tài)組件的經(jīng)驗?zāi)J剑钛a(bǔ)react+redux和其他框架中的許多空白。
Dojo2還知道,它不僅在自己的生態(tài)系統(tǒng)中開發(fā),還通過包含web組件的導(dǎo)入和導(dǎo)出功能來實現(xiàn)支持不同應(yīng)用程序?qū)嵗男枨蟆H欢?,它仍然提供了一個結(jié)構(gòu)化和內(nèi)在的框架價值。Dojo2的核心基礎(chǔ)仍然是提供交互性。
Dojo2認(rèn)為它提供了大量重要的功能和解決方案,這對構(gòu)建完整的網(wǎng)絡(luò)應(yīng)用程序非常重要,而不是大多數(shù)其他框架的焦點。它還提供了國際化的系統(tǒng)和廣泛的可訪問性模式,以及主題系統(tǒng)和演化模式,以確保不僅能為Typescript/JavaScript進(jìn)行良好的代碼開發(fā),還能進(jìn)行像CSS這樣的資源管理。
Dojo2專注于提供結(jié)構(gòu)化和符合人體工程學(xué)的開發(fā)環(huán)境。通過使用typescript和其他開發(fā)模型,它試圖提供一種安全的保護(hù)機(jī)制來指導(dǎo)新手開發(fā)人員。通過專注于提高框架開發(fā)的效率和安全性,它旨在使開發(fā)團(tuán)隊能夠快速交付更好的網(wǎng)絡(luò)應(yīng)用程序。
缺點和挑戰(zhàn)是什么?
有爭議的是Dojo2發(fā)布時間的進(jìn)一步延長是否會阻礙框架的開發(fā),而其他項目由于其資源的擴(kuò)展會繼續(xù)開發(fā)并快速迭代,導(dǎo)致Dojo2明顯處于擁擠的競爭環(huán)境中。
這可能是一個潛在的開發(fā)機(jī)會和挑戰(zhàn),我希望在靈活性和交互性方面使用Dojo2,而不是其他特殊原因。
未來是什么?
Dojo2將是未來最好的網(wǎng)絡(luò)框架之一,它將繼續(xù)努力為構(gòu)建可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序提供清晰的模式和指導(dǎo)。隨著新標(biāo)準(zhǔn)的出現(xiàn),Dojo2將進(jìn)一步努力在框架中實現(xiàn)新的標(biāo)準(zhǔn)方法,繼續(xù)嘗試擴(kuò)展框架的開放性和交互性,并創(chuàng)建適合更多人使用的解決方案。
你什么時候選擇Dojo2的?
如果您想要采用靈活、現(xiàn)代且響應(yīng)迅速的網(wǎng)絡(luò)應(yīng)用程序架構(gòu),并且需要許多智能默認(rèn)設(shè)置,Dojo2是一個不錯的選擇。不需要拼湊和構(gòu)建管道,它為您提供了更高級別的命令模式,以便您可以更加關(guān)注開發(fā)項目,并確認(rèn)它已經(jīng)為直接生產(chǎn)和開發(fā)做好了直接準(zhǔn)備。此外,如果您理解類型腳本的優(yōu)勢,Dojo2將嚴(yán)格使用類型腳本來管理和提供穩(wěn)定的開發(fā)環(huán)境。