Обновить
-17
0.4

Пользователь

Отправить сообщение
  1. Не вытянуть дискуссию

  1. Я привожу в пример аннотации для OpenApI в формате Swagger (на 400 строк) для языка PHP и говорю о том, что LLM мне в соответствии с эталонным образцом делает рефакторинг других схем (которых ещё 50 штук), подразумевая, что LLM мне оказывает колоссальную помощь в поддержке и актуализации этих громоздких кусков текста. Ссылка

  2. Приходит человек и начинает уводить дискуссию в сторону, дословно: "Эта задача решается внутри языка с помощью рефлексии/интроспекции. Вот один из ваших объектов описанный в питоне"

  3. На моё замечание, что причем тут вообще Питон начинается манипуляция и вброс на вентилятор: "Вы приводите в пример задачу, которая решается автоматически". При этом, как решить это "автоматически" на PHP ответа не последовало.

При этом сообщество плюсует эти комментарии.

  1. Начать грубить

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

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

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

Сейчас, как всегда, автору напихают в панамку. Уже -1 вижу. На этом ресурсе говорить про LLM нельзя, любые доводы в пользу LLM жёстко пресекаются в виде занижения кармы, комментарии минусуются без какой-либо аргументации, в лучшем случае начинается манипулирование через "вброс на вентилятор" и увод дискуссии в стороны.

В руках новичка без знаний — это генератор технического долга и уязвимостей. В руках профессионала — ускоритель продуктивности в 2-3 раза.

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

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

Вы точно понимаете как работают публичные обсуждения?

Отлично понимаю. Еще раз, пишу по-русски и в последний раз: я не спрашивал тут Вашего мнения про то, какой язык лучше. Это был лишь пример задачи для llm, мне абсолютно по х-м обсуждение других ЯП и ваши детские священные войны.

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

Вы тут врете, подменяя понятия. Покажите мне как эту задачу автоматически решить средствами PHP (но речь не об этом). Я Вас вообще не просил тот код как-то исследовать, я привёл в пример просто объемный кусок, с котором LLM справляется, но Вы за каким-то членом упомянули Питон, который к теме вообще не относится, набросили на вентилятор, что называется.

backgroundColor === 'orange' ? 6000 : 6000

Это незначительно, отголосок множества промптов.

if (button.disabled) {button.disabled = false;}

Мимо, это - часть техзадания.

Поддержка ipv6 очень интересная

Это не поддержка ipv6, это извлечение ipv4 из ipv6, что бы не засорять черный список ipv6 адресами. Это тоже часть ТЗ.

Если вы подобное тащите в свой проект -- мне искренне жаль ваших коллег

Я не тащу это в проект, это лишь пример рабтающей программы на JS, нетривиальной, написанной полностью LLM. Этот работающий код я успешно применил на других подобных видеочатах. Трудозатраты на данный код в тысячи раз меньше, чем мне бы потребовалось написать это самому, с нуля, т.к. я не знаю JS. Итого, LLM написало мне работающую программу.

Что Вы и Вам подобные там обычно пишите про CRUD?

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

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

ИИ сам написал getField/setField, нас всех заменят

Вот пример не CRUD-a от LLM. Рабочий код, написанный LLM при управлении человека, который не знает настолько хорошо JS, что бы написать это самостоятельно, а понимает лишь общие принципы. Что на это скажете?

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

Моя реакция будет точно такой же, потому, у меня за плечами "куча лет опыта, тяжёлая учёба, преодоление разных сложностей в жизни и прочее" - я начинал изучать программирование в год Вашего рождения, в 2001. Так же как и многие тут читал мануалы, учил ЯП, писал пет-проекты и т.д. и .т.п.

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

Мне могут сколько угодно минусов влепить, но от этого ничего не изменится, маховик обесценивания 90% участников сферы уже запущен и его вряд ли можно будет остановить.

