Skip to content
Материалы программы обучения MetaLamp
Share
Explore
Back-end

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

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

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

Весь проект скомпилирован с флагами -Wall и -Werror и нет ни одной ошибки и ни одного варнинга от компилятора.
Весь код проверен через hlint и не вызывает ни одного варнинга.
Весь код отформатирован при помощи форматтера ormolu.
Все импорты либо qualified, либо содержат явный import list.
Не используются нетотальные функции (Partial functions).
Вложенность условных операторов и операторов выбора не превышает 2 уровней.
Не используются длинные кортежи, когда удобнее использовать ADT.
Ошибки внимательно обрабатываются и не глушатся:
Не используются error и undefined.
Названия функций выбраны в соответствии с проблемой, которую эти функции решают.
Каждая функция решает только одну проблему.
Использовать паттерны проектирования: Service/Handle Pattern или Tagless Final/ReaderT.
Основной функционал должен быть покрыт чистыми юнит-тестами. E2E тесты в рамках программы обучения писать не требуется.
Проект должен запускаться и работать с конфигом проверяющего (например, чтобы можно было проверить работу бота с другим токеном).
Все изменения в проект в процессе код-ревью вносите через пулл-реквесты. В ПР указывайте ссылку на ишью.

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

(правила про Haddock можно игнорировать)
HaskellerZ - Feb 2018 - Getting things done in Haskell and Zurich Friends of Haskell
— смотреть первую часть до 51 минуты, там идет набор разных правил по разработке на Хаскеле. Паттерн Handle стоит рассмотреть, но необязательно применять.
Обязательно изучить репозиторий, который там есть в ссылке, там то приложение, о котором рассказывал спикер: Fugacious.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.