一個後端程式設計師的前端之路協作篇

2022-01-28 wecatch

此篇將是該系列的終章。

也許軟體開發中最難的部分並不是軟體開發本身,而是溝通和協作,前端和設計師、產品經理和程式設計師、前端和後端、老闆和產品經理、測試和程式設計師,想要高質量的實現需求,溝通最多的往往都是程式設計師。程式設計師木訥不愛說話?這裡一定有誤會。

今天我們一起來扯扯後端和前端協作的淡。

套路

現實中,很多公司都會按照職能的不同把程式設計師劃分成前端、後端、客戶端等不同角色,後端負責實現數據業務邏輯,提供 api 供前端和客戶端調用,前端和客戶端通過 api 調用實現 ui 的數據交互。

為什麼要按這樣的套路分?

一個人很難做到前端、後端都懂,而且水準達到專業級別。

基於第一點,大多數公司招人不會要求你既懂前端又懂後端

基於第二點,大多數公司的團隊中程式設計師的崗都只負責一端

基於第三點,協作不可避免了,因為前端不懂後端,後端不懂前端

協作帶來的問題是什麼?

溝通成本上升

這世界上還有比兩個人扯來扯去都不知道對方在扯什麼更浪費生命的東西麼,我想沒有了。和一個認知不在同一領域甚至是不在同一水平的人溝通就會帶來這樣的問題,雞同鴨講,但是大家好像都樂意,因為開個會之後…很快就到下班時間了。

誰該妥協

數據是該放到後端組織還是前端組織,這樣的問題在前後端協作中真的是不勝枚舉了。有時候數據就是應該前端組織,但是前端不幹,有時候數據就是應該後端組織,但是後端不幹,有時候數據放到前後端都可以,但是前後端都不幹。怎麼辦?打一架吧,我經常這樣說。

步調難以一致,任務切換頻繁

有些很詭異的問題,是需要前後端通力合作的,後端要控制輸出,前端要控制展示。前端做好了,可能要等等後端,前端不能幹等,於是前端的 CPU 發生一次任務切換,後端做好了通知前端,前端的 CPU 再把剛才 resume 的任務 rewake,把任務狀態從內存(大腦)中恢復過來。任務的切換都是需要花費時間的,而且佔用計算資源。 這種事,前後端反過來也一樣。

其實還有很多...

既然這個套路很有問題,為什麼很多團隊還是要用這個套路。原因也許很多,最重要一點通曉前後端的人才難覓。

成長最需要什麼?認知的改變,認知改變帶來思維的轉變,思維轉變帶來行動的改變,無論是個人還是團隊,改變這個套路的現狀很難,並不表示沒有改變的可能,團隊的改變必然會帶來利益的犧牲,甚至短暫的效率下降,個人改變會帶來強烈的陣痛,但是一切都是暫時的。

老司機帶你上路,改變並不難

之所以你只是個前端或者後端,那是因為你身邊肯定有一個後端或前端,跟著老司機學習和自學相比就像是1000 萬的學區和 200 萬學區對比,老司機可以帶著你輕鬆跨過很多坑,少走很多彎路。

在 wecatch, 龍哥(客戶端程式設計師)是被我帶入後端的,落在深海(前端程式設計師)是被龍哥帶入 IOS 的,我(後端程式設計師)帶著落在深海寫 Python,落在深海帶著我前端。

Learn by doing

邊學邊做,既然是工作一般沒有很多時間讓你去學一個完全新的東西,這樣邊做邊學,邊學邊做。

從小項目開始

小項目能夠很快完成並且能得到及時反饋,可以有效降低新手受挫的可能性,即使完不成讓更專業的同學救火也完全來得及。

從沒有複雜 UI 交互的項目開始

後端學前端最怕的是寫 CSS 和 動態特效,如果可以完全藉助 framework 來實現各種功能能夠迅速降低入門的門檻。

從內部項目開始

內部項目對性能、體驗、bug 率都有一定程度的容忍度,因而只要能有人把好關,新手完全可以大膽實踐,不怕犯錯。

二者都學,到什麼程度為止

任何一項技能,唯有深入持續的研究學習才有大成,既學前端又學後端對於大部分人來說都很難做到樣樣精通,此時一定要有所偏重,依據自己的興趣、專業程度、職業發展前景來衡量和選擇。如果你的後端專業水準能做到完美,那前端的水平達到 7 成足以,不需要完全懂 html5,各種 CSS3 特效,大部分時候可能你都不需要會這些技能就能解決問題,即使真的需要,那就找更專業的同學。

二者都學,這不就是全棧麼

一直以來我都認為全棧是個偽概念,幾乎沒有人能真正做到全棧都精通,太難了。會點皮毛也敢說是全棧,說明還涉世未深,沒碰到過高手。