но нам же продают все это как "вайб-кодинг" - "программирование без знания программирования".

Именно, вам ТАК ПОДАЮТ. Любые мои комментарии на этом ресурсе про ИИ сразу улетают в минус, карма за пару дней слита. Любые статьи на этом ресурсе про ИИ уходят в минус. Почему так происходит - большой вопрос, адресуйте его владельцам Хабра. М.б. курсы тяжелее будет впаривать, если признать, что сегодня профессия писателя кода на массовом стеке стремительно обесценивается и это даже ещё не конец?

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

Для вас проблема будет только в одном - постепенное потеря скилов

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

Моё личное мнение (куда теперь идти разработчикам) - идти и учиться программировать самостоятельно

Ну Вы просто светоч мысли! А то тут никто самостоятельно программировать не умеет!

20 лет пишу код, последнее время - всё через LLM и вообще больше не хочу возвращаться к ручному написанию кода.

Машина объективно лучше во всём: она не устаёт, она внимательна к каждой детали, она способна переваривать кучу информации.

Зачем мне в 101 раз руками набирать текст, который за меня за считаные секунды набирает машина, а моя функция - лишь проверять написанное? Что мне даст это написание кода? Тренировку пальцев рук? Тренировку мозгов? Спасибо, я всю свою сознательную жизнь этим занимался и откровенно скажу, лучше бы тренировал мышцы на теле, а не пальцы - больше пользы было бы.

Появление LLM можно сравнить с появлением трактора. Раньше люди делали тупую монотонную ручную работу - вспахивали поля киркой. Появился трактор и вам показали, что этот процесс можно упростить, не заниматься больше тупым монотонным трудом, а давать КПД в сотни раз больше. Но вы предлагаете всем и дальше учиться махать киркой. Зачем? ради чего? Ради того, что бы почувствовать себя "настоящим программистом". Ну ок, можете дальше заниматься этим самоутверждением, а профессионалы, которые не один год в разработке, уже не испытывают этих комплексов, нам главное работу сделать да побыстрее вернуться к своим личным делам и хобби.

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

Уволюсь и пойду работать на условном тракторе. Потому, что обратного пути нет.

Вот пример openAPI документации в формате Swagger, один из множества в проекте:

