Interface Driven Development и ChatGPT

Нашёл ещё один абсолютно прекрасный юзкейс для ChatGPT. Сидел сегодня, делал код-ревью, как обычно. Чувствую что-то не то, какое-то слишком связное решение получилось, зависимости растеклись, андроидные зависимости просочились туда, куда не надо бы.

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

Я написал руками абсолютно чистый и красивый интерфейс без лишних андроид-зависимостей, всё как мы любим, несколько строчек кода. И говорю, ChatGPT, напиши мне андроид-специфик реализацию этого интерфейса. Он это сделал просто офигенно. Я даже не уверен а нужен ли мне разработчик теперь, хех. Контекст передал в конструктор, понял что мне надо там бродкаст ресивер в корутину завернуть, зарегистрировался на него, отрегистрировался где нужно согласно скоупу корутины, чудо просто. 🪄

Для ChatGPT чем больше ограничений, уточнений и указаний тем лучше. Это и по обычным текстовым запросам было заметно. Ты, умный человек, ставишь эти рамки. Он, умная машина, действует в этих рамках и даёт тебе офигенный прототип, который ты ещё и докрутить можешь последующими запросами. Я не уверен правильный ли он мне код сгенерил, соберётся ли он, не в этом суть, это шикарный инструмент чтобы в комментарии к МРу свою мысль более подробно раскрыть, предложить наглядный вариант.

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