uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

WebCraft - ремесло веб разработки

WebCraft - ремесло веб разработки

Відкрити в Telegram

Интересуешься php , js , css , html , Laravel , Vue ? Этот канал для тебя Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/web_craft

Показати більше
4 981
Підписники
-124 години
-117 днів
-4130 днів
Архів дописів
МТС Линк запустил два новых сервиса — Почту и Календарь Теперь офисные решения доступны в одном окне: можно общаться, проводи
+1
МТС Линк запустил два новых сервиса — Почту и Календарь Теперь офисные решения доступны в одном окне: можно общаться, проводить встречи, работать с задачами и документами, хранить файлы и планировать рабочий день. 💻 Почта — всё необходимое для привычной работы с письмами: поиск, папки, цепочки и отложенная отправка. Для защиты переписки используются современные протоколы безопасности и шифрование данных.  📅 Календарь помогает планировать встречи, бронировать переговорные и сразу видеть занятость времени. А онлайн-встречу можно привязать к событию в календаре одним кликом. И главное — все это доступно в отдельных вкладках единого приложения МТС Линк, поэтому переход между сервисами остаётся максимально бесшовным. Больше рабочих инструментов в одном пространстве — меньше переключений ✨ Подать заявку #реклама 16+ mts-link.ru О рекламодателе

🔑 Пусть менеджер паролей знает правила вашего сайта Менеджер паролей придумал пароль, а сайт его отклонил: нет цифры или спе
🔑 Пусть менеджер паролей знает правила вашего сайта Менеджер паролей придумал пароль, а сайт его отклонил: нет цифры или спецсимвола. Браузер просто не знает серверных правил. В Laravel правило Password умеет выдавать строку для HTML-атрибута passwordrules. По ней менеджер паролей генерирует пароль, который пройдёт валидацию.
> use Illuminate\Validation\Rules\Password;

> Password::min(12)->max(64)->mixedCase()->numbers()->symbols()->toPasswordRulesString();

= "minlength: 12; maxlength: 64; required: lower; required: upper; required: digit; required: special;"
Учтите, что passwordrules не входит в стандарт HTML. Его добавила Apple в Safari, понимают его и некоторые менеджеры паролей вроде 1Password. Остальные атрибут игнорируют, так что вреда нет. Строку удобно брать из Password::defaults() прямо в Blade, и правила в форме не разойдутся с сервером. 👍 - если было полезно 👉 @web_craft

Пятница, 17:30. Макет почти готов Но один сценарий всё ещё вызывает вопросы. Обсудить сейчас или вернуться в понедельник? Реш
Пятница, 17:30. Макет почти готов Но один сценарий всё ещё вызывает вопросы. Обсудить сейчас или вернуться в понедельник? Решайте вместе с командой hh.ru в «Охэхэнных новостях». Подписаться #реклама О рекламодателе

🚀 Страница 4000: 127 мс против 3 мс Обычная пагинация через смещение (LIMIT 10000,20) медленнеет с каждой страницей. База вс
🚀 Страница 4000: 127 мс против 3 мс Обычная пагинация через смещение (LIMIT 10000,20) медленнеет с каждой страницей. База всё равно читает первые 10 000 строк, перебирает их и выбрасывает. Чем дальше страница, тем больше пустой работы. Курсорная пагинация обходится без смещения. Приложение запоминает значение колонки сортировки на границе страницы, например last_message_at. Следующую страницу оно берёт через WHERE last_message_at <= ? и LIMIT 0,20. Если колонка в индексе, скорость почти не зависит от глубины. В одном тесте на MySQL 8.4 и 300 000 строк страница 4000 открывалась за 127 мс через смещение и за 3 мс через курсор. В Doctrine ORM 3.7 для этого появляется класс CursorPaginator. Подвох в том, что прыгнуть сразу на страницу 57 нельзя. Доступны только первая, следующая и последняя. Если по вашим длинным спискам ходят краулеры или API-клиенты, самое время посмотреть, как выглядит переход в коде. 👍 - если было полезно 👉 @web_craft

🔒 readonly в PHP защищает свойство, но не объект внутри readonly запрещает присвоить свойству новое значение. Но изменяемый
🔒 readonly в PHP защищает свойство, но не объект внутри readonly запрещает присвоить свойству новое значение. Но изменяемый объект в таком свойстве по-прежнему можно менять:
final readonly class DeliveryWindow
{
    public function __construct(
        public DateTime $startsAt,
    ) {}
}

$window = new DeliveryWindow(new DateTime('2026-08-01 09:00:00'));

$window->startsAt->modify('+1 day');

