我們真的需要全棧開(kāi)發(fā)嗎?
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)
Web應(yīng)用程序的開(kāi)發(fā)涉及許多活動(dòng),例如:
捕獲用戶(hù)故事 創(chuàng)建原型設(shè)計(jì) 開(kāi)發(fā)核心組件 構(gòu)建原型 開(kāi)發(fā)可運(yùn)行的應(yīng)用程序 部署 測(cè)試 最終被企業(yè)用戶(hù)接受
Web應(yīng)用程序開(kāi)發(fā)的整個(gè)生命周期需要用到很多技術(shù)。近來(lái),我們看到全棧開(kāi)發(fā)人員的需求持續(xù)高漲。
假設(shè)有一個(gè)足球隊(duì)(或其他任何體育團(tuán)隊(duì))。我們需要專(zhuān)業(yè)的前鋒、中場(chǎng)、后衛(wèi),還有一個(gè)守門(mén)員。有時(shí),全能選手可以幫助我們贏得一場(chǎng)比賽甚至一系列比賽。但是,所有團(tuán)隊(duì)都需要一些專(zhuān)業(yè)人士。全棧開(kāi)發(fā)人員很有必要,但僅靠全棧開(kāi)發(fā)還不夠。
為什么我們需要一個(gè)全棧開(kāi)發(fā)人員?
簡(jiǎn)單來(lái)說(shuō),可能我們需要某個(gè)人同時(shí)兼顧后端API和UI組件。
公平地說(shuō),在下列情況下,全棧開(kāi)發(fā)人員能夠發(fā)揮出很大作用:
小團(tuán)隊(duì),最多3~4個(gè)成員 改進(jìn)項(xiàng)目,而且預(yù)算很有限 支持和維護(hù)項(xiàng)目,開(kāi)發(fā)人員需要對(duì)應(yīng)各類(lèi)工作
但是,如果團(tuán)隊(duì)有很多成員,那么全棧開(kāi)發(fā)人員就不會(huì)帶來(lái)任何好處,甚至造成負(fù)面影響。
為什么?
服務(wù)/API的基本原理是服務(wù)抽象:
服務(wù)抽象包含有關(guān)服務(wù)內(nèi)封裝的所有細(xì)節(jié)(比如邏輯、實(shí)現(xiàn)和構(gòu)建服務(wù)所用的技術(shù)等),可以向服務(wù)使用者提供有關(guān)服務(wù)的詳細(xì)說(shuō)明,而用戶(hù)可以通過(guò)特定的方式使用該服務(wù)。
現(xiàn)在,我們來(lái)仔細(xì)思考一下,就會(huì)發(fā)現(xiàn)負(fù)責(zé)端到端實(shí)現(xiàn)的開(kāi)發(fā)人員將很容易被自己的行為和責(zé)任所誤導(dǎo)。這樣的代碼庫(kù)會(huì)出現(xiàn)許多幾個(gè)問(wèn)題,而團(tuán)隊(duì)需要等到將來(lái)才會(huì)發(fā)現(xiàn)。
相反,我們可以要求全棧開(kāi)發(fā)人員擔(dān)任UI或后端專(zhuān)家,并隨著項(xiàng)目的推進(jìn),將他們切換到其他角色。
從開(kāi)發(fā)周期的角度來(lái)看,下面幾個(gè)方法可以讓團(tuán)隊(duì)不再依賴(lài)于全棧開(kāi)發(fā)人員:
API合約 模擬服務(wù)
如果你認(rèn)為上述兩種方法不過(guò)是小事一樁,那便最好不過(guò)了。2021 最新 Java 面試題出爐,分享給你~
但如果你認(rèn)為這兩項(xiàng)工作非常耗時(shí),而且大有裨益,則請(qǐng)注意以下幾點(diǎn)。
API合約并不意味著必須擁有OpenAPI / Swagger文檔。API合約也可以只是API和UI開(kāi)發(fā)人員之間通過(guò)書(shū)面或電子郵件達(dá)成的協(xié)議。 測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)(TDD)是很好的選擇。但是,正確理解并正確執(zhí)行TDD并非易事。相反,你應(yīng)該從模擬服務(wù)開(kāi)始,并輔助你完成單元測(cè)試或端到端的測(cè)試。 React拿到了16.8萬(wàn)顆星星,Vue拿到了18.3萬(wàn)顆星星. Mirage有4千顆星星,MSW有5千顆星星。
GitHub上的這些數(shù)據(jù)表明,前端開(kāi)發(fā)社區(qū)剛剛開(kāi)始采用測(cè)試驅(qū)動(dòng)的方法。
Mirage減少了對(duì)API的依賴(lài),并可以快速跟蹤Web應(yīng)用程序的開(kāi)發(fā)。
總結(jié)
我自己就是一名全棧開(kāi)發(fā)人員,而且也是架構(gòu)師。
本文所表達(dá)的意思完全是我個(gè)人的看法,希望對(duì)你的團(tuán)隊(duì)有所幫助。另外,關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):面試,可以獲取我整理的 Java 系列面試題和答案,非常齊全。
原文鏈接:https://javascript.plainenglish.io/do-you-really-need-a-full-stack-developer-72b36c4949b1
作者 | Prasad Jayakumar
譯者 | 彎月 責(zé)編 | 歐陽(yáng)姝黎
出品 | CSDN(ID:CSDNnews)






關(guān)注Java技術(shù)棧看更多干貨


