前言
前言很簡單,因為掘金出了個技術(shù)盤點的話題,哈哈哈哈
但是我覺得這個話題蠻有意思的,可以看看大家的技術(shù)廣度,可以進行分享和學習以及討論
所以這里說一下我對我的前端技術(shù),做一下盤點和總結(jié)
因為我的開發(fā)年限有限,所以我覺得我的盤點更適合0-3年的前端人群,所以技術(shù)范疇沒有高年限大佬那么廣,請見諒~
個人技術(shù)棧
我對我的較為熟悉的、主要的前端技術(shù)棧做個介紹,然后分段進行一下總結(jié)
Vue、TS、小程序、UniAPP、ThreeJS、Node后端、鴻蒙(目前我先放在前端這里,如果你說歸屬于移動端,那也沒問題)
Vue
在國內(nèi)Vue和React的爭論一直存在,但是我覺得并無優(yōu)劣之分,都是很優(yōu)秀很好的框架,與原生相比,二者都方便了我的開發(fā)
并且二者的生態(tài)也很好,有很多周邊的庫,以及衍生的上層框架
我覺得討論好壞是意義不大的,如果你覺得不好的話,可以不去使用自己不心儀的框架,并且大可以去自己做一個更好的開源框架,或者是哪里讓你覺得不舒服了,大可以提個PR
我覺得討論這個意義真的不大,但是我們可以去討論一下框架的實際作用,在我們工作或者開發(fā)層面有沒有幫助
在國內(nèi),Vue的使用范圍是不用多說的,不管它是不是培訓機構(gòu)或者是什么別的原因普及的,但是在國內(nèi),Vue足夠熟練的話,大概率是能有個工作的(當然,并不完全,畢竟環(huán)境如此嚴峻)
在國外的話,Vue也有不少,但是遠不及國內(nèi)這么普遍,這是一個不爭的事實,所以如果你真的想去國外,或者是找遠程的話,學React我覺得是比較有必要的,當然,這只是個建議
而且就是在國內(nèi),要求React和Vue都會的的好像也慢慢變多了
所以我真的覺得,這已經(jīng)不是需不需要學的了,好像二者都要會似乎是必須技能了?但是也不用太擔心,不考慮源碼層面,其實上手另一框架進行開發(fā)是很快的~
Nuxt
關(guān)于Nuxt,大家都知道它是Vue的一個上層框架,處理SSR問題的,目前是Nuxt3的版本
首先,我沒什么資格討論這個框架的優(yōu)劣
我說一下我的開發(fā)體驗,約定大于配置的原則貫穿了這個框架,但是也因此有一定的學習成本,而且在國內(nèi)大部分的公司,好像沒用上Nuxt,至少在招聘要求上,Nuxt好像不怎么提,但是在一些大廠我是知道在用SSR的,之前我在某廠的時候用的Next
我并不清楚大家在公司是否業(yè)務上會用到這個框架,但是我之前在國企給公司做官網(wǎng)的時候,提出用Nuxt做,被無情否決了,原因有幾方面吧
這是我當時的開發(fā)任務表
- 成本問題,公司人員為了這官網(wǎng)需要學習一個新的框架嗎,而且資源并不多,穩(wěn)定性誰也無法保證
- 真的需要這個SSR嗎
- Nuxt全棧對于一個技術(shù)主管是Java出身的人,毫無優(yōu)勢
后來我從公司離職了,現(xiàn)在我也不知道用了什么技術(shù)棧做的官網(wǎng),不排除JSP的可能性,這里大家會說JSP遠古時代的東西了,但是技術(shù)主管也是從那個時代過來的,而且JSP在服務端渲染上還是鼻祖級別
那么Nuxt好嗎?我覺得對學Vue的人來說,真的是個不錯的框架,當然除了SSR,你做官網(wǎng)也可以有SSG的選擇,但是Nuxt作為一個框架來說更為完善,我覺得目前更適合個人網(wǎng)站層面的開發(fā)
可惜的是,我在Github瀏覽的時候,Nuxt好的項目比較少,尤其是Nuxt3的項目,當然,這是在上半年的時候了,而且目前市面上Nuxt教程也不足,為學習帶來一些不小的挑戰(zhàn)
同時Next的資源會更多一些
總的來說,我覺得SSR框架是很好的趨勢,也很有學習的必要~
TS
今年罵TS的人格外多,什么什么取代TS的文章都很火,遺憾的是,我還并沒有去使用JSDoc,我無法進行比較層面上的討論,所以我只能說一些我關(guān)于TS的看法
我個人覺得,你可以把JS和TS看成是兩門語言
在封裝層面,我覺得TS對我的幫助是比較大的,因為在平時開發(fā)中,我封裝組件以及hook比較頻繁,我覺得TS帶給我的體驗層面是不錯的
在頁面開發(fā)層面,其實TS大部分是做一些提示,甚至在寫.vue組件的時候,看到TS的地方并不是很多,看到的也是引入封裝過一些限制
有一個東西比較有意思,就是Typescript類型體操方面,這可能算是一個拔高的地方?在面試中會遇到?我并不是很清楚,但是我看的其實比較頭疼。。真的不想看,而且我面試沒被問過類型體操。。
說實話,并沒有仔細地去研究這方面,因為就我現(xiàn)在的開發(fā)過程中,復雜的類型體操過于加大了我的開發(fā)難度,而且實在用不上,當然,可能是我開發(fā)的項目過于簡單,可能大佬們在大項目的開發(fā)過程中已經(jīng)熟練于心了
那么TS要學嗎?我的建議是需要的,因為公司項目很多都在用,但是就我接觸的項目中來說,TS的使用并不復雜,合理地運用TS會讓項目更有健壯性,可以放心食用~
當然,如果你覺得js足夠,那也沒有任何問題,js就是這么一個奇妙的語言~
小程序、uniAPP
這二者我放在一起了,比較類似
小程序開發(fā)似乎是前端必備的一個技能了,目前主要是兩種開發(fā)方式
微信原生開發(fā)、UniAPP開發(fā)
其實如果是單單開發(fā)微信小程序的話,我覺得原生的體驗會好一些,我覺得這比較好理解,簡單來說,微信原生小程序就是干小程序的,是官方的,而Uni會有一些限制,而且在調(diào)試的時候還要配合小程序的開發(fā)工具
但是如果你考慮多端的話,那么答案也比較簡單了,肯定是uni
我其實是uni的粉絲,uni對于我這種個人開發(fā)者可以說是福音,它提供了一個完整的全棧生態(tài),如果你說小程序也可以用云開發(fā),沒問題,但是在我當時使用的時候云開發(fā)的體驗和功能方面的確不是uni,而且uni全棧的生態(tài)做的的確很好
而且uni對我這種想獨立做產(chǎn)品的獨立開發(fā)者來說,的確很方便
有很多人說小程序、說uni哪哪有問題,都是bug,真難用
其實,這也是我想說的。。這二者的開發(fā)體驗相較于正常的pc的確沒法比
但是不可否認的是,小程序在國內(nèi)的用戶使用度太高了,我曾經(jīng)做自己產(chǎn)品的時候,讓很多人幫忙填了問卷,就是產(chǎn)品的形式,大致是下面幾種
- App
- H5
- PC
- 小程序
App和小程序占了90%,而二者之間小程序比App還高了一些
所以我覺得小程序是沒有辦法的辦法,如果有一天小程序真的沒有用戶了,那我真的放倆掛鞭慶祝一下
同時我需要吐槽的是小程序的組件庫的確很少,基本上就選Vant吧,Tdesign小程序版的真的不好用,別的我也沒用過,也不想試了。。要是varlet能做小程序的就好了(狗頭)
那么學還是不學呢?我的建議是如果需要用了再學即可,二者的學習成本不高,大部分可以直接做項目入手,文檔也比較完善
Threejs
今年比較熱門的話題了,前端可視化,數(shù)字孿生,3D大屏,貌似很多人不知道卷什么,看3D這玩意高級,就都卷ThreeJs去了(babylonjs爆哭,為啥沒有卷我)
很多人覺得3D很難,沒錯,的確很難,但是難的是openGL,并不是three,難的是高級用法,例如著色器,而不是做個智慧廠房
拿我來說,你讓我做個那種炫酷的高大上的粒子效果,還有很多國外的炫酷小游戲,炫酷的特效,那對不起,我真不太行,但是你拿個現(xiàn)成模型,讓我做個廠房,地下室,管道,這其實是不難的。。這也是我當時做的東西
而國內(nèi)大部分的公司也就是要后者而已,所以沒必要擔心自己學不會,網(wǎng)上資料這么多,而且大家都有資源,沒必要過于擔心
同時,現(xiàn)在可視化會和零代碼或者是低代碼配合在一起,比如帆軟的產(chǎn)品
再或者是專注于可視化產(chǎn)品解決方案的公司,以thingjs舉例
我覺得是比較鮮明的例子,可以沒事看看
「沒有打廣告,就是大家可以去關(guān)注一下現(xiàn)在市面上可視化的一些產(chǎn)品,從而進行思考」
Node后端
這是我最想說的一個話題
我理解的Node后端的框架大致是下面這些(包括但不完全)
express、koa、koa2、egg、nest
這是我學過并應用過的一些,我說說我的看法
「前端有必要有一些后端的思維」
「有必要學習一下這種Node后端的框架」
「但是如果你沒什么基礎(chǔ),沒必要學習太復雜的」
在國內(nèi),express、koa、egg其實應用已經(jīng)不少,甚至我之前在公司的時候也會去用express、koa去寫插件
而且最關(guān)鍵的是,expres、koa這種的框架學習成本不高,并且已經(jīng)足夠你有一定的后端思維了
而nest,我其實不是特別推薦初級前端去學習,至少在國內(nèi)的話,我覺得是這樣的,但是國外大可以去選擇
首先,nest的上手難度對于前端來說不低,作為Java出身的我,看到nest真的很親切,但是更覺得nest在國內(nèi)的受眾不太行
雖然工作的年限不長,但是其實我在好多公司待過,有大廠、有國企,但是在國內(nèi)的公司,很難去選擇nest去做公司后端架構(gòu)(很少,但是不完全)
90%以上會選擇Java、甚至是Go等等,而且會使用express、koa去做插件,但是基本上不會去選擇nest
可能會被很多nest的噴,因為現(xiàn)在nest天天被推薦,其實我并不否認,nest真的是個很好的框架,他很優(yōu)秀,但是我只是覺得它不適合國內(nèi)
你可能會說,nest可以做完整的系統(tǒng),分布式啥的都沒問題,但是國內(nèi)還是直接用spring全家桶
你說一說nest對比spring的優(yōu)勢在哪呢,尤其是在國內(nèi)是后端偏技術(shù)主導的情況下
當然如果你的公司技術(shù)選擇了nest,那真的很棒,是有助于技術(shù)提升的!
當然如果你真的想去學習更系統(tǒng)的Node后端,那么可以去學,或者說你公司真的用到了,也可以去學,你會收獲很多東西
我覺得資深的前端可能更適合,因為他們可能沒什么可學的了。。但是對于初級來說,真的適合嗎
同時目前有些大佬出的課其實是很不錯,質(zhì)量很高,就不說具體名字了,畢竟這里不是打廣告
鴻蒙
這里我把鴻蒙放在前端的范疇了,是因為我覺得我作為一個前端愛好者,入手鴻蒙很絲滑,并且覺得沒什么門檻
當然,flutter的小伙伴也這么覺得,所以你們說這算是移動端我也沒什么意見~
最近我出了一套鴻蒙的教學,開了一個專欄,起因是最近鴻蒙在掘金很火,但是教學偏少,于是就出了一些文章帶著大家入門一下
就我個人覺得吧,目前鴻蒙其實是有不少問題的,文檔有問題,生態(tài)不完善,真機卡頓等問題,開發(fā)體驗真的蠻差的
所以我推薦可以當做愛好進行學習,但是說要是當飯碗來學習,至少得看明年Next版本怎么樣才能繼續(xù)說下去
因為我不是培訓機構(gòu),是一個比較客觀的角度,所以實話實說我覺得作為一個前端來說,學上面的東西遠比學習鴻蒙性價比來的高
雖然我會繼續(xù)做鴻蒙的專欄,但是并不代表我就很推薦去學,因為就是鴻蒙哪天真的市場真的起來了,你現(xiàn)學也來得及~
而且那時候生態(tài)也比較完善了,對我來說,我只是覺得很感興趣,而且比較享受這種探索的感覺,才去做的
其它
有很多沒細說的技術(shù),因為其實我覺得區(qū)別不大,比如React和Next,我覺得就是對比Vue和Nuxt
還有一些了解并不深的東西,比如低代碼,微前端
很遺憾,我并沒有接觸過這二者,所以無法進行建議和評價(但是貌似口碑都不太好?)
還有就是webcomponent,其實這真的是個不錯的東西,但是受眾真的很?。ㄟ@不是個新東西,這么多年了也沒多火)
我覺得是國內(nèi)更注重產(chǎn)出多一些,而不是技術(shù)探索方面
還有比較熱門的Rust,也很不錯,國外和開源上面廣受好評,并且很適合基建方面,但是對于咱們這小開發(fā)來說,倒也先不用在意
還有關(guān)于前端單測方面,這個其實我用的很多,但是基本是在開源項目當中,因為很多開源項目你不走單測的話,PR是不給過的,現(xiàn)在我主要是vitest,比jest要好用不少,但是這玩意,大家在平時公司開發(fā)的話,能用到多少呢,公司有沒有正規(guī)的CR都不一定
關(guān)于monorepo也不是啥新東西了,也談不上趨勢不趨勢的
還有一個是組件庫的問題,尤其是Vue的,最近ElementPlus不知道為什么天天被噴
其實現(xiàn)在來看ElementPlus的確是有一些過度封裝的意思,但是我覺得目前ElementPlus依舊還是Vue3組件庫的典范,當然還有很多組件庫很優(yōu)秀,不一一列舉了,如果你覺得ElementPlus不好的話,大可以自己去搞一個,開源出來,給XDM開開眼,而且別的組件庫我也都用過,別說有多多好用了。。反正我最開始用的是AntdVue我的使用體驗。。。(當然,也很優(yōu)秀!)
我想說的是,人家開源出來給你簡化開發(fā)過程的,你覺得不好可以提issue,提PR,而不是整天說這個不好,那個不好,沒太大意義
結(jié)尾和建議
這里更多是對初級一些的前端朋友,跟我差不多年份的
高級、資深的佬就當看個樂就行
如果你會Vue的話,建議學一下React,工作幾率會變高的
面試八股越來越少了,就是八股也是偏難一些的八股了,基本就是挖項目了,或者是場景題
當然,大廠的話還是那樣,會多考一些計網(wǎng)和操作系統(tǒng)
可以去試著看一些源碼,并不是Vue或者是React的,因為可能看起來并不容易,但是可以去看一些組件庫的項目,比較容易懂一些,學一些思路和封裝我覺得對能力是很有提升的
工作難找,我發(fā)現(xiàn)初級的難找,佬也難找,所以也沒必要過于焦慮,只能繼續(xù)學下去
國外遠程比較火,技術(shù)棧偏向React全棧(React、Next、nest),看了一些佬的文章,看的那些招聘網(wǎng)站技術(shù)棧基本都是這樣的
別想著學Java啥的。。沒必要
加油吧,學無止境~
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。