После того, как я присоединился к команде по работе с большими данными в Yotpo, мне нужно было добавить Scala в свой набор инструментов. Я чувствовал, что, хотя я читал Scala по несколько часов в день всеми вышеупомянутыми способами, чего-то не хватало. Я хотел учиться на хорошо написанных примерах кода и лучших практиках Scala. Итак, я поставил перед собой задачу выяснить, как стать лучше разработчиком, читая код.

Интернет-исследования

Если вы погуглите, вы найдете некоторые базовые рекомендации по чтению кода (в основном в группах чтения кода) и списки примерных репозиториев, из которых можно учиться. Я нашел эти три ресурса наиболее подходящими:

Я призываю вас потратить время на их изучение, но для целей этой публикации их можно резюмировать в следующих моментах:

  1. Мы не читаем код, мы его декодируем. Мы исследуем это. Часть кода - это не литература; это образец .
  2. Контекст кода важен. Например, если мы говорим о javascript, который развертывается как виджет на стороннем веб-сайте (например, виджет отзывов Yotpo), он должен быть легким и быстро загружаться.
  3. Помогите аудитории понять основные идеи, указав на них. Часто экономичный код является наиболее элегантным, но вам нужен автор, который поможет вам разобраться в том, что в нем осталось.
  4. Это может быть примерный код или плохой код, о котором вы можете высказать свое мнение.
  5. Лучше всего читать код всей командой, когда один член выступает в роли «гида».

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

Полевые исследования

Помня об исследованиях в сети, я решил провести небольшое исследование на эту тему, чтобы увидеть, как другие разработчики удовлетворяют свои потребности в чтении кода. Итак, я создал эту небольшую форму вопросов и отправил ее некоторым из моих коллег-разработчиков. Вот некоторые из результатов:

Считаете ли вы, что чтение хорошо написанного кода важно для того, чтобы стать лучшим разработчиком?

Как часто вы читаете код других разработчиков в учебных целях?

Где вы обычно находите этот код?

Удовлетворяет ли вышеупомянутый источник вашим потребностям в чтении кода?

Считаете ли вы важным, чтобы код, который вы читаете, сопровождался подробными объяснениями?

Подведем итоги:

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

Кроме того, я спросил разработчиков, какая функция на веб-сайте, предназначенном для чтения кода, будет наиболее важной. Вот некоторые ответы:

  • Правильная функция поиска (упоминалась несколько раз)
  • Должны быть понятные, красочные примеры и возможность хорошего поиска
  • Различие между значимыми и второстепенными частями
  • Помогая мне найти подходящий код, чтобы читать и учиться
  • Иметь "хорошие" и "плохие" примеры

Кажется, что люди действительно хотят исследовать и изучать код, а не просто читать его.

Что с этим делать

Я считаю, что для того, чтобы действительно извлечь выгоду из чтения кода, необходимо выполнить три условия:

  1. Код должен быть помещен в доступную для поиска, фильтруемую и постоянно растущую библиотеку.
  2. Код должен сопровождаться интерактивным руководством, позволяющим изучить и изучить код.
  3. Как публикация кода, так и руководство должны управляться сообществом, чтобы обеспечить актуальность кода и синергию разработчиков.

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

Итак, как лучше всего учиться на коде других разработчиков?

  • Вы можете присоединиться или создать группу чтения кода на своем рабочем месте. Это гарантирует, что код будет стоить изучения и по нему будут проводиться инструкции (конечно, руководство узнает больше всего). Звучит как лучший вариант, но требует много времени и усилий.
  • Потратьте около 30 минут хотя бы раз в неделю на изучение кода, написанного некоторыми из лучших разработчиков вокруг вас, и попросите их помочь вам в этом. Более практичной идеей было бы присоединиться к их обзорам кода в качестве слушателя; ты многому научишься.
  • Воспользуйтесь ссылками, приведенными в начале этого сообщения, или поищите в Интернете код, который стоит изучить на предпочитаемом вами языке. Вы можете найти руководство по коду в профессиональных сообщениях в блогах. Еще одно интересное место, где можно проникнуть в сознание программистов, - это прочитать Github Pull Requests от великих разработчиков по известным репозиториям.
  • Я считаю, что здесь есть пустота, которую нужно заполнить отличным решением, которое может помочь всем разработчикам стать немного лучше в том, что они делают. Давайте возьмем перчатку к заполнению этой пустоты.