Entity-based VS Consumer-oriented API
Из всех способов организации апи, можно выделить два основных: ориентированных на клиентов или ориентированных на внутренние сущности и структуру данных системы.
Последний способ это когда API напрямую отражает внутреннюю модель: сущности, связи и CRUD-операции. По началу он кажется удобнее, потому что подходит сразу для всех, не надо дублировать эндпоинты под разные сценарии и хорошо ложится на задачи решаемые сервисом.
Потом внезапно оказывается, что для фронтендовых страниц нужен один набор данных, для мобилки другой. И если оставаться в рамках единого апи, то приходится выкручиваться делая серии запросов и объединяя данные на клиенте. А еще разные уровни доступа, разные способы аутентификации и так далее. Каждый раз когда меняется любой эндпоинт, надо помнить про всех возможных клиентов и случайно не сломать логику, которая затрагивает всех, например изменив выборки в коллекциях. В этом случае интерфейс не ломается, но данные будут другими.
Немало людей сталкиваясь с этими проблемами, начинают винить REST, что это его ограничения и его природа. Но нет, просто невозможно спроектировать entity-based API как внешний контракт, хорошо подходящее сразу и идеально для всех. Поэтому есть другой способ, это api ориентированное на клиента. Когда API проектируется от конкретных сценариев использования (use cases), а не от структуры данных. В этом случае у нас нет просто общих эндпоинтов, все эндпоинты разделены по своим неймспейсам, одни для админки, другие для мобилки, третьи для клиентской части сайта, ну и классическое апи для внешних клиентов (не браузера и не мобилки).
При таком подходе обязательным становится внедрение сервисного слоя (use cases), чтобы обработчики эндпоинтов делегировали работу дальше, а не пытались ее выполнить сами, например, взаимодействуя с базой данных.
Entity-based API хорошо подходит как внутренний слой (Service API), но в качестве внешнего API почти всегда приводит к усложнению клиентов и росту связности. Consumer-oriented API, наоборот, берет на себя сложность внутри системы и упрощает клиентов, даже если это приводит к дублированию и большему количеству эндпоинтов.
Telegram | YouTube | Сообщество
Из всех способов организации апи, можно выделить два основных: ориентированных на клиентов или ориентированных на внутренние сущности и структуру данных системы.
Последний способ это когда API напрямую отражает внутреннюю модель: сущности, связи и CRUD-операции. По началу он кажется удобнее, потому что подходит сразу для всех, не надо дублировать эндпоинты под разные сценарии и хорошо ложится на задачи решаемые сервисом.
Потом внезапно оказывается, что для фронтендовых страниц нужен один набор данных, для мобилки другой. И если оставаться в рамках единого апи, то приходится выкручиваться делая серии запросов и объединяя данные на клиенте. А еще разные уровни доступа, разные способы аутентификации и так далее. Каждый раз когда меняется любой эндпоинт, надо помнить про всех возможных клиентов и случайно не сломать логику, которая затрагивает всех, например изменив выборки в коллекциях. В этом случае интерфейс не ломается, но данные будут другими.
Немало людей сталкиваясь с этими проблемами, начинают винить REST, что это его ограничения и его природа. Но нет, просто невозможно спроектировать entity-based API как внешний контракт, хорошо подходящее сразу и идеально для всех. Поэтому есть другой способ, это api ориентированное на клиента. Когда API проектируется от конкретных сценариев использования (use cases), а не от структуры данных. В этом случае у нас нет просто общих эндпоинтов, все эндпоинты разделены по своим неймспейсам, одни для админки, другие для мобилки, третьи для клиентской части сайта, ну и классическое апи для внешних клиентов (не браузера и не мобилки).
При таком подходе обязательным становится внедрение сервисного слоя (use cases), чтобы обработчики эндпоинтов делегировали работу дальше, а не пытались ее выполнить сами, например, взаимодействуя с базой данных.
Entity-based API хорошо подходит как внутренний слой (Service API), но в качестве внешнего API почти всегда приводит к усложнению клиентов и росту связности. Consumer-oriented API, наоборот, берет на себя сложность внутри системы и упрощает клиентов, даже если это приводит к дублированию и большему количеству эндпоинтов.
Telegram | YouTube | Сообщество
Telegram
Хекслет
Хекслет - нормальные it-курсы
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
1👍75🔥21❤11🤔3👎2🤝2😎1
Вы ведь заметили что последние месяцы я часто говорю про Mantine (React Component LIbrary)? Так вот сегодня в очередном выпуске подкаста будет говорить его создатель - Виталий Ртищев. А еще в подкасте прошлись по tailwind, mui, shadcn и chakra. Наслаждайтесь https://www.youtube.com/watch?v=r0uUJwyBJAc
Альтернативные ссылки: Аудио | vk
Альтернативные ссылки: Аудио | vk
YouTube
Создатель Mantine: как появилась UI библиотека с 1.5 млн загрузок в неделю / Виталий Ртищев #81
Сегодня у нас в гостях — Виталий Ртищев, создатель Mantine — одной из самых популярных React UI-библиотек в мире с более чем 1,5 миллиона загрузок в неделю. На Западе она уже давно используется в продакшене, регулярно всплывает в обсуждениях на Reddit и в…
🔥44👍22❤6🤔2☃1🐳1
Точные типы DTO для ИИ
Есть такая проблема с DTO, что если делать их достаточно универсальными, то почти все поля внутри получаются nullable. Потому что любая сущность в режиме "создаем новую" практически всегда пустая, за исключением может каких-то флагов и статусов с дефолтными значениями. А вот в режиме редактирования как минимум заполнены id, name и тому подобное.
При таком подходе в коде приходится делать что-то типа
И дело даже не в том, что ИИ может сама нагенерить все что надо, а в том, что типы для ИИ это главный источник понимания вашего кода. Вы даже словами не всегда можете переубедить ИИ если она видит другие типы. Так вот, если все поля nullable, то ИИ по дефолту начнет втыкать проверки и фильтрацию на каждом шагу. Мне тут понадобилось сделать сортировку через drag and drop и для этого я завязал хук в плане к ии на id, который есть гарантированно во всех сохраненных сущностях. Что бы вы думали? Эта фигня видя такие типы, начала фильтровать данные по наличию
В общем закончилось тем, что я сделал файлик, куда автоматом нагенерил типов на базе моделей в беке (с валидациями):
Ну а тем у кого design-first чуть проще, там генерятся любые DTO из спеки. Если используются правильные инструменты.
p.s. Вы сталкивались с этим?
Telegram | YouTube | Сообщество
Есть такая проблема с DTO, что если делать их достаточно универсальными, то почти все поля внутри получаются nullable. Потому что любая сущность в режиме "создаем новую" практически всегда пустая, за исключением может каких-то флагов и статусов с дефолтными значениями. А вот в режиме редактирования как минимум заполнены id, name и тому подобное.
type Course = {
id: number | null;
slug: string | null;
name: string | null;
state: CourseState | null;
updated_at: string | null;
created_at: string | null;
}
При таком подходе в коде приходится делать что-то типа
course.name!, когда мы говорим компилятору мол не парься, мамой клянусь тут есть name. Некрасиво, но жить можно. Казалось бы, а что мешает делать разные DTO под разные операции с нормальными типами? Лень. Если это не автогенерация, то может быть просто гемморойно постоянно все это поддерживать и добавлять. По крайней мере так можно было говорить раньше, но сейчас ситуация поменялась.И дело даже не в том, что ИИ может сама нагенерить все что надо, а в том, что типы для ИИ это главный источник понимания вашего кода. Вы даже словами не всегда можете переубедить ИИ если она видит другие типы. Так вот, если все поля nullable, то ИИ по дефолту начнет втыкать проверки и фильтрацию на каждом шагу. Мне тут понадобилось сделать сортировку через drag and drop и для этого я завязал хук в плане к ии на id, который есть гарантированно во всех сохраненных сущностях. Что бы вы думали? Эта фигня видя такие типы, начала фильтровать данные по наличию
id в объектах. Причем когда я дал команду так не делать, она просто перенесла логику в другое место, потому что тип явно говорит о том что id может не быть.В общем закончилось тем, что я сделал файлик, куда автоматом нагенерил типов на базе моделей в беке (с валидациями):
type Course = {
id: number;
slug: string;
}
Ну а тем у кого design-first чуть проще, там генерятся любые DTO из спеки. Если используются правильные инструменты.
p.s. Вы сталкивались с этим?
Telegram | YouTube | Сообщество
Telegram
Хекслет
Хекслет - нормальные it-курсы
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
👍39❤6🔥3🤔2😢1👨💻1👾1
Домашнее: Прием у доктора
Вроде бы обычная процедура, но насколько же сильно она отличается в штатах. Прием у докторов по широким (массовым направлениям) это еще то приключение, которое может занять в лучшем случае час (редко), но обычно два или больше. Причем никто заранее не знает сколько займет это времени, даже если у вас достаточно простой случай. Поэтому если у моего ребенка прием у педиатра, то я этот день вычеркиваю со словами "потрачено".
Как мы привыкли? Есть доктор у него кабинет и туда заходят пациенты один за другим. Приходишь ко времени и плюс минус вовремя попадаешь особенно если это платная медицина и не просто живая очередь.
Тут работает ваще не так. В целях оптимизации, в штатах у таких докторов как педиатров (куда толпами ходят), прием идет параллельно. Внутри клиники от десятки специальных комнат, куда вас заводят после того как вы подождали снаружи в приемной (может занимать до часа легко). Тут медсестра сразу вас осматривает, снимает температуру, записывает рост, вес, давление и задает вопросы. Дальше говорит "доктор скоро подойдет" и уходит. А в это время, несколько докторов, ходят по очереди по этим комнатам. И в каждой из них они могут зависать надолго. В нашей клинике таких комнат около 35. То есть они запускают в течение короткого времени всю эту толпу, а дальше большую часть времени ты сидишь и тупишь в ожидании доктора. И даже если доктор зашел, может оказаться, что нужна какая-то процедура. В таком случае доктор говорит "сейчас придет медсестра и все сделает", а сам уходит к следующему пациенту. Думаю не надо говорить, когда в следующий раз он к вам зайдет. И вот эта все хрень с ожиданиями может занимать и будет часы.
Получается что для конкретного пациента время приема это время когда начинается процесс ожидания в приемной, а не прием у доктора. А для клиники это возможность обслужить в день тысячи пациентов, а не десятки и сотни.
Кто-то скажет, так воспользуйся платной медициной, делов то. Проблема в том, что в штатах вся медицина платная 🙂
Telegram | YouTube | Сообщество
Вроде бы обычная процедура, но насколько же сильно она отличается в штатах. Прием у докторов по широким (массовым направлениям) это еще то приключение, которое может занять в лучшем случае час (редко), но обычно два или больше. Причем никто заранее не знает сколько займет это времени, даже если у вас достаточно простой случай. Поэтому если у моего ребенка прием у педиатра, то я этот день вычеркиваю со словами "потрачено".
Как мы привыкли? Есть доктор у него кабинет и туда заходят пациенты один за другим. Приходишь ко времени и плюс минус вовремя попадаешь особенно если это платная медицина и не просто живая очередь.
Тут работает ваще не так. В целях оптимизации, в штатах у таких докторов как педиатров (куда толпами ходят), прием идет параллельно. Внутри клиники от десятки специальных комнат, куда вас заводят после того как вы подождали снаружи в приемной (может занимать до часа легко). Тут медсестра сразу вас осматривает, снимает температуру, записывает рост, вес, давление и задает вопросы. Дальше говорит "доктор скоро подойдет" и уходит. А в это время, несколько докторов, ходят по очереди по этим комнатам. И в каждой из них они могут зависать надолго. В нашей клинике таких комнат около 35. То есть они запускают в течение короткого времени всю эту толпу, а дальше большую часть времени ты сидишь и тупишь в ожидании доктора. И даже если доктор зашел, может оказаться, что нужна какая-то процедура. В таком случае доктор говорит "сейчас придет медсестра и все сделает", а сам уходит к следующему пациенту. Думаю не надо говорить, когда в следующий раз он к вам зайдет. И вот эта все хрень с ожиданиями может занимать и будет часы.
Получается что для конкретного пациента время приема это время когда начинается процесс ожидания в приемной, а не прием у доктора. А для клиники это возможность обслужить в день тысячи пациентов, а не десятки и сотни.
Кто-то скажет, так воспользуйся платной медициной, делов то. Проблема в том, что в штатах вся медицина платная 🙂
Telegram | YouTube | Сообщество
Telegram
Хекслет
Хекслет - нормальные it-курсы
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
4😁54🤯38😱13❤6🤔5👍4💯3🤮1🤡1
Подкаст про кишки агентов для разработки уже доступен для просмотра. У меня в гостях Дмитрий Коваленко (уже третий раз!), который разработал эффективный поиск (инструмент + алгоритмы) сначала для nvim, а потом и сделал его самостоятельным решением, благодаря чему его воткнули в OpenCode. youtube.com/watch?v=Jcx-JclhB18
Альтернативные ссылки: Аудио | vk
Альтернативные ссылки: Аудио | vk
YouTube
Как работают AI-агенты для программистов: поиск кода, индексы, эффективность. Дмитрий Коваленко #82
Сегодня у меня в гостях Дмитрий Коваленко, инженер, который глубоко погрузился в тему AI-агентов и оказался в центре одной из самых неожиданных точек роста современной разработки, связанной с файловым поиском. Мы обсудили, почему в эпоху агентов привычные…
👍43🔥15❤8☃1🤔1🗿1👾1
Forwarded from Хекслет
Операция "Эпическая подписка"
Начиная с этой недели, часть больших программ "с нуля" становятся доступными в стандартной подписке для самостоятельного обучения. Наконец-то скажете вы и будете правы! Подробнее:
У Хекслета есть два режима работы: покупка курса и подписка.
Покупка включает курсы с поддержкой наставников, группами, кураторами, помощью в наработке коммерческого опыта, стажировками и так далее. Эти курсы создаются в основном для тех кто с нуля, долго идут и заканчиваются трудоустройством (если нужно). Такие курсы оплачиваются по какой-то фиксированной цене. При этом тут есть тарифы с разными ништяками, например персональным наставником.
Подписка, это, в основном, небольшие навыковые курсы, где обучение полностью самостоятельное (сюда включены практики, проекты и ии-ассистент). Подписка идеально подходит для повышения квалификации. Ее в первую очередь берут те, кто уже в теме и кому надо просто добрать каких-то навыков.
Теперь это меняется и мы возвращаемся к старому доброму Хекслету образца 2017 года. Часть больших программ обучения становится доступной по подписке. Сюда входят: java, php, python, javascript, ручное и автоматизированное тестирование, аналитика и некоторые другие. Вообще состав таких программ не фиксирован и со временем может меняться.
Что это значит? Если вы хотите прямо обучиться какому-то направлению, то теперь это можно сделать по подписке. Единственное надо помнить про самостоятельность, вы должны быть уверены что справитесь сами. А помогут вам в этом наше дружное сообщество и ТотаИИ. Последний кстати еще будет развиваться, у нас большие планы по добавлении автоматики в проекты, чтобы получать еще больше фидбека.
Одновременно с этим. Если вам нужно сопровождение и помощь в трудоустройстве, то эта опция никуда не девается и любую программу "с нуля" можно взять по фиксированной цене.
Но есть все таки часть программ, которые доступны только в трехлетней подписке. Как правило это новые программы. Концепт этой подписки в том, что помимо самой дешевой цены в пересчете на месяцы, вы получаете доступ к самым новым программам, которые мы делаем. Сейчас там есть devops, go, агентное программирование и некоторые другие. В ближайших планах мы делаем: вайбкодинг, автоматизатор (low-code) ИИ, LLM-программист. Все это будет выпущено до конца лет.
Какие программы вы бы хотели видеть в Хекслете?
p.s. мы еще в процессе доработки интерфейсов под нововведения, поэтому местами тексты могут не совпадать с тем что тут написано
Начиная с этой недели, часть больших программ "с нуля" становятся доступными в стандартной подписке для самостоятельного обучения. Наконец-то скажете вы и будете правы! Подробнее:
У Хекслета есть два режима работы: покупка курса и подписка.
Покупка включает курсы с поддержкой наставников, группами, кураторами, помощью в наработке коммерческого опыта, стажировками и так далее. Эти курсы создаются в основном для тех кто с нуля, долго идут и заканчиваются трудоустройством (если нужно). Такие курсы оплачиваются по какой-то фиксированной цене. При этом тут есть тарифы с разными ништяками, например персональным наставником.
Подписка, это, в основном, небольшие навыковые курсы, где обучение полностью самостоятельное (сюда включены практики, проекты и ии-ассистент). Подписка идеально подходит для повышения квалификации. Ее в первую очередь берут те, кто уже в теме и кому надо просто добрать каких-то навыков.
Теперь это меняется и мы возвращаемся к старому доброму Хекслету образца 2017 года. Часть больших программ обучения становится доступной по подписке. Сюда входят: java, php, python, javascript, ручное и автоматизированное тестирование, аналитика и некоторые другие. Вообще состав таких программ не фиксирован и со временем может меняться.
Что это значит? Если вы хотите прямо обучиться какому-то направлению, то теперь это можно сделать по подписке. Единственное надо помнить про самостоятельность, вы должны быть уверены что справитесь сами. А помогут вам в этом наше дружное сообщество и ТотаИИ. Последний кстати еще будет развиваться, у нас большие планы по добавлении автоматики в проекты, чтобы получать еще больше фидбека.
Одновременно с этим. Если вам нужно сопровождение и помощь в трудоустройстве, то эта опция никуда не девается и любую программу "с нуля" можно взять по фиксированной цене.
Но есть все таки часть программ, которые доступны только в трехлетней подписке. Как правило это новые программы. Концепт этой подписки в том, что помимо самой дешевой цены в пересчете на месяцы, вы получаете доступ к самым новым программам, которые мы делаем. Сейчас там есть devops, go, агентное программирование и некоторые другие. В ближайших планах мы делаем: вайбкодинг, автоматизатор (low-code) ИИ, LLM-программист. Все это будет выпущено до конца лет.
Какие программы вы бы хотели видеть в Хекслете?
p.s. мы еще в процессе доработки интерфейсов под нововведения, поэтому местами тексты могут не совпадать с тем что тут написано
🔥64👍19❤16😁10🤔1🫡1
Поиск в гитхабе через гугл
Помните у меня был подкаст про поиск? Я там сказал как ищу что-то на гитхабе и очень удивился, когда в комментах удивились на то как удивился я. Синхронизируемся. По мне поиск на большинстве сайтов работает настолько хреново, что им лучше не пользоваться. Например на гитхабе нормально искать что-то внутри репы (это тупое сопоставление), но когда тебе надо найти какие-то репы по описанию, то все приехали. И гугл в этом плане справляется в тыщу раз лучше.
Но тут есть хитрость, если просто искать что-то в надежде что покажет гитхаб, то конечно он так ничего не найдет. Как минимум надо добавить в начале или конце github. Типа "web framework go github". Но если настоящий кулхацкер, то знаете, что у любого поисковика есть свой язык запросов, который позволяет сделать этот поиск еще лучше. Если мы хотим четко искать на гитахбе, то надо набрать волшебные буквы "site:github.com" и тогда он будет искать строго по одному домену:
А какие еще фишки вы используете в поиске, которые вам помогают искать?
Telegram | YouTube | Сообщество
Помните у меня был подкаст про поиск? Я там сказал как ищу что-то на гитхабе и очень удивился, когда в комментах удивились на то как удивился я. Синхронизируемся. По мне поиск на большинстве сайтов работает настолько хреново, что им лучше не пользоваться. Например на гитхабе нормально искать что-то внутри репы (это тупое сопоставление), но когда тебе надо найти какие-то репы по описанию, то все приехали. И гугл в этом плане справляется в тыщу раз лучше.
Но тут есть хитрость, если просто искать что-то в надежде что покажет гитхаб, то конечно он так ничего не найдет. Как минимум надо добавить в начале или конце github. Типа "web framework go github". Но если настоящий кулхацкер, то знаете, что у любого поисковика есть свой язык запросов, который позволяет сделать этот поиск еще лучше. Если мы хотим четко искать на гитахбе, то надо набрать волшебные буквы "site:github.com" и тогда он будет искать строго по одному домену:
coding agent site:github.com
А какие еще фишки вы используете в поиске, которые вам помогают искать?
Telegram | YouTube | Сообщество
Telegram
Хекслет
Хекслет - нормальные it-курсы
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
👍64❤17🤣13🔥9💯4✍3😐1
Вчера AI-агент уничтожил производственную базу данных небольшого SaaS-бизнеса. За 9 секунд.
Jer Crane, основатель PocketOS, сервиса для компаний по аренде автомобилей. Агент Cursor (на базе Claude Opus) работал в staging-среде, наткнулся на ошибку credentials и сам решил "починить" проблему: удалил Railway-volume одним GraphQL-запросом.
Токен, который он нашёл в случайном файле, был создан для управления доменами. Но Railway не разграничивает права токенов: каждый из них фактически является root-доступом. Никакого подтверждения не потребовалось.
Бэкапы? Они хранились в том же volume и ушли вместе с данными. Последний восстановимый бэкап был трёхмесячной давности. Когда Jer спросил агента, почему он так поступил, тот ответил письменно и перечислил все правила безопасности, которые нарушил: угадывал вместо того, чтобы проверять, выполнил деструктивное действие без запроса, не прочитал документацию перед удалением и не спросил разрешения.
Итог: малый бизнес потерял данные клиентов за три месяца. Люди приходили в субботу забирать арендованные машины и не находили своих записей.
Главный вывод: системные промпты не могут быть единственным слоем защиты. Безопасность должна быть встроена в API, токены и обработчики деструктивных операций, а не в текст, который модель "должна прочитать и соблюдать".
Если вы используете Railway и AI-агенты в проде, сегодня хороший день проверить скоупы токенов и то, где реально хранятся ваши бэкапы.
А чтобы такого не происходило, приходите ко мне на завтра на вебинар на нем я буду стримить как я работаю с агентом для решения типовых задач, мы обязательно сделаем что-нибудь деструктивное (зловещий смех на фоне)
Telegram | YouTube | Сообщество
Jer Crane, основатель PocketOS, сервиса для компаний по аренде автомобилей. Агент Cursor (на базе Claude Opus) работал в staging-среде, наткнулся на ошибку credentials и сам решил "починить" проблему: удалил Railway-volume одним GraphQL-запросом.
Токен, который он нашёл в случайном файле, был создан для управления доменами. Но Railway не разграничивает права токенов: каждый из них фактически является root-доступом. Никакого подтверждения не потребовалось.
Бэкапы? Они хранились в том же volume и ушли вместе с данными. Последний восстановимый бэкап был трёхмесячной давности. Когда Jer спросил агента, почему он так поступил, тот ответил письменно и перечислил все правила безопасности, которые нарушил: угадывал вместо того, чтобы проверять, выполнил деструктивное действие без запроса, не прочитал документацию перед удалением и не спросил разрешения.
Итог: малый бизнес потерял данные клиентов за три месяца. Люди приходили в субботу забирать арендованные машины и не находили своих записей.
Главный вывод: системные промпты не могут быть единственным слоем защиты. Безопасность должна быть встроена в API, токены и обработчики деструктивных операций, а не в текст, который модель "должна прочитать и соблюдать".
Если вы используете Railway и AI-агенты в проде, сегодня хороший день проверить скоупы токенов и то, где реально хранятся ваши бэкапы.
А чтобы такого не происходило, приходите ко мне на завтра на вебинар на нем я буду стримить как я работаю с агентом для решения типовых задач, мы обязательно сделаем что-нибудь деструктивное (зловещий смех на фоне)
Telegram | YouTube | Сообщество
special.hexlet.io
Как разработчику ускорить работу в 2–5 раз с ИИ: реальные кейсы и разбор
Воркшоп про агентную разработку. Объясним что это такое и чем отличается от обычного использования AI в коде. Покажем четыре живые демонстрации с Claude Code
🔥75😁33👍23❤9😢3🤣3🤔2🗿1
Всегда хотелось придумать какой-то этакий слоган для Хекслета, чтобы он сразу возникал в голове у всех кто слышал про нас. В общем с клодом и божьей помощью я таки родил:
"Хекслет - нормальные it-курсы". Запомните этот пост, через год у вас у всех будет эта фраза в голове!
Теперь есть где разгуляться, когда мне чо то будут говорить 🙂
"Не супер конечно, но вполне нормально"
"- Инфоцигане! - Да не, нормальные курсы"
Ну и буквально через час старт вебинара, если вы еще не, то уже надо. Сегодня будет формат воркшопа, я кожу вы смотрите
"Хекслет - нормальные it-курсы". Запомните этот пост, через год у вас у всех будет эта фраза в голове!
Теперь есть где разгуляться, когда мне чо то будут говорить 🙂
"Не супер конечно, но вполне нормально"
"- Инфоцигане! - Да не, нормальные курсы"
Ну и буквально через час старт вебинара, если вы еще не, то уже надо. Сегодня будет формат воркшопа, я кожу вы смотрите
special.hexlet.io
Как разработчику ускорить работу в 2–5 раз с ИИ: реальные кейсы и разбор
Воркшоп про агентную разработку. Объясним что это такое и чем отличается от обычного использования AI в коде. Покажем четыре живые демонстрации с Claude Code
😁57👍26🔥8❤7👎5🤔3🥴2🗿1
Forwarded from Хекслет
В каких компаниях искать работу
Вокруг одни бигтехи. Где работать если я устал от банков? Вот такой твит я увидел неделю назад и опечалился. Даже в реплаях было сплошное "а чо ты хотел", "такой мир". Есть и другой мир черт побери.
Сначала небольшая историческая справка. Действительно со временем присходит консолидация, крупные компании поглощают мелкие и выстраивают целые экосистемы замыкая на себе все до чего могут дотянуться. Сервисы типа читалок книг, кино, машины и многие другие были независимыми. Со временем их скупил яндекс и другие ребята. Куда не ткни в b2c, там на фоне обязательно какой-нибудь крупняк, который им владеет. Ну а торговля вообще уехала в маркетплейсы, больше никто не делает интернет-магазины на заказ (почти).
И понятно почему это происходит, такие проекты сложно и дорого масштабировать (с бизнесовой точки зрения), а крупные экосистемы имеют свои каналы дистрибуции, что позволяет достаточно легко выходить на очень большие аудитории. В таких случаях у частников просто никаких шансов. Какому нибудь сберу достаточно разместить кнопку в своем приложении и уже миллионы пользователей.
Однако это не отменяет того, что даже если сервисом владеет какой-то крупняк, значит он обязательно работает по формату бигтеха. Со всеми вытекающими. В любом случае даже бигтехов больше, чем может показаться. Существует рейтинг https://smartranking.ru/ru/ranking/big-tech/, где можно посмотреть их список, кто сколько зарабатывает и возможно найти себе будущего работадателя.
А куда еще можно податься? Из всех направлений я бы выделил четыре
Компании где ИТ имеет важную роль, но это все таки обслуживание, а не основа бизнеса. Например нефтянка, заводы и всякое другое. Я плохо знаком с этим направлением (хотя когда то нанимал c++ девов с завода и дивился тому как у них там работает).
Аутсорсеры/агенства/студии - Вот тут реально много разработчиков и эти компании живут тем что чем больше девелоперов тем больше зарабатываем (если есть заказы естессно). Тут обычно зп ниже, но зато можно поработать с кучей разных технологий и проектов. Откуда про них узнавать? И тут есть свой рейтинг https://digirate.ru/. Можно по нему посмотреть сайты компаний и раздел вакансий. Там всегда что-то висит
Стартапы. Тут вообще может быть все что угодно, главное что стартап эпично растет и кому-то продается. Сейчас их число в рф подозреваю сильно сократилось, но когда экономика на подъеме и доступны дешевые деньги, стартапы расцветают и появляется много работы.
И мое любимое, это независимые (но не всегда) SaaS решения, как правило b2b направленности
Вот про последних хочется чуть больше. Вам что нибудь говорят названия AmoCRM, Mindbox, Timepad, Tutu, Все инструменты, Мой Склад или Roistat? Конечно все знают Aviasels и многие ТуТу, но остальные вообще врядли слышали. А между тем, я как и большинство владельцев цифовых бизнесов пользуюсь либо ими либо их аналогами. То есть существует большой блок b2b сервисов и небольшой b2c, в котором есть частные компании, где разработчиков от нескольких до сотни человек (может сотен в редких случаях) и где совершенно другое ощущение от работы (меньше бюрократии, близость к бизнесу, к собственнику).
Если вы про эти компании ничего не знаете, то самое время познакомиться тут https://digirate.ru/saas
p.s. Вы работаете в бигтехе или как раз в одном из таких частных проектов?
Telegram | YouTube | Сообщество
Вокруг одни бигтехи. Где работать если я устал от банков? Вот такой твит я увидел неделю назад и опечалился. Даже в реплаях было сплошное "а чо ты хотел", "такой мир". Есть и другой мир черт побери.
Сначала небольшая историческая справка. Действительно со временем присходит консолидация, крупные компании поглощают мелкие и выстраивают целые экосистемы замыкая на себе все до чего могут дотянуться. Сервисы типа читалок книг, кино, машины и многие другие были независимыми. Со временем их скупил яндекс и другие ребята. Куда не ткни в b2c, там на фоне обязательно какой-нибудь крупняк, который им владеет. Ну а торговля вообще уехала в маркетплейсы, больше никто не делает интернет-магазины на заказ (почти).
И понятно почему это происходит, такие проекты сложно и дорого масштабировать (с бизнесовой точки зрения), а крупные экосистемы имеют свои каналы дистрибуции, что позволяет достаточно легко выходить на очень большие аудитории. В таких случаях у частников просто никаких шансов. Какому нибудь сберу достаточно разместить кнопку в своем приложении и уже миллионы пользователей.
Однако это не отменяет того, что даже если сервисом владеет какой-то крупняк, значит он обязательно работает по формату бигтеха. Со всеми вытекающими. В любом случае даже бигтехов больше, чем может показаться. Существует рейтинг https://smartranking.ru/ru/ranking/big-tech/, где можно посмотреть их список, кто сколько зарабатывает и возможно найти себе будущего работадателя.
А куда еще можно податься? Из всех направлений я бы выделил четыре
Компании где ИТ имеет важную роль, но это все таки обслуживание, а не основа бизнеса. Например нефтянка, заводы и всякое другое. Я плохо знаком с этим направлением (хотя когда то нанимал c++ девов с завода и дивился тому как у них там работает).
Аутсорсеры/агенства/студии - Вот тут реально много разработчиков и эти компании живут тем что чем больше девелоперов тем больше зарабатываем (если есть заказы естессно). Тут обычно зп ниже, но зато можно поработать с кучей разных технологий и проектов. Откуда про них узнавать? И тут есть свой рейтинг https://digirate.ru/. Можно по нему посмотреть сайты компаний и раздел вакансий. Там всегда что-то висит
Стартапы. Тут вообще может быть все что угодно, главное что стартап эпично растет и кому-то продается. Сейчас их число в рф подозреваю сильно сократилось, но когда экономика на подъеме и доступны дешевые деньги, стартапы расцветают и появляется много работы.
И мое любимое, это независимые (но не всегда) SaaS решения, как правило b2b направленности
Вот про последних хочется чуть больше. Вам что нибудь говорят названия AmoCRM, Mindbox, Timepad, Tutu, Все инструменты, Мой Склад или Roistat? Конечно все знают Aviasels и многие ТуТу, но остальные вообще врядли слышали. А между тем, я как и большинство владельцев цифовых бизнесов пользуюсь либо ими либо их аналогами. То есть существует большой блок b2b сервисов и небольшой b2c, в котором есть частные компании, где разработчиков от нескольких до сотни человек (может сотен в редких случаях) и где совершенно другое ощущение от работы (меньше бюрократии, близость к бизнесу, к собственнику).
Если вы про эти компании ничего не знаете, то самое время познакомиться тут https://digirate.ru/saas
p.s. Вы работаете в бигтехе или как раз в одном из таких частных проектов?
Telegram | YouTube | Сообщество
Telegram
Хекслет
Хекслет - нормальные it-курсы
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
Программы обучения Хекслета - https://ru.hexlet.io/courses
Сообщество @hexletcommunity
Сотрудничество @kirillpublic
👍48❤17🔥9👏4🤮4🤔1👀1
Подкаст уже доступен для просмотра https://youtu.be/UcpKUM3BJCA?si=u70KkivrfYVKqY9c
Альтернативные ссылки: Аудио | vk
Альтернативные ссылки: Аудио | vk
YouTube
Где работать кроме бигтеха / Бизнес без программистов / Найм в эпоху агентов / Кирилл Мокевнин
🔹 Присоединяйся к курсу «ИИ для разработчиков» https://ru.hexlet.io/programs/ai-for-developers?utm_source=youtube
Работа есть не только в бигтехе. Просто её не видно
В IT-твиттере кто-то написал: куда вообще идти работать, если вокруг один сплошной бигтех?…
Работа есть не только в бигтехе. Просто её не видно
В IT-твиттере кто-то написал: куда вообще идти работать, если вокруг один сплошной бигтех?…
🔥33👍12🤔4❤2🙏2🥱1
Кто такой бизнес?
Регулярно замечаю, когда речь заходит о бизнесе, то многие сводят это к своим менеджерам. Для линейных сотрудников действительно все кто выше кажутся единой массой принимающей решения, причем как правило кривые :)
Мне хочется разложить эту тему, потому что меня немного коребит, когда разработчики жалуются на своих менеджеров сопровождая это словами "бизнес не понимает чего хочет" и тому подобным. Хочется кричать, ребята, эти менеджеры от бизнеса бесконечно далеки. Не как что-то плохое, а просто по объективным причинам которые я ниже опишу.
Давайте разложу для вас, чтобы было понятно как на это смотрят владельцы компании. В компании все важны и полезны, но большинство закрывает только какую-то узкую зону и не видит картины в целом. И чем дальше от центра принятия решений, тем хуже связь.
Бизнес это всегда про деньги и риски. Упрощая можно сказать так, что если у человека нет денежного KPI и риска потерять реальные деньги (в смысле он прямо отвечает за деньги, а не косвенно через готовность проекта найм и так далее), а не только работу, то он не про бизнес.
Да все за что то переживают и отвечают, но одно дело когда вы вкладываете свои личные миллионы и всегда есть риск потерять все в одну секунду (а еще остаться должным и понести огромные репутационные потери), другое дело вы распоряжаетесь бюджетом на ваш отдел и худшее что может произойти, вы его превысите/не выполните задачи в срок/отодвинется запуск проекта. Бывает и хуже да, но не настолько, чтобы все загнулось.
И так, главный про бизнес в компании это фаундер. Тут человек несет полную ответственность и риски. Если что-то пойдет не так, он единственный кто не сможет уволиться и найти другую работу. Такое конечно бывает, что не задалось и надо идти работать, но сама процедура закрытия, когда у вас обязательства, это слегка сложнее чем просто увольнение. Там обычно и суды и банкротства и разборки разного рода.
Есть еще акционеры, но тут очень сильно зависит от конкретной компании. В целом это люди которые тоже максимально про бизнес и смотрят на управленческую отчетность и оценивают перспективы. И вкладывают свои кровные если надо вкладывать.
Ну и именно здесь принимаются ключевые стратегические решения, которые как правило могут перекрывать вообще все. То есть одно решение тут, может компанию как утопить, так и наоборот. Кто платит тот и танцует.
Дальше идет большой провал, потому что остальные люди как правило наемные сотрудники. У некоторых из них очень серьезный уровень ответственности и есть неслабые риски, но это уже не уровень фаундеров и акционеров.
Кто эти люди? В первую очередь гендир, финдир, комм дир, операционный директор. Тут возможно вы удивитесь, но задача гендира зарабатывать деньги акционерам. А в целом эта компашка является ключевой в происходящем уже на уровне организации.
Ниже есть РОП (руководитель отдела продаж), СМО (Директор по Маркетингу) и CPO (Главный прОдакт). Эти ребята тоже очень про бизнес, но с уже более узким фокусом по конкретным направлениям.
Ну а дальше идет уже сильное разделение, где слишком узкая задача, чтобы говорить что человек про бизнес. Про его какую-то очень ограниченную часть. Единственное возможное исключение это продакты (но только те что про деньги) даже линейного уровня. Потому что эти ребята ближе всех к верхнему уровню. В этом смысле многие продакты в энтерпрайзе с точки зрения обычных бизнесов (не бигтеха) не совсем продакты, они отвечают там за что угодно кроме денег (в том числе те самые скрамовые product owner).
А где тут программисты спросите вы? Где-то за продактами, задачи которых они выполняют. Если это про разработку продуктов и систем. Плюс инфраструктурные направления в подчинении у СТО. Где-то рядом аналитики и другие ребята.
Поэтому когда вы слышите что-то про "бизнес сделал то", всегда смотрите на то, про кого идет речь. Если это не фаундер + c-level, то скорее всего это локальные корп баги/разборки/тупизна, а не бизнес
Telegram | YouTube | Сообщество
Регулярно замечаю, когда речь заходит о бизнесе, то многие сводят это к своим менеджерам. Для линейных сотрудников действительно все кто выше кажутся единой массой принимающей решения, причем как правило кривые :)
Мне хочется разложить эту тему, потому что меня немного коребит, когда разработчики жалуются на своих менеджеров сопровождая это словами "бизнес не понимает чего хочет" и тому подобным. Хочется кричать, ребята, эти менеджеры от бизнеса бесконечно далеки. Не как что-то плохое, а просто по объективным причинам которые я ниже опишу.
Давайте разложу для вас, чтобы было понятно как на это смотрят владельцы компании. В компании все важны и полезны, но большинство закрывает только какую-то узкую зону и не видит картины в целом. И чем дальше от центра принятия решений, тем хуже связь.
Бизнес это всегда про деньги и риски. Упрощая можно сказать так, что если у человека нет денежного KPI и риска потерять реальные деньги (в смысле он прямо отвечает за деньги, а не косвенно через готовность проекта найм и так далее), а не только работу, то он не про бизнес.
Да все за что то переживают и отвечают, но одно дело когда вы вкладываете свои личные миллионы и всегда есть риск потерять все в одну секунду (а еще остаться должным и понести огромные репутационные потери), другое дело вы распоряжаетесь бюджетом на ваш отдел и худшее что может произойти, вы его превысите/не выполните задачи в срок/отодвинется запуск проекта. Бывает и хуже да, но не настолько, чтобы все загнулось.
И так, главный про бизнес в компании это фаундер. Тут человек несет полную ответственность и риски. Если что-то пойдет не так, он единственный кто не сможет уволиться и найти другую работу. Такое конечно бывает, что не задалось и надо идти работать, но сама процедура закрытия, когда у вас обязательства, это слегка сложнее чем просто увольнение. Там обычно и суды и банкротства и разборки разного рода.
Есть еще акционеры, но тут очень сильно зависит от конкретной компании. В целом это люди которые тоже максимально про бизнес и смотрят на управленческую отчетность и оценивают перспективы. И вкладывают свои кровные если надо вкладывать.
Ну и именно здесь принимаются ключевые стратегические решения, которые как правило могут перекрывать вообще все. То есть одно решение тут, может компанию как утопить, так и наоборот. Кто платит тот и танцует.
Дальше идет большой провал, потому что остальные люди как правило наемные сотрудники. У некоторых из них очень серьезный уровень ответственности и есть неслабые риски, но это уже не уровень фаундеров и акционеров.
Кто эти люди? В первую очередь гендир, финдир, комм дир, операционный директор. Тут возможно вы удивитесь, но задача гендира зарабатывать деньги акционерам. А в целом эта компашка является ключевой в происходящем уже на уровне организации.
Ниже есть РОП (руководитель отдела продаж), СМО (Директор по Маркетингу) и CPO (Главный прОдакт). Эти ребята тоже очень про бизнес, но с уже более узким фокусом по конкретным направлениям.
Ну а дальше идет уже сильное разделение, где слишком узкая задача, чтобы говорить что человек про бизнес. Про его какую-то очень ограниченную часть. Единственное возможное исключение это продакты (но только те что про деньги) даже линейного уровня. Потому что эти ребята ближе всех к верхнему уровню. В этом смысле многие продакты в энтерпрайзе с точки зрения обычных бизнесов (не бигтеха) не совсем продакты, они отвечают там за что угодно кроме денег (в том числе те самые скрамовые product owner).
А где тут программисты спросите вы? Где-то за продактами, задачи которых они выполняют. Если это про разработку продуктов и систем. Плюс инфраструктурные направления в подчинении у СТО. Где-то рядом аналитики и другие ребята.
Поэтому когда вы слышите что-то про "бизнес сделал то", всегда смотрите на то, про кого идет речь. Если это не фаундер + c-level, то скорее всего это локальные корп баги/разборки/тупизна, а не бизнес
Telegram | YouTube | Сообщество
👍59❤18🔥12👎3💯1
Выпуск подкаста уже доступен для просмотра и прослушивания. Тема выпуска кодогенерация для SQL. https://www.youtube.com/watch?v=u9uXU9Nam8g
Альтернативные ссылки: Аудио | vk
Альтернативные ссылки: Аудио | vk
YouTube
Типизированный SQL: генерация SDK вместо ORM — работает? / Никита Волков #85
🔹 Присоединяйся к курсу «ИИ для разработчиков» https://ru.hexlet.io/programs/ai-for-developers?utm_source=youtube
В этом выпуске у меня в гостях Никита Волков - разработчик Haskell-библиотек и консультант. Мы поговорили про SQL First как подход в целом…
В этом выпуске у меня в гостях Никита Волков - разработчик Haskell-библиотек и консультант. Мы поговорили про SQL First как подход в целом…
👍27🔥6❤5
Агент коммитит
Долгое время я коммитил и пушил сам, но с прошлой недели делегировал эту задачу агентам и вот что из этого получилось. tldr; получилось хорошо :)
Сначала мы интегрировали нашу тикетницу (яндекс трекер) с агентом по mcp. Это встроенная фича yandex cloud (конкретно ai studio), но она полурукопашная. Там сначала писать в саппорт надо, потом создавать mcp, причем свой под каждого пользователя, короче гемморой, поэтому я долго откладывал. Надеюсь у них появится официальная cli, но пока ее нет. Ну да ладно, интегрировали.
И с этого момента, наконец-то, получилось перейти в режим скидывания тикетов в агента, где он собирает весь контекст задачи сам. Причем не только из тикета и кода. Для изучения багов он идет в Sentry, по разным докам может сходить на диск и поискать там. Эта часть еще требует улучшения, но начало положено.
Дальше мы уже внутри агента планируемся вместе до тех пор пока я не пойму, что все хорошо. Тут я навнедрял, набирающих сейчас популярность, фишек типа CONTEXT.md и grill-me. Про них расскажу в других постах. Ну и когда все готово, он приступает к реализации.
Затем в зависимости от разных факторов я могу залить это сразу в main либо попросить его бахнуть пулреквест. Независимо от подхода, агент делает три вещи на базе новых инструкций в AGENTS.md
• Делает название тикета по схеме нужной трекеру, чтобы все автоматом соединялось + было понятно что за тикет + само название формируется на базе тикета
• Делает техническое описание в коммите (достаточно большое) с обязательным объяснением зачем мы это сделали
• Добавляет комментарий в тикет с не техническим описанием всех изменений для маркетологов/продактов и любых других людей, которые этот тикет поставили или следят за ним
И, черт побери, мне это насколько упростило жизнь, как человеку который не любит все это оформлять, вы не представляете. Сегодня буквально спрашивал у своего продакта, как ему? Говорит что приятно видеть такие описания в комментариях.
И еще, наверное самое интересное. Когда я так поработал два дня, я заметил что агент начал намного чаще выдавать что-то в духе "я вижу что в таком то коммите мы пришли к такой схеме" и это значительно улучшило его выводы относительно происходящего. Он видимо и до этого смотрел, но там не было достаточных описаний, чтобы делать какие-то выводы. Короче волосы стали шелковистее.
Многие боятся давать такой уровень доступа агенту и это их выбор. Скажу за себя. Если мейн защищен от форспушей (гитхаб прямо заставляет это делать), я не боюсь мусорных ошибочных коммитов. Всегда можно удалить ручками или ревертнуть если оно было запушено. Что касается тикетницы, то у mcp нет прав на удаление. Теоретически он может обновить неудачно тикет и чо-нибудь стереть (у меня было такое разок), но это во-первых крайне маловероятное событие, во-вторых плюсов настолько больше, что я даже не сомневался когда так делал.
Какие наши следующие шаги? Планирую внедрить триаж входящих тикетов. Плюс дать больше источников информации.
Если вы вдруг пропустили, сегодня стартанул второй поток ии для программистов. Попасть на него можно до конца этой недели, потом только следующий поток. Если вы думаете записаться щас или потом, то учитывайте что я скорее всего последний раз буду вести вебинары сам, в следующем потоке это будет другой человек.
Telegram | YouTube | Сообщество
Долгое время я коммитил и пушил сам, но с прошлой недели делегировал эту задачу агентам и вот что из этого получилось. tldr; получилось хорошо :)
Сначала мы интегрировали нашу тикетницу (яндекс трекер) с агентом по mcp. Это встроенная фича yandex cloud (конкретно ai studio), но она полурукопашная. Там сначала писать в саппорт надо, потом создавать mcp, причем свой под каждого пользователя, короче гемморой, поэтому я долго откладывал. Надеюсь у них появится официальная cli, но пока ее нет. Ну да ладно, интегрировали.
И с этого момента, наконец-то, получилось перейти в режим скидывания тикетов в агента, где он собирает весь контекст задачи сам. Причем не только из тикета и кода. Для изучения багов он идет в Sentry, по разным докам может сходить на диск и поискать там. Эта часть еще требует улучшения, но начало положено.
Дальше мы уже внутри агента планируемся вместе до тех пор пока я не пойму, что все хорошо. Тут я навнедрял, набирающих сейчас популярность, фишек типа CONTEXT.md и grill-me. Про них расскажу в других постах. Ну и когда все готово, он приступает к реализации.
Затем в зависимости от разных факторов я могу залить это сразу в main либо попросить его бахнуть пулреквест. Независимо от подхода, агент делает три вещи на базе новых инструкций в AGENTS.md
• Делает название тикета по схеме нужной трекеру, чтобы все автоматом соединялось + было понятно что за тикет + само название формируется на базе тикета
• Делает техническое описание в коммите (достаточно большое) с обязательным объяснением зачем мы это сделали
• Добавляет комментарий в тикет с не техническим описанием всех изменений для маркетологов/продактов и любых других людей, которые этот тикет поставили или следят за ним
И, черт побери, мне это насколько упростило жизнь, как человеку который не любит все это оформлять, вы не представляете. Сегодня буквально спрашивал у своего продакта, как ему? Говорит что приятно видеть такие описания в комментариях.
И еще, наверное самое интересное. Когда я так поработал два дня, я заметил что агент начал намного чаще выдавать что-то в духе "я вижу что в таком то коммите мы пришли к такой схеме" и это значительно улучшило его выводы относительно происходящего. Он видимо и до этого смотрел, но там не было достаточных описаний, чтобы делать какие-то выводы. Короче волосы стали шелковистее.
Многие боятся давать такой уровень доступа агенту и это их выбор. Скажу за себя. Если мейн защищен от форспушей (гитхаб прямо заставляет это делать), я не боюсь мусорных ошибочных коммитов. Всегда можно удалить ручками или ревертнуть если оно было запушено. Что касается тикетницы, то у mcp нет прав на удаление. Теоретически он может обновить неудачно тикет и чо-нибудь стереть (у меня было такое разок), но это во-первых крайне маловероятное событие, во-вторых плюсов настолько больше, что я даже не сомневался когда так делал.
Какие наши следующие шаги? Планирую внедрить триаж входящих тикетов. Плюс дать больше источников информации.
Если вы вдруг пропустили, сегодня стартанул второй поток ии для программистов. Попасть на него можно до конца этой недели, потом только следующий поток. Если вы думаете записаться щас или потом, то учитывайте что я скорее всего последний раз буду вести вебинары сам, в следующем потоке это будет другой человек.
Telegram | YouTube | Сообщество
👍54❤15😁11👎4🔥3🤔2😢1
Псс, знаю что вам не хватает меня в экране, поэтому вот вам еще один подкаст. В этот раз мы вместе с подлодкой записали большой и эпический выпуск про Rails. Выпуск долго готовили и делали монтаж, зацените как там все ваще вау https://www.youtube.com/watch?v=EL53I0klc2w
Telegram | YouTube | Сообщество
Telegram | YouTube | Сообщество
YouTube
Ruby on Rails в 2026: скорость, магия и боль рельсов – Кирилл Мокевнин в Подлодке
Кирилл Мокевнин – сооснователь онлайн-школы программирования «Хекслет», разработчик с почти двадцатилетним стажем, амбассадор организованного программирования и автор одноимённых YouTube- и Telegram-каналов. Он работал с Ruby on Rails ещё в коммерческой разработке…
1🔥38👍13❤8😁3