Re[2]: Порекламирую копилот
От: paucity  
Дата: 10.11.22 02:59
Оценка: +9
Здравствуйте, vsb, Вы писали:

vsb>
vsb>    // if the expression is the same as the string, just print the string
vsb>


vsb>В этом коде он мне дополнил полностью текст комментария. Это вообще он классно делает,


А какова смысловая нагрузка этого комментария?
Re[3]: Порекламирую копилот
От: Doom100500 Израиль  
Дата: 10.11.22 07:50
Оценка: +5 :)))
Здравствуйте, vsb, Вы писали:

vsb>Здравствуйте, scf, Вы писали:


scf>>Не напрягает за ним всё проверять? Вдруг он нолик забыл или плюс на минус заменил где-нибудь.


vsb>У меня для этого юнит-тест есть. Он их, кстати, тоже помогает писать)


Ошибся в коде, ошибся в тесте. Тест проходит — дело сделано
Спасибо за внимание
Re[3]: Порекламирую копилот
От: vsb Казахстан  
Дата: 10.11.22 09:29
Оценка: +1 -3
Здравствуйте, paucity, Вы писали:

vsb>>
vsb>>    // if the expression is the same as the string, just print the string
vsb>>


vsb>>В этом коде он мне дополнил полностью текст комментария. Это вообще он классно делает,


P>А какова смысловая нагрузка этого комментария?


Избавить читателя от необходимости чтения кода. Я в последнее время внедряю концепцию, когда код дублируется в комментарии, если комментарий прочитать проще, чем понимать код. Я в курсе, что это противоречит общепринятой мудрости, что мол читать надо код, комментарий потом забудешь исправить и всё такое и раньше так же думал, но сейчас думаю по-другому.
Re: Порекламирую копилот
От: hardcase Пират http://nemerle.org
Дата: 11.11.22 09:19
Оценка: +3 -1
Здравствуйте, vsb, Вы писали:

vsb>Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.


Это именно тот пример, когда он автоматизировал говнокод.
/* иЗвиНите зА неРовнЫй поЧерК */
Порекламирую копилот
От: vsb Казахстан  
Дата: 09.11.22 22:24
Оценка: 1 (1)
Я таки на копилот слегка подсел и порой он меня приятно удивляет. Хочется поделиться. Если не возражаете, буду в эту тему скидывать примеры его дополнений, которые мне кажутся не вполне тривиальными и полезными.

// это было

      case 'int32':
        log_args.push(expr_string + ':');
        log_args.push(arg.value);
        break;

      case 'uint32':
        log_args.push(expr_string + ':');
        log_args.push(arg.value < 0 ? arg.value + 0x100000000 : arg.value);
        break;

      case 'int64':
        log_args.push(expr_string + ':');
        log_args.push(arg.value);
        break;

// а это дополнил

      case 'uint64':
        log_args.push(expr_string + ':');
        log_args.push(arg.value < 0 ? arg.value + 0x10000000000000000n : arg.value);
        break;


Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.
Отредактировано 09.11.2022 22:26 vsb . Предыдущая версия . Еще …
Отредактировано 09.11.2022 22:25 vsb . Предыдущая версия .
Re: Порекламирую копилот
От: scf  
Дата: 09.11.22 22:43
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.


Не напрягает за ним всё проверять? Вдруг он нолик забыл или плюс на минус заменил где-нибудь.
Re[4]: Порекламирую копилот
От: paucity  
Дата: 10.11.22 17:55
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>Избавить читателя от необходимости чтения кода. Я в последнее время внедряю концепцию, когда код дублируется в комментарии, если комментарий прочитать проще, чем понимать код.


Странно, ты прокомментировал совершенно понятный, даже для не-программиста, IF и совершенно не прокомментировал чуточку более "сложный" ELSE.

vsb>Я в курсе, что это противоречит общепринятой мудрости, что мол читать надо код, комментарий потом забудешь исправить и всё такое и раньше так же думал, но сейчас думаю по-другому.