echo $window->startsAt->format('Y-m-d');
// 2026-08-02
Свойство никто не переприсваивал, и PHP не возражает. Но дата доставки уже другая: readonly не действует вглубь. Поэтому внутри стоит хранить только неизменяемые значения. Например, DateTimeImmutable вместо DateTime: его modify() возвращает новый объект. С массивами та же ловушка: вызывающий код получит копию массива, но объекты в ней общие с оригиналом. В статье ещё разобрано, почему clone тут не помогает. 👍 - если было полезно 👉 @web_craft

🤖Podlodka Backend Crew: AI в бэкенд-задачах Демо с AI чаще всего выглядят одинаково: агент за десять минут пишет сервис с ну
+4
🤖Podlodka Backend Crew: AI в бэкенд-задачах Демо с AI чаще всего выглядят одинаково: агент за десять минут пишет сервис с нуля. Вот только в работе бэкендера всё сложнее: легаси, рискованные миграции, неработающие тесты и ревью, которое становится бутылочным горлышком. 🗓 С 26 по 30 октября в сезоне Podlodka Backend Crew «AI в бэкенд-задачах» участники: • Научатся передавать агенту инженерные стандарты и правила, чтобы он писал так, как нужно, а не как получится • Соберут ревью, где несколько моделей независимо проверяют изменения, а финальное решение остаётся за человеком • Посмотрят, куда переезжает сложность миграции легаси, когда код пишет агент • Выяснят, где ломается мечта отдать миграцию агенту целиком • Разберут, какие антипаттерны тестов агенты уже успели перенять от разработчиков. Формат — пять дней живых Zoom-сессий утром и вечером, закрытое сообщество в Telegram и общение со спикерами. Будет много интерактива и практики. Базовый ликбез оставят за бортом — этот сезон для тех, кто уже пробует AI в реальных проектах. Присоединяйтесь с 26 октября! 🔗 Билеты и программа: https://podlodka.io/becrew

✨ Symfony 8.2: контроллер, который не запустится дважды одновременно Некоторые действия нельзя запускать параллельно: импорт
✨ Symfony 8.2: контроллер, который не запустится дважды одновременно Некоторые действия нельзя запускать параллельно: импорт каталога, оплату заказа, продажу последних билетов. Раньше блокировку через компонент Lock приходилось брать и снимать вручную прямо в контроллере. В Symfony 8.2 хватит атрибута #[Lock]. Пока запрос выполняется, второй с тем же ключом получит 409 Conflict, а с blocking: true подождёт. Ключ можно собрать из параметра маршрута, тогда у каждой конференции своя блокировка:
#[Route('/conference/{conference}/tickets', methods: 'POST')]
#[Lock('ticket-sale-{conference}', blocking: true, ttl: 10)]
public function buyTicket(Conference $conference): Response { /* ... */ }
Подвох в TTL: по умолчанию блокировка живёт 30 секунд и сама не продлевается. Если контроллер работает дольше, её захватит другой запрос. Продлить её или отпустить раньше можно, если принять LockInterface аргументом контроллера. 👍 - если было полезно 👉 @web_craft

🧩 Исключение, которое само объясняет, что сломалось Обычно ошибку бизнес-логики бросают как InvalidArgumentException с текст
🧩 Исключение, которое само объясняет, что сломалось Обычно ошибку бизнес-логики бросают как InvalidArgumentException с текстом. Это работает, пока не понадобится поймать именно её. Тот же класс летит ещё из десятка мест. В Spatie, где пишут хелпдеск There There на Laravel, заводят свой класс на каждую доменную ошибку. На каждую причину в нём есть статический метод. Код читается как фраза: throw CouldNotDeleteMessage::onlyNotesCanBeDeleted($message) Метод принимает типизированный $message. Поэтому текст ошибки без id и типа сообщения просто не собрать. Одна тонкость: такие классы помечают интерфейсом ShouldntReport, и они не попадают в трекер ошибок. Это ожидаемые ситуации от действий пользователя, а не баги, так что трекер не засоряется. Выглядит как оверинжиниринг ровно до первого раза, когда нужно поймать конкретную ошибку. 👍 - если было полезно 👉 @web_craft

Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #р
Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #реклама 16+ rt-solar.ru О рекламодателе

