Получи случайную криптовалюту за регистрацию!

Перед тем как погружаться в chatGPT решил наверстать и заценит | NuclearBand

Перед тем как погружаться в chatGPT решил наверстать и заценить github copilot.

У меня был опыт с бесплатной версией Tabnine. Тогда эти подсказки скорее отвлекали, потому что не угадывали мои намерения, и я уже через пару дней использования его отключил.

В целом с микрософтовским копилотом та же история. Он угадывает намерения чаще, выдаёт несколько релевантных строчек кода, но проблема в том, что этот код не учитывает существующую кодовую базу. Например, для подстановки локализации он часто предлагает использовать LocalizationManager.Instance.GetLocalization("blablabla"), хотя у нашего локализатора совершенно другой API.

Я думал писать какую модельку я хочу получить, а он будет её доставать через наш сервис локатор правильно прописывая весь путь по иерархии, но нет, такого он не умеет.

Единственные алгоритмические задачки, которые мне нужно было решить за последние дни - это округлить размер скидки до десяток. Например, 67 до 70. И тут copilot подставил

int RoundToMultipleOf10(int x) => (x + 5) / 10 * 10;

Но я, если честно, подумал что это какая-то хрень, удалил и начал думать сам. И только спустя пару минут допёр, что копилот был прав. Круто, что / 10 * 10 не отбрасывается компилятором.

Второй подходящей задачей была подстановка нужного падежа в зависимости от количества дней. И хотя switch мне пришлось искать на stackoverflow, с определением количества дней из секунд он справился. Хотя вот сейчас пишу и думаю - а вдруг налажал. Я не проверял значение этой магической константы :)

var days = seconds / 86400;
if (seconds % 86400 != 0)
{
days++;
}

Вообщем, продуктивность копилот повышает на пару минут раз в пару дней. А в остальное время только отвлекает на оценку правильности своих подсказок, с которой в целом неплохо справляются автоподстановки IDE.

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

В следующий раз напишу как с последней задачей справилась chatGPT :)

#tools