Backend-разработка

Присоединяйтесь к нашей программе обучения

Задание 5: ревью

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

  • Прежде чем приступить к этому этапу, отправьте свои репозитории нам для проверки через вот эту форму заявки на ревью проектов. Только получив этуформу, мы начнем проверку :)

  • После прохождения вами этапа код-ревью напишите менеджеру программы обучения в личные сообщения в телеграмме.

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

Требования к оформлению проекта

  • Весь проект скомпилирован с флагами -Wall и -Werror и нет ни одной ошибки и ни одного варнинга от компилятора.

  • Весь код проверен через hlint и не вызывает ни одного варнинга.

  • Весь код отформатирован при помощи форматтера ormolu.

  • Все импорты либо qualified, либо содержат явный import list.

  • Не используются нетотальные функции (Partial functions).

  • Вложенность условных операторов и операторов выбора не превышает 2 уровней.

  • Не используются длинные кортежи, когда удобнее использовать ADT.

  • Ошибки внимательно обрабатываются и не глушатся:

  • Не используются error и undefined.

  • Названия функций выбраны в соответствии с проблемой, которую эти функции решают.

  • Каждая функция решает только одну проблему.

  • Использовать паттерны проектирования: Service/Handle Pattern или Tagless Final/ReaderT.

  • Основной функционал должен быть покрыт чистыми юнит-тестами. E2E тесты в рамках программы обучения писать не требуется.

  • Проект должен запускаться и работать с конфигом проверяющего (например, чтобы можно было проверить работу бота с другим токеном).

  • Все изменения в проект в процессе код-ревью вносите через пулл-реквесты. В ПР указывайте ссылку на ишью.

Рекомендуемые источники по оформлению кода

менеджер программы обучения

По любым вопросам по программе обучения пишите Светлане в Telegram