Организованное программирование | Кирилл Мокевнин
13.6K subscribers
84 photos
347 links
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Download Telegram
Учимся писать промпты правильно

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

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

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

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

Вдруг меня осенило, слишком сильное обдумывание до начала работы в агентской разработке (последние полгода), стало чем-то сродни преждевременной оптимизации. Поработав с большим числом моделей и агентов, могу сказать, что если вы будете сами все продумывать, то заставите работать более менее нормально даже самые тупые модели, но вы никогда не поймете границы их возможностей, где они могут еще больше взять на себя освободив вас от рутины. А модели и агенты постоянно развиваются, там где раньше надо было подсказывать, теперь они могут сами. Плюс если вы работаете над AGENTS.md, скилами и mcp, то и тут мы ловим буст.

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

Для упавшего ci это выглядит так:

Поправь тесты
Прошу посмотреть последний запущенный билд на github actions

Баг в браузере:

прошу открыть страницу (он это делает через mcp chrome) и самому изучить

Для рефакторинга:

Переводим вот это на это
Вот эталон (тут ссылка на файл)

Для фичи:

Нужно реализовать такую фичу
Даю пример или говорю с помощью какого инструмента

И все. Самые продвинутые модели типа opus 4.6 или codex 5.3 справятся самостоятельно с большинством острых углов. Сами спросят объем, посмотрят разные варианты, изучат доку и так далее. Модели по тупее, не сделают глубокого анализа и ничего особо не спросят, но именно тут вы поймете где их надо вести и включать свой мозг чаще. Хотя хорошие модели настолько сильно помогают, что я физически не могу использовать более простые для задач планирования. Они хороши в авторежиме только для работы по аналогии, рефакторинг, написание тестов и так далее.

Даже если вы что-то забудете или пропустите сразу, все это можно будет доуточнить, попросить показать примеры кода, сходить открыть браузер. Если в процессе появляются вещи, которые агент делает из раза в раз, например, пытается выяснить где что-то лежит, как работать с какой-то частью системы, то постепенно это выносится в AGENTS.md и с определенного размера и уровни сложности (когда уже нужны скрипты например и команды) выносится в skill.

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

Telegram | YouTube | Сообщество
169👍56🔥15🥴12💯6👎4🤔4🤮4👏2💩2
Выпуск с лайвкодингом проекта по DDD и заветам чистой архитектуры уже в сети https://www.youtube.com/watch?v=MBSwaH6s7Ig (писали на Kotlin). Посмотрите и скажите что вы думаете про такую архитектуру. Насколько это отличается от того как пишется код в ваших проектах

Альтернативные ссылки: Аудио | vk
11🔥32👍16101👨‍💻1🎄1
Граница абстракций

Все плюс минус знакомы с концепцией сервисов, где бизнес-операции вынесены в метод, так чтобы их можно было переиспользовать и описывать независимо от фреймворка (относительно). Кто-то даже знает понятие Service Layer как паттерн. Но вот что происходит внутри сервиса - большой вопрос. Например что делать с повторяющейся логикой, а если строить логику на событиях, а можно ли вызывать сервис из сервиса? Хочу сфокусироваться на последнем пункте.

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

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

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

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

Когда вызов допустим: если нижележащий компонент это не еще один application service, а отдельная зависимость с более низким уровнем абстракции: доменный сервис, policy-объект, репозиторий, gateway, publisher событий и так далее. Какой-нибудь сервис отправки писем хороший пример. Я, кстати, по этой причине, вообще бы не называл такие штуки сервисами, иначе происходит жесткая путаница.

А что делать, если логика действительно повторяется? В таких случаях обычно есть два пути. Первый - вынести общий кусок в отдельный компонент более низкого уровня абстракции: доменный сервис, policy-объект или другой вспомогательный объект, который не представляет собой бизнес-операцию, а реализует часть логики. Второй строить композицию через события, когда одна операция завершает свою работу и публикует событие, а другие части системы реагируют на него независимо. Хотя я был бы с этим аккуратнее, тут если доводить до крайности может получиться еще хуже.