Скрытый текст
/**
 * Это эталонный образец схем ресурса для Get/Post/Patch методов.
 * Если ресурс имеет хотя бы один из методов Post/Patch, то необходимо описывать все схемы как в данном образце.
 *
 * В данной схеме мы указываем атрибуты и тип ресурса, она не используется явно в указаниях запросов и ответов:
 *
 * @OA\Schema(
 *     schema="JsonApiUserAttributesSchema",
 *     @OA\Property(property="type", type="string", example="users", description="Тип ресурса",),
 *     @OA\Property(property="attributes", type="object", description="Объект атрибутов ресурса",
 *         @OA\Property(property="creator-id", type="integer", description="ID пользователя-создателя", readOnly=true, example="123",),
 *         @OA\Property(property="last-name", type="string", description="Фамилия пользователя", example="Иванов",),
 *         @OA\Property(property="first-name", type="string", description="Имя пользователя", example="Иван",),
 *         @OA\Property(property="surname", type="string", description="Отчество пользователя", example="Иванович",),
 *         @OA\Property(
 *             property="phone",
 *             type="string",
 *             description="Номер телефона в любом допустимом виде, будет записан и отображён как последовательность из 10 цифр",
 *             example="9991112233",
 *         ),
 *         @OA\Property(
 *             property="phone-formatted",
 *             type="string",
 *             description="Номер телефона отформатированный в международный формат",
 *             pattern="^\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}$",
 *             example="+7 (999) 111-22-33",
 *             readOnly=true,
 *         ),
 *         @OA\Property(
 *             property="email",
 *             type="string",
 *             format="email",
 *             description="Email пользователя",
 *             example="ivan@ivanov.ru",
 *         ),
 *         @OA\Property(property="created-at", type="string", format="date-time", readOnly=true,),
 *         @OA\Property(property="updated-at", type="string", format="date-time", readOnly=true,),
 *     ),
 * ),
 *
 * Данная схема предназначена для ответов, где запрашивается сам ресурс:
 *
 * @OA\Schema(
 *     schema="JsonApiUserSchema",
 *     description="Пользователь",
 *     required={"type", "id", "attributes"},
 *     allOf={
 *         @OA\Schema(ref="#/components/schemas/JsonApiUserAttributesSchema"),
 *         @OA\Schema(ref="#/components/schemas/JsonApiPropertyIdSchema"),
 *         @OA\Schema(ref="#/components/schemas/JsonApiPropertyLinksSchema"),
 *         @OA\Schema(
 *             @OA\Property(
 *                 property="relationships",
 *                 type="object",
 *                 description="Связанные ресурсы",
 *                 @OA\Property(
 *                     property="legal-entities",
 *                     ref="#/components/schemas/JsonApiLegalEntitiesRelationshipToMany",
 *                     readOnly=true
 *                 ),
 *                 @OA\Property(
 *                     property="product-import-files",
 *                     ref="#/components/schemas/JsonApiProductImportFilesRelationshipToMany",
 *                     readOnly=true
 *                 ),
 *                 @OA\Property(
 *                     property="files",
 *                     ref="#/components/schemas/JsonApiFilesRelationshipToMany",
 *                     readOnly=true
 *                 ),
 *                 @OA\Property(
 *                     property="feedbacks",
 *                     ref="#/components/schemas/JsonApiFeedbacksRelationshipToMany",
 *                     readOnly=true
 *                 )
 *             )
 *         )
 *     }
 * ),
 *
 * Данная схема предназначена для создания ресурса:
 *
 * @OA\Schema(
 *     schema="JsonApiUserPostRequestSchema",
 *     description="Запрос на создание пользователя",
 *     required={"type", "attributes"},
 *     allOf={
 *         @OA\Schema(ref="#/components/schemas/JsonApiUserAttributesSchema"),
 *     }
 *  ),
 *
 * Данная схема предназначена для обновления ресурса
 * (отличие от вышестоящей схемы в наличии свойства ID - оно необходимо при обновлении ресурса):
 *
 * @OA\Schema(
 *     schema="JsonApiUserPatchRequestSchema",
 *     description="Запрос на обновление данных пользователя",
 *     required={"id", "type"},
 *     allOf={
 *         @OA\Schema(ref="#/components/schemas/JsonApiUserAttributesSchema"),
 *         @OA\Schema(ref="#/components/schemas/JsonApiPropertyIdSchema"),
 *     }
 * ),
 *
 * Схему допустимых include-параметров ресурса и её описание см. в app/JsonApi/V1/Users/Validators.php
 *
 * Конкретные роуты:
 *
 * @OA\Get(
 *     path="/api/v1/users/{id}",
 *     summary="Получение данных пользователя по ID",
 *     tags={"Пользователи"},
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: User.view",
 *     @OA\Parameter(
 *         name="id", in="path", description="ID записи", required=true,
 *         @OA\Schema(type="integer", minimum=1)
 *     ),
 *     @OA\Parameter(
 *         name="include", in="query", description="Аргументы параметра include", style="form", explode=false,
 *         @OA\Schema(ref="#/components/schemas/JsonApiUserIncludeRequestParamsSchema"),
 *     ),
 *     @OA\Response(response=200, description="Данные авторизованного пользователя",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="data", ref="#/components/schemas/JsonApiUserSchema",
 *                 )
 *             )
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=404, description="Запрашиваемый ресурс не найден",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiNotFoundResourceResponse"),
 *         ),
 *     ),
 * ),
 *
 * @OA\Post(
 *     path="/api/v1/users",
 *     tags={"Пользователи"},
 *     summary="Создание Пользователя",
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: User.create",
 *     @OA\RequestBody(
 *         required=true,
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="data", ref="#/components/schemas/JsonApiUserPostRequestSchema",
 *                 ),
 *             ),
 *         ),
 *     ),
 *     @OA\Response(response=201, description="Ресурс создан",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="data", ref="#/components/schemas/JsonApiUserSchema",
 *                 )
 *             )
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=422, description="Ошибки валидации запроса",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiErrorResponse"),
 *         ),
 *     ),
 * ),
 *
 * @OA\Patch(
 *     path="/api/v1/users/{id}",
 *     tags={"Пользователи"},
 *     summary="Обновление данных Пользователя",
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: User.update",
 *     @OA\Parameter(
 *         name="id", in="path", description="ID записи", required=true,
 *         @OA\Schema(type="integer", minimum=1)
 *     ),
 *     @OA\RequestBody(
 *         required=true,
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="data", ref="#/components/schemas/JsonApiUserPatchRequestSchema",
 *                 ),
 *             ),
 *         ),
 *     ),
 *     @OA\Response(response=200, description="Ресурс обновлён",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(
 *                     property="data", ref="#/components/schemas/JsonApiUserSchema",
 *                 )
 *             )
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=404, description="Запрашиваемый ресурс не найден",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiNotFoundResourceResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=422, description="Ошибки валидации запроса",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiErrorResponse"),
 *         ),
 *     ),
 * ),
 *
 * Relations:
 *
 * @OA\Get(
 *     path="/api/v1/users/{id}/legal-entities",
 *     summary="Получение списка данных юр. лиц по ID авторизованного пользователя",
 *     tags={"Юридические лица"},
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: без разрешения",
 *     @OA\Parameter(
 *         name="id", in="path", description="ID записи", required=true,
 *         @OA\Schema(type="integer", minimum=1)
 *     ),
 *     @OA\Parameter(
 *         name="include", in="query", description="Аргументы параметра include", style="form", explode=false,
 *         @OA\Schema(ref="#/components/schemas/JsonApiLegalEntityIncludeRequestParamsSchema"),
 *     ),
 *     @OA\Parameter(
 *         name="filter", in="query", description="Фильтры", style="deepObject", explode=true,
 *         @OA\Schema(ref="#/components/schemas/JsonApiLegalEntityFiltersSchema"),
 *     ),
 *     @OA\Response(response=200, description="Список данных юр. лиц авторизованного пользователя",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(property="data", type="array",
 *                     @OA\Items(ref="#/components/schemas/JsonApiLegalEntitySchema",),
 *                 )
 *             )
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=404, description="Запрашиваемый ресурс не найден",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiNotFoundResourceResponse"),
 *         ),
 *     ),
 * ),
 *
 * @OA\Get(
 *     path="/api/v1/users/{id}/product-import-files",
 *     summary="Получение списка данных файлов импорта продуктов юр. лиц по ID авторизованного пользователя",
 *     tags={"Файлы импорта продуктов поставщика"},
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: User.readRelationProductImportFiles",
 *     @OA\Parameter(
 *         name="id", in="path", description="ID записи", required=true,
 *         @OA\Schema(type="integer", minimum=1)
 *     ),
 *     @OA\Parameter(
 *         name="include", in="query", description="Аргументы параметра include", style="form", explode=false,
 *         @OA\Schema(ref="#/components/schemas/JsonApiProductImportFileIncludeRequestParamsSchema"),
 *     ),
 *     @OA\Parameter(ref="#/components/parameters/SortParameter"),
 *     @OA\Parameter(ref="#/components/parameters/PaginationParameter"),
 *     @OA\Response(
 *         response=200,
 *         description="Список данных файлов импорта продуктов юр. лица авторизованного пользователя",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 allOf={
 *                     @OA\Schema(
 *                         @OA\Property(property="data", type="array",
 *                             @OA\Items(ref="#/components/schemas/JsonApiProductImportFileSchema"),
 *                         )
 *                     ),
 *                     @OA\Schema(ref="#/components/schemas/JsonApiPaginationSchema")
 *                 },
 *             ),
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=404, description="Запрашиваемый ресурс не найден",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiNotFoundResourceResponse"),
 *         ),
 *     ),
 * ),
 *
 * @OA\Get(
 *     path="/api/v1/users/{id}/files",
 *     summary="Получение списка данных загруженных файлов по ID авторизованного пользователя",
 *     tags={"Файлы данных"},
 *     security={{"bearerAuth": {}}},
 *     description="Необходимое разрешение: User.readRelationFiles",
 *     @OA\Parameter(
 *         name="id", in="path", description="ID записи", required=true,
 *         @OA\Schema(type="integer", minimum=1)
 *     ),
 *     @OA\Parameter(
 *         name="include", in="query", description="Аргументы параметра include", style="form", explode=false,
 *         @OA\Schema(ref="#/components/schemas/JsonApiFileIncludeRequestParamsSchema"),
 *     ),
 *     @OA\Response(
 *         response=200,
 *         description="Список данных загруженных файлов авторизованного пользователя",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(
 *                 @OA\Property(property="data", type="array",
 *                     @OA\Items(ref="#/components/schemas/JsonApiFileSchema",),
 *                 )
 *             )
 *         ),
 *     ),
 *     @OA\Response(response=401, description="Отсутствие аутентификации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthenticatedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=403, description="Отсутствие авторизации",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiUnauthorizedErrorResponse"),
 *         ),
 *     ),
 *     @OA\Response(response=404, description="Запрашиваемый ресурс не найден",
 *         @OA\MediaType(mediaType="application/vnd.api+json",
 *             @OA\Schema(ref="#/components/schemas/JsonApiNotFoundResourceResponse"),
 *         ),
 *     ),
 * ),
 */

