1

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

 3 years ago
source link: https://www.jdon.com/57149
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
我见过的最牛叉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 开发人员(可能是最伟大的开发人员)。

你认识这样的人吗?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK