Copilot инструмент автогенерации кода, который наделал много шуму и которым пользуются программисты по всему миру. Я тоже включился в этот хайп, поигрался, попробовал переключить свой флоу работы на него и обломался. Минусы в итоге перевесили плюсы. Сейчас про это расскажу. Ниже описание взаимодействия с автокомплитом copilot. К чату вопросов нет, хорошая и полезная штука, но в статье не про него.

Сетап

За это время я использовал copilot в основном с двумя языками: php (laravel) и typescript (react). В качестве редактора nvim (сборка LazyVim на скрине). Писал и фронт и бек и тесты.

Что понравилось

Конечно Copilot выглядит как чудо. Чем более повторяющийся код, тем больше и лучше он догадывается до того, что надо сделать. Местами он показывает простые решения, до которых сам сходу не додумываешься. В целом же, на простом коде, он дает болванку, которую писать самому не очень хочется, а тут тебе все выложили. Такой код тоже требует правки, но это все равно удобно.

Почему я остановился

Но чем дальше, тем больше появлялось ситуаций, когда я понимал, что copilot мне скорее помешал чем помог.

Уменьшение продуктивности

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

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

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

Импорты

Отдельная тема это импорты. Копайлот вставляет куски кода без реальной связи с окружением. Если там есть какие-то символы типа классов или внешних функций, то естественно никаких автоматических импортов не произойдет. Это сбивает, потому что каждый раз непонятно, что уже импортировано, а что нет.

Ошибки

Копайлот постоянно вводит в заблуждение. Начинаешь набирать неверную команду, вызывать неверное свойство или метод, копайлот обязательно что-то подскажет из-за чего случаются осечки. Обычный автокомплит защищает от этого, потому что если его нет, ты знаешь, что сделал ошибку. В некоторых случаях его автокомплит вообще синтаксически не коректен. У меня такое было в PHP, когда вставляешь вроде что надо, а потом только замечаешь, что он в конце не поставил точку с запятой или забыл закрывающую кавычку у строки.

Итого

В коротких командах копайлот больше мешает. Обычный автокомплит + моторная память быстрее и просто приятнее, потому что не надо думать. В больших кусках кода он бывает полезен, но когда проект уже состоялся, то многое делается копипастой и так, как например в интеграционных тестах на круды. Плюс рядом есть chatgpt у которого можно спросить и покрутить какую-то тему.

Больше о разработке я пишу в своем телеграм канале https://t.me/orgprog

