Комментарии 27
Вижу ChatGPT уже пишет статьи для хабра.
Есть уже статья как с помощью ChatGPT сгенерировать статью для хабра о том как сгенерировать с помощью ChatGPT статью для хабра, на тему как сгенерировать статью для хабра?
Боту до статистического и динамического анализа один шаг, который несомненно будет сделан, после чего большинство программистов получат выходные пособия.
Правильно - выкидываем прокладку, руль, педали и говорим машине куда ехать и что везти. ChatGPT это не способ написания кода, это и есть код. Бизнес скоро поймет, что подобные системы это не навигация для прокладок, это новая среда исполнения. И "пробовать писать на нем сложную программу с многопоточность" никто не будет - ему будут давать ресурсы, а способ их использования будет выше понимания большинства дающих, что их будет более чем устраивать.
«Так-то у меня свой бизнес, я ИИ на упрощёнке. Отвечаю на вопросы людей чисто для души, как хобби по вечерам».
Сконструированный объект не может быть равен null. Поэтому технически багов в первом примере нет, но можно предложить убрать строку с if.
Нет гарантий, что Foo
возвращает ссылку на объект. С таким же успехом метод может вернуть значение null
. Проверка намекает, что разработчик допускает такой сценарий.
Ну если придираться к деталям, то мы ничего не знаем о типе в первом примере. Если это структура, то исправление будет совершенно иным.
Я и не придираюсь — отталкиваюсь от контекста.
Если это структура, то тогда проверка на null не имеет смысла и выдаст ошибку компиляции.
Теперь можно притянуть за уши, что Func2 - это на самом деле метод-расширение.
В том-то и прикол, что ошибки здесь не будет, будет warning. Такая проверка спокойно скомпилируется и запустится.
Я про самый первый пример, который без сопутствующего кода действительно не скомпилируется.
Где хотябы определение той функции, которая объект должна вернуть?
Если предположить, что всё-таки где-то это определение есть, то тогда вопрос про csproj. При определённом конфиге оно тоже не скомпилируется, например если включить NRT и кидать ошибку при их нарушении
А кто вам сказал, что там конструируется объект? Я вот вижу вызов метода, который может вернуть null :)
А он не на вашей ли собственной документации, выложенной в онлайне, обучился оценивать примеры из этой документации? Вы ему даёте фрагменты кода, которые легко гуглятся, и он вам сообщает именно то, что в гугле написано, а вы поражаетесь глубине машинного интеллекта.
Предполагаю, что даже переименование переменных ухудшит результаты.
Ему это как минимум не нужно. Языковая модель же
Статические анализаторы обычно не справляются с псевдокодом, а тут именно он.
Не вижу причин, по которым ChatGPT не могли натаскивать на типовые ошибки в коде. У меня нет к нему доступа, чтобы проверить лично — а как он там с ассемблером справится, например? Хотя бы в элементарных вещах — mov rax, 0 в .386 контексте.
Хорошо ли ChatGPT ищет ошибки в коде?