p.s. А какой подход используется у вас?

Telegram | YouTube | Сообщество
👍3517🤔9👎2🔥2😢2👨‍💻1👀1
🧠 Как учиться разработчику [2] — выпуск опубликован

Наконец-то доделал этот выпуск, простите за большую задержку

https://youtu.be/A4jSCCpt12o

Мы снова глубоко копнули в тему самообразования разработчиков — на этот раз вместе с Кириллом Мокевниным (сооснователь Хекслет) и Владом Теном.

Обсудили и разобрались, как правильно учиться сложным вещам, почему возникает «иллюзия понимания», когда теорию вроде бы прочитал, а на практике применить не можешь.

Также поговорили про связь теории и практики, ловушку подхода «выучу, когда понадобится» (just-in-time learning) и зачем на самом деле инженеру нужна фундаментальная база на примере сетей, ОС и баз данных.

Прошлись по золотому фонду IT-литературы: что реально стоит читать (Петцольд, SICP, Таненбаум), а что лучше скипать. Затронули найм, самостоятельность (A-players), бизнес-романы для инженеров и то, как не отупеть, делегируя написание кода нейросетям.

————

Страница выпуска на сайте подкаста

Также выпуск доступен на аудио-площадках:

- Mave — основная площадка подкаста, тут также есть список экзотических платформ, на которых можно послушать выпуск
- Apple Podcasts

- Яндекс Музыка [заливается, скоро тут появится ссылка]

#gogetpodcast #анонс
1🔥53👍2010🙏2🤔1👨‍💻1👀1
Слои или Фичи (Домены)

Существует два основных подхода организации кода в приложениях. Либо по слоям, когда у нас, грубо говоря, в одной папке контроллеры, в другой модели, в третьей тесты и так далее. И подход когда папочки объединяются по фичам/домену, в таком случае в одной папке лежат все возможные элементы приложения (и контроллеры и модели и тесты и что там еще есть в вашей экосистеме). И каждый раз идет срач на тему, а как правильно? Иногда за нас это уже определено.

Значит если мы берем большие фреймворки, то там все это вшито на базовом уровне. В джанге мы объединяемся вокруг доменов, в rails/laravel и многих других вокруг слоев. В микрофреймворках обычно дефолт это слои, но никто не мешает разложить по доменам. Во фронтенде можно и так и так, мало какой инструмент диктует структуру.

Бывают и гибридные варианты. В той же Django внутри каждой фичи (app) у нас слоистая архитектура. А в rails есть понятие engine, когда часть логики можно вынести как бы в отдельное rails приложение, а затем внедрить его в исходное (для этого есть механизм движков). Его обычно используют для каких-то тем, которые прямо сильно выделяются или реализуются как отдельные проекты, например, так можно подрубить форум или систему мониторинга очередей.

Несмотря на то, что система с разбиением по фичам/доменам кажется очень привлекательной я скептически отношусь к попытке ставить это в базу и делать абсолютно всю логику приложения через такой подход. Для меня это сродни тому что мы со старта делаем микросервисную архитектуру. Сразу встает масса сложностей, которые надо решать начиная от управления зависимостями между этими частями (кто от кого зависит, а если они зависят друг от друга?) до решения того, куда помещать логику на стыках? Достаточно посмотреть сколько в Django мире на эту тему придумано паттернов и разведено срачей.

А вот наоборот проще. По дефолту все можно складывать вместе, но если надо, мы без особых проблем можем строить внутри достаточно изолированные части, которые хотя и лежат физически в разных папках, но правильно изолированы от других частей системы (тут и сервисы и события и все на свете). Если идти дальше, то можно вынести логику и в сервис и в библиотеку. Например в Хекслете редактор реализован в виде отдельного пакета и разрабатывается в отдельной репе, но теоретически мы могли бы положить его тупо внутрь проекта (кроме бекенда). Такое отделение заставляет делать больше телодвижений, но зато очень хорошо соблюдаются границы.

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

