前端難點(diǎn)在哪里呢?

1,業(yè)務(wù)和極限邊界的理解:
是的沒錯(cuò),業(yè)務(wù)理解比技術(shù)水平高還要重要,目標(biāo)決定過程,一個(gè)需求實(shí)現(xiàn)有很多技術(shù)方案,如何選擇最適合業(yè)務(wù)的比較難,也是考驗(yàn)一個(gè)前端經(jīng)驗(yàn)是否豐富的標(biāo)準(zhǔn)。我舉個(gè)實(shí)際例子,比如我們要做一個(gè)H5全屏視頻的項(xiàng)目,直接 video 標(biāo)簽就可以了,但是針對(duì)不同的瀏覽器需要設(shè)計(jì)相應(yīng)的降級(jí)方案,比如視頻上需要有交互,某些瀏覽器視頻是最高層級(jí),那么程序應(yīng)該如何處理這一類問題,產(chǎn)品是無法理解的,需要技術(shù)提出來,并給出建議,否則測試階段就無法保障質(zhì)量和項(xiàng)目進(jìn)度,甚至可能導(dǎo)致項(xiàng)目重寫或者實(shí)現(xiàn)不了,換方案。
2,對(duì) BUG 的理解
和問題解決:依然不是一個(gè)技術(shù)能力高低的問題,而是一個(gè)思維方式的問題,一些初級(jí)的前端遇到解決不了的問題一般都是先百度一下,厲害點(diǎn)的可能 google 一下,但是并不是所有 bug 都可以搜到的,遇到一些無法理解的 bug 如何處理才是考驗(yàn)前端能力的一個(gè)門檻。比如是否能靈活運(yùn)用 devtools 里的一些功能來分析定位,比如內(nèi)存泄露,比如某些機(jī)型特別卡頓,可以快速定位到問題點(diǎn)。還有一些遠(yuǎn)程的客戶遇到了 bug,你沒有辦法到達(dá)現(xiàn)場,應(yīng)該如何處理這種場景,快速定位問題等。
3,代碼風(fēng)格和設(shè)計(jì)模式:
無論你是寫 vue 還是寫 react 還是寫 nodejs 或者純原生 js 的 sdk,都繞不開代碼風(fēng)格這個(gè)問題。老板不管你怎么實(shí)現(xiàn),反正我就要明天上線,可是如何維護(hù)和組織代碼這個(gè)問題是個(gè)經(jīng)典的編程難題,是喜歡 oop 還是函數(shù)式,如何靈活擴(kuò)展你的類或者抽象你的方法,參數(shù)如何設(shè)計(jì),這些如果像題主一樣,理解為照抄別人,那么第一個(gè)寫這個(gè)功能的人是怎么設(shè)計(jì)出來的呢?前端 API 大家都說越來越簡單了,但是面試的時(shí)候問到設(shè)計(jì)模式能夠真正靈活運(yùn)用到項(xiàng)目里的沒幾個(gè)。
4,對(duì)前后端,客戶端的理解:
優(yōu)秀的前端不僅僅只是會(huì)前端,前端是一個(gè)需要和全部門打交道的工種,如果不理解客戶端的運(yùn)行機(jī)制或者后端服務(wù)的運(yùn)行邏輯,是無法很好的做到和其他部門溝通技術(shù)方案的,比如 hybrid 方案一定是一個(gè)又懂客戶端又懂前端的人發(fā)明的,像 server render一定是需要你具備一定的后端能力甚至高并發(fā),大流量場景的人才能真正 hold 住的。能做到以上四點(diǎn)的話,我覺得至少已經(jīng)是個(gè)中高級(jí)前端人才了,很多技術(shù)博主迷信于比拼技術(shù)水平,算法難度,卻忽視了作為一個(gè)公司最需要前端解決的是什么,所以很容易造成許多剛?cè)肼殘龅娜擞幸环N錯(cuò)覺,什么東西都很簡單,真正需求來了的時(shí)候又總因?yàn)楦鞣N各樣的問題導(dǎo)致延期。水平差距我理解也主要體現(xiàn)在這幾個(gè)方面。