程式設計師,無論前端也好,後端也罷,跨國自己的專職多學一點,完全無可厚非。技多不壓身,不僅提高了自己的產出,擴大自己的技術視野,而且以後不論在什麼樣的團隊,只要有前後端協作的地方,那些前後都懂的人明顯具有天然的優勢,因為他痛過,所以能懂。

我的理想是大家前端後端,我中有你,你中有我,其樂融融。至於讓後端懂前端,前端懂後端真的能帶來什麼好處麼,試試你就知道了。

相關焦點

  • 想找IT培訓,前端好還是後端好?
    圍繞這個問題前端和後端項目部進行了一場「辯論賽」我在這兒整理並分享給大家關於後端:1後端是一個系統通常是看不見的但是卻很重要類似電腦的核心處理器2如果一個後端系統出現不穩定調試是非常麻煩通常你可以首選日誌
  • 程式設計師那些事,前端和後端到底是什麼意思?網際網路知識大揭秘2
    程式設計師作為當今網際網路行業,最高薪水的代表職業,一直受到人們的廣泛關注。不過高新的背後,也是艱苦的工作任務,所以很多程式設計師也戲稱自己為程序猿。據說每一個程序猿都有一件格子衫戰鬥衣,而機械鍵盤是他們奮戰的武器。
  • 前端開發和後端開發哪個崗位更辛苦
    首先,從事程式設計師工作,無論是從事前端開發還是後端開發,總體上來說都不輕鬆。要判斷前端開發和後端開發哪個崗位更辛苦一些,主要取決於以下幾個方面的因素:第一:開發場景。不同的開發場景對於前後端程式設計師的要求是不同的,通常來說,to B端開發場景下,後端程式設計師更辛苦一些,因為前端的應用場景比較固定,所以變化不會很大。2C端開發場景下,前端程式設計師更辛苦一些,因為前端變化比較多,而且前端開發的要求會比較高,比如很多2C類的網際網路產品幾乎每天都有新的變化。第二:開發崗位。
  • 初學編程,前端、後端開發哪個更有優勢?
    當你有這些疑問的時候,可以來看這篇文章,這篇文章詳細介紹了前端和後端開發技術的對比,從使用程式語言的不同,到對開發技能的要求,甚至未來的發展規劃都有詳細的介紹。什麼是前端開發?前端開發主要涉及到網站和APP,用戶能夠從App、瀏覽器上看到的東西都屬於前端。
  • 未來計劃從事程式設計師崗位該從前端開始學習還是從後端開始學習
    程序開發領域的技術迭代速度是非常快的,而且開發方式也會隨著新技術的出現而不斷調整,比如當前要想從事程式設計師崗位,前後端開發知識都應該掌握,在平臺化開發正逐漸成為主流開發的當下,全棧程式設計師將會有更多的就業機會。
  • 長沙黑馬程式設計師:轉行IT,首先你得分得清前端、後端、全棧!
    這也是目前很多非科班出身的同學為了搭上網際網路的快車開始學習編程的原因,但是對於很多轉行IT的人來講,「前端、後端、全棧」這三個的概念非常模糊,很多人不清楚前端、後端、全棧到底指的是什麼?前端的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,並配合後端做網頁的數據顯示和交互等可視方面的工作內容。使用這些技術,前端開發者能連接起網站設計者和後端開發者之間的橋梁。他們能提供用戶體驗方面的分析,構建模型和線框,給設計團隊提出建議。他們能給後端編寫的服務應用賦予生命,提升格調,營造美感。
  • 前端開發,測試,後端,該如何選擇?
    首先,我是一名從業8年的前端工程師,後端也略會一二,期間也兼職過公司的測試崗位,談談我的一點想法,僅供參考。1、所謂前端首先要搞明白,你是否對前端開發、編程敲代碼感興趣,而不是說看中了IT行業的高薪,覺得別人去培訓機構培訓半年,出來在西安月薪8K等。如果你對編程不感興趣,那麼你在培訓機構或者是工作上班後,每天都是折磨,都是煎熬。
  • 一個前端與後端分離的架構實例
    本文作者麥舒設計了一個前端與後端分離的架構,原文分享如下:看了《系統架構:Web應用架構的新趨勢—前端和後端分離的一點想法》 這篇文章,對前端與後端的分離非常認同,這樣做對於系統的維護是有相當大的好處的。正好自己也設計了一個這樣的系統,於是把它拿出來,和大家討論一下。這個架構,與其說是想出來,還不如說是我做系統總結出來的最佳實踐。
  • 為什麼越來越多前端工程師都轉向後端?
    在很多的中小企業、非頂尖網際網路公司當中,越來越多的前端工程師都想擺脫前端領域,加入後端開發的隊伍,這樣的想法存在很多年了,而且有愈演愈烈之勢。為什麼會出現這樣的現象呢?我們試著從以下幾點來討論。髒活累活,可替代在外包型公司中,前端或許是最累的崗位,為了完成每個客戶的個性化需求,前端工程師需要反反覆覆地改需求,調樣式。後端服務則相對穩定,一旦開發完成後期的修改度較低。對公司管理人員來講,他們覺得前端的工作隨時找個人都可以替代,而後端因為涉及到數據,多少有所顧忌。
  • 前端開發的初學者是否需要學習後端知識
    首先,前端開發可以劃分為三個開發階段,第一個階段的前端開發任務往往由後端開發人員來完成,此時的前端開發並不複雜,任務量也相對比較小,第二個階段是Web2.0時代,前端開發的團隊規模有了明顯的擴大,前端開發崗位得到了快速的發展,整個Web開發也開始走角色化開發路線,第三個階段是移動網際網路時代背景下
  • 專科生該選擇學習前端開發還是後端開發
    首先,在當前的IT領域,前端開發和後端開發都有比較廣闊的就業空間,至於選擇哪個方向,要考慮三個方面的因素,其一是自身的知識結構;其二是未來發展規劃;其三是興趣愛好。如果未來想持續走技術研發路線,成長為研發級程式設計師,那麼最好選擇後端開發,但是選擇後端開發往往需要具備紮實的數學基礎。
  • 前端工程師的進階之路
    前端架構師,聽起來就是個很高大上的職位,在大多數程式設計師的眼中,架構師一般從事後端開發,Java或者C++出身,它們往往擁有這十八般武藝,可以解決業務中出現的各種問題。好像架構師就從來沒有和前端有過關係,那麼真的是這樣麼,通讀此文,便可豁然開朗。
  • ​if 我是前端團隊 Leader,怎麼制定前端協作規範?
    如文章標題,前端協作規範並不單單指『編碼規範』,這個規範涉及到前端開發活動的方方面面,例如代碼庫的管理、前後端協作、代碼規範、兼容性規範;不僅僅是前端團隊內部需要協作,一個完整的軟體生命周期內,我們需要和產品/設計、後端(或者原生客戶端團隊)、測試進行協作, 我們需要覆蓋這些內容.
  • 前端:調你一個接口6秒還配資深工程師?後端:有24部分需要處理
    有關於做web開發的程式設計師,不知道你們有沒有這樣一種感受,那就是前端工程師與後端工程師之間有時也會存在鄙視鏈的關係,比如前端程式設計師會認為後端程式設計師沒什麼技術含量,不就是寫個接口,獲取一些數據而已,而前端就不一樣了,各種炫酷效果,如瀑布流,輪播圖,css動畫,另外還要做各種設備兼容或者瀏覽器兼容等問題
  • 2017年Node.js使用大調查,後端使用多於前端!
    【IT168評論】之前,就有網友針對「Node.js用在前端還是後端?」的問題進行討論。近日,Node.js基金會發布了Node.js 2017用戶調查,我們用數據說話,看看Node.js到底適用於哪些應用和開發環境?同時也看看全世界的程式設計師都是怎樣用Node.js。
  • 從事前端真的沒有後端工資高?
    知乎原題是這樣的:題主是一個大二學生,今天老師在講課時說到了以後的工作方向,然後說從工資來說,後端要比前端高,並且掌握公司核心技術的都是後端。大致是這個意思記得不是很仔細,順便再問一下未來想要從事前端該怎麼規劃發展自己的事業前端技術是不是核心技術?題主老師所說的:掌握公司核心技術的都是後端這句話你不能說他錯。
  • 前端工程師後端轉型實錄|mediatrack|姜雨晴|工程師|livevideo...
    姜雨晴:我目前就職於MediaTrack,為視頻製作者提供協作工具,主要負責MediaTrack音視頻相關的後端服務、前端播放器研發。LiveVideoStack:您近期最關注的技術是什麼?姜雨晴:最近比較關注專業領域的視頻製作,和專業製作者的協作模式。最近幾年短視頻興起,短視頻製作也從原有的UGC製作,轉化為PGC製作。
  • 招前端、PHP後端,不限學歷不限經驗
    最近都是招聘旺季,最近公眾號很多讀者找我發招聘,程式設計師的招聘需求還是很堅挺
  • 一文看懂前端和後端開發
    這篇文章將對前端和後端開發技術做一個對比,先從基本的開始,然後逐步比較它們的不同點,比如對開發技能的要求、發展潛力、職業生涯的發展和薪水,等等。1、什麼是前端開發?前端開發主要涉及網站和 App,用戶能夠從 App 屏幕或瀏覽器上看到東西。簡單地說,能夠從 App 屏幕和瀏覽器上看到的東西都屬於前端。
  • 在web開發中,為什麼前端比後端更得到轉行程式設計師的青睞?必看
    1、Web開發分類與區別 人們通常將Web分為前端和後端,前端相關的職位有前端設計師(UI/UE),前端開發工程師,後端相關的有後端開發工程師。