Кастомные инструменты Дарта как средства работы с техническим долгом
Дарт и его тулы в купе с 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-системы, строить отчеты о росте проблем в проекте (или их снижении), а так же держать руку на пульсе и не давать разбивать еще больше окон (а так же чинить то, что есть).