Pull to refresh
1

Ты ж программист

1
Subscribers
Send message

Регресс-тесты до/после - агент может их генерировать, если прописано в скилле. Но оракула нет: тесты будут ровно такими, какими он сам их напишет на основе твоего описания. Часть регрессий ловит, часть пропускает - не серебряная пуля, а костыль, который лучше, чем ничего.

Швы по Физерсу - у модели нет интуиции, чтобы вытаскивать зависимости из legacy и грамотно расставлять characterization-тесты на текущее поведение. Максимум, что скилл умеет форсить: "перед изменением X напиши тест на то, как оно работает сейчас".

E2E-сценарии - ваше "откуда?" ровно в точку. Ниоткуда. Либо ты их дал в постановке, либо они уже есть в проекте, либо их не будет. Handoff не изобретает бизнес-кейсы из воздуха, и это скорее фича, чем баг - выдумывать E2E он и не должен.

Согласование умолчаний - plan-polisher гоняет план через критерии качества, туда прописывается "выяви неоднозначности и уточни". Работает вероятностно: иногда задаёт правильные вопросы, иногда додумывает молча. Полного покрытия implicit requirements не будет - ни у агента, ни у джуна на первом проекте.

Быстрая петля без человека - зависит от твоего CI и тестов, а не от агента. Если у тебя suite гоняется 40 минут с флаками, никакой автопилот это не починит, он просто будет сидеть в этой петле с тем же успехом, что и ты.

Главное, что стоит развести: Human-on-the-Loop "не равно" - "ушёл и забыл". Финальный Approve на тебе, PR ты всё равно читаешь глазами. Экономится не ревью, а ручное переключение между этапами план -> имплемент -> ревью -> фикс замечаний -> снова ревью. Кофе пьёшь не пока едет критичный фикс в прод, а пока крутится рутинная фича, которую ты потом всё равно просмотришь.

Кстати, кофе тоже неплохо пить, когда итерации review -> implement агент гоняет сам, а не ты вручную пушишь его обратно в IDE после каждого замечания.

P.S. да использовал хэндофф на 4-х проектах, попивая кофеёк и играя в онлайн игры ;)

Все супер! а я бы еще добавил к статьи просто упоминание, когда это не обязательно, чтоб разжевать уже до конца:)

- В глобальном пространстве имен: Если файл не содержит namespace ...; в начале, то все функции и константы по умолчанию ищутся в глобальном пространстве. strlen() и \strlen() будут работать одинаково.

- Для функций, импортированных через use function (PHP 5.6+):

namespace MyApp;

use function \json_encode;

function doSomething() {
    json_encode(...); // Вызов импортированной глобальной функции без \
}
namespace MyApp\Utils;

function json_encode($data) {
 // ... кастомная реализация (плохая практика для такого имени, но технически возможно и даже попадался на такое) ...
 }

function process() {
 $data = ['a' => 1];

// Вызов КАСТОМНОЙ функции json_encode из текущего пространства MyApp\Utils:
$resultCustom = json_encode($data);

// Вызов ВСТРОЕННОЙ PHP функции json_encode (с помощью `\`):
$resultBuiltin = \json_encode($data);

// ... разные результаты ...
}

А самое главное Статические анализаторы (Psalm, PHPStan) - могут предупредить о потенциальных конфликтах имен или неоднозначных вызовах.

Information

Rating
Does not participate
Location
Зимбабве
Registered
Activity

Specialization

Фулстек разработчик, DevOps-инженер
Старший
From 200,000 ₽
PHP
Nginx
SQL
Linux
MySQL
Symfony
Laravel
REST
Git
Delphi