2022-12-14 10:08:47
Перед тем как погружаться в 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
146 viewsedited 07:08