你不是一個前端

花生PeA發表於2018-06-05
Mentor:“你不是一個前端”

我:"???"

Mentor:“你不要老想著自己是一個前端,你不是一個前端”

我:“可是把我招來不就是寫前端的嗎??”

Mentor:“你可以寫前端,但是你不要限制自己只作為一個前端,不要把自己的眼光侷限在前端。你應該從整個專案、從工程的角度blablablabla...”

我:(打斷)“不,我就是一名前端,我特別喜歡前端,特別喜歡JS”

Mentor:“我靠,你不要老說......你說你自己是一名前端,作為你們Mentor,我就感覺很丟人”

  ——以上對話發生於我前往百度實習的第二個周,我與我的Mentor之間

PS: 新人入職百度後,通常會有一位Menter(導師)來幫助新人

  大四拿到了百度Offer後不久,便開始了在百度的實習。

  熱愛前端,熱愛JS,有自己偏執的審美,認為整個宇宙其實是一個用JS編寫的程式——這當然是不可能的。不過熱愛JS確實是這樣。

  隨著前後端分離,前端變得可以只需要關注介面而不用管那該死的後臺——鬼才想知道你資料表是怎麼存的,我只想要我的JSON資料,然後完成酷炫的前端功能,讓使用者驚歎,讓自己驚歎,然後讓世界驚歎!

  這就是我,一個華麗麗的前端~~

  華麗麗的我接到了我的第一個Task——為頁面開發匯入功能,我負責前端,我的Mentor負責後端。

  前端改動比較小的,我三下五除二寫完了介面與互動邏輯,一切非常順利~~除了一開始想要把後臺程式跑在我本地電腦上,用一個奇奇怪怪的Docker Compose時遇到了點麻煩。

  不過無所謂,我並不想知道那東西是什麼,也不想知道為什麼想跑Docker Compose需要改那麼多的引數。

  總之,Docker Compose現在愉快的跑在我的電腦上了,除了吃掉我一半記憶體 導致我的WebStorm有些卡外,沒什麼不好的。只要能拿到約定好的資料,我就可以讓前端介面就正常工作。

  前後端分離萬歲~!

  然後Mentor告訴我說介面請求要用RESTful,這是什麼?好像以前聽說過。查了下資料——不就是用HTTP狀態碼來返回結果,順便語義下請求的方法(GET、POST、PATCH、PUT、DELETE...)嘛,前端改下Ajax請求就好了。

  然後Mentor說,我們要用RESTful:

  • 第一次建立資料要POST,以後要用PUT。OK
  • 檢測HTTP狀態碼來確定請求結果。OK
  • 把Token寫在HTTP Header裡。。。OK

  畢竟是工作嘛,只要專案要求,讓我把資料放Header裡我也沒意見。

  但是Mentor向我解釋了這些,告訴我後端的實現邏輯和一些細節,為什麼這樣更好,為什麼會有這些行為。我覺得好麻煩,難道我不是隻做好前端工作就好了嗎?

  於是我向Mentor表示:

  1. 我不想了解那麼多的後端實現,你說這種介面呼叫方式會很大的影響後端效能,我改成你期望的格式就好
  2. 我不想了解那麼多的專案配置,我只要按住流程走下去,最終跑起來一個可以提供資料的伺服器就好了
  3. 我只想知道,你期望什麼格式的資料,又返回什麼格式的資料
  4. 我只是一個前端

  然後Mentor非常生氣,說出了“你不是一個前端”這句令我十分震驚的話。

  我不是一個前端?

  為什麼我不是一個前端?我明明是一個前端!我就是憑著對前端的一腔熱血支撐著我一路走到了這裡,我熱愛前端,熱愛網際網路,熱愛JS。

  或許在別人眼裡前端很Low,P技術含量沒有。

  但是作為熱愛前端的我知道,前端有多麼深邃、多麼靈活、多麼優雅、有多麼多的可能。每一種“外人看來毫無作用的新技術”解決了前端多麼痛的問題,每一代“頻繁升級的ECMAScript”更新帶來了多麼棒的特性。

  “你說你自己是一名前端,作為你們Mentor,我就感覺很丟人”。

  我感覺這句話簡直否定了我對前端傾注的所有感情,被徹底瞧不起了,我要是一名負責火箭發射的工程師對方絕不會這麼說。

  於是我很生氣,覺得對方不可理喻。

  我就是一名前端,我還打算將來加入TC39為我心愛的JS添磚加瓦呢。


  完成的匯入的Task後,隨著時間的推移,我又陸續接到其他的Task。

  在一個新開坑的專案中,我和負責後臺開發的 DG同學 在介面設計上發生了一些分歧。我主張在“返回應用的會話列表的介面”中,返回 會話資料 的同時返回 應用資訊,而他表示這樣不好。雙方僵持了一段時間,於是我和DG決定去找隔壁的兩位高T(我的Mentor是其中之一)裁決下。

  我闡述了下為什麼我希望會話列表介面裡面帶著應用的資訊:

  • 在檢視除錯會話列表介面時更方便
  • 這樣前端少請求了一個介面,展現資料會更快
  • 分開介面的意義不大,應用資訊非常少,沒必要再加一個介面,直接附帶在會話列表介面中就好了
  • 雖然分開後2個介面各司其職,但是前端要分開處理,很麻煩

  聽了的我解釋和,Mentor和我說:

你發現了嗎?你的所有出發點都是為了前端更方便。

確實,你是一名前端,所以你肯定希望前端用的爽。但是,正是因為你只是一名前端,你不瞭解後臺的實現、構架,不知道怎樣的設計對於後臺是合適的。也不瞭解這個專案本身,所以也沒辦法站在一個工程的角度考慮這個問題。

這就是所謂的屁股決定腦袋,因為你只是一名前端,而不是一名工程師。

  我突然愣住了。

  我確實不知道後臺的實現,後臺用的什麼ES完全不知道是什麼。我也不知道自己做的這個專案是幹什麼的,只知道從UI那裡拿到了一份設計稿,然後將它還原了出來。

  我突然想到了學校中,老師反覆強調過“一輩子的碼農”和“工程師”的區別,那時的我聽了不以為然。

  而現在,我真真切切的感受到了二者的區別!!!

  意識到錯誤的我感覺超級尷尬,比較剛剛還神氣十足頭頭是道來著。。。

  。。。小聲承認了下自己的錯誤,然後趕緊轉過頭去假裝寫程式碼。

  內心OS:啊啊啊啊!~!! 好尷尬!!!不過很感謝,但是好尷尬!!或許應該好好謝下Mentor,但是好尷尬啊啊啊!!

  表情複雜的盯著螢幕上的 function 宣告語句好長時間,嗯,橘紅色的高亮挺好看。然後去找到了剛剛的DG同學討論了下後臺實現和構架,並對他的方案表示了肯定。。。


  現在,我終於明白了,“你不是一個前端”的含義。


  “教做人”的日常還在繼續,前進的腳步也不會停止。

相關文章