Рубріки: Мнение

«Тогда я не понимал его мотивов»: рассказ о лучшем React-разработчике, какого я встречал

Богдан Мирченко

Программист Мохаммад Фейсал поделился в блоге историей знакомства с «величайшим», по его мнению, разработчиком. Она интересна тем, что автор понял, насколько крутым был его коллега только после того, как тот покинул организацию. Вот что написал Мохаммад. 

Он работал не на скорость

Было время, когда мы стремились делать релизы каждый месяц. В самом конце спринтерского цикла ввели новое требование — создать небольшой механизм на основе ролей во фронтенде.

Код бэкенда был уже готов, поэтому руководство решило перенести его в следующий релиз, но мой коллега отказался это сделать, чем вызвал недовольство руководителей.

Тогда я был на позиции младшего бэкенд-разработчика и не понимал его мотивов. Из описания стало ясно, что действие займет два дня, но он наотрез отказался его выполнять.

Позже до меня дошло. Дело в том, что работа на скорость стала нормой в культуре стартапов. В 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 );

Кажется, разницы никакой. Оба кода делают одно и то же, но только позже я понял, что давать осмысленные имена важнее, чем сокращать строки. В долгосрочной перспективе все упирается в сопровождаемость и уменьшение технического долга. В чем моему коллеге не было равных. 

После появления хуков, все сообщество бросилось рефакторить свою кодовую базу на функциональные компоненты. Все, кроме него. Он хотел, чтобы мы подождали. И делал так каждый раз, когда выходила новая библиотека.

Меня это очень раздражало, даже возникали мысли, что он не использует эти библиотеки, потому что не знает, как с ними работать. Но потом стало ясно, что он просто относился к их появлению с опаской, так как понимал, что добавление всего и вся без разбора имеет свою цену, особенно в мире JavaScript. 

Философия чистого кода

Через 6–7 месяцев он сменил работу из-за конфликта с руководством. Так проект, который он поддерживал, перешел ко мне. Я просмотрел его код и понял, что он был идеальным. Несмотря на то, что мы выполняли одну и ту же работу, его действия были на другом уровне — от структуры папок до именования переменных. Его внимательность к каждой строчке кода заставила меня полюбить профессию и вдохновила на будущие свершения.

Тогда я понял, что нет ничего важнее в нашей профессии, чем писать хороший код. Эта философия до сих пор со мной.

Заключение

Во время работы мы часто не сходились во мнении. Может быть, он не всегда был прав, может, на первый взгляд он казался не совсем приятным человеком, но он — величайший разработчик, которого я видел. И равных ему я не встречал по сей день. 

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023