為什么做java開(kāi)發(fā)的公司需要那么多程序員?
不是說(shuō)做java的人多,而應(yīng)該是說(shuō)做后端的人要比做前端的多,java可能會(huì)比較明顯一點(diǎn)。
為什么呢?
我們都知道 java是一門靜態(tài)語(yǔ)言,相對(duì)于python、php來(lái)說(shuō),開(kāi)發(fā)成本會(huì)相對(duì)偏高 ,畢竟php和python說(shuō)的難聽(tīng)一點(diǎn)就是一個(gè)腳本語(yǔ)言,上手極快,項(xiàng)目成型也快,由于java的語(yǔ)言特性,開(kāi)發(fā)效率肯定無(wú)法和php、python相比,php一個(gè)做完的項(xiàng)目,java可能需要3個(gè)月。
由于現(xiàn)在的項(xiàng)目都屬于敏捷開(kāi)發(fā),需要迅速的搶占市場(chǎng),所以使用 java 開(kāi)發(fā)項(xiàng)目的團(tuán)隊(duì)就不得不招更多的人,或者 007,007 終有一天會(huì)激起民憤,所以選擇招人是一個(gè)比較完美的解決方案,利用人數(shù)來(lái)彌補(bǔ)語(yǔ)言開(kāi)發(fā)慢的缺陷。
上面說(shuō)的是第一點(diǎn),java開(kāi)發(fā)效率相對(duì)于php、python來(lái)說(shuō)較慢,還有一點(diǎn)是springcloud微服務(wù)的崛起。
為什么說(shuō)微服務(wù)的崛起也增加了java的人數(shù)呢?一個(gè)單體服務(wù)的時(shí)候,一個(gè)人把所有的事情都干了,現(xiàn)在把一個(gè)系統(tǒng)拆分成許許多多的子模塊,然后讓每個(gè)人負(fù)責(zé)一個(gè)模塊,比如:張三負(fù)責(zé)用戶模塊;李四負(fù)責(zé)訂單模塊;王五負(fù)責(zé)統(tǒng)計(jì)模塊,這樣哪個(gè)模塊出問(wèn)題就能直接找到負(fù)責(zé)的人,分工明確,不會(huì)造成相互甩鍋,分工明確還有一個(gè)好處就是,每個(gè)人都可以把自己的模塊設(shè)計(jì)的很好,有時(shí)間去專研,如果一個(gè)方法被10個(gè)開(kāi)發(fā)改來(lái)改去,半年后,我可以說(shuō),除了上帝,誰(shuí)都看不懂這個(gè)方法了,所以這也是提高代碼質(zhì)量的一種方式,分布式也提升了程序的性能,既然性能提升了,那么自然維護(hù)成本也會(huì)相應(yīng)的增大。
還有一點(diǎn)可能就是,java程序員的事情比較雜,前端有時(shí)候也需要做,運(yùn)維有時(shí)候也要干,而且后端開(kāi)發(fā)本來(lái)就會(huì)比前端開(kāi)發(fā)多,比如:中間件的維護(hù)者、數(shù)據(jù)庫(kù)的維護(hù)者、框架的設(shè)計(jì)者等等都是后端需要考慮的事情,如果把這些都劃分給對(duì)應(yīng)的人,假設(shè)中間件一個(gè)人、數(shù)據(jù)庫(kù)一個(gè)人、架構(gòu)一個(gè)人、業(yè)務(wù)開(kāi)發(fā)一個(gè)人、算法一個(gè)人,就這樣都5個(gè)人了,前端才一個(gè)。
如果你去一家公司面試發(fā)現(xiàn)這家公司的后端比前端多得多,那么說(shuō)明這家公司比較正規(guī),你入職之后不會(huì)做太雜的事情,如果只有一個(gè)后端,那么恭喜你,從今以后,你就是一個(gè)全站工程師,沒(méi)有你不會(huì)的,只有公司沒(méi)有的。