Обычный пересказ из учебников. Без всех нюансов использования. Present continues с точки зрения человека, говорящего на языке, не имеющего такой формы, иногда это просто одно и то же, что и Present Simple. Вот пример: как сказать "Я живу в США" ? В момент озвучивания этого предложения для русскоязычного человека это и "факт", как в статье указано, и в то же время и "и прям сейчас". Что использовать? Обе фразы применимы, без озвучивания дополнительных деталей. Но в simple - это факт, который больше не подразумевает ничего. В continues подразумевается временность, если, например, стоит дополнение места. I am working in the bank - чаще всего (ну от контекста беседы зависит) не будет обозначать "я работаю в банке вот прям сейчас". Это будет обозначать "Я сейчас (вообще) работаю в банке (но хочу подчеркнуть, что пока работаю, временно, так сказать)".
Или нюанс насчет длительного времени и длительного времени в связке с глаголом состояния. В статье указано "We have been living together for 20 years" , но англоязычный также и скажет в present perfect simple "We've lived...for 20 years" подчеркивая именно жизнь (state) длительность в 20 лет (хотя present perfect continues тоже правильно). Но меня постоянно путало, когда они применяли perfect simple c указанием длительности
Чтобы не было безработицы необходимо, чтобы выполнялось условие "кол-во человек=кол-во рабочих мест". Это недостижимо ни с ИИ, ни без него. Сейчас тоже скучный серый мир с саморекламой и ложью. И что меняется?
raw sql - я имел в виду именно уже готовый sql. Ок, здесь возникло недопонимание.
Но вот в чем дело - Jooq тоже создает Prepared Statement (да и любой другой ОРМ в мире джава - это просто маст хев от инъекций) а не конкатенатит параметры. Удивительно, да? Но при этом у Jooq есть функционал, где он в логи пишет как выглядит SQL который в данный момент выполнился на сервере, вот прям уже готовый SQL. И также в логи может нарисовать табличку с вернувшимся результатом. Эта мелочь исключительно для удобства разработчика. Но вот хибер такое не умеет. Хороший или плохой ОРМ Хибернейт не буду тут утверждать, кому-то он нравится, мне - нет по множеству причин, в том числе озвученных в этой статье.
И да, превратить после логов хибера SQL в строку конечно можно, каким-нибудь скриптом (что я в принципе и делал), или если есть доступ к серверу БД, то и там можно посмотреть, что выполнилось. Но опять же - это создает неудобство.
С одной стороны стертер наверное полезный. Сам я пользуюсь 'org.telegram:telegrambots-springboot-longpolling-starter' от самого телеграма. Там по сути прям большого функционала не надо. Отправить сообщение-принять сообщение. Обвзяки в виде обработки событий делал вручную, там тоже все легко. Но в следующий раз попробую ваш стартер
Проблема мне видится ровно одна: как вы и сами ее озвучили в начале статьи - заброшенные библиотеки. Вы сейчас написали стартер, ты с ним работаешь, в свои проекты внедряешь. Потом, хоба, и телеграм меняет свой АПИ. А вы забросили свой стартер. И тебе надо опять бегать по гитхабу и искать свежую версию кого-то другого. Нашел, а там интерфейсы и классы совершенно другие. Надо значит рефакторить код. Тогда легче взять лонгполлер от самого телеграма. Они обновили АПИ, ты обновляешь версию в грейдле/мавене и с большой вероятностью даже код править не придется.
Разве? Помню когда я с ним работал, то он умел показывать запрос типа SELECT field1, field2 where firled3=? и следом параметры. Он не умел сразу готовый sql выдавать в логах, где уже все параметры на местах вместо "?".
Проблема заключалась в том, что у меня были многоэтажные огромные запросы, с 20+ параметрами и дебаг превращался в пытку. Я могу ошибаться конечно, и всё он умеет, и я на тот момент может не смог его правильно настроить. Но я помню там были какие-то отдельные решения в виде подключаемых библиотек, выглядело костыльно и мне не подходило по ряду причин, одна из них, это то, что запрещено было подключать что-то неодобренное по секьюрити.
Года три назад мне до ненависти осточертел JPA с его хибернейтами, что решил выбрать другой инструмент. Наткнулся на Jooq и доволен. Да, теперь всякие джойны и пагинации надо писать руками, но как минимум я знаю, как выполнится мой запрос без всяких N+1, все под моим контролем. И даже просто raw sql в логах увижу и не надо городить костыли как в Хибернейте чтобы увидеть обычный SQL и при надобности скопировать его и отладить уже в другом месте, в каком-нибудь приложении для DB (вот до сих пор не пойму - неужели это так трудно вывести строку запроса для отладки, чего хибернейт не умеет кажется до сих пор). Еще из коробки получаю маппинг в DTO, не идеальный, но в большинстве случаев его хватает, очень хорошую интеграцию с Котлином, максимальную гибкость с составлением динамических запросов на лету. Да все и не вспомнить.
Как-то спросил у чатжпт про самые нелюбимые вкусы людей. Без какого-либо намека, просто "какой вкус еды во всем мире считается неприятным". Ну кроме сёрстрюмминга, дуриана и еще чего-то, пятерку неприятных вкусов замыкала говяжая печень
У меня кстати тоже. Но при этом у меня отвращения к ней почему-то нет, я ее могу кушать. Хотя запах клопов-вонючек на дух не переношу. Может мозг во время еды как-то мне подсказывает, что кинза - это кинза, а не клоп
Из еды мой самый ненавистный вкус - печень. Вот просто до тошноты даже при одной мысли о вкусе печени. Остальные вкусы/запахи, которые считаются неприятными, для меня нейтральны - например дуриан. Есть и нюхать могу, хоть и не любитель этого фрукта
Нет, не пробовал. Спасибо за подсказку. Я использовал socat. Были какие-то небольшие проблемы с ним во время настройки, но решилось и стало работать. Но ваш вариант тоже рассмотрю.
Тоже уже месяц использую Claude code. Доволен. Но есть минусы. Ну как и у всех AI. Главный минус - чем сложнее проект, тем хуже он работает. Может сломать уже работающие части приложения. Говнокодит тоже часто. Надо следить, чтобы делал все по правилам. Но опять же, надо знать что он сделал неправильно. Он-то делает что-то рабочее, но такой ужасный код на выходе.
Насчет опасных команд - словил несколько раз это. Один раз Claude, во-первых изменил в глобальных гит настройках коммитера на свое имя, я ему это разрешил сам, не посмотрев что он там захотел поменять и пару коммитов улетели в репу с именем Claude, чем подставил меня конечно. Второй раз все файлы в проекте, около 500, пометил комментарием в начале файла, что "все изменения в данном файле выполнены Claude", хотя ничего он в этих файлах не менял. Это было тяжело не заметить, когда у меня перед коммитом вдруг показало 500 измененных файлов. Я понятное дело откатил все это, но вот такое он может выкинуть и пропустишь.
Третий раз подставил меня - делали мы с ним код для нотификации в слак. Пишем мы значит код, пишем, и в какой-то момент, он незаметно для меня (слишком много было изменений в коде) изменил канал, куда я должен был слать сообщения в слак на general в качестве fallback. И мой код стал слать технические сообщения на всю организацию. При чем я сижу, мониторю канал, где я ожидаю сообщения, а они не приходят. Думаю ну застряли, нажал еще раз "Послать", опять не пришли. И так пока выяснял, сообщений 10 в канал general улетели. Неприятно было. И самое главное, тяжело все это увидеть, кода много изменений, одну маленькую строчку. Можно конечно каждый раз тщательное ревью проводить, но тогда мне и Claude не нужен, я могу и сам код написать, а не просить его накодить и потом раз 10 ему указать, что надо по-другому.
Кстати, месяц назад пытался установить Claude code в windows и мне писало что Claude Code в windows не работает. Пришлось установить через wsl и работать так. Было жутко неудобно, например запускаешь разрабатываемый сервис на хосте, просишь сделать что-то связанное с этим сервисом, а он не может, так как сервис доступен по урл именно на хосте, а не в wsl. Прокидывать докер, порты и т.д. показалось долго и костыльно, смирился с этим, что некоторые задачи для него недоступны. А сейчас, после прочтения статьи решил еще раз установить Claude на хост винду и о чудо, установилось
Вот вы сами и ответили на свой вопрос. Пустяковые вещи - AI как семечки щелкает. Как только проект начинает усложнятmся, то количество говнокода растет быстрее и непропорционально сложности. Да, чаще всего это работает, но иногда я час тратил на исправление какого-то функционала, в одном месте чинит, в другом ломается. И если бы не знания программирования, то на выходе я получил бы такой страшный ужасный продукт в плане архитектуры, что поддерживать его потом программист бы не смог, только опять надеяться на AI. А в некоторых моментах AI не мог сделать, и подсказки мои помогли все же найти и пофиксить проблему. Так что знания CS все еще нужны для кодинга. На мой взгляд, AI ускоряет разработку и довольно сильно, вот его полезная сторона и наверное единственная цель, но это только в руках программиста. В руках непрограммиста - это не совсем полезный инструмент. PS. Я его очень сильно люблю за написание тестов за меня, терпеть не могу их писать. Но все равно, проверять за ним надо было. Ибо тесты пишет, они запускаются и даже успешно, но в большинстве случаев он у меня проверял совершенно не то, не улавливал суть кода, который я его просил покрыть тестами. Хотя видимость тестов была создавалась
Расскажу свое видение. Я разработчик бекенд и фронтенд знаю плохо. Знание фронтэнда у меня на начальном или среднем уровне. И вот, есть у меня мой пет проект, который я в свободное время делаю (день делаю, два - не делаю). Бек написан уже давно, нужно было писать фронт. Все собирался собраться выучить что-нибудь (реакт, ангулар, вью), но никак руки не доходили. Но тут до меня дошла идея - а пусть фронт пишет ИИ. Ну и попросил я его написать, выбрал Ангулар. Первый шаг прошел хорошо (даже идеально). ИИ мне проинициализировал проект (создал каркас). Второй шаг уже чуть сложнее - для запуска проекта пришлось чуть дольше общаться с ИИ, но в итоге запустил. Что первый шаг, что второй для меня были вот совсем прям новые и неизвестные, никогда их не делал и не знал с чего начинать. ИИ проблему решил. А вот третий и последующие шаги - были уже с проблемами и если бы не знания программирования (хотя бы базовые), то я скорее бы всего не смог ничего сделать. Прошу ИИ добавить некоторый функционал. Добавляет, но в 20% не то, что я хочу. При некоторых проблемах он не мог мне помочь, пришлось лезть в гугл. Но причина скорее всего во мне, не мог правильно сформулировать промпт Также, очень часто ИИ ломал уже работающий функционал. Да дизайн сломает, то код в некоторых местах перепишет до нерабочего состояния. Еще была такая проблема. Открыта у меня страница, на ней есть баг. Прошу ИИ его исправить, но при этом я забыл указать где вижу баг. ИИ такой: "Сейчас поищу. О, вижу. Исправляю...херак херак...Исправил, проверяй". Перезапускаю и....ничего не исправлено. Прошу опять. Он опять что-то нашел, сказал, что исправил, но в итоге ничего не поменялось. Минут через 20 я уже понял, что не указал на какой странице я вижу баг. Также ИИ не смог почему-то распознать проблему с CORS. На беке они настроены не были, фронт выдавал ошибку, но ИИ нес какую-то чушь, хотя ошибка явно указывала на проблему заголовков и если бы не мои знания, то я бы завис над этой проблемой надолго. Часто терял часть контекста, после 6-8 часов кодинга он раз 30 забывал мои просьбы и требования. Но объективно, в целом контекст беседы держал достойно, в конце дня мне не надо было ему напоминать над чем мы с ним работаем. И чем сложнее становился проект, тем больше у него что-то ломалось при создании нового. Резюмирая, скажу, что без общих знаний программирования ИИ бесполезен, по крайней мере сейчас (не знаю, но мне кажется все равно знания нужны). И, к тому же, я заметил, что ИИ отупляет (или это я такой), но когда я говорил ему что-то сделать и он для меня этого делал, то мне было и так норм, хотя надо было вникать в суть, но моя мысль "о работает же, классно, а как - мне пофик". Нельзя так
Мне тоже дня 2-3 назад пришел чел и предложил купить ник, но предложил больше - 7000TON. И я тоже погуглил курс, удивился, но голос внутри кричал, что это развод. Короче дальше открытия-закрытия этого минимприложения дело не пошло, я слишком ленивый чтобы еще копать суть этого мошенничества. Просто перестал отвечать и мошенники отвалились сами.
У взрослого человека боль - это немного сложнее чем просто боль. Это "осознание боли + сама боль". Для слишком чувствительных людей первое иногда страшнее второго. У младенцев из этой формулы "осознание боли" выкидывается и наверное тогда считали, что этого достаточно, чтобы не использовать анестезию. Но если честно - это чудовищно. Как можно было считать, что младенец не чувствует боли. Боль заложена природой и даже какие-нибудь эректусы с неандертальцами наверное это понимали, иначе бы не выжили. Они своих детей оберегали от падений, от нанесений телесных травм.
Я сейчас больше работаю с Котлин, чем с Java. В Котлине var и val с самого начала существования языка. И я хочу сказать, что никогда не было проблем с отсутствием типов в коде текста. Никогда не леплю еще и тип в дополнении при объявлении переменной. Хотя в начале плевался на такой подход с непривычки (как и на nullable ?). Но это настолько очищает код, что сейчас считаю это очень хорошей практикой. И в java программирую редко, но делаю то же самое, и очень надеюсь что эта практика скоро будет повсеместной.
Да, да. В последних редакциях IDEA подсказки о типах и названиях параметров появляются где надо и где не надо. Так что var вообще стал незаметным на фоне всего этого
Var полезная штука, как выше сказали, никакой динамики она ни грамма не дает. Но удобно очень не копипастить огромные конструкции типов, что очень распространено в java. Вы попробуйте объявить переменную типа Record из jooq с дженериковскими скобками в 20 полей. А понять что за переменная перед вами всегда можно наведя на саму переменную курсор, ну если вы не в блокноте кодите конечно. Не понимаю претензии к var.
Нам руководство о причинах миграции не рассказывает, но насколько я понимаю, для них этот код - лютое легаси. Людей, кто может это поддерживать, не говоря уже писать что-то новое, как говорится кот наплакал. Я видел программистов, которые пишут РПГ код у нас в компании и которые работают здесь уже лет 40, им самим уже за 60. В руководстве понимают, что еще лет 10 и всё - они уйдут. На рынке людей со знанием РПГ видимо тоже критически мало. Заниматься обучением рисковано. Вот и мигрируют на попсовый стек.
С другой стороны, сама IBM тоже не сильно продвигает свой язык. И честно говоря, мне их стратегия непонятна. С одной стороны они активно развивают свое железо, судя по вашим комментариям про Power8-Power11. Но с другой стороны свой нишевый язык просто тянут паровозом за серверами. Мне не встречалось еще современных книг по RPG. Взять любой другой язык, не вендорлоковый - тонны литературы.
Обычный пересказ из учебников. Без всех нюансов использования. Present continues с точки зрения человека, говорящего на языке, не имеющего такой формы, иногда это просто одно и то же, что и Present Simple. Вот пример: как сказать "Я живу в США" ? В момент озвучивания этого предложения для русскоязычного человека это и "факт", как в статье указано, и в то же время и "и прям сейчас". Что использовать? Обе фразы применимы, без озвучивания дополнительных деталей. Но в simple - это факт, который больше не подразумевает ничего. В continues подразумевается временность, если, например, стоит дополнение места. I am working in the bank - чаще всего (ну от контекста беседы зависит) не будет обозначать "я работаю в банке вот прям сейчас". Это будет обозначать "Я сейчас (вообще) работаю в банке (но хочу подчеркнуть, что пока работаю, временно, так сказать)".
Или нюанс насчет длительного времени и длительного времени в связке с глаголом состояния. В статье указано "We have been living together for 20 years" , но англоязычный также и скажет в present perfect simple "We've lived...for 20 years" подчеркивая именно жизнь (state) длительность в 20 лет (хотя present perfect continues тоже правильно). Но меня постоянно путало, когда они применяли perfect simple c указанием длительности
Чтобы не было безработицы необходимо, чтобы выполнялось условие "кол-во человек=кол-во рабочих мест". Это недостижимо ни с ИИ, ни без него. Сейчас тоже скучный серый мир с саморекламой и ложью. И что меняется?
raw sql - я имел в виду именно уже готовый sql. Ок, здесь возникло недопонимание.
Но вот в чем дело - Jooq тоже создает Prepared Statement (да и любой другой ОРМ в мире джава - это просто маст хев от инъекций) а не конкатенатит параметры. Удивительно, да? Но при этом у Jooq есть функционал, где он в логи пишет как выглядит SQL который в данный момент выполнился на сервере, вот прям уже готовый SQL. И также в логи может нарисовать табличку с вернувшимся результатом. Эта мелочь исключительно для удобства разработчика. Но вот хибер такое не умеет. Хороший или плохой ОРМ Хибернейт не буду тут утверждать, кому-то он нравится, мне - нет по множеству причин, в том числе озвученных в этой статье.
И да, превратить после логов хибера SQL в строку конечно можно, каким-нибудь скриптом (что я в принципе и делал), или если есть доступ к серверу БД, то и там можно посмотреть, что выполнилось. Но опять же - это создает неудобство.
С одной стороны стертер наверное полезный. Сам я пользуюсь 'org.telegram:telegrambots-springboot-longpolling-starter' от самого телеграма. Там по сути прям большого функционала не надо. Отправить сообщение-принять сообщение. Обвзяки в виде обработки событий делал вручную, там тоже все легко. Но в следующий раз попробую ваш стартер
Проблема мне видится ровно одна: как вы и сами ее озвучили в начале статьи - заброшенные библиотеки. Вы сейчас написали стартер, ты с ним работаешь, в свои проекты внедряешь. Потом, хоба, и телеграм меняет свой АПИ. А вы забросили свой стартер. И тебе надо опять бегать по гитхабу и искать свежую версию кого-то другого. Нашел, а там интерфейсы и классы совершенно другие. Надо значит рефакторить код. Тогда легче взять лонгполлер от самого телеграма. Они обновили АПИ, ты обновляешь версию в грейдле/мавене и с большой вероятностью даже код править не придется.
Разве? Помню когда я с ним работал, то он умел показывать запрос типа SELECT field1, field2 where firled3=? и следом параметры. Он не умел сразу готовый sql выдавать в логах, где уже все параметры на местах вместо "?".
Проблема заключалась в том, что у меня были многоэтажные огромные запросы, с 20+ параметрами и дебаг превращался в пытку. Я могу ошибаться конечно, и всё он умеет, и я на тот момент может не смог его правильно настроить. Но я помню там были какие-то отдельные решения в виде подключаемых библиотек, выглядело костыльно и мне не подходило по ряду причин, одна из них, это то, что запрещено было подключать что-то неодобренное по секьюрити.
Года три назад мне до ненависти осточертел JPA с его хибернейтами, что решил выбрать другой инструмент. Наткнулся на Jooq и доволен. Да, теперь всякие джойны и пагинации надо писать руками, но как минимум я знаю, как выполнится мой запрос без всяких N+1, все под моим контролем. И даже просто raw sql в логах увижу и не надо городить костыли как в Хибернейте чтобы увидеть обычный SQL и при надобности скопировать его и отладить уже в другом месте, в каком-нибудь приложении для DB (вот до сих пор не пойму - неужели это так трудно вывести строку запроса для отладки, чего хибернейт не умеет кажется до сих пор). Еще из коробки получаю маппинг в DTO, не идеальный, но в большинстве случаев его хватает, очень хорошую интеграцию с Котлином, максимальную гибкость с составлением динамических запросов на лету. Да все и не вспомнить.
Ел дуриан несколько раз. Стартовый вкус у него действительно хороший, сливочный, текстура тоже приятная. У него неприятное послевкусие.
Ух я даже читать про такое не могу
Как-то спросил у чатжпт про самые нелюбимые вкусы людей. Без какого-либо намека, просто "какой вкус еды во всем мире считается неприятным". Ну кроме сёрстрюмминга, дуриана и еще чего-то, пятерку неприятных вкусов замыкала говяжая печень
У меня кстати тоже. Но при этом у меня отвращения к ней почему-то нет, я ее могу кушать. Хотя запах клопов-вонючек на дух не переношу. Может мозг во время еды как-то мне подсказывает, что кинза - это кинза, а не клоп
Из еды мой самый ненавистный вкус - печень. Вот просто до тошноты даже при одной мысли о вкусе печени. Остальные вкусы/запахи, которые считаются неприятными, для меня нейтральны - например дуриан. Есть и нюхать могу, хоть и не любитель этого фрукта
Нет, не пробовал. Спасибо за подсказку. Я использовал socat. Были какие-то небольшие проблемы с ним во время настройки, но решилось и стало работать. Но ваш вариант тоже рассмотрю.
Тоже уже месяц использую Claude code. Доволен. Но есть минусы. Ну как и у всех AI. Главный минус - чем сложнее проект, тем хуже он работает. Может сломать уже работающие части приложения. Говнокодит тоже часто. Надо следить, чтобы делал все по правилам. Но опять же, надо знать что он сделал неправильно. Он-то делает что-то рабочее, но такой ужасный код на выходе.
Насчет опасных команд - словил несколько раз это. Один раз Claude, во-первых изменил в глобальных гит настройках коммитера на свое имя, я ему это разрешил сам, не посмотрев что он там захотел поменять и пару коммитов улетели в репу с именем Claude, чем подставил меня конечно. Второй раз все файлы в проекте, около 500, пометил комментарием в начале файла, что "все изменения в данном файле выполнены Claude", хотя ничего он в этих файлах не менял. Это было тяжело не заметить, когда у меня перед коммитом вдруг показало 500 измененных файлов. Я понятное дело откатил все это, но вот такое он может выкинуть и пропустишь.
Третий раз подставил меня - делали мы с ним код для нотификации в слак. Пишем мы значит код, пишем, и в какой-то момент, он незаметно для меня (слишком много было изменений в коде) изменил канал, куда я должен был слать сообщения в слак на general в качестве fallback. И мой код стал слать технические сообщения на всю организацию. При чем я сижу, мониторю канал, где я ожидаю сообщения, а они не приходят. Думаю ну застряли, нажал еще раз "Послать", опять не пришли. И так пока выяснял, сообщений 10 в канал general улетели. Неприятно было. И самое главное, тяжело все это увидеть, кода много изменений, одну маленькую строчку. Можно конечно каждый раз тщательное ревью проводить, но тогда мне и Claude не нужен, я могу и сам код написать, а не просить его накодить и потом раз 10 ему указать, что надо по-другому.
Кстати, месяц назад пытался установить Claude code в windows и мне писало что Claude Code в windows не работает. Пришлось установить через wsl и работать так. Было жутко неудобно, например запускаешь разрабатываемый сервис на хосте, просишь сделать что-то связанное с этим сервисом, а он не может, так как сервис доступен по урл именно на хосте, а не в wsl. Прокидывать докер, порты и т.д. показалось долго и костыльно, смирился с этим, что некоторые задачи для него недоступны. А сейчас, после прочтения статьи решил еще раз установить Claude на хост винду и о чудо, установилось
Вот вы сами и ответили на свой вопрос. Пустяковые вещи - AI как семечки щелкает. Как только проект начинает усложнятmся, то количество говнокода растет быстрее и непропорционально сложности. Да, чаще всего это работает, но иногда я час тратил на исправление какого-то функционала, в одном месте чинит, в другом ломается. И если бы не знания программирования, то на выходе я получил бы такой страшный ужасный продукт в плане архитектуры, что поддерживать его потом программист бы не смог, только опять надеяться на AI. А в некоторых моментах AI не мог сделать, и подсказки мои помогли все же найти и пофиксить проблему. Так что знания CS все еще нужны для кодинга. На мой взгляд, AI ускоряет разработку и довольно сильно, вот его полезная сторона и наверное единственная цель, но это только в руках программиста. В руках непрограммиста - это не совсем полезный инструмент.
PS. Я его очень сильно люблю за написание тестов за меня, терпеть не могу их писать. Но все равно, проверять за ним надо было. Ибо тесты пишет, они запускаются и даже успешно, но в большинстве случаев он у меня проверял совершенно не то, не улавливал суть кода, который я его просил покрыть тестами. Хотя видимость тестов была создавалась
Расскажу свое видение. Я разработчик бекенд и фронтенд знаю плохо. Знание фронтэнда у меня на начальном или среднем уровне. И вот, есть у меня мой пет проект, который я в свободное время делаю (день делаю, два - не делаю). Бек написан уже давно, нужно было писать фронт. Все собирался собраться выучить что-нибудь (реакт, ангулар, вью), но никак руки не доходили. Но тут до меня дошла идея - а пусть фронт пишет ИИ. Ну и попросил я его написать, выбрал Ангулар.
Первый шаг прошел хорошо (даже идеально). ИИ мне проинициализировал проект (создал каркас).
Второй шаг уже чуть сложнее - для запуска проекта пришлось чуть дольше общаться с ИИ, но в итоге запустил. Что первый шаг, что второй для меня были вот совсем прям новые и неизвестные, никогда их не делал и не знал с чего начинать. ИИ проблему решил.
А вот третий и последующие шаги - были уже с проблемами и если бы не знания программирования (хотя бы базовые), то я скорее бы всего не смог ничего сделать.
Прошу ИИ добавить некоторый функционал. Добавляет, но в 20% не то, что я хочу. При некоторых проблемах он не мог мне помочь, пришлось лезть в гугл. Но причина скорее всего во мне, не мог правильно сформулировать промпт
Также, очень часто ИИ ломал уже работающий функционал. Да дизайн сломает, то код в некоторых местах перепишет до нерабочего состояния.
Еще была такая проблема. Открыта у меня страница, на ней есть баг. Прошу ИИ его исправить, но при этом я забыл указать где вижу баг. ИИ такой: "Сейчас поищу. О, вижу. Исправляю...херак херак...Исправил, проверяй". Перезапускаю и....ничего не исправлено. Прошу опять. Он опять что-то нашел, сказал, что исправил, но в итоге ничего не поменялось. Минут через 20 я уже понял, что не указал на какой странице я вижу баг.
Также ИИ не смог почему-то распознать проблему с CORS. На беке они настроены не были, фронт выдавал ошибку, но ИИ нес какую-то чушь, хотя ошибка явно указывала на проблему заголовков и если бы не мои знания, то я бы завис над этой проблемой надолго.
Часто терял часть контекста, после 6-8 часов кодинга он раз 30 забывал мои просьбы и требования. Но объективно, в целом контекст беседы держал достойно, в конце дня мне не надо было ему напоминать над чем мы с ним работаем.
И чем сложнее становился проект, тем больше у него что-то ломалось при создании нового.
Резюмирая, скажу, что без общих знаний программирования ИИ бесполезен, по крайней мере сейчас (не знаю, но мне кажется все равно знания нужны).
И, к тому же, я заметил, что ИИ отупляет (или это я такой), но когда я говорил ему что-то сделать и он для меня этого делал, то мне было и так норм, хотя надо было вникать в суть, но моя мысль "о работает же, классно, а как - мне пофик". Нельзя так
Мне тоже дня 2-3 назад пришел чел и предложил купить ник, но предложил больше - 7000TON. И я тоже погуглил курс, удивился, но голос внутри кричал, что это развод. Короче дальше открытия-закрытия этого минимприложения дело не пошло, я слишком ленивый чтобы еще копать суть этого мошенничества. Просто перестал отвечать и мошенники отвалились сами.
У взрослого человека боль - это немного сложнее чем просто боль. Это "осознание боли + сама боль". Для слишком чувствительных людей первое иногда страшнее второго. У младенцев из этой формулы "осознание боли" выкидывается и наверное тогда считали, что этого достаточно, чтобы не использовать анестезию. Но если честно - это чудовищно. Как можно было считать, что младенец не чувствует боли. Боль заложена природой и даже какие-нибудь эректусы с неандертальцами наверное это понимали, иначе бы не выжили. Они своих детей оберегали от падений, от нанесений телесных травм.
Я сейчас больше работаю с Котлин, чем с Java. В Котлине var и val с самого начала существования языка. И я хочу сказать, что никогда не было проблем с отсутствием типов в коде текста. Никогда не леплю еще и тип в дополнении при объявлении переменной. Хотя в начале плевался на такой подход с непривычки (как и на nullable ?). Но это настолько очищает код, что сейчас считаю это очень хорошей практикой. И в java программирую редко, но делаю то же самое, и очень надеюсь что эта практика скоро будет повсеместной.
Да, да. В последних редакциях IDEA подсказки о типах и названиях параметров появляются где надо и где не надо. Так что var вообще стал незаметным на фоне всего этого
Var полезная штука, как выше сказали, никакой динамики она ни грамма не дает. Но удобно очень не копипастить огромные конструкции типов, что очень распространено в java. Вы попробуйте объявить переменную типа Record из jooq с дженериковскими скобками в 20 полей. А понять что за переменная перед вами всегда можно наведя на саму переменную курсор, ну если вы не в блокноте кодите конечно. Не понимаю претензии к var.
Нам руководство о причинах миграции не рассказывает, но насколько я понимаю, для них этот код - лютое легаси. Людей, кто может это поддерживать, не говоря уже писать что-то новое, как говорится кот наплакал. Я видел программистов, которые пишут РПГ код у нас в компании и которые работают здесь уже лет 40, им самим уже за 60. В руководстве понимают, что еще лет 10 и всё - они уйдут. На рынке людей со знанием РПГ видимо тоже критически мало. Заниматься обучением рисковано. Вот и мигрируют на попсовый стек.
С другой стороны, сама IBM тоже не сильно продвигает свой язык. И честно говоря, мне их стратегия непонятна. С одной стороны они активно развивают свое железо, судя по вашим комментариям про Power8-Power11. Но с другой стороны свой нишевый язык просто тянут паровозом за серверами. Мне не встречалось еще современных книг по RPG. Взять любой другой язык, не вендорлоковый - тонны литературы.