Когда я отписывал код проекта этой галиматьёй несколько лет назад, то просидел две недели по 8-12 часов. У меня таких схем ещё под 50 штук, не считая подсхем. Их нужно все держать в едином формате, проверять на корректность, дополнять и изменять. Без LLM сейчас я бы врос в стул, с LLM я кидаю эталонный образец схемы и схему, которую нужно поправить. И прошу LLM сделать рефаторинг по образу и подобию эталонной схемы. И она делает. Она находит ошибки. Она работает.

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

А лады за 2.5 миллиона кто покупает в стране? Кто раскупает квартиры в новостройках? Неужели одни айтишники?

Пишет пхпшник на устаревшей ларке

Предлагаешь мне проект в одно лицо переписать на современной версии фреймворка? Ты лично это финансировать будешь? Нет? К чему тогда эта предъява уровня понтов в школьном туалете?

Попробуйте последнюю симфони или туже лараваель о которой дипсик еще даже не в курсе…

Ага, т.е. если скормить ИИ последние версии фреймворков с примерами и т.д., то это точно так же успешно будет работать, я правильно понял? Так это ИИ ничевонеумеет или просто эту машину нужно дообучить и будет результат?

Ой да пофиг, у них тут своя атмосфера, секта по наяривании на карму. Я сюда прихожу чисто поуграть, как в цирк с клованами, воспринимать всерьез этот заповедник не нужно.

