За обновлениями можно следить в telegram-канале https://t.me/quasiart

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

В этой статье я собрал некоторые советы, которые помогут писать более понятный код.

1 Используйте TypeScript

TypeScript сильно упростит сопровождение проекта, и чем он крупнее, тем более явная польза от статической типизации.

2 Определяйте пропсы компонента

Этот совет для тех, кто пока не использует TypeScript.

prop-types используется для проверки типов в режиме реального времени. Если в компонент передаются пропсы неверного типа (например, вместо числа передаётся строка) или не передаются обязательные пропсы, в консоли браузера появится предупреждение.

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

3 Настройте линтер

Линтер позволяет избежать типовых ошибок и помогает поддерживать единый стиль программирования в рамках одного проекта.

4 Разделяйте логику и представление

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

Это обязательно пригодится при плавном редизайне или для проведения A/B-тестов.

5 Первый вариант кода не всегда лучший

Большинство разработчиков знают, что первая версия кода или программы не всегда сделана на отлично. После публикации первого варианта рекомендуется проанализировать его и выявить недостатки. 

Если требуется сохранить обратную совместимость, лучше покрыть код тестами, чтобы сэкономить время на ручном тестировании и поисках багов.

6 Делите большие компоненты на мелкие

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

7 Именование файлов

Имя файла, неожиданно, должно соответствовать его предназначению. 

Например, Article — хорошее название, но слишком обобщённое, ведь это может быть как телом статьи, так и элементом в списке статей. 

Также плохо называть компоненты в зависимости от их расположения на странице: ArticleLeft, ArticleTop т. д.

Лучше всего в таком случае добавлять в название компонента его предназначение: ArticleItem, ArticleBody и т. д,

8 Тестируйте код

Автоматические тесты позволяют убедиться, что код работает. Чем больше различных сценариев будет протестировано, тем надёжнее код. 

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

Также протестированный код вызывает большее доверие со стороны других разработчиков, а это важно при разработке открытых проектов.

Для unit-тестов для React-компонентов я использую Jest, для интеграционных тестов — Nightwatch.

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