国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
逆向思維:如何判斷一套JS框架不符合實(shí)際需求?

JS框架稱得上層出不窮,幾乎每周都有新的框架與廣大用戶見(jiàn)面。在今天的文章中,我們將立足于逆向思維,考慮如何斷定一套JS框架不符合實(shí)際需求。作為一名JavaScript架構(gòu)師、培訓(xùn)人員及導(dǎo)師,我經(jīng)常面對(duì)這樣一個(gè)問(wèn)題——你最喜歡的框架是什么?或者哪款框架最為出色?而我給出的兩個(gè)答案往往令提問(wèn)者感到意外。就目前而言,我個(gè)人最偏好的框架是React JS。但如果要為企業(yè)選擇一套框架,我給出的答案則是Angular 2.0。

不過(guò)大家更應(yīng)該問(wèn)的恐怕是“為什么要準(zhǔn)備兩個(gè)答案?”或者更進(jìn)一步探究,“我們?cè)撊绾瓮瓿煽蚣艿倪x擇過(guò)程?”下面,我將向大家共享一些使用框架的實(shí)際感受。為了公平起見(jiàn),首先聊聊我個(gè)人的一點(diǎn)選擇傾向。

我個(gè)人更偏愛(ài)以下幾套框架:

  • React JS
  • Angular 2
  • Angular 1
  • Ext JS 5或者6
  • Ext JS 4

而如果要為大型企業(yè)推薦框架,那么答案會(huì)稍有不同:

  • Angular 2
  • Angular 1
  • Ext JS 5 或者6
  • React
  • Ext JS 4

考慮到這些前提,下面我們具體思考接下來(lái)的問(wèn)題。

由誰(shuí)來(lái)使用框架?

在我所效力的企業(yè)當(dāng)中,大多數(shù)員工都屬于Java程序員。這意味著JavaScript及其各類衍生版本都能夠?yàn)榇蠹宜焖偈煜ぜ罢莆?。然而盡管各框架之間存在相當(dāng)程度的共性,但也仍有不少差異需要強(qiáng)調(diào)。目前,Ext或者Angular 2的發(fā)展勢(shì)頭可能更好,這是因?yàn)樗鼈兡軌蛞愿N近Java或者C#的方式產(chǎn)生效果,從而吸引更多相關(guān)開(kāi)發(fā)者的加入。

學(xué)習(xí)曲線是否陡峭?

那么在前面提到的框架中,其各自需要耗費(fèi)多少時(shí)間進(jìn)行學(xué)習(xí)?要找到答案,我們還需要考慮以下幾個(gè)問(wèn)題:

  • 能否購(gòu)買支持服務(wù)以解答技術(shù)疑問(wèn)?
  • 說(shuō)明文檔是否清晰明確?
  • 框架流行程度如何?
  • 團(tuán)隊(duì)中是否已經(jīng)擁有相關(guān)專家?
  • 這套框架是否擁有公開(kāi)Slack頻道?
  • 框架開(kāi)發(fā)者們是否關(guān)注企業(yè)客戶的需求?

說(shuō)到這里,Ext JS與Angular 2的優(yōu)勢(shì)應(yīng)該已經(jīng)顯現(xiàn)出來(lái)了,而這也正是我總結(jié)個(gè)人最愛(ài)的兩個(gè)選項(xiàng)的具體方式。

框架是否提供良好的約束機(jī)制?

我還記得當(dāng)初VB 1.0剛剛面世時(shí),每個(gè)人都興奮地高呼“看看它的構(gòu)建與運(yùn)行速度有多快”,并以此作為選擇的理由。

沒(méi)錯(cuò),VB允許大家采取任何能夠達(dá)到目標(biāo)的代碼編寫(xiě)方式。但歷史經(jīng)驗(yàn)告訴我們,只要框架本身仍然提供部分結(jié)構(gòu),那么用戶仍有可能編寫(xiě)出糟糕的代碼,而且這類蹩腳成果的比例與框架所提供的結(jié)構(gòu)量存在正相關(guān)。

在與多位開(kāi)發(fā)者合作時(shí),有些人可能要求其他成員重視代碼結(jié)構(gòu)而不只是“能跑就行”。

立足于這一問(wèn)題,Angular 2再次脫穎而出,而Ext則處于墊底位置。盡管Ext提供所謂MVC及MVVM機(jī)制,但其無(wú)法保證開(kāi)發(fā)者編寫(xiě)的代碼成果與其設(shè)計(jì)模式相匹配。在MVC當(dāng)中,我甚至不確定編寫(xiě)者是否清楚自己在開(kāi)發(fā)些什么東西。

行業(yè)標(biāo)準(zhǔn)