Как вы делаете в своих проектах?

Telegram | YouTube | Сообщество
45👍17🔥6🤔21🎄1
Как начать использовать агентов бесплатно

Пока готовлюсь к курсу, по долгу службы изучаю возможность попробовать агентскую разработку бесплатно или лимитировано бесплатно. Чтобы не пропадало почем зря, публикую как пост.

Прокаченные модели с условно-бесплатным доступом

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

Gemini Cli. Free tier: 60 requests/min and 1,000 requests/day with personal Google account. Еще можно попробовать Antigravity (это аналог Cursor от гугл). Там мы уже получаем не только Gemini, но и другие топовые модели.

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

Qwen Code CLI. ~1000–2000 запросов в день через OAuth (зависит от региона/лимитов). Дает доступы к своим моделям (qwen-x)

Kilo Code. Еще один агент, который дает: "Get $20 in bonus credits when you top-up for the first time Credits can be used with 500+ models like Gemini 3.1 Pro, Claude 4.6 Sonnet & Opus, and GPT-5.2" Выглядит очень вкусно.

SourceCraft Coding Agent. Это агент разрабатываемый яндексом у которого сейчас под капотом DeepSeek есть бесплатный тариф и очень дешевый платный. Если вы помните, руководитель этого проекта Дмитрий Иванов был пару раз у меня на подкасте. Ребята общеают какие-то мегаапдейты скоро, будем посмотреть. А еще у нас запланирован с Димой вебинар где мы будем кодить с агентами в районе мая.

Бесплатные модели по проще

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

OpenCode Free Models. На выбор дают (mimo v2 pro, minimax m2.5, nemotron 3 super, big pickle).

По крутости не скажу, сажусь за них буквально на этой неделе. Если у вас есть опыт, поделитесь плс.

В целом бесплатный список моделей можно посмотреть на сайте OpenRouter. Дальше регаемся и подключаем через OpenCode или плагин к редактору.

Доступное из платного

Самый вкусный тариф из платных пожалуй дает OpenCode go. Первый месяц 5$, потом 10$.

Напомню что курс стартует 30 марта. А завтра я провожу вебинар про агентскую разработку. Зарегаться можно по ссылке: https://special.hexlet.io/ai-for-developers-2026 Буду ждать 🙂

Telegram | YouTube | Сообщество
👍3822🔥81😁1🎃1🎄1
Делаем мир чуть чуть лучше

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

Буквально недавно я так дебажил одну рубишную либу и выяснилось что там внутри есть косячки. Не долго думая, прямо в той же сессии я попросил агента собрать ишью дал линк на репу и потом просто скопировал это туда на гитхаб (наверное можно было попросить его сделать ишью автоматом, попробую так в следующий раз). Получилось очень обстоятельно с примерами кода, описанием того где ошибка. При желании можно было бы сразу пулреквест кинуть, но я не был уверен в какую сторону решит пойти автор либы. Вот кстати тот ишьюс: https://github.com/skryukov/rails_vite/issues/5 И фикс был сделан буквально в тот же день.

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

Telegram | YouTube | Сообщество
👍8930🔥20👎21🤔1🎄1
Выпуск про кризис в IT уже в сети. Разбираем реальные причины падения спроса на разработчиков вместе с Женей Кобзевым, сооснователем и техническим директором бухгалтерского сервиса Кнопка (я был их клиентом в самом начале пути этого сервиса). https://www.youtube.com/watch?v=ZgyE8JDTxSk

Альтернативные ссылки: Аудио | vk
👍396🔥51🤔1👀1
После года рефакторинга, мы переехали на Inertia.js и попрощались Bootstrap

