..

Кастомные инструменты Дарта как средства работы с техническим долгом

Читать в Telegram

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

Один из возможных способов чинить разбитые окна - собственные аннотации и генерация отчетов о состоянии кода по ним.

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

В коде будет выглядеть так:

@TechnicalDebt(
  author: 'fluttermiddlepodcast',
  description: 'Move to UI-Kit',
  severity: Severity.minor,
  deadline: '2025-12-12',
)
class BEShimmer extends StatelessWidget {
  final double height;
  final double width;

  const BEShimmer({
    super.key,
    required this.height,
    required this.width,
  });

  @override
  Widget build(BuildContext context) {
    return Shimmer.fromColors(
      baseColor: Colors.grey.shade300,
      highlightColor: Colors.grey.shade50,
      child: SizedBox(
        height: height,
        width: width,
        child: const ColoredBox(
          color: Colors.white,
        ),
      ),
    );
  }
}

В bloc_example сделал ветку technical_debt, где можно попробовать самим сгенерировать отчет, и посмотреть на сгенерированный результат.

Просто выгружаете проект, и дальше из терминала после fvm pub get выполняете:

$ fvm flutter pub run build_runner build --delete-conflicting-outputs

Это - не готовое решение, а лишь небольшой пример, сделанный меньше чем за час при помощи AI. Вы можете доработать его и использовать у себя в проектах (о том, что нужно сделать, написал тут).

Дарт - это не только про бизнес-логику и плагины. На нем можно писать инструменты, помогающие в прикладной разработке. Полученные данные можно интегрировать в ваши CI-системы, строить отчеты о росте проблем в проекте (или их снижении), а так же держать руку на пульсе и не давать разбивать еще больше окон (а так же чинить то, что есть).