我见过的最牛叉ReactJS程序员 - Faisal


是什么造就了真正伟大的工程师?在过去的 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 开发人员(可能是最伟大的开发人员)。
你认识这样的人吗?