хабр по количеству информации о новинках технологий и практическому опыту их использования отстаёт от других популярных платформ

Я тоже это заменил, даже на русскоязычном Дваче (!!!!) раздел про ИИ содержит кучу более подробной тех информации и практических советов, чем тут))

Это не тест на вшивость, это какие-то дурацкие вопросы, не имеющие отношения к разработке.

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

Какое отношение тематика ПК имеет к разработке? Почему человек должен помнить, какие там компы были при динозаврах? Что за гиковские вопросы?

Я работаю на ПК 2013 года выпуска, у меня из апргрейда лишь 32гб и ssd. Вообще не разбираюсь в железе, компы ни разу не собирал, тематика мастурбации на ПК не интересна. Машины с головой хватает для IDE и Докера, а больше и не нужно.

У меня в ремонте автомобиля больше опыта, чем знаний о железе ПК и истории развития компов, но это не мешает мне код писать, ибо никак не связано.

Прекратите экстраполировать ваши интересы на всю индустрию.

Учёный-физик

Много вакансий учёных-физиков наблюдаете? Тесно знакомы с тем, что они там делают? Нет? Тогда к чему эти экстраординарные примеры? У них своя атмосфера, у нас - своя. Любой физик-ядерщик в ужасе убежит обратно свои протоны изучать, как только попадет на место разраба в какой-нибудь потогонный проект с токсичными ботанами, где нужно копаться в легаси на тысяч 100 строк кода.

