原作者: Ilias Ismanalijev
文章來(lái)源:Medium
翻譯:Joyce Cheng
譯文僅供個(gè)人學(xué)習(xí),不用于任何形式商業(yè)目的,轉(zhuǎn)載請(qǐng)注明原作者舒萎、文章來(lái)源、翻譯作者及簡(jiǎn)書鏈接蹭沛,版權(quán)歸原文作者所有臂寝。
這是一個(gè)合理的問(wèn)題。對(duì)外行而言摊灭,前端開發(fā)一定看起來(lái)易如反掌吧咆贬。但如果是這樣的話,為什么前端開發(fā)者不是多如牛毛呢帚呼?
答案很簡(jiǎn)單:前端開發(fā)掏缎,就像任何特殊行業(yè)或體育比賽一樣,比它看起來(lái)難得多。它不難眷蜈,直至你把腳趾放進(jìn)去根欧,方知水很深。
前端開發(fā)比它看起來(lái)要復(fù)雜
且不說(shuō)服務(wù)器端的開發(fā)有多難端蛆,要知道客戶端的工作所遇到的問(wèn)題仍然很重要凤粗。作為一名前端開發(fā)者,大部分的工作必須用HTML和CSS完成今豆,這使得解決問(wèn)題可用的工具十分有限嫌拣。 JavaScript到處都有用,但是功能檢測(cè)意味著性能開銷呆躲。它意味著更多的代碼异逐,以及更多代碼出錯(cuò)的機(jī)會(huì)。此外插掂,一旦你的網(wǎng)站開始增長(zhǎng)灰瞻,CSS的使用將會(huì)很痛苦。它非常靜態(tài)辅甥,于是你最終不得不把代碼大量記在腦子里酝润。
陡峭的學(xué)習(xí)曲線,部分原因是由于該領(lǐng)域不斷變化的性質(zhì)璃弄。在前端要销,總有新東西可學(xué):響應(yīng)式媒體查詢,HTML應(yīng)用緩存夏块,CSS轉(zhuǎn)換疏咐,WebGL等。所有這些工具為前端開發(fā)者帶來(lái)了令人興奮的新的可能性脐供,但也改變了他們工作完成的方式浑塞。
這也意味著前端開發(fā)的教學(xué)方式在盡可能頻繁并準(zhǔn)確地改變著。不幸的是政己,沒(méi)有哪位教練能夠期待與不斷變化的技術(shù)保持同步酌壕,也就是說(shuō)每一個(gè)新進(jìn)入職場(chǎng)的前端開發(fā)者都已經(jīng)落后了好幾個(gè)階段,他們必須努力填補(bǔ)自己的工具箱匹颤,而必要資源的供應(yīng)是永無(wú)止境的仅孩。
前端開發(fā)不僅是開發(fā)
前端不僅僅是代碼。它跟代碼與用戶的交互有關(guān)印蓖。在客戶端的開發(fā)中辽慕,不佳的設(shè)計(jì)很容易成為產(chǎn)品與受眾之間的障礙。一名好的前端開發(fā)者需要理解網(wǎng)絡(luò)性能和決定線上成功的不同評(píng)判標(biāo)準(zhǔn)赦肃。這意味著HTTP緩存溅蛉,優(yōu)化DNS查詢時(shí)間公浪,極簡(jiǎn)化構(gòu)建腳本,并且為項(xiàng)目選擇最佳的CSS布局機(jī)制船侧。
不僅如此欠气,一名好的前端開發(fā)者還需要理解市場(chǎng)。這意味著明白用戶的心理镜撩,為產(chǎn)品的易用性與可用性區(qū)分優(yōu)先次序预柒,并維持強(qiáng)大的搜索引擎優(yōu)化。這還意味著對(duì)設(shè)計(jì)理論有一個(gè)基本的了解袁梗,并偶爾參與幾乎不可能實(shí)現(xiàn)的平面設(shè)計(jì)工作宜鸯。
對(duì)于客戶端開發(fā)而言,注重產(chǎn)品的安全也是很重要的遮怜,要防止CSRF淋袖,XSS,DNS鎖定和點(diǎn)擊劫持锯梁。但并不是所有的前端開發(fā)都是客戶端的——即使前端開發(fā)者也需要時(shí)不時(shí)地深入到服務(wù)器端代碼即碗。這是對(duì)的:一個(gè)好的前端開發(fā)者也需要是一個(gè)好的后端開發(fā)者。
這意味著產(chǎn)品要兼容一切
開發(fā)者彼得-保羅·科赫陌凳,道格拉斯·克羅克福德剥懒,和尼古拉斯·扎卡斯都同意——“前端開發(fā)是世界上最糟糕的開發(fā)環(huán)境。”原因在于:兼容性冯遂。一旦一名前端開發(fā)者完成了他的工作(以及一大堆其他的工作)蕊肥,他們得立馬回到工作上谒获,確保產(chǎn)品在每一種瀏覽器蛤肌、移動(dòng)設(shè)備,甚至陽(yáng)光下的高端烤箱上功能最佳批狱。這可是一大堆的工作啊裸准。
即興思考一下,你能想到多少互聯(lián)網(wǎng)瀏覽器赔硫??jī)H舉幾例炒俱,前端開發(fā)者有Chrome,F(xiàn)irefox爪膊,Opera权悟,Safari,IE瀏覽器推盛,以及現(xiàn)在的Edge要開發(fā)——更別提每個(gè)瀏覽器過(guò)去的各種版本峦阁,都必須考慮兼容性。想想這個(gè):IE瀏覽器的每個(gè)版本耘成,從6到10榔昔,都有其自身獨(dú)特的缺陷與局限驹闰。但是,滿足每一個(gè)瀏覽器的需求仍然很重要撒会,否則的話許多用戶將無(wú)法訪問(wèn)你的產(chǎn)品嘹朗。
而這僅僅是臺(tái)式機(jī)市場(chǎng)。現(xiàn)在考慮一下用戶可能用來(lái)訪問(wèn)你的服務(wù)的每一種型號(hào)的智能手機(jī)與平板诵肛,它們每一個(gè)都要求不同的輸入方式屹培。這項(xiàng)服務(wù)在沒(méi)有鍵盤的情況下還能工作嗎?沒(méi)有鼠標(biāo)呢怔檩?它支持觸摸屏嗎惫谤?它有手勢(shì)嗎?這項(xiàng)服務(wù)必須在所有情況下都有效——即使是在用戶調(diào)整輸出以滿足自己的需求的時(shí)候珠洗。無(wú)論用戶是調(diào)整文本大小溜歪,改換顏色還是完全禁用CSS或JavaScript,產(chǎn)品都必須保持工作许蓖。就如同前端開發(fā)者布拉特·博赫卡里奧夫所說(shuō)蝴猪,“我們?cè)诟鞣N能想到的設(shè)備所運(yùn)行的不一致的平臺(tái)上使用著蹩腳的工具…不管是什么,要確保產(chǎn)品適用于每一個(gè)人膊爪。”
所以自阱,為什么優(yōu)秀的前端開發(fā)者這么難找?因?yàn)橐蔀橐幻麅?yōu)秀的前端開發(fā)者是很難的——或許比你想象的要難得多米酬。一名優(yōu)秀的前端開發(fā)者必須要有耐心沛豌,決心和意愿,去滿足傳統(tǒng)開發(fā)之外的多種不同角色赃额,與此同時(shí)要確保產(chǎn)品對(duì)于盡可能多的受眾而言是最優(yōu)的——是的加派,那必定是來(lái)之不易的。