Вы когда-нибудь были шокированы грязным кодом? Посмотрите, как Husky, Lint-Staged и CommitLint меняют рабочий процесс вашей команды! Не пропустите!

Введение

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

Более того, при работе в команде очень важно четко обозначить свои обязательства. Четкие коммиты позволяют другим просмотреть и понять цель каждого коммита. Если гарантировать, что все будут соблюдать правила коммитов, это приведет к созданию единообразной истории коммитов, что упростит автоматическое создание CHANGELOG на основе коммитов.

Если вы заметили, большинство известных репозиториев с открытым исходным кодом на Github имеют строгие правила по коммитированию кода. Мы не можем полагаться исключительно на осторожность разработчиков; строгие стандарты и автоматические проверки жизненно важны для поддержания чистоты и организованности общего репозитория.

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

Настраивать

Я подготовил для вас проект NodeJS, используя фреймворк NestJS, написанный на Typescript. NestJS в настоящее время является популярным выбором для NodeJS из-за его надежной архитектуры (вдохновленной архитектурой Angular). Попользовавшись им некоторое время, я обнаружил, что его поддержка обширна, даже для микросервисов. А поскольку он разработан на основе Angular, в Nest мне особенно нравится одна функция — внедрение зависимостей. Если вы незнакомы, вы можете поискать это в Google.

В этом проекте, если вы откроете src/app.controller.ts, вы обнаружите три маршрута:

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()…