Складывается впечатление, что вы вообще незнакомы с тем, что такое низкооплачиваемая работа.

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

  • ВУЗ

  • самообучение

  • практику

  • пет-проекты по вечерам

  • подготовку к собеседованиям

  • практику в литкоде

а потом посмотри зарплаты по отрасли (можно прямо на этом сайте) и ты внезапно поймешь, что медиана в 192 тысячи рублей - это в 2025 чисто одному прожить или вдвоем, но чисто на еду только.

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

О каких небывалых доходах айтишников вообще речь?

uaz.ru

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

Я Вашу карму не ронял.

Еще раз вопрос: 500к у вашей дочки с шестью годами опыта ЗА ЧТО И НА КАКОМ СТЕКЕ?

они примерно как кучеры в момент появления автомобилей

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

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

Я иногда делаю рефакторинг старого кода, написанного людьми, как мной лично, так и другими. После 5-7 итераций исправлений Дипсик говорит "вот теперь все ок" и я реально вижу, что все ок. О каком говнокоде от ИИ речь, если код от людей заведомо полное дерьмо?

Пишу на php 25 лет. Я почти идеально знаю этот язык, написал по собственным оценкам за жизнь около 250 000 строк кода.

На работе проект: openApi (swagger) для доков, JSON-API в качестве механизма апи, Laravel 9.

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

У меня какой-то особенный Дисписк? Почему мне ИИ реально помогает, в отличие от чсвшных дурачков из комментариев, которые обвиняют ИИ в говнокоде?

Предвосхищаю контраргумент, что это пустые обещания, и на самом деле столько бы не дали

Это весомый аргумент, могли бы и не дать. Я тоже видел вакансию на php на 1 000 000 рублей, а когда "выполнил" их ТЗ, которое чудом совпало с моим личным композер-пакетом, то говноеды сразу дали заднюю, мол у вас там лишний пробел в коде.

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

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

В нормальных компаниях не ищут лидов, они их выращивают.

Вы сами ответили на свой вопрос

Какой вопрос?

2013 год, нет озонов и маркетплейсов, бабло идёт рекой у Мвидео, это федеральная сеть купающаяся в доходах (в интернет-магазине заказы шли несколько раз в минуту). Я проработал в компании 3 года, с 2011 по 2013. Никаких 400к никто никогда не получал. Пришел на 60 в 2011, потом зепку поднимали, но до 100 даже не дошло, 90 максимум вроде было. В год +10-20 накидывали и всё.

Что уж говорить про тех, кто работал в более нищих конторах.

Но нет, всегда найдутся аргументы, что были какие-то волшебные компании, где платили 400кв 2013 году. Ты вообще понимаешь что такое 400к в 2013?

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

Никто. Никогда. В 2013. Не платил линейным программистам эти фантастические суммы. И сейчас не платят.

Информация

В рейтинге
2 321-й
Зарегистрирован
Активность