Кирилл Сачков | Development
رفتن به کانال در Telegram
Твой следующий уровень разработки здесь - https://sachkov.dev. Прокачай навыки, не покупая дорогие курсы По всем вопросам - t.me/sachkova_mng Лайф канал - https://t.me/sachkovgeek
نمایش بیشتر4 490
مشترکین
-124 ساعت
+167 روز
+11830 روز
آرشیو پست ها
Залутать гайд можно в закрытке, не покупая дорогой курс. В закрытке развивается отдельное направление для успешного поиска работы. Работаем. Подписаться
Я до сих пор люблю чистый код 😎
Даже сейчас, когда почти весь код я пишу с агентами, на старте нового проекта мне хочется внимательно разбирать каждую часть. Особенно если я работаю с новым для себя стеком или механиками.
Сейчас я принялся разрабатывать новый продукт на NestJS. TypeScript я знаю хорошо, но сам фреймворк для меня новый. Мне вот стало интересно, как в нём устроен бэкенд, чем его подходы отличаются от Asp Net Core.
Кстати опыт из одного стека отлично переносится в другой. На уровне основных абстракций многие бэкенд фреймворки похожи: middleware, dependency injection, модули, разделение ответственности, обработка запросов. Вся внутрянка от нас сегодня скрыта. Поэтому спокойно можно изучать новые фреймворки, свитчиться с одного стэка на другой и таким образом расширять горизонты бытия 🚬
Вообще первые полноценные фичи хочется реализовать прям по красоте, чтобы всё было идеально да бы следующие фичи использовали все наработки. Поэтому хочется нормально выделить слои, разделить код на модули, сделать понятным поток данных. Чтобы было очевидно, откуда приходят данные, где обрабатываются и как возвращается результат, при этом не заиграться с абстракциями и следовать принципам YAGNI и SOLID😎
И вот этого агентам пока не хватает, вот тут они могут накосячить. Они могут быстро написать рабочий код, но чистым и понятным он получается далеко не всегда, уж поверьте. Конечно это не значит, что их не стоит использовать и надо писать код руками, уже не выйдет, поезд ушёл 🌈 Просто из этого следует, что навык писать чистый код сегодня всё ещё нужен. Возможно, даже сильнее, чем раньше
Без него сложно делать нормальное ревью, задавать иишке правильное направление и объяснять, какой результат ты хочешь получить. А во многих проектах ещё есть строгие правила по архитектуре и оформлению кода.
Нейросеть не несёт ответственности за код, который она написала. Ответственность всё равно остаётся на разработчике.
Поэтому учимся писать чистый код, повышаем насмотренность, учимся делать грамотное ревью и очень внимательно проверяем работу агентов.
В моей закрытке я как раз планирую сделать серию видео про чистый код: разберём основные принципы, посмотрим примеры и применим всё на практике в реальном проекте.
Вот пруфы, что моя мастерская развивается
Ещё раз, в отличие от дорогих курсов, которые продают вам настройку claude code и хайповые ральф лупы, лютый вайбкодинг и прочее, я делаю материалы именно про разработку. Я хочу научить вас проектировать, продумывать архитектуру, определять чистый код, делать ревью и работать с продакшен проектами. Плюс полный доступ ко мне , я регулярно отвечаю на все вопросы и скоро начну проводить эфиры. Да, пока что только начало, дальше будут и практические задачи, евенты в сообществе, полноценная платформа, кстати в закрытке я детально показываю, как её разрабываю буквально с нуля.
И совсем скоро я начну серию материалов по инженерной базе: system design, микросервисы, преоктирование и реализация сложных доменов, материалы про аутентификацию и авторизацию, включая примеры того, как я реализую всё это на платформе, как я подключаю внешний identity provider, разрабатываю систему доступа к контенту и прочее. Планов много и это только начало, именно поэтому сейчас низкий прайс и скида в 20%. Когда в мастерской будет контента на уровне топовых курсов, то конечно цена будет выше, но всё ещё доступная подписка в десятки раз дешевле хайповых курсов. Всё это будет очень полезно и для улучшения скиллов и для поиска той же работы, потому что этот трек я тоже буду продвигать.
Независимо от вашего стэка материлы будут полезны каждому - sachkov.dev
Компании, которые ограничивают или запрещают использование ИИ в работе на дистанции проиграют. Во-первых всё равно все работники будут в скрытую юзать иишку и это никак не получится контролить.
Пока в Китае или США используют иишки на 100%, уже перестроили процессы и прямо сейчас все разработчики спокойно комбинируют иишку и свои навыки, у нас конечно же находятся компании, которые ничего лучше ЗАПРЕТА не придумали. Интересно почему у нас на самых разных уровнях хотят что-то запретить, а не внедрить или адаптировать.
Но не везде, если взять бигтехов, то они прекрасно понимают, что или они сейчас внедряют использование ИИ и обучают сотрудников, перестраивают процессы или дальше будет тяжеле. Весь бизнес стремится к повышению доходов, поэтому тенденции с ИИ уже нельзя повернуть назад и компании, которые что-то ограничивают когда-нибудь изменят направление.
Вам тоже нравится когда на очередном собесе вас спрашиют одни и те же вопросы по списку: а как работает async await 🤓, а как работает GC, а чё там по онбоксингу и боксингу, ну это отедльный вопрос и сегодня почти нет нормально формата собеседования, который может показать реальные навыки разраба, может что-то в будущем поменяется и подготовка к собесу это будет что-то интереснее чем зубрёжка одним и тех же вопросов
Именно эта вакансия меня натолкнула на мысль, что все обладатели текущие и будущие моего курса по .net получат доступ к закрытке навечно ♾
📱 Давно хотел сделать видео про SSR, SSG, CSR и как устроен современный фронтенд, ведь сегодня без него тяжко
Смотреть всем интересующимся fullstack разработкой. На канале уже доступно 🔥
Очень рекомендую всем бэкенд разрабам присматриваться к фронту, начинается эра Fullstack.
Кстати мой новый продукт обрёл новое название, можете заценить на лендосе - sachkov.dev
Теперь это Fullstack мастерская 🛠
В дополнение напишу, что основная идея закрытки - прокачка скиллов именно fullstack разработки. Сегодня разработка включает в себя огромное количество разных сторон: это и проектирование архитектуры, работа с кодом, создание инфраструктуры, организация проекта, работа с агентами, релизы и поддержка продакшен проектов.
Именно этим опытом я и хочу поделиться с вами, а не просто как я пишу промпты для агентов. Сегодня работа с ии это лишь очередной навык, но не основной и никогда им не станет.
Поэтому если вы хотите прокачиваться в разработке, подтянуть инженерную базу, изучить современные навыки, продвинуться по карьере или просто найти работу, то добро пожаловать. Я специально хочу отойти от дорогих курсов, чтобы больше людей могли получить пользу за небольшую цену.
Со временем этот продукт будет разрастаться, сформируется сообщество, появится платформа, практика для прокачки скиллов, различные евенты в сообществе, будет намного больше материала, цена соответственно будет расти.
Поэтому пока действует промокод на 20% и если у вас есть желание стоять у истоков создания этого продукта, то sachkov.dev
Зачем микросервисы, если у них одна база данных? 🖥
Под видео задали хороший вопрос:
«У тебя одна БД, но с разными схемами, полагаю, что для разных микросервисов. А какой смысл микросервисной архитектуры, если вся БД упадёт?»Правило
database per service в первую очередь означает, что каждый микросервис владеет своими данными. Например, сервис заказов не должен ходить напрямую в таблицы сервиса платежей. Он получает данные через API или события. Это даёт вам возможность менять схему платежей, не согласовывая каждую миграцию с остальными сервисами, что очень даже удобно. (дальше будет инфа, что этого можно добиться не только в микросервисах) ☺️
Но это правило не означает, что рядом с каждым микросервисом обязательно должен стоять отдельный контейнер с PostgreSQL 🙅♂️
Сначала разберёмся с терминами. PostgreSQL это СУБД. Один запущенный сервер PostgreSQL управляет кластером баз данных. Внутри этого кластера может быть несколько отдельных баз данных. Внутри каждой базе данных может быть несколько схем, а уже внутри схем лежат таблицы, индексы и другие объекты.
Получается такая вложенность:
PostgreSQL кластер → база данных → схема → таблицы
При подключении ваш бэкенд выбирает одну базу данных. Внутри неё оно может обращаться к разным схемам, если хватает прав. Поэтому отдельная база данных даёт более жёсткую логическую границу, чем отдельная схема, но сама PostgreSQL и её ресурсы у них общие.
Есть несколько вариантов, как можно построить архитектуру и каждый раз зависит от требований (как и всегда в общем) 🤔
1. Одна база данных, но отдельная схема и отдельный пользователь для каждого сервиса.
2. Несколько баз данных внутри одного PostgreSQL кластера.
3. Отдельный PostgreSQL кластер для конкретного сервиса.
4. Вообще другая СУБД, например Redis, MongoDB или ClickHouse, если сервису она подходит лучше.
Сначала всегда достаточно одного PostgreSQL с отдельными схемами и ролями. Это дешевле и проще обслуживать: один кластер, одни бэкапы, один мониторинг. При этом граница рабоыт с данными всё равно остаётся. Каждый сервис получает доступ только к своей схеме, именно так я чаще всего и делаю в своих проектах.
В модульном монолите можно сделать то же самое кстати. Например, модули Orders, Payments и Users живут в одном приложении, но у каждого своя схема, свои миграции и свои таблицы. Другие модули работают с его данными через публичный интерфейс модуля. Так границы не размазываются по одной общей схеме, а нужный модуль потом проще вынести в отдельный сервис.
Почему тогда не выдавать каждому микросервису отдельный PostgreSQL сразу? Потому что вместе с двадцатью микросервисами можно получить двадцать кластеров, которые нужно обновлять, мониторить, бэкапить и восстанавливать 🤯
Короче, один микросервис не равен одному экземпляру PostgreSQL. Сервис должен владеть своими данными, а физическую изоляцию добавляют там, где она действительно нужна: из-за нагрузки, безопасности и других требований.
Эту и другие темы я буду подробно разбирать в моей закрытке, показывая все это на практике во время разработки реальных проектов.📱 Зачем нужен серверный JavaScript, если у нас есть уже backend, написанный например на Go или C#?
Под последним шортсом задали хороший вопрос:
«А для чего разделять серверный JS с клиентским при существующем backend?»Здесь смешались два разных понятия: backend API и серверная часть frontend-приложения. Начнём с привычной архитектуры: frontend на React и backend API на ASP.NET Core или на Nest.js (любой бэкенд фреймфорк). Сборщик фронта (Vite, Webpack) готовит для браузера HTML, CSS и JavaScript. Браузер загружает эти файлы, запускает JavaScript и напрямую обращается к нашему api за данными. В такой архитектуре серверной части у frontend может вообще не быть. Теперь возьмём фреймворк для разработки фронтенда, например Next.js Один проект Next.js может содержать JavaScript для двух сред. Во время build Next.js готовит серверную и клиентскую части. Серверная останется в Node.js, а клиентская отправится пользователю и выполнится в браузере. Сама сборка при этом происходит заранее - локально или в CI, а не в браузере. Когда пользователь откроет страницу в браузере, путь может выглядеть так: 1. Браузер запрашивает страницу у Next.js. 2. Серверный код Next.js обращается к существующему бэенд api. 3. Бэкенд возвращает данные, а Next.js формирует из них HTML страницы. 4. Браузер получает HTML, а затем загружает клиентский JavaScript для кнопок, форм и другой интерактивности. То есть никто не предлагает написать второй backend и продублировать в нём всю бизнес-логику. Наш истинный бэкенд по-прежнему отвечает за пользователей, платежи, заказы и работу с базой данных. Серверная часть Next.js отвечает за конкретную страницу: получает нужные данные, подготавливает интерфейс и решает, какой код вообще нужно отправить в браузер. Иногда такой слой называют Backend for Frontend. Технически это тоже серверный код, но у него другая роль: не хранить основную бизнес- логику продукта, а обслуживать конкретный frontend. Зачем это может понадобиться? Чтобы сформировать HTML на сервере при SSR, поработать с cookies и сессией, собрать данные из нескольких запросов. Но это не обязательная архитектура. Если вам достаточно SPA, которое напрямую обращается к backend API, добавлять серверную часть frontend просто потому, что так умеет Next.js, не нужно. В шортсе я начал рассказал базу: почему браузер не запускает исходные TypeScript и TSX-файлы, где происходит build, как frontend- проект разделяется на серверную и клиенсткую части и почему браузер получает только публичный JavaScript, а не весь код проекта. В общем, backend API и серверный JavaScript внутри фронтенд проекта могут спокойно существовать вместе. Они не дублируют друг друга, если у каждого слоя есть своя понятная ответственность. Фронтенд это не просто, тренируйтесь
Первый практический урок в закрытке. Разработка платформы, часть первая
Создание проекта и установка первых скиллов. Начинаем с лендинга. Работа с Kimi K3
🔥 Я запускаю новый продукт - закрытый телеграм канал по подписке
🎯 Цель этого проекта следующая - делиться всем своим опытом разработки и создать сообщество разработчиков, которые хотят развиваться и получать новые востребованные навыки
Вместо того, чтобы делать дорогой курс, который может устареть, я решил создать пространство, где я смогу делиться актульным опытом, который я получаю каждый день. В начальных планах - показать полный цикл создания плафтормы для разработчиков, от проектирования до деплоя, попутно делясь гайдами на разные темы, которые я сам изучаю и применяю на практике начиная от архитектуры фронтенда (браузер, виды рендеринга SSR, SSG, CSR) и заканчивая разработкой бэкенд микросервисов.
Причём ваш стэк неважен. Большая часть кода и примеров будет разработана на TypeScript. Опыт разработанных проектов можно будет спокойно переносить на другой стэк: C#, Go, Java и тд. Тем более я буду делать упор на AI-first разработку, уделяя не мало времени текущим трендам и разработки с помощью агентов.
❗️ Всю подробную информацию о том, что будет в закрытке можно посмотреть здесь - sachkov.dev
Кстати говоря гайд, как я сделал этот лендинг уже лежит в закрытке. Как и двухчасовой гайд по поиску работы в IT и созданию резюме/легенды. Верно, в закрытке будут не только гайды по разработке, но и по продвижению в карьере, по поиску работы, по тому, как сегодня обходить фильтры и проходить собеседования.
В планах показать весь путь разработки платформы для этого проекта, объеденять участников, проводить хакатоны и совместно разрабатывать новые проекты 🐱
Сначала весь контент будет в телеграме, со временем я разработаю вместе с вами платформу, где мы все сможем прокачивать свои скиллы, благо у меня уже есть опыт создания подобного сервиса. Настало время поделиться с вами всеми моими знаниями, начиная с проектирования и заканчивая продакшеном и деплоем микросервисов.
Доступ по подписке, цена смешная для такого уровня контента, который будет в этом проекте.
❗️ДЛЯ ПЕРВЫХ ВСТУПИВШИХ ПРОМОКОД НА 20% СКИДКУ - INSIDE
Также буду регулярно здесь делиться о том, какой появляется контент в закрытке, часть буду публиковать в общий доступ 🎞
Наконец-то я смогу не ограничивать себя .NET и создавать намного больше полезных материалов по разным темам, которые отосятся в целом к Software Development.
➡️Следующий уровень разработки начинается здесь - sachkov.dev
🎥 Пока я готовлю для вас закрытку и записываю туда гайды, особо нет времени дропать сюда что-то интересное.
Но мне есть чем поделиться с вами и нет, мне никто за это не платил и это не реклама. Это личная рекомендация от всего сердца и я уверен, что она полезная. История такая. В прошлом - мой ученик с курса, в настоящем - теперь уже мой кент, который работает desvops'ом. Большой путь преодалел этот человек, от написания тудушек, монтажа моих уроков на курсе, помощи мне с проектом, работы в стартапе разрабом и всё это привело его к devops. Не спрашивайте как он туда попал, если шёл на курс по .net, вот так сложилось.
Появилось у него огромное желание делиться полезностями с работы и своими знаниями, которые он получает в этой нелёгкой сфере, работая в офисе и крутя вертя кластеры из 3000 виртуальных машин. Я от вас ничего не прошу, кроме подписки на его тг канал, где он будет делиться с вами драгоценными знаниями и своим путём - https://t.me/kat_v_prod
В отличие от меня, человек он рабочий, занятой, не инфоцыган и заряжен делиться с вами путём девпосера. Почему это может быть вам полезно? Ну во-первых сегодня навыки девпоса очень полезны разработчикам, все мы крутимся в одной сфере и во многих местах требуется уметь работать с кубером, ci/cd и подобными технологиями. Это отличная возможность улучшить свою квалификацию, расширить кругозор и расширять свою зону ответственности на работе. Кто знает, может вам девопс так сильно понравится, что вы захотите мигрировать и стать тем самым гагачадом, на котором держиться вся инфраструктура вашего проекта. Короче подписывайтесь, набирайтесь знаний, разработка состоит не только из кода.
Катим в прод. Подписаться
Кстати в этом канале я делюсь большей инфой про моих котов, будущую закрытку и мой сетапчик для работы, там больше ирл контента короче. Кому интересно, подписывайтесь - https://t.me/sachkovgeek
Repost from Кирилл Сачков
В общем я тут такое придумал, расскажу пока тут и пойду готовить всё к запуску закрытки. Короче думал сейчас быстро в платформу внедрить функционал подписки и отдельно сделать много фич для закрытого канала и сделать систему подписки ежемесячной. Планировал публиковать гайды по агентам, делиться опытом, на праткике показывать как делаю проект. Но понял, что переход внедрение всего этого функционала в платформу займет много времени и мне пришла гениальая идея.
Запустить закрытый канал только в телеге, и начать там с нуля показывать, как я разрабатываю фулл отдельное и очень продуманное решение для закрытого сообщества. По сути новый веб сервис, но только предназначенный конкретно под формат инженерного клуба, где можно смотреть материалы, прокачиваться как разработчик, взаимодействовать с сообществом, управлять подпиской и тд. Причём с разбором всех решений, архитектуры и всех подробностей, что будет очень полезно и тем, кто хочет попрактиковаться в разрабтке, так и для тех, кто хочет научиться работать с агентами.
То есть я буду показывать как я на практике работаю со всеми инструментами и делать интересные материалы с упором на ai-first и работу с агентами применяя весь инженерный опыт + делать отдельные материалы по архитектуре и разным инструментам. Причём стэк я буду выбирать исходя из задач, а не мой привычный .net/c#
Короче я в этом направлении буду развиваться и не хочу это смешивать с полноценными курсами по .net например, его конечно я буду поддерживать и туда выкладывать материалы которые относятся к .net, но я не хочу смешивать платформу и закрытый канал.
И получается мы вместе в закрытом канале создами полный новый продукт, где будет огромное количество функционала и вместе его будем разивать, надо будет продумать систему, где каждый участник сможет делать pr для платформы, как будто это опен сорс. Короче идей море, думаю скоро уже все запустить, чтобы на практике всё показывать и рассказывать. Ценник сначала будет не высокий, хочу рассчитывать на массовость, посмотрим, что получится, думаю в пределах 3к рублей в месяц пока что, всё таки это будут качественные материалы для изучения современных практик и тем, если вы разраб на любом веб стэке. А дальше с развитием это может получится целый продукт для прокачки инженеров. Кстати я туда планирую выкладывать гайды по поиску работы ещё, нельзя про карьеру забывать, это база.
🐱 Как и обещал в видео делюсь первоисточником, который послужил основой для моего пайплайна - https://github.com/mattpocock/skills
Я его доработал под себя и использую каждый день. Конечно есть миллион аналогов, можно и свой пайплайн собрать, но мне здесь мне нравится точность формулировок, терминов и его простота. Внедряйте в свой harness и контролируйте работу агентов, чтобы им можно было доверить код 🖥
Но как вы будете этим всем пользоваться, если у вас нет подписки на иишку? Если вы вдргу не знаете, как оплатить подписки на иностранные сервисы, то как по мне, самый удобный способ - это воспользоваться банковской карточкой 😮 Сегодня с этим проблемы, поэтому предлагаю вам воспользоваться сервисом выпуска виртуальных карт - Zarub
Не нужно искать аккаунты с подписками, давать доступ к аккаунту продавцам, ждать ответа и испытывать другие неудобства, когда нет своей карты. В последние месяцы только так и оплачиваю всё. Пользуемся. Не забываем использовать промокод sachkov, который поможет вам сэкономить при открытии карты.
📱 На канале вышло новое видео
В видео рассказал о своём рабочем пайплайне с агентами. Я думаю оно будет вам очень полезным.
Также сейчас нахожусь в раздумьях. Я каждый день работаю с разными инструментами, изучаю лучшие практики работы с агентами, продакшен архитектуру, пробую реализовывать разные инструменты, делаю платформу, оптимизирую работу с агентами и своими задачами, изучаю как делать эффективные резюме и успешно проходить собесы, короче прокачиваюсь каждый день, как инженер, контейнтмейкер и айтишник. Смотрю англоязычные каналы, конференции и тд, набираюсь знаниями (вот что происходит, когда нет работы по найму)
И вот столько есть материала, которым хочется поделиться, но никак не могу его вставить в курс по .net, он там не к месту. А на курс по ai-first разработке ещё не набралось достаточного материала, чтобы сделать его качественным.
Вот пришла идея, может сделать закрытый канал / подписку на плафторму / сообщество, где я буду выкладывать все материалы, гайды, эфиры проводить, делиться всем своим инженерным опытом, как работать с агентами, все бест практисы про иишки, которые я изучил за всё время, архитектурные практики, кейсы с платформы, разбор инфраструктуры, просто видео, как я реализую разные фичи и инструменты, как быть востребованным на рынке: гайды по резюме, поиску работы? Короче идея сделать закрытку, где вы сможете иметь доступ ко мне и моим всем знаниям и опыту. И кто знает, может и не нужно будет делать курсы, весь и так всё будет в закрытке.
Я думаю это было бы классно попробовать сосредоточиться именно на этом, а не на курсах. Так большее количество людей смогут за намного меньший прайс получить развитие. Нужно ваше мнение, если вас это реально может заинтересовть, то поставьте реакцию, а я пошёл коллекционировать свои знания и умения 💻
Рынок труда меняется. Пока что не у нас, но мы все знаем, что если что-то происходит на западе, то и у нас со временем это тоже произойдет.
Прочитал несколько свежих исследований о том, как компании внедряют AI и что происходит с наймом.
Около 20% компаний встраивают AI в бизнес-процессы и это приводит их к росту. У этих же компаний штат вырос примерно на 10% за два года, а количество сотрудников начального уровня на 12%. При этом в остальных западных компаних нет резкого сокращения из-за ИИ. ссылка ссылка ссылка
Мы видим, что вся та паника и хайп, которые разгонялись по поводу сокращений из-за ИИ, по сути оказались просто вбросами. Но всё таки что-то изменилось. AI меняет то, какие компании растут и какие специалисты им нужны.
Быстрее растут те компании, которые перестраивает процессы, интегрирует AI в продукт и умеет выстраивать вокруг него нормальную систему.
На уровне специалистов будет то же самое. Знать одно узкое направление или просто уметь писать промпты уже недостаточно. Будут нужны люди, которые понимают продукт, бизнес-процессы, архитектуру, данные, интеграции и умеют контролировать работу агентов и самое важное - имеют инженерную базу. Если вы изучаете программирование изолировано от многих других процессов, то это ошибка. Если вы изучаете например только какой-нибдуь бэкенд фреймворк и не понимаете, как система работает вцелом, начиная от бизнеса, заказчика и заканчивая продакшеном, то это ошибка.
Самое сложное для компаний это нормально встроить AI в production и получить какой-то результат от бизнеса, у многих с этим трудности, а для решения этих трудностей нужны будут специалисты. Если говорить про разработку, то уже скоро мы увидим, что очень важным навыком для устройства на работу будет умение работать с ai инструментами.