Всегда думал, что комментировать надо какие сложные для понимания сходу блоки кода, а не отдельные простые строки кода.
Re[2]: Порекламирую копилот
От: CreatorCray  
Дата: 21.11.22 02:54
Оценка: +1
Здравствуйте, vsb, Вы писали:

Сурово! Говнокодить станет проще, и это плохо.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Порекламирую копилот
От: vsb Казахстан  
Дата: 09.11.22 22:46
Оценка:
Здравствуйте, scf, Вы писали:

vsb>>Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.


scf>Не напрягает за ним всё проверять? Вдруг он нолик забыл или плюс на минус заменил где-нибудь.


У меня для этого юнит-тест есть. Он их, кстати, тоже помогает писать)

...
        '(uint64_t) 18446744073709551615ULL:',
        18446744073709551615n,
...


если нолик забудет, будет другое число.

В целом, конечно, такая проблема есть. Но с ноликом и я могу ошибиться. В нём, как ни странно, уверенности больше.
Отредактировано 09.11.2022 22:46 vsb . Предыдущая версия .
Re: Порекламирую копилот
От: vsb Казахстан  
Дата: 09.11.22 23:36
Оценка:
  if (expr_string === escaped_string) {
    // if the expression is the same as the string, just print the string
    log_args.push(string);
  } else {
    log_args.push(expr_string + ':');
    log_args.push(escaped_string);
  }


В этом коде он мне дополнил полностью текст комментария. Это вообще он классно делает, я комментарии не люблю формулировать, а он прям на английском пишет и почти всегда угадывает.
Re[3]: Порекламирую копилот
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.11.22 07:58
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>В целом, конечно, такая проблема есть. Но с ноликом и я могу ошибиться. В нём, как ни странно, уверенности больше.


Кажется, что статический анализатор с твоей ошибкой справится.
Re: Порекламирую копилот
От: karbofos42 Россия  
Дата: 10.11.22 08:05
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.


А не лучше было потратить 10 минут на рефакторинг и избавление от всей этой копипасты?
Когда понадобится что-то поправить, а не новое писать, то он же не подскажет внести одинаковые изменения везде?
Re[2]: Порекламирую копилот
От: vsb Казахстан  
Дата: 10.11.22 09:39
Оценка:
Здравствуйте, karbofos42, Вы писали:

vsb>>Это именно тот пример, когда он сделал в общем-то скучную но необходимую работу и сберёг мне полминуты времени.


K>А не лучше было потратить 10 минут на рефакторинг и избавление от всей этой копипасты?


Тут лучше код не напишешь. Любой рефакторинг сделает его менее понятным.

K>Когда понадобится что-то поправить, а не новое писать, то он же не подскажет внести одинаковые изменения везде?


В принципе может подсказать. Но не самостоятельно, нужно поставить курсор в нужное место и попросить дополнить. В целом с редактированием кода в нем неудобно, да, концептуально он работает только как генератор нового кода.
Re[3]: Порекламирую копилот
От: Doom100500 Израиль  
Дата: 10.11.22 09:52
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Тут лучше код не напишешь. Любой рефакторинг сделает его менее понятным.


Секундочку... но ведь задачи рефакторинга как раз обратные.
Спасибо за внимание
Re[4]: Порекламирую копилот
От: Doom100500 Израиль  
Дата: 10.11.22 09:53
Оценка:
Здравствуйте, vsb, Вы писали:

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


Каким образом контролируется соответствие коментариев коду?
Спасибо за внимание
Отредактировано 10.11.2022 9:53 Doom100500 . Предыдущая версия .
Re[4]: Порекламирую копилот
От: vsb Казахстан  
Дата: 10.11.22 10:04
Оценка:
Здравствуйте, Doom100500, Вы писали:

vsb>>Тут лучше код не напишешь. Любой рефакторинг сделает его менее понятным.


D>Секундочку... но ведь задачи рефакторинга как раз обратные.