Ну вот и закончился мегарефакторинг, в рамках которого мы переезжали с классической серверной шаблонизации на React SPA, но не через api + фронтенд стейт + клиентский роутинг. Мы взяли тогда еще набирающую популярность Inertia.js, которая работает по похожему принципу как next.js (серверный роутинг, отсутствие api и стейта на клиенте), но где в качестве бекенда выступает фреймворк на любом языке.

Жизнь показала, что мы сделали правильный выбор и с тех пор инерция не только стала популярнее и пошла по всем языкам, но и недавно ребята выпустили третью версию, на которую мы оперативно обновились. Если вы походите по сайту Хекслета, то заметите как плавно переключаются страницы, это они включили View Transition.

Одновременно с этим мы меняли Bootstrap на Mantine. Бутстрап служил нам верой и правдой больше 10 лет, но в какой-то момент он начал нас тормозить. И дело не только в новых подходах, а в том, что больше не хотелось работать на уровне верстки. По настоящему эффективность повышают готовые библиотеки компонентов на React (любом другом фреймворке), когда мы получаем не только внешний вид, но и готовую функциональность из коробки. Взять хотя бы тот же грид, сделать это самому со всеми фишками типа фильтров сортировок инлайн редактирований это еще тот челендж.

Не перестаю хвалить мантин, который в этом плане оказался на голову выше всех других готовых компонентных либ. А буквально сегодня вышла 9 версия, где еще больше ништяков. Забавный факт, создатель мантина смотрит мой подкаст и мы уже договорились о выпуске, так что поболтаем :)

Планируя переход мы сразу целились в максимальную типизацию, поэтому везде ts и mantine, который очень этому способствует (вместо классов props). Плюс сюда же типизированный i18next.

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

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

Telegram | YouTube | Сообщество
1🔥90👍3713🎉6🤮5👀3❤‍🔥2👏2🤔2👌1
Конец эпохи

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

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

Что например меняется при переходе в агентскую разработку? Гораздо меньше имеет значения как написано внутри, важнее становится то из каких элементов собирается система и как текут/не текут абстракции, баланс между использованием готового и самопального, наличие хороших примеров, единообразие, правильное описание проекта (включая скилы). Остается и даже усиливается то как пишутся тесты, потому что агенты любят в тестах трешак разводить. И еще много всякого, но через призму агентской разработки.

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

Что вы обо всем этом думаете? Где находитесь сами и куда мы идем?

Telegram | YouTube | Сообщество
174👍57😢16🔥7🥱6🤮5🤬3🤔2👀1🫡1
Выпуск про SEO уже доступен на канале. Все что вы хотели узнать про поисковую оптимизацию но боялись спросить. От понятия спроса, до поведенческих факторов и технической оптимизации сайта. Как и зачем собирать семантическое ядро, откуда взялся page rank и зачем делать перелинковку на сайте. Садитесь по удобнее, будет интересно!

https://www.youtube.com/watch?v=gaWh8FSJ0a4

Альтернативные ссылки: Аудио | vk
👍3818🔥7👀21🤔1
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 | Сообщество
1👍76🔥2212🤔3👎2🤝2😎1
Вы ведь заметили что последние месяцы я часто говорю про Mantine (React Component LIbrary)? Так вот сегодня в очередном выпуске подкаста будет говорить его создатель - Виталий Ртищев. А еще в подкасте прошлись по tailwind, mui, shadcn и chakra. Наслаждайтесь https://www.youtube.com/watch?v=r0uUJwyBJAc

Альтернативные ссылки: Аудио | vk
🔥44👍226🤔21🐳1
Точные типы DTO для ИИ

Есть такая проблема с 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 | Сообщество
👍396🔥3🤔2😢1👨‍💻1👾1
Попросил ИИ сгенерить картинку на тему идеального конечного результата для программистов (ТРИЗ). Как вы думаете, у нее получилось передать суть? (я фигею от того как gpt генерит картинки)
5💩89😁46👎6👍54💯3🥴2🤔1👀1
Домашнее: Прием у доктора

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

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