🚀 TypeScript-типы, которые Laravel пишет сам Если бэкенд на Laravel, а фронтенд на TypeScript, каждый ответ сервера описан д
🚀 TypeScript-типы, которые Laravel пишет сам Если бэкенд на Laravel, а фронтенд на TypeScript, каждый ответ сервера описан дважды. Переименовали поле в PHP, а фронт об этом не знает. В Spatie, авторах пакетов ниже, такие типы руками не пишут. Ответ описывают PHP-классом из пакета spatie/laravel-data с атрибутом #[TypeScript]. Пакет spatie/laravel-typescript-transformer собирает эти классы в файл generated.d.ts: ?string становится string | null, у enum появляется свой тип. Теперь после переименования свойства в PHP компилятор TypeScript подсвечивает каждое место на фронте, где оно используется. Сам по себе файл не обновляется, его пишет php artisan typescript:transform. В версии 2.6 у команды нет --watch, поэтому Spatie запускают её из своего небольшого плагина для Vite. В v3 режим --watch уже встроен. 👍 - если было полезно 👉 @web_craft

Квартира с роскошным видом на Ботанический сад от11,7млн Закрытый двор. Своя школа и д/сад. Удобный выезд на ТТК. Дом сдан. У
Квартира с роскошным видом на Ботанический сад от11,7млн Закрытый двор. Своя школа и д/сад. Удобный выезд на ТТК. Дом сдан. Узнать больше Проектная декларация на сайте https://наш.дом.рф/. #реклама mrqz.me О рекламодателе

АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны к
АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков: • Практические курсы и задания • Книги и статьи известных авторов • Полезные инструменты и ресурсы • IT-новости и инсайды Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др. ⌨️ подписаться

🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место р
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+GY-3aS-FN5c0Yjhi

ИИ-пилоты не дают эффекта? Разбираем ошибки CIO ИИ-пилоты множатся, а результата нет? Бюджет уходит, бизнес ждёт эффекта, а в
ИИ-пилоты не дают эффекта? Разбираем ошибки CIO ИИ-пилоты множатся, а результата нет? Бюджет уходит, бизнес ждёт эффекта, а вы не понимаете, где ИИ действительно работает, а где — дорогой эксперимент? Присоединяйтесь к открытому уроку и узнайте, как CIO выстраивает ИИ-стратегию компании. 📅 19 октября в 19:00. Сергей Фегон разберёт: - Как ИИ меняет роль CIO и требования бизнеса к IT-руководителю. - Где ИИ даёт бизнес-эффект, а где остаётся экспериментом. - Как связать ИИ-инициативы с IT-стратегией и измеримыми результатами. - Что учитывать при внедрении: данные, архитектура, безопасность, стоимость, интеграция. Вы научитесь выбирать приоритетные сценарии ИИ, оценивать их по эффекту, стоимости и рискам и переходить от пилотов к промышленному использованию. ✅ Запишитесь сейчас и наведите порядок в ИИ-инициативах! Узнать больше #реклама 16+ otus.ru О рекламодателе

Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работ
Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работа Выбирай свой Honor по привлекательной цене! Купить #реклама market.yandex.ru О рекламодателе

Бизнес-логика в микросервисах. Открытый урок 22 октября Разработка в микросервисной архитектуре — это не только про разбиение
Бизнес-логика в микросервисах. Открытый урок 22 октября Разработка в микросервисной архитектуре — это не только про разбиение на сервисы, но и про грамотное распределение логики. На этом уроке мы поговорим о подходах к проектированию бизнес-логики в распределённых системах. Что будет на уроке 22 октября в 19:00 мск: — Принципы проектирования бизнес-логики в микросервисах — Паттерны: Shared Kernel, API Composition, Saga — Где должна жить логика — в сервисе, API-шлюзе или общем слое? — Ошибки при проектировании и как их избежать — Кейсы из реальной практики Для backend- и fullstack-разработчиков, архитекторов, системных аналитиков. Регистрируйтесь! Зарегистрироваться #реклама 16+ otus.ru О рекламодателе

Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работ
Встречай смартфон Honor — с выгодой для себя! ✅ Стильный дизайн ✅ Заряд надолго ✅ Качественные фото ✅ Быстрая и плавная работа Выбирай свой Honor по привлекательной цене! Купить

C# есть — не хватает целостности веб-разработки? Курс «C# ASP.NET Core-разработчик» — это практическое обучение созданию совр
C# есть — не хватает целостности веб-разработки? Курс «C# ASP.NET Core-разработчик» — это практическое обучение созданию современных web-приложений и API. Вы разберётесь, как проектировать backend и frontend, строить высоконагруженные сервисы, работать с базами данных, безопасностью и инфраструктурой. В программе — ASP.NET Core, ReactJS, GraphQL, gRPC, SignalR, Docker, Kubernetes и CI/CD. Обучение построено вокруг командной работы и Scrum-подхода. Вы не просто изучаете технологии, а проходите полный цикл разработки: от архитектуры и бизнес-логики до деплоя и масштабирования. Преподаватели — практикующие разработчики, программа регулярно обновляется под реальные требования рынка. Старт курса уже 26 сентября. Узнать больше

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