Рефакторинг это изменение кода без изменения его функционала. А какие там задачи стоят — это у каждого в голове уже свои тараканы. Я во многих случаях предпочитаю оставить немного повторяющегося кода, если это делает код проще для чтения и понимания, т.к. любые выносы этого кода в общие функции и тд неизбежно вызывают дополнительный уровень сложности, который где-то оправдан, а где-то не оправдан.
Re[5]: Порекламирую копилот
От: vsb Казахстан  
Дата: 10.11.22 10:06
Оценка:
Здравствуйте, Doom100500, Вы писали:

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


D>Каким образом контролируется соответствие коментариев коду?


Методом пристального взгляда и code review.

Может и тут копилот когда-нибудь поможет, на самом деле почему бы и нет. Раз он генерирует комментарии, значит и проверять может. На самом деле я весьма воодушевлён будущим этой технологии. То, что сейчас, это прям вершина айсберга от того, какой потенциал она открывает.
Re[5]: Порекламирую копилот
От: vsb Казахстан  
Дата: 10.11.22 18:02
Оценка:
Здравствуйте, paucity, Вы писали:

vsb>>Избавить читателя от необходимости чтения кода. Я в последнее время внедряю концепцию, когда код дублируется в комментарии, если комментарий прочитать проще, чем понимать код.


P>Странно, ты прокомментировал совершенно понятный, даже для не-программиста, IF и совершенно не прокомментировал чуточку более "сложный" ELSE.


Ну в else там идёт стандартная форма логгинга, что её комментировать. По сути когда ты пишешь DEBUG(x) то он напишет в лог x: 123. Но если ты напишешь DEBUG("preparing"), то он напишет не preparing: "preparing", а просто preparing. Предполагается, что если человек полез в этот код, то лог он хоть раз запускал и форму вида x: 123 видел, поэтому к этому коду вопросов возникнуть вроде как не должно. А зачем нужен этот if — ну мне не очевидно было бы сходу.

По-моему это не существенно. Я согласен, что возможно это слишком очевидный комментарий. Суть же не в том, насколько он очевидный, а в том, что ИИ смог распознать этот паттерн и сгенерировать этот комментарий.
Отредактировано 10.11.2022 18:02 vsb . Предыдущая версия .
Re: Порекламирую копилот
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.22 11:41
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Я таки на копилот слегка подсел и порой он меня приятно удивляет.



Открываешь issue, а оно само пишет код и делает pull request (там есть видео): 
https://githubnext.com/projects/ai-for-pull-requests/
Re: Порекламирую копилот
От: vsb Казахстан  
Дата: 20.11.22 22:23
Оценка:
На входе:
      if (entropyBits < l2MM) {
        breakTime.innerText = '< 1 second';
      } else if (entropyBits < l2Minute) {
        breakTime.innerText = Math.pow(2, entropyBits - l2MM).toFixed(1) + ' seconds';
      }


на выходе


      if (entropyBits < l2MM) {
        breakTime.innerText = '< 1 second';
      } else if (entropyBits < l2Minute) {
        breakTime.innerText = Math.pow(2, entropyBits - l2MM).toFixed(1) + ' seconds';
      } else if (entropyBits < l2Hour) {
        breakTime.innerText = Math.pow(2, entropyBits - l2Minute).toFixed(1) + ' minutes';
      } else if (entropyBits < l2Day) {
        breakTime.innerText = Math.pow(2, entropyBits - l2Hour).toFixed(1) + ' hours';
      } else if (entropyBits < l2Year) {
        breakTime.innerText = Math.pow(2, entropyBits - l2Day).toFixed(1) + ' days';
      } else if (entropyBits < l2Century) {
        breakTime.innerText = Math.pow(2, entropyBits - l2Year).toFixed(1) + ' years';
      } else {
        breakTime.innerText = Math.pow(2, entropyBits - l2Century).toFixed(1) + ' centuries';
      }
Отредактировано 20.11.2022 22:24 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.