我見過的最牛叉ReactJS程式設計師 - Faisal

banq發表於2021-08-24

是什麼造就了真正偉大的工程師?在過去的 5 年裡,我有幸與各種各樣的人一起工作——從年輕的畢業生到退伍軍人。但俗話說,很少有人會觸發你的靈感。
今天,我將分享我一生中見過的最偉大的工程師之一的故事。奇怪的是,我在離開公司後才意識到他有多棒。
 

他不是編碼最快的
曾經我們的目標是每月釋出一次。在 sprint 週期的最後,出現了在前端建立一個基於角色的授權機制的新需求。
由於後端的程式碼已經存在,管理層希望將其推送到下一個版本。
然而,他拒絕這樣做,管理層一點也不高興。
那時我還是個大三學生,心想他為什麼要那樣做?從描述中,我瞭解到可以在2天內完成。但他仍然直接拒絕這樣做。

這不僅僅是關於速度:
這種倉促的工作已成為初創企業文化的常態,但在我的職業生涯後期,我意識到為什麼他是對的。也許在 99% 的情況下,這種做法不會造成傷害,但剩下的 1% 可能會損害公司,有時甚至會損害一個人的整個職業生涯!
 

他的程式碼讀起來像一首詩
在他離開公司後(由於與管理層發生衝突),我有幸在他的專案上工作很久很久。
很遺憾我無法理解我自己的程式碼(如果我在 3-4 個月後檢視它),但他的程式碼非常漂亮,像我這樣的初級開發人員完全可以理解那裡發生的事情。
這是一個例子。

export const SomeComponent = () => {
  
  const userInfo = getUserInfo();
  
  const profileDetails = getProfileDetailsOfUser(userInfo.id);
  
  const aboutData = extractAboutData(profileDetails);
  
  const personalData = extractPersonalData(profileDetails)
  
  return (
    <UserDetails>
      <About data={aboutData} />
      <PersonalInfo data={personalData} />
    </UserDetails>
  )
}

一旦您開始處理一個包含數百個元件的專案,這段程式碼可以讓您內心平靜。
 

他關心最佳實踐
正是從他那裡,我明白了遵循最佳實踐的重要性。作為初級開發人員,這些很難理解,但隨著時間的推移,我明白遵循最佳實踐如何自動幫助編寫更清晰的程式碼。
他有一個Eslint設定。我仍然記得裡面大概有大約 30-35 條規則。那時裡面有很多我甚至搞不明白。
 

他有自己的做事方式
他的程式碼讓我感到困惑的一件事是他的冗長。他會以特定但一致的方式命名函式。
讓我舉一個非常簡單的例子。我們需要經常對物件陣列進行排序,對嗎?一個快速的谷歌搜尋會給出這樣的結果,我們只需更改屬性名稱。

sortedArray = objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) ? -1 : 0))


但這對他來說不一樣。他會做這樣的事情。

function compare( a, b ) {
  if ( a.last_nom < b.last_nom ){
    return -1;
  }
  if ( a.last_nom > b.last_nom ){
    return 1;
  }
  return 0;
}

objs.sort( compare );

兩者都做同樣的事情,但對於他的方式,我不必撓頭看程式碼 2 分鐘就可以瞭解那裡發生了什麼。
在我職業生涯的後期,我瞭解到有意義的名稱比從程式碼庫中減少 2 行更重要。
從長遠來看,一切都與可維護性和減少技術債務有關。他是這方面的大師。
 

他反對改變
在react hook正式釋出後,所有社群都爭先恐後地將他們的程式碼庫重構為功能元件。但他沒有讓我們這樣做。
是的,顯然當時這可能不是一個好主意,因為現在幾乎每個新程式碼庫都是用函式元件編寫的,但儘管如此,他還是希望我們等待。
每一項新技術/庫包都像一個閃亮的玩具。每個人都喜歡玩這個。時不時會出現一些新的庫,我們會考慮如何在專案中使用它。
但他幾乎每次都拒絕新增這些。我不得不承認,我有時感到有點惱火。有時我甚至想:也許他拒絕那些是因為他自己不知道如何使用這些庫。
但隨著時間的推移,很明顯他非常瞭解新的變化,但在使用這些變化時非常小心。他明白新增任何東西都有其自身的成本,尤其是在 JavaScript 世界中。
 

他離開了
6-7個月後,他因為與管理層的一些衝突而換了工作。
所以他維護的專案來找我。我開始閱讀他的程式碼,後來意識到他是多麼的棒。從表面上看,我們在做同樣的工作。提供被要求的功能。
但在程式碼中,他的所作所為讓我大吃一驚。從資料夾結構到變數命名,他對每一行程式碼的用心讓我愛上了程式設計。我意識到:

一段好的程式碼是美的東西!
我仍然帶著這個哲學。
 

結論
我們一起工作時意見分歧。也許他不是一直都是對的,也許他的表情有些問題,使他成為一個令人討厭的人。
儘管如此,他還是我見過的最偉大的 React 開發人員(可能是最偉大的開發人員)。
你認識這樣的人嗎?
 

相關文章