一個后端程序員如何被公司逼的開始寫前端代碼!奉勸各位最好選擇前后端分離的公司
hello~各位讀者好,我是鴨血粉絲(大家可以稱呼我為「阿粉」),在特殊的日子里,大家要注意安全,盡量不要出門,無聊的話,就像阿粉一樣,把時間愉快的花在學習上吧。
事情起因
阿粉自從學會Java以來,一直都是在從事關(guān)于Java的開發(fā),不論是換了幾家公司,阿粉一直都是負責的關(guān)于后臺的業(yè)務,很多都是前后端分離的,前端是寫前端的代碼,后端只負責邏輯實現(xiàn)和返回所需要的值,但是讓人沒想到的事發(fā)生了,公司前端臨時被其他項目組調(diào)走,領(lǐng)導要求項目還要上線,阿粉不得不再次扮演全職員工上線。
每天最多的時間就是看前端小姐姐寫的代碼,另外的一件事就是和前端小姐姐溝通怎么去寫前端代碼,為此阿粉還付出了兩頓飯的代價!
為什么要前后端分離
之前在看一個哥們的博客的時候,覺得這個哥們說的特別的好,為什么前后端分離,因為前后端分離已成為互聯(lián)網(wǎng)項目開發(fā)的業(yè)界標準使用方式,通過 Nginx + Tomcat的方式(也可以中間加一個nodejs)有效的進行解耦,并且前后端分離會為以后的大型分布式架構(gòu)、彈性計算架構(gòu)、微服務架構(gòu)、多端化服務(多種客戶端,例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎(chǔ)。這個步驟是系統(tǒng)架構(gòu)從猿進化成人的必經(jīng)之路。
說白了,前端和后端的區(qū)別在哪?
- 前端
通過 UI 給出的圖,做出相應的格式的網(wǎng)站,把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,這些前端內(nèi)容模塊上。
- 后端
把數(shù)據(jù)庫中的數(shù)據(jù),用 json 或者其他的格式,還給頁面,實現(xiàn)動態(tài)展示的功能,把精力放在java基礎(chǔ),設計模式,jvm原理,還有對性能的優(yōu)化上。
二者也是有本質(zhì)區(qū)別的,后端注重的是并發(fā),優(yōu)化,安全等,而前端注重的是瀏覽器兼容性,頁面是不是好看等。
阿粉現(xiàn)在的公司,還處于最原始的時期,那是個什么樣子的呢?
這種開發(fā)模式其實很多小公司還是使用這種開發(fā)模式,這種模式有很大的弊端存在,大家一定都知道,開發(fā)效率及其低下,很多時候,要先有圖,然后再 HTML 頁面,然后再是我們后端來補充數(shù)據(jù),這種方式之后出現(xiàn)問題我給大家來展示一下。
在這里,也是最容易出現(xiàn)問題的,如果線上出了問題,就出現(xiàn)了相互甩鍋的情況了;
前端會后端說:你那里有問題么?我這里的前端代碼沒啥問題呀!
后端對前端說:有點小小的問題,你看,這個樣式填充上去的時候,格式亂了,而且.....
接下來的事情很常見,前端坐到后端的位置上,開始調(diào)試代碼,這是不是很尷尬,一次兩次沒問題,但是次數(shù)多了,這個鍋到底該誰來背!肯定是后端,你看你連個前端代碼都不會改,心底里會給你個深深的鄙視!為了不讓領(lǐng)導對你鄙視,接下來你就出現(xiàn)了:
加班就變成了習以為常的事情了,這就是前后端不分離的弊端,現(xiàn)在很多小型企業(yè)都還是這種開發(fā)模式,和阿粉的小型公司一樣。前后端沒有分離的整體圖解如下:
既然前后端不分離的既然這么多,那么前后端分離肯定沒有這么多麻煩吧,是的,沒錯,前后端分離,寫代碼的速度明顯變快,而且要求也比較高,大家可以看圖:
從圖中看出來了一個問題,前端后端同時可以干活,光從這個上面來說,開發(fā)效率那是杠杠的呀,要是按照前后端不分離的時候,那時間周期可能節(jié)省一半左右的時間,雖然大部分的時間可能花在了討論接口的上面,但是實際開發(fā)起來,那速度可是飛快。
那么既然前后端不分離會出現(xiàn)問題,那么前后端分離會出現(xiàn)問題么?答案一樣是肯定的,也是會出現(xiàn)同樣的問題的,如果說客戶的“不合理需求”變了,只要說當時商量的接口和接口形式不變,那么很簡單,個人改個人的,不用想,開發(fā)效率依舊很快!
既然前后端分離了,那么后端還要會前端么?
之前星球的剛剛?cè)肼毜男』镒釉?jīng)問過我一個問題,我剛剛?cè)肼?。老大給我的活又是后端又是前端的,你說這個工作我到底是做還是不做,在這里阿粉想要給大家傳遞一些觀念!
剛?cè)肼殘龅男氯?/strong>
因為現(xiàn)在好多的人都是培訓出來的,而培訓出來的人百分之90的人是只會寫后端的代碼,但是對于JS,和HTML那是一點都不會,因為在培訓班的時候可能那些老師會對你說,沒事這東西是前端寫,不用你們來弄,實際上錯了。
公司很多時候,需要你去完成JS部分和簡單的修改HTML部分,但是相對而言,你如果說不會寫CSS的話,那么老大可能會原諒你,但是如果你說你不會JS,不好意思,老大可能在心里已經(jīng)有了辭你的念頭了,這都啥時候了,你竟然連JS都不會寫,對于新人而言,剛?cè)肼殘觯枰銓W的東西有很多,這只是其中的一部分,不可能說那么多人都去寫前端代碼,畢竟沒有那么多的“全棧”。
阿粉就是當初在公司,每天也是惡補前端,現(xiàn)在只能說JS沒有任何問題,比如說現(xiàn)在最火的Vue.js,還有之前比較火的Angular,而且會一些簡單的HTML,但是對于CSS,阿粉表示,真的不會。
這也是阿粉為什么會給起了這么一個標題,盡量的選擇前后端分離的公司,不然你一定會去寫前端的一部分代碼,畢竟小公司出了問題,一定是會找你的。
你公司需要你寫前端么?歡迎大家留言,小編非常樂意和大家交流心得。