Комментарии (112)


  1. Revertis
    24.07.2024 12:29
    +15

    Я перестал использовать Copilot после 2 месяц.

    Это на каком языке? И почему даже в заголовке?


    1. Negat1v9
      24.07.2024 12:29
      +66

      Статью видимо тоже copilot написал.


      1. Revertis
        24.07.2024 12:29
        +3

        А местами так и кажется.


        1. exTvr
          24.07.2024 12:29
          +5

          Или не кажется.


          1. toxicmt Автор
            24.07.2024 12:29
            +17

            Было бы прикольно если бы это копайлот за меня такой текст написал да :D Ошибку поправи!


            1. melodictsk
              24.07.2024 12:29
              +7

              И тут такая же ошибка :)


              1. toxicmt Автор
                24.07.2024 12:29
                +29

                Разв?


                1. nochkin
                  24.07.2024 12:29
                  +13

                  Всё нормально. У них просто неправильная русска языка.


                  1. YMA
                    24.07.2024 12:29
                    +36

                    Эт прждврмнна оптмзци. Есл скртит лшн бквы, мжн сэкнмт до 30% мст! Прктчск без ущрб читблнсти ;)


                    1. exTvr
                      24.07.2024 12:29
                      +30

                      Птчк, я прнс!


                      1. zetroot
                        24.07.2024 12:29
                        +16

                        Т бнк?


                      1. nochkin
                        24.07.2024 12:29
                        +6

                        .


                      1. Metotron0
                        24.07.2024 12:29
                        +1

                        Пмн ткй бнк в рклм Лпнк


                      1. Metotron0
                        24.07.2024 12:29

                        -- Слчйн дбл


    1. Vugluskr1
      24.07.2024 12:29
      +4

      Потому и перестал. Копилот умнее


  1. saroff
    24.07.2024 12:29
    +27

    На самом деле почти все описанные недостатки фиксятся если использовать AI помощника рядом с обычным автокомплитом, а не вместо. Назначить на отдельный хоткей. Довольно часто он может неплохо подсказать, особенно если как писали, код повторяющийся. А в стальное время можно работать как будто его нет.


    1. delphinpro
      24.07.2024 12:29
      +1

      А если нет таких опций. Вот например использую Codeium в phpstorm. Настроек клавиш нет. Что развернется по табу - неизвестно, родной автокомплит или подсказка ассистента.. Пришлось отрубить AI в редакторе и оставить только чат.


      1. hooy
        24.07.2024 12:29
        +25

        Ну так не используйте такой редактор, в котором в 2024 нет гибкой настройки хоткеев на любой чих


      1. Kergan88
        24.07.2024 12:29
        +4

        >А если нет таких опций

        Что кстати само по себе показательно. Уже не один год прошел с начала хайпа, но нет _ни одного_ нормально сделанного нейросетевого автокомплита!

        @hooy

        А это не проблема редактора, это проблема самих автокомплит-плагинов. Которых нормально сделанных просто не существует в природе. На уровне настройки редактора тут решить ни чего нельзя.


        1. davidaganov
          24.07.2024 12:29
          +3

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


          1. EGSP
            24.07.2024 12:29
            +3

            А еще удобно точечно и последовательно принимать автокомплит от кодиума хоткеем "ctrl+стрелочки"


            1. rombell
              24.07.2024 12:29

              исключительно бесит, когда нужно позиционироваться на пару слов правее, а вместо этого вставляются рандомные куски кода. Если успеют. Если я нажимаю быстрее - не вставляются. Если чуть задумался - откатывать и вычищать


          1. Kergan88
            24.07.2024 12:29

            Запилить хоткей это прогресс конечно)

            Нормальный нейросетевой автокомплит должен уметь хотя бы адекватно комплитить внутрь не фейля со скобочками и учитывать контекст language servera


    1. utrumo
      24.07.2024 12:29
      +1

      Несколько месяцев пользуюсь Сodeium в LazyVim и что-то и с ним не удобно и без него как-то грустно - иногда он удачные правки предлагает.

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

      Сегодня с утра подкрутил свой конфиг - при включении редактора Codeium выключается, чтобы не мешал, а по хоткею его можно включить обратно:

      https://github.com/utrumo/myConf/blob/master/nvim/lua/plugins/codeium.lua

      Спасибо за идею!


  1. Zaro4k0
    24.07.2024 12:29
    +4

    Зашла только ради того, чтобы посмотреть, сказал ли кто-нибудь что-нибудь про заголовок.


    1. Zaro4k0
      24.07.2024 12:29
      +1

      так все-таки Копайлот, Copilot или copilot?


      1. bear11
        24.07.2024 12:29
        +22

        сопилот (по аналогии coprocessor - сопроцессор).


        1. Yuuri
          24.07.2024 12:29
          +30

          -- Какая разница между авторством и соавторством?
          -- Примерно как между пением и сопением.


        1. ru1z
          24.07.2024 12:29

          "Спутник" как-то привычнее в словах для новых сервисов, он и поисковик и вакцина, поистине универсальное слово.


          1. haqreu
            24.07.2024 12:29

            На авиационном жаргоне второй пилот называется «права́к», потому что сидит на правом пилотском кресле; на левом сидит командир.


      1. snuk182
        24.07.2024 12:29
        +36

        Соплелёт.


        1. rbdr
          24.07.2024 12:29
          +3

          Даже "соплемёт", скорее - т.к. накидывает бесполезного мусора нереально. :)


      1. delphinpro
        24.07.2024 12:29
        +10

        второй пилот. если по-русски.


  1. Abstraction
    24.07.2024 12:29
    +4

    Встречный опыт: Qt Creator/C++, VS Code/TypeScript+HTML

    Работает как продвинутый автокомплит, и в хорошем и в плохом смысле. В хорошем - предлагает поля структур, рутинные аксессоры / циклы / проверки, иногда он разумно предлагает блок в несколько десятков строк "по аналогии" (убрать который вообще в порядке следования DRY архитектурно очень нетривиально). В плохом - когда правишь файл с неидеальным чужим кодом, успешно подтаскивает из него неидеальные привычки его автора.

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

    В Qt Creator работает вместе с обычным автокомплитом, так что проблем с непредсказуемым вводом имён полей/методов я не наблюдал.

    Копайлот вставляет куски кода без реальной связи с окружением. Если там есть какие-то символы типа классов или внешних функций, то естественно никаких автоматических импортов не произойдет.

    Поскольку их не происходит и без Copilot, я не рассматриваю это как минус (а то что разводить много зависимостей неудобно - даже как маленький плюс).

    В некоторых случаях его автокомплит вообще синтаксически не корректен.

    Это бывает, но требует мелких правок (в частности, при каких-то условиях он начинает ставить лишнюю закрывающую скобку в конец блока - то ли его пространства имён озадачивают, то ли что). Или же изредка он предлагает бред, но тогда его вставлять не надо вообще.


  1. Anton888
    24.07.2024 12:29
    +16

    У меня такой же опыт с ChatGPT-4o, который пытаюсь приспособить для анализа массивов отзывов и генерации соответствующих отчетов. В начале кажется, что работает круто и отлично все классифицирует, выявляет часто повторяемые проблемы, умеет отличать негатив от позитива и т.д.

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

    А особенно мне понравилось, что на команду "дай примеры более подробных отзывов" по такой-то теме, он начал генерировать отзывы сам. Причем заметил это только благодаря "гладкости" текста.


    1. morijndael
      24.07.2024 12:29
      +17

      на команду "дай примеры более подробных отзывов" по такой-то теме, он начал генерировать отзывы сам.

      Ну так вы сами его попросили........


      1. ilnuribat
        24.07.2024 12:29

        здесь подразумевается примеры из входного массива, а не из общей базы гпт

        Просто тема обработки отзывов тоже передо мной стояла, понимаю боль


        1. nidalee
          24.07.2024 12:29
          +6

          здесь подразумевается примеры из входного массива, а не из общей базы гпт

          Это вами подразумевается. А в запросе "дай примеры более подробных отзывов" нет требования брать эти примеры из массива, а не генерировать. Основная сложность использования ChatGPT и иже с ними - правильно формулировать то, что действительно хочешь получить, и ничего не подразумевать.

          И да, лично мне часто приходится в контексте требовать у ChatGPT выдумывать, а не обрабатывать ранее сказанное.


          1. Cerberuser
            24.07.2024 12:29

            Основная сложность использования ChatGPT и иже с ними - правильно формулировать то, что действительно хочешь получить, и ничего не подразумевать.

            Собственно, в этом её большое преимущество перед людьми - люди даже в этом случае умудряются всё услышанное полностью перевирать.


            1. Wesha
              24.07.2024 12:29

              люди даже в этом случае умудряются всё услышанное полностью перевирать.

              ...и в этом сопилоты семимильными шагами приближаются к человеку!


          1. Kwentin3
            24.07.2024 12:29
            +2

            Насчёт проблемы правильного формулирования запроса: Джин, я хочу, чтобы у меня всё было! Ок мужик, у тебя все было!


            1. Wesha
              24.07.2024 12:29
              +1

              Джин, я хочу, чтобы

              Допился мужик, уже с алкоголем разговаривает...


  1. Moog_Prodigy
    24.07.2024 12:29
    +4

    Сопилот не понравился, а вот локальная ллама в этом плане будет получше. Ну есть ошибка в программе. Говорю ей - переписать заново. И зависимости она обычно прописывает вначале, то есть использование библиотек возлагается на ИИ. Иногда конечно оно выдумывает библиотеки, да и вызовы выдумывает. Если модулей в программе много, то обычно работает просто "Напиши вот это и это на питоне, используя qt", если идти по функциям, а не прям вот всю программу. То есть майн с инитом у нас в начале - заставляем ИИ поработать архитектором и правим, а затем уже мелкие моторные навыки - Напиши функцию, чтобы принимала на входе строку в формате () и на выходе эта функция возвращает число букв в строке. Это я утрированно, не думайте что я про Len не знаю)

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


    1. powerman
      24.07.2024 12:29
      +2

      А подскажите детальнее про тонкую грань плз: на каком языке пишете, какая локальная модель, какая среда выполнения и какой промпт?

      Я вот экспериментирую с этими:

      $ docker exec -it ollama ollama ls
      NAME                    	ID          	SIZE  	MODIFIED    
      codellama:13b-instruct  	9f438cb9cd58	7.4 GB	4 weeks ago	
      deepseek-coder-v2:latest	8577f96d693e	8.9 GB	4 weeks ago	
      codestral:latest        	fcc0019dcee9	12 GB 	4 weeks ago	
      llama3:latest           	365c0bd3c000	4.7 GB	4 weeks ago	

      и надо сказать, что когда в видуху влазит максимум около 6.5GB а остальная часть модели оказывается в обычной памяти, то codestral уже заметно тормозит.


      1. iTs
        24.07.2024 12:29

        Какая модель в результате даёт наиболее приемлемый результат, хотя бы и с задержкой? А то я было начал устанавливать -все игры-, но может кто-то уже успел пощупать.


  1. sergeyklyopov7
    24.07.2024 12:29
    +1

    Я посмотрел как у других копилот работает и подумал - ну нахрен. Интеллекта там нет, предлагает переставить местами проверки условий в цепочке If else if ибо один из блоков короче другого и ему пофиг что одно условие это просто сравнение инта с интом, а второе условие - вызов какой-то функции весьма даже не лёгкой по процессору.


  1. vignatovic
    24.07.2024 12:29
    +20

    В своей статье про доверие и LLM я пишу, что для доверия нужна еще и предсказуемость. Ваша статья это хорошо иллюстрирует. У редактора с автозаполнением есть предсказуемость, а у Copilot -а предсказуемости нет, а значит и нет доверия.


    1. vkni
      24.07.2024 12:29
      +4

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


      1. vagonovozhaty
        24.07.2024 12:29
        +3

        не?


        1. vkni
          24.07.2024 12:29
          +2

          Оно, оно. По-умолчанию после установки оно включено.


    1. funca
      24.07.2024 12:29
      +6

      Copilot это не столько про доверие, сколько про автоматизацию понятной вам рутины, где результат вы сами можете критически оценить. Работа с ним больше напоминает работу со стажёрами, нежели с оракулом.


      1. vkni
        24.07.2024 12:29
        +21

        > Работа с ним больше напоминает работу со стажёрами, нежели с оракулом.

        В программистской деятельности, как правило, помощь стажёра носит отрицательный вклад в производительность. Именно из-за проблемы доверия, из-за которой приходится полностью проверять результат, а также из-за необходимости передачи расширенного контекста.


  1. Andrey_Solomatin
    24.07.2024 12:29
    +1

    то естественно никаких автоматических импортов не произойдет. Это
    сбивает, потому что каждый раз непонятно, что уже импортировано, а что нет.

    Pycharm c Python хорошо подсвечивает такие моменты и через хоткей предлагает добавить импорты.


  1. Andrey_Solomatin
    24.07.2024 12:29

    Плюс рядом есть chatgpt

    У сопилота тоже есть свой чат. Не пробовали его?


    1. toxicmt Автор
      24.07.2024 12:29

      Пробовал, но мне как-то проще оказалось работать через chatgpt. Не отрицаю что конкретно в этом случае текстовый интерфейс вима не помогает.


  1. Andrey_Solomatin
    24.07.2024 12:29

    У меня плюсы на минусы складываются в ноль. На работе есть копилот на домашних проектах нет. Ни там ни там не страдаю. Вот только чатом так и не начал пользоваться, его поддержку в IDE завезли с опозданием.


  1. podguzovvasily
    24.07.2024 12:29

    Как им в России пользоваться?


    1. Ilyasyakubov
      24.07.2024 12:29
      +1

      Через VPN


      1. xxxDef
        24.07.2024 12:29

        Платить за него как?


        1. vvzvlad
          24.07.2024 12:29

          Казахстанской картой


          1. Metotron0
            24.07.2024 12:29

            А её где в России выдают? Как пополнять?


            1. Newbilius
              24.07.2024 12:29

              Заказать с доставкой через посредников, погуглите, вариантов много, конкретный советовать не хочется.


            1. vvzvlad
              24.07.2024 12:29

              Фридомфинанс, например. На авито куча народа оформляет


        1. Ilyasyakubov
          24.07.2024 12:29
          +1

          Рублями. Есть миллион вариантов.


          1. Wesha
            24.07.2024 12:29

            За миллион рублей?


            1. Ilyasyakubov
              24.07.2024 12:29

              Vdsina — 200 р/месяц. Еще вопросы?


        1. ktim8168
          24.07.2024 12:29

          Delims, как вариант (не реклама).


    1. Stepashka20
      24.07.2024 12:29

      Прокси поставить в редакторе кода и не придется включать впн


  1. iskateli
    24.07.2024 12:29

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

    Ну как бы чем сложнее подсказка тем внимательнее надо смотреть и да, конечно при этом нужно время на осознание
    Выше уже предложили разделить обычные простые подсказки компилятора и подсказки copilot


  1. funca
    24.07.2024 12:29
    +1

    Есть ещё режим, когда желаемый результат описываешь в комментарии, а он под ним пишет код. Так Copilot получает больше контекста и результат становится точнее. Комментарии можно потом не убирать, оставляя их для потомков и него же самого.


    1. morijndael
      24.07.2024 12:29
      +6

      ...и пока опишешь LLM весь нужный контекст, оказывается что проще взять и руками сделать


      1. AcckiyGerman
        24.07.2024 12:29
        +1

        Детальная постановка задачи это уже 50% решения.


        1. Lex98
          24.07.2024 12:29
          +9

          Сразу же вспомнилось:

          Hidden text


  1. KReal
    24.07.2024 12:29

    А я не перестал. Плагин в JetBrains Rider (C#) большую часть времени молчит, но иногда предлагает (не вставляет сам внаглую) варианты. Порой удивительно в тему, буквально то, что я и сам думал написать. Иногда (реже) - какую-то фигню, которую я игнорирую. В общем, пользы больше, чем вреда.


  1. Warrangie
    24.07.2024 12:29

    Автокомплит больше мешает, чем помогает. Однако, если лень писать какой-то кусок кода, он очень помогает. Разумеется, при вызове вручную.


    1. toxicmt Автор
      24.07.2024 12:29

      Вот да, скорее это явный запрос на написание какого-то кода, причем чаще это скорее определение функции, тест или что-то такое, а не строчка кода.


  1. MaximArbuzov
    24.07.2024 12:29
    +2

    В качестве редактора nvim (сборка LazyVim на скрине)

    "Скрин" - это скриншот?


    1. Dolios
      24.07.2024 12:29

      Да.


      1. MaximArbuzov
        24.07.2024 12:29

        Не отображается.


        1. toxicmt Автор
          24.07.2024 12:29
          +1

          Елки, забыл приложить


        1. Dolios
          24.07.2024 12:29
          +3

          Мотороллер не мой (с)


  1. Vladimirsencov
    24.07.2024 12:29
    +3

    А все таки подобные инструменты здорово жизнь упрощают. Например сегодня написал инструкцию с помощью ChatGpt. Просто накидал тезисов и заставил сгенерить Markdown файл. После немного поправил. На все ушло часа полтора. Сам бы писал пару дней. Так как дофига времени потратил бы на оформление.


    1. cb_ein
      24.07.2024 12:29

      Тоже был подобный опыт. В качестве автокомплита LLM чаще мешает и раздражает, чем помогает, но когда понадобилось написать объемную документацию для end-user - ИИ помощник оказался весьма кстати.


      1. Wesha
        24.07.2024 12:29
        +1

        когда понадобилось написать объемную документацию для end-user

        поздравляю, Вы изобрели переводчик с машинного на человеческий!


  1. Bobovor
    24.07.2024 12:29
    +5

    Вас скоро заменят

    @

    Суетливый бот фейлит при вызове функции и пишет комменты рода here we add value a to value b


  1. Sayonaranigga
    24.07.2024 12:29
    +1

    Я так понял, что основной негатив автора связан с пыхой. Я вот использую копю в контексте go, и с его тулзами авто форматирования и автоимпортов без всяких "ии" - копя-чан офигительно помогает писать очередной сервис по перекладыванию жысонов. Типа, пара строк для контекста, два-три таба -- и строя готова. Потом ctrl+s, нужные и порты подтянуты go-fmt, и дело сделано


    1. tommyangelo27
      24.07.2024 12:29
      +3

      Я вот тоже php-шник и постоянно использую Copilot в работе. Не понимаю претензий автора. Да, помощник иногда бредит, но ведь не обязательно принимать предлагаемые им варианты.

      Блин, писать всякие тривиальные проверки и early return'ы просто по нажатию Tab - это супер удобно. А подобный код, как ни крути, составляет минимум процентов 30.


  1. maxzh83
    24.07.2024 12:29
    +15

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


  1. Tim7456
    24.07.2024 12:29
    +1

    Програмирование с КоПилотом - это как парное програмирование, а помошник "креативный" и тупой, но хорошо умеет в copy-paste. И весь плохой код он активно копирует и вставляет.


  1. r33
    24.07.2024 12:29

    Ты ж программист, сделай своего бота в телеге!


    1. Wesha
      24.07.2024 12:29
      +2

      Я ж программитст, а не извозчик!


  1. DmitryOlkhovoi
    24.07.2024 12:29

    А я все больше Tabnine и chat gpt использую))


  1. printf
    24.07.2024 12:29

    Вот да, мне в сопилоте не хватает какой-то опции вроде «не пиши много кода, пиши мало».

    Подсказка в одну строку — часто хорошая. Подсказка целой функции или тела цикла — кто в лес, кто по дрова. Из-за этого у меня самый используемый хоткей это «принять из подсказки следующее слово».


  1. MountainGoat
    24.07.2024 12:29

    Я не тестировал Copilot, я тестировал любительские поделки на эту тему. Поэтому одно из двух:
    ЛИБО
    * Автор текста нихрена не понял или врёт.
    ЛИБО
    * Copilot намного хуже большинства любительских поделок на эту тему.

    Потому что по статистике я сразу принимаю 85% предложенных комплитов от модели.


    1. positroid
      24.07.2024 12:29
      +2

      Жаль copilot (или плагин), по крайней мере на обычных тарифах, не показывает статистику. Было бы удобной фичей - вы сэкономили столько то времени, столько то строк (символов?) кода, выбираете версию копилота в X% случаев


    1. printf
      24.07.2024 12:29
      +2

      Либо автор текста пишет более сложные / необычные / непонятные модели вещи.

      В одних проектах оно правда неплохо понимает, в других всё мимо. Целиком зависит от предметной области и типичности задачи.


  1. rezedent12
    24.07.2024 12:29

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


    1. positroid
      24.07.2024 12:29

      Используйте специализированный промпт разработчика, чтобы chatGPT писал весь код, а не только шаги. Свой стиль можете также 1 раз кратко описать и подавать в виде контекста - уверен, все это подхватится. В том числе этот промпт можно указать в настройках chatGPT, чтобы не копипастить в каждый новый чат.

      P.S. ссылки на телеграм не приветствуются, тем более не мой, но промпт, который я использую выкладывали на vc, гуглится по "I have no fingers and the placeholders trauma." (авторство промпта все же укажу - Денис Ширяев).


  1. JM777
    24.07.2024 12:29
    +3

    Что за заголовок? Можно просто написать без этого "ивотпочему"?? Надоел этот тупой штамп.


    1. haqreu
      24.07.2024 12:29
      +1

      Ха, зря я ругался на этот же штамп. Надо было сначала комменты почитать :)

      Прямо сейчас открыл, например, РБК (просто для иллюстрации). "Эксперты назвали вид напитка, рынок которого будет расти ближайшие 10 лет", "Назван российский город, обогнавший Москву по ценам на аренду жилья". И всё в таком духе :(


      1. Nulliusinverba
        24.07.2024 12:29

        Всегда хочется спросить - кем назван, какие эксперты назвали, вы о чём вообще?


  1. Knightt
    24.07.2024 12:29
    +1

    использую Copilot с GO. (у нас микросервисы, все по примерно одной архитектуре)

    мне прям нравится! но да, надо проверять что он пишет! вот прям надо, надо, надо!

    res, err := someFunc()
    потом жмешь tab и там дописывается обработчик ошибки - красота

    нужно какой-нить датамапер написать - написал функцию

    toGRPCUser( нажа tab - у тебя 15 полей заполнены

    запрос из базы данных.. я часто просто называние функции пишу, появляется 30-40 строк кода (правок минимум). Иногда достаточно написать название UserRepository - 5-6 раз нажать tab - у тебя написан тупейший CRUD

    пишешь switch он поймет какой тип данных, тут же найдет все константы этого типа и распишет все case


    1. parmatosser
      24.07.2024 12:29

      ну, это давно известно, что бывают прогеры которые годами крудошлёпят. главный вопрос - зачем вы это делаете?


      1. AntonLarinLive
        24.07.2024 12:29
        +1

        Хорошо оплачивается.


    1. Andrey_Solomatin
      24.07.2024 12:29
      +2

      запрос из базы данных.. я часто просто называние функции пишу,
      появляется 30-40 строк кода (правок минимум). Иногда достаточно написать
      название UserRepository - 5-6 раз нажать tab - у тебя написан тупейший
      CRUD

      В спринг Бут для джавы, просто делаешь пустой метод в интерфейсе и даже таб нажимать не надо.


    1. DarthVictor
      24.07.2024 12:29
      +2

      А как-то автоматически строить такие toGRPCUser библиотекой нельзя? Ну напишет, это Copilot один раз, но читать-то это потом придётся десять раз и людям...


      1. Andrey_Solomatin
        24.07.2024 12:29

        Можно. https://github.com/google/python-proto-converter

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


  1. haqreu
    24.07.2024 12:29
    +1

    Меня одного раздражают заголовки, оканчивающиеся "и вот почему" или "что из этого получилось"?


    1. toxicmt Автор
      24.07.2024 12:29

      Меня тоже!


      1. haqreu
        24.07.2024 12:29

        А что ж вы кактус-то жуёте тогда? :)


        1. toxicmt Автор
          24.07.2024 12:29
          +1

          Так работает же :)


  1. iroln
    24.07.2024 12:29

    Обычно было как на этой картинке, поэтому через месяц перестал этим пользоваться. Ещё пробовал Codeium в виде плагина для Idea, невозможно пользоваться из-за того, что весь тот бред, что он генерирует, вставляется по кнопке tab. Особенно выбешивает, когда пишешь на Python. Хочешь вставить отступ, а вставляется экран какого-то мусора.