為了讓Ext的運(yùn)作效果更貼近桌面開(kāi)發(fā)環(huán)境,其能夠生成HTML并利用其布局機(jī)制控制各元素在屏幕上的顯示位置。前面提到的其它框架皆全部利用CSS實(shí)現(xiàn)布局控制。Ext的優(yōu)勢(shì)在于,我不需要了解HTML或者CSS即可實(shí)現(xiàn)理想的顯示效果。但弊端則是,如果我希望嘗試一些Ext支持能力之外的效果,則將面臨巨大障礙。另外,使用HTML與CSS則會(huì)讓屏幕渲染時(shí)長(zhǎng)大幅增加,特別是在組件存在三層以上嵌套的情況下。

另外,Ext利用特殊的類定義機(jī)制讓JavaScript看起來(lái)更像是Java及C#。這不禁令人擔(dān)心,隨著ECMAScript標(biāo)準(zhǔn)的演進(jìn)與其自有類似機(jī)制的推出,Ext選擇的作法未來(lái)還是否能夠得到廣泛支持。

Ext還采用專門的構(gòu)建流程。雖然這能夠規(guī)避構(gòu)建中的大部分阻礙,但大家可能會(huì)問(wèn),“為什么不采用gulp、grunt或者npm腳本之類的標(biāo)準(zhǔn)?”

盡管Angular 2主要使用TypeScript,但Angular 2與Ext間的區(qū)別在于:1)盡管強(qiáng)烈推薦,但大家并不一定需要使用TypeScript;2)TypeScript只負(fù)責(zé)實(shí)現(xiàn)部分功能,且實(shí)際效果與ECMAScript標(biāo)準(zhǔn)類似。因此,Angular 2的發(fā)展前景明顯要更為光明。

在這方面,另一款值得關(guān)注的框架為React JS。其應(yīng)用構(gòu)建流程全部采用行業(yè)標(biāo)準(zhǔn),但這款單元測(cè)試框架并不允許大家在測(cè)試中使用Karma。

可測(cè)試性如何?

毫無(wú)疑問(wèn),我個(gè)人要求全部框架都具備單元測(cè)試能力,因此Ext JS 4直接被淘汰出局。大家可能會(huì)強(qiáng)調(diào),MVC能夠用于測(cè)試控制器,但這是MVC的功能而非由Ext自身實(shí)現(xiàn)。

在另一方面,React的測(cè)試能力最出色,這也是我支持它的原因所在。但我認(rèn)為它仍然不太適合由企業(yè)客戶選擇,因?yàn)槠鋵W(xué)習(xí)周期太長(zhǎng)而且說(shuō)明文檔不太完善。

調(diào)研工作

好了,到這里各原則性問(wèn)題已經(jīng)相當(dāng)明確,但問(wèn)題在于我們要如何提前做好準(zhǔn)備?大多數(shù)具體信息往往要在員工實(shí)際使用某套框架后才會(huì)出現(xiàn)。

最好的辦法就是聽(tīng)聽(tīng)框架老用戶們的意見(jiàn)。在測(cè)試框架中,我的起步工作就是“我能在互聯(lián)網(wǎng)上找到多少與該框架相關(guān)的信息?”而第二個(gè)問(wèn)題則是,“該框架流行程度如何?”最后,我會(huì)聯(lián)系這款框架的反對(duì)者,聽(tīng)聽(tīng)他們對(duì)其做出的負(fù)面評(píng)價(jià)。

如何判斷一套框架不符合實(shí)際需求?

現(xiàn)在說(shuō)回標(biāo)題——要想選出一套錯(cuò)誤的框架,大家應(yīng)當(dāng)聽(tīng)信銷售人員的忽悠、別問(wèn)任何問(wèn)題,同時(shí)忽略一切之前提到的考量因素。

然后為自己的沖動(dòng)懊悔不已……

原文標(biāo)題:How Not to Choose a Framework

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

【編輯推薦】

【責(zé)任編輯:wangxueyan TEL:(010)68476606】

點(diǎn)贊 5
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
前端開(kāi)發(fā)者路線圖(2022 年版)
2017年21 個(gè)編程的熱門/冷門趨勢(shì)
Stack Overflow:2020年全球開(kāi)發(fā)者調(diào)查報(bào)告 TypeScript擊敗 Python | 互聯(lián)網(wǎng)數(shù)據(jù)資訊網(wǎng)
現(xiàn)代Web開(kāi)發(fā)需要學(xué)習(xí)的15大技術(shù)
React、Angular、Vue.js:三者完整的比較指南
2017年,你需要學(xué)習(xí)的JavaScript框架和主題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服