Тут работает ваще не так. В целях оптимизации, в штатах у таких докторов как педиатров (куда толпами ходят), прием идет параллельно. Внутри клиники от десятки специальных комнат, куда вас заводят после того как вы подождали снаружи в приемной (может занимать до часа легко). Тут медсестра сразу вас осматривает, снимает температуру, записывает рост, вес, давление и задает вопросы. Дальше говорит "доктор скоро подойдет" и уходит. А в это время, несколько докторов, ходят по очереди по этим комнатам. И в каждой из них они могут зависать надолго. В нашей клинике таких комнат около 35. То есть они запускают в течение короткого времени всю эту толпу, а дальше большую часть времени ты сидишь и тупишь в ожидании доктора. И даже если доктор зашел, может оказаться, что нужна какая-то процедура. В таком случае доктор говорит "сейчас придет медсестра и все сделает", а сам уходит к следующему пациенту. Думаю не надо говорить, когда в следующий раз он к вам зайдет. И вот эта все хрень с ожиданиями может занимать и будет часы.

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

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

Telegram | YouTube | Сообщество
4😁54🤯38😱136🤔5👍4💯3🤮1🤡1
Подкаст про кишки агентов для разработки уже доступен для просмотра. У меня в гостях Дмитрий Коваленко (уже третий раз!), который разработал эффективный поиск (инструмент + алгоритмы) сначала для nvim, а потом и сделал его самостоятельным решением, благодаря чему его воткнули в OpenCode. youtube.com/watch?v=Jcx-JclhB18

Альтернативные ссылки: Аудио | vk
👍43🔥1581🤔1🗿1👾1
Forwarded from Хекслет
Операция "Эпическая подписка"

Начиная с этой недели, часть больших программ "с нуля" становятся доступными в стандартной подписке для самостоятельного обучения. Наконец-то скажете вы и будете правы! Подробнее:

У Хекслета есть два режима работы: покупка курса и подписка.

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

Подписка, это, в основном, небольшие навыковые курсы, где обучение полностью самостоятельное (сюда включены практики, проекты и ии-ассистент). Подписка идеально подходит для повышения квалификации. Ее в первую очередь берут те, кто уже в теме и кому надо просто добрать каких-то навыков.

Теперь это меняется и мы возвращаемся к старому доброму Хекслету образца 2017 года. Часть больших программ обучения становится доступной по подписке. Сюда входят: java, php, python, javascript, ручное и автоматизированное тестирование, аналитика и некоторые другие. Вообще состав таких программ не фиксирован и со временем может меняться.

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

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

Но есть все таки часть программ, которые доступны только в трехлетней подписке. Как правило это новые программы. Концепт этой подписки в том, что помимо самой дешевой цены в пересчете на месяцы, вы получаете доступ к самым новым программам, которые мы делаем. Сейчас там есть devops, go, агентное программирование и некоторые другие. В ближайших планах мы делаем: вайбкодинг, автоматизатор (low-code) ИИ, LLM-программист. Все это будет выпущено до конца лет.

Какие программы вы бы хотели видеть в Хекслете?

p.s. мы еще в процессе доработки интерфейсов под нововведения, поэтому местами тексты могут не совпадать с тем что тут написано
🔥64👍1916😁10🤔1🫡1
Поиск в гитхабе через гугл

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

Но тут есть хитрость, если просто искать что-то в надежде что покажет гитхаб, то конечно он так ничего не найдет. Как минимум надо добавить в начале или конце github. Типа "web framework go github". Но если настоящий кулхацкер, то знаете, что у любого поисковика есть свой язык запросов, который позволяет сделать этот поиск еще лучше. Если мы хотим четко искать на гитахбе, то надо набрать волшебные буквы "site:github.com" и тогда он будет искать строго по одному домену:


coding agent site:github.com


А какие еще фишки вы используете в поиске, которые вам помогают искать?

Telegram | YouTube | Сообщество
👍6517🤣13🔥9💯43😐1