前後端分離實際容易產生的問題

前後端分離現在火了很多年,在實際中新技術的使用一般是先在一些大廠中採用,比如在招聘網上大廠的前端招聘node要求比較高,而在中小型廠中對node的要求只是會用webpack打包工具以及npm包管理就可以了。最近幾年傳統公司、中小型公司開始構建前後端分離模式,前後端分離的好處網上文章很多,簡單說前端可以專注前端的開發,後端專注後端開發,開發效率和質量都會得到提升,但在實際項目組中因爲很多leader資歷比較老,思維方式還是傳統的軟件開發的思維,所以構建出來的團隊只是前後端分離的形。我分享下我轉前端以來待的3家公司前後端分離模式踩的坑,也自己整理總結下前後端分離模式中要提前做好的協調和準備。

正式轉前端,第一次接觸前後端分離

我之前是做.net,做的項目大部分是後臺管理系統,那時候沒有分前端後端,一般是一個功能從數據庫到前端一起做,所以工作按時間分佈一半時間敲C#代碼一半時間寫js,那時候後臺管理對頁面美觀的要求不高考慮開發效率所以一般都是用extjs、jQuery easyUI以及後面出來的bootstrap把樣式封裝好了,只要用裏面的組件拼接頁面實現業務邏輯就可以了。但隨着C#在市場的需求越來越少,開始感覺到危機,考慮要不要轉行。那時候在開發羣認識一個大佬招前端Vue,當時Vue剛出來沒多少久,很難招到人只能改變招聘要求找原生js基礎相對比較好的,就這樣我進入了這家創業公司也正式進入全職前端行業。這家公司後端3個人前端3個人,前後端的比例1:1。

因爲團隊不大而且前後端框架都是開發老大搭建的,對前端和後端都有所瞭解,所以前後端合作的矛盾沒有那麼突出,但也有些問題和矛盾,這些矛盾在我後面兩家公司凸顯的更加明顯。

  • 接口文檔在開發的哪個階段出來。這家公司的模式是邊開發邊出接口文檔,也就是開發完一個出一個,這種方式的缺點在後面詳細說到,因爲團隊不大所以導致的現象不突出,沒有成爲開發效率的主要限制因素,但也會出現前端沒事情做等後端接口文檔,開發完之後前端bug比後端多一些。

  • 用前言vue1.0開發,開發中很多不方便和坑,2.0做了很多優化,太注重組件的複用,想把所有差不多的都封裝成一個組件導致if太多太過複雜難以維護。

最後因爲產品一直上線不了加上公司內部結構問題產品和研發各種甩鍋掙權,產品掙權成功佔主導,研發陸續走人崩離瓦解。

傳統思維公司,前後端正式開戰

第二家公司的開發模式比較傳統,因爲後端的發展歷史比前端長很多,複雜度都比前端多這是事實,項目重點業務部分和數據庫都是在後端,所以一般都是後端的當研發技術老大無可厚非,如果老大隻做過後端的開發沒怎麼接觸過前端,前端在公司情況相對後端會差些。
先說說這家公司研發組織結構到我在職的後期,後端13人左右平均工作年限3~4年左右,前端8人左右平均工作年限1~2年左右,也就是後端大部分是3年以上的,一兩個是1年左右的,前端大部分是1~2年左右,這些當中很多是非計算機專業後面培訓轉前端的,一些是剛畢業的。我雖然工作3年以上,但做全職前端也纔不到兩年。因爲這種人員結構,後端都是老油條(其中有幾個脾氣不大好),前端都是剛畢業沒多久的小鮮肉(比較內向害羞),聯調的時候可想而知後端是大爺前端是跟班。

說說我個人感覺這家公司開發中存在的問題:

  • 接口文檔在開發的哪個階段出來,接口文檔出來的時間點也是和上家一樣,但是因爲工作量大、團隊大導致這點是開發效率的主要限制因素和後面出一系列矛盾出現。直接導致的問題是開發前期前端只能做靜態頁面,中期一直在等後端出文檔,有些比較負責的前端就會不停的追問找對應模塊的後端,問他打算這塊返回的數據格式是什麼樣的。所以經常看到有幾個前端經常往後端跑,後端有點煩沒好氣的說我現在沒空或者心情好點話就講一下。

  • 因爲寫完接口出文檔,導致快到提測時間節點上是前端最忙的時候要敲後續的處理數據相關的代碼,因爲時間比較緊所以先把大概功能處理完就提測,導致測試那邊反應前端不細心,細節問題一大堆。

  • 基於上面原因,老闆詢問項目進度每次都是後端做完了,前端沒做完,說前端進度慢,bug還多,前端背鍋。

  • 程序員天生抗拒寫文檔,所以經常出現文檔字段說明不詳細(遇到牛逼的理由是看英文單詞就知道什麼意思啊),前端字段理解沒到位所以經常出現字段綁定問題的bug。

  • 人的天生惰性,聯調前端調用後端接口,測試接口都交給前端,後端寫完就不管了。

  • 業務處理的前後端分工不明確,主要看後端領導的性格,後端領導在公司地位高些,後端領導是怕麻煩那種性格,麻煩的處理前端能做竟然給前端,前端不能做纔給後端做,沒考慮過瀏覽器的處理能力、帶寬限制、安全性因素(討論中後端老大曾說也不會把瀏覽器搞死機,也就是隻要瀏覽器不死機就行)

  • 前端團隊平均技術水平不高(畢業不久的佔比大)

  • 前後端溝通成本較大,後端很多沒做過前端,前端很多沒做過後端,溝通解釋時間較長,前端對項目的業務邏輯理解不深,後端對接口文檔不重視不知道接口文檔對前端的重要性。

後面多次向上反映沒有什麼改善,後端覺得先出文檔做不到後端老大一直不覺得這是很大問題,最後選擇離開。

佛系公司,提升自己纔是王道

現在就職的是一家上市公司背景的分部,工作節奏有點慢,前後端分離也有接口文檔出來時間問題,文檔字段描述不清楚的問題,但因爲節奏慢所以問題沒那麼突出,前端壓力沒那麼大。而且項目負責人比較nice能接收別人建議的人,但改變是循序漸進,在這家公司感覺個人佛繫了很多。在公司很閒適合養老,當然很多會說養老公司趁早出來,經過思考我留下來有以下原因:

  • 剛換了一家馬上又走頻繁跳槽有點累。

  • 每家公司或多或少都會有點問題,但換了幾家都是這種問題說明自己的技術就只能找到這種公司,進不了要求更高的公司,接着換公司也解決不了問題,提升自己的技術纔是關鍵。

  • 業務代碼不多剛好可以多看看書,看看網上一些好的插件的源碼來提升自己。

  • 年紀大了,有點中年危機,經常聽吳軍的《谷歌方法論》,其中提到it年紀大沒有競爭力是因爲格局和能力沒有隨着年齡一起增長,想着這段時間多看點書多學習提升自己的技術水平和思維方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章