CodeBab.ai – помощник для код-ревью
На прошлой неделе в клубе «Цифровые лидеры бизнеса» прошла интереснейшая лекция от коллег из компании Friflex. Напомню, Friflex – это компания, в которой мы часто собираемся на так называемые «офисники».
Лекция была посвящена проблеме код-ревью. Дело в том, что раньше код писался разработчиками вручную, а потом валидировался более опытным тимлидом (см. фото №1). Теперь же код генерируется в огромаднейших масштабах с помощью ИИ, а валидировать весь этот вал продолжает человек. И именно этот человек становится узким горлышком в системе поставке кода (см. фото №2).
Генеральный директор Friflex Пётр Чернышев и его коллега Юрий Петров, который является руководителем агентной и кроссплатформенной разработки, рассказали нам о сервисе CodeBab.ai, который был ими разработан внутри компании. Суть этого сервиса заключается в том, что это глобальный оркестратор различных агентов, ставящийся поверх gitlab, который перед тем, как передать merge request тимлиду, проверяет его с помощью специальных промтов на соответствие различным правилам. В итоге тимлиду попадает на проверку только тот код, который уже прошёл предварительную «проверку на вшивость».
Решение вполне рабочее, оно справляется с поставленной задачей.
Но я считаю, что оно не является идеальным, так как с использованием CodeBab.ai качество кода повышается, но количество запросов на слияние хоть и уменьшается, но не сильно – то есть не устраняется первоначальная причина задержек при code review. А значит, при дальнейшем росте количества разработчиков, надо будет опять что-то придумывать.
Как мне кажется, произошёл существенный слом в парадигме программирования, из-за этого привычный механизм ветвления кода стал давать сбои. И мы пытаемся придумать какое-то стороннее решение, позволяющее прежнему механизму хоть как-то функционировать. Я думаю, что изящное решение должно каким-то образом поменять саму логику ветвления кода с последующими merge request’ами.
Мне почему-то сразу вспомнилась история про замену ручного труда станками. И последующее гениальное решение Форда по созданию конвейера. Немного поразмышляв, я понял, что в данном случае аналогия не применима, потому что конвейер Форда заточен на последовательные действия. А разработка ПО – параллельный процесс, осуществляемый множеством разработчиков, и терять этот параллелизм ради адаптации под конвейерное решение – глупо.
В общем, пока что я ничего гениального не придумал, но задачка эта засела у меня в мозгу, и я к ней периодически мысленно возвращаюсь. Как-нибудь на досуге почитаю научные исследования на эту тему, потому что мне, как выпускнику кафедры Системного программирования ВМК МГУ, интересно следить за эволюционным развитием языков программирования в целом, и за прогрессом в области командной разработки в частности.

