Обновить
362.78

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Контейнер с нуля

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров4K

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

Читать далее

«Когда ты senior, а ощущение — будто тебя билдят на проде без тестов»: как разработчики выгорают и что с этим делать

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.2K

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

Ты вроде уже не джун. И не просто мидл, который «хочет роста». Ты тот самый человек, у которого всё под контролем: ты ведёшь команду, пишешь сложный код, иногда — даже с удовольствием. У тебя есть архитектура, ответственность и график в Google Calendar, в котором нет дыр. И всё же...

Иногда ты ловишь себя на мысли: «я в команде, но один». День проходит как в дымке: митинг, потом ещё митинг, потом задача «срочно», потом «а можешь посмотреть PR» — а потом вечер, и ты даже не можешь вспомнить, за что зацепиться, что вообще было твоим в этом дне. Кажется, ты стал просто маршрутизатором задач и эмоций.

Парадокс в том, что выгорают чаще всего не те, кто не справляется. А те, кто справляется всегда. Кто привычно берёт на себя, затыкает дыры, поддерживает джунов, шутит в чатах, чтобы всем было полегче, и остаётся онлайн ещё на час «просто чтобы доделать». Мы выгораем не от нагрузки. Мы выгораем от отсутствия смысла и невозможности выключиться.

Ты начинаешь понимать, что просто отпуск — не лечит. Он как анальгин на трещину: на пару дней отпустит, но потом снова вернётся. Список дел не сокращается, командная динамика не налаживается сама, конфликты не исчезают от того, что ты «просто делаешь свою работу». И вдруг ты ловишь себя на циничной мысли: «А может, это просто теперь нормально?»

Нет. Это не нормально. И точно не неизбежно.

В какой-то момент мы с ребятами, такими же, как ты, решили: а что, если всё отключить? Slack, ноутбуки, KPI, даже «как дела на проекте». И поехать в лес. Без слайдов, без ролей, без кофе-брейков на 15 минут. Просто пожить 2,5 дня среди сосен, костров и людей, которым не нужно объяснять, что такое архитектурный долг, но с которыми можно говорить не про это.

Читать далее

Как работает Node.js

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров18K



После прочтения этой статьи вы хорошо поймете следующее:


  • как работает цикл событий (event loop) в Node.js, включая все его фазы
  • как Node.js выполняет JavaScript в одном потоке (single thread)
  • как Node.js использует библиотеку libuv и внутренние API для обработки асинхронных операций
  • почему знание работы цикла событий так важно для написания эффективного серверного кода

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


Но почему в Node.js все устроено сложнее? Зачем столько фаз, которые так непросто понять?

Читать дальше →

Scalar вместо Swagger UI. Надо ли оно нам?

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров9K

С выходом .NET 9 пакет Swashbuckle.AspNetCore выпилили из шаблона Web API. Это означает, что при создании нового приложения ASP.NET Core Web API у нас больше нет привычного зеленого пользовательского интерфейса Swagger для тестирования endpoint-ов. В статье — краткий разбор, почему это произошло, и обзор альтернативы Scalar.

Хочу разобраться

Pocupochki: когда лень писать список покупок, но есть 2 часа и доступ к Gemini

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров7.2K

Рассказываю, как с помощью Google Stitch за 30 секунд получил готовый дизайн приложения, а потом с Gemini за пару часов превратил его в работающий сервис с голосовым вводом.

Посмотреть

Как я открыл WebSocket для Сомников из Чёрного Зеркала, а они начали водить хороводы

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров10K

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

Читать далее

Метаклассы Python. Подробное руководство

Уровень сложностиСложный
Время на прочтение24 мин
Количество просмотров8.8K

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

Данная статья скорее нацелена на начинающих авторов библиотек или любопытных читателей, которые просто хотят узнать что-то новое о Python.

Читать далее

Автоматический HTTPS для ленивых: ACME + Angie один раз и навсегда

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров11K

Приветствую, дорогой читатель!

С момента появления в нашем любимом веб-сервере Angie замечательной функции ACME-челленджа через DNS прошло уже достаточно времени, чтобы оценить все преимущества этого решения. Эта поистине революционная фича подарила нам долгожданную возможность получать wildcard‑сертификаты буквально в несколько кликов.

Однако, как это часто бывает с новыми технологиями, до сих пор у многих пользователей, особенно только начинающих свое знакомство с Angie, возникают вполне закономерные вопросы вроде: «Как правильно это настроить?» или «Как это вообще работает под капотом?». Именно для таких случаев, дорогие друзья, и была задумана эта подробная статья — максимально простыми и понятными словами описать весь процесс настройки от начала и до конца.

Читать далее

Не пытайтесь угадать мой язык

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров16K

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

IP сообщает, откуда пришёл запрос, и на этом всё. Он не сообщает, какой язык нужен пользователю, на каком языке он говорит и какой язык понимает. Подобная система постоянно ломается — VPN, путешествия, эмиграция, страны с несколькими официальными языками. Это не умное, а раздражающее решение.

Читать далее

Как не слить бюджет в CPA-сетях? Интеграция с ADMITAD через Postback — формируем отчет для сверки

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров609

Всем привет! Я Роман, тимлид e-commerce агентства KISLOROD. 

Любой бизнес в сети зависит от привлечения трафика и один из важнейших каналов — это CPA-сети. Однако при работе с любыми каналами важно правильно оценивать качество посетителей, поскольку иначе весь бюджет просто будет слит впустую.

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

Читать далее

Как использовать любой CSS-фреймворк в вашем проекте — Часть 5

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.9K

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

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

Читать далее

Эволюция программирования: как парадигмы украли нашу свободу

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров10K

Представьте: вы — инженер-программист из 60-х. Ваш код — это дикие прерии, где goto прыгает через функции как ковбой через барную стойку, а память — ваше личное ранчо. Вас внезапно переносят в 2023 год. Вас окружают фразы вроде «SOLID», «иммутабельность», «реактивные потоки». Вы пытаетесь написать пару строк на Python, но слышите: «Стоп. Мутировать переменные? В 2023-то? Это же грех!».

Что случилось с нашей свободой?

За последние 70 лет программирование из искусства постепенно превращалось в ремесло со своими жёсткими требованиями и правилами. Мы больше не взламываем реальность — мы строим мосты по ГОСТу.

Читать далее

n8n – всё, что нужно знать о сервисе

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров151K

Привет! Если вы ищете способ автоматизировать рутину, интегрировать любимые сервисы и работать с ИИ без сложной настройки — вам в особенности подойдёт n8n.

n8n.io — платформа для автоматизации рабочих процессов (workflow automation) с открытым исходным кодом. Платформа. позволяет не зная программирования и, не написав ни одной строчки кода, создавать различные инструменты для вашей работы.

В неё встроено более 400 готовых узлов (nodes) для популярных сервисов и множество AI агентов, поддержка RAG.

Ранее мы уже разбирали эту платформу в нашей предыдущей статье и, прочитав её, вы уже сможете самостоятельно развернуть ТГ чат-бота с ChatGPT.

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

Читать далее

Ближайшие события

Flutter 3.32 — Что нового во Flutter?

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров5.1K

Добро пожаловать во Flutter 3.32! Этот релиз наполнен функциями, призванными ускорить вашу разработку и улучшить ваши приложения. Приготовьтесь к горячей перезагрузке (hot reload) для веба, потрясающим "сквирклам" (squircles) в стиле Cupertino для нативной точности и мощным новым интеграциям с искусственным интеллектом через Firebase. С 1024 коммитами от 156 уникальных участников, включая 39 новичков, Flutter 3.32 является свидетельством невероятной работы нашего сообщества. Давайте посмотрим, что нового!

Читать далее

Как я нашёл квартиру за четверть стоимости из-за бага на сайте застройщика ПИК:

Время на прочтение2 мин
Количество просмотров69K

Представьте: вы заходите на сайт застройщика (ГК ПИК), выбираете квартиру, а вместо стандартных 9 миллионов видите ценник в 2 миллиона. Сначала кажется, что это опечатка, взлом, шутка или какой-то маркетинговый трюк. Но когда система позволяет добавить лот в корзину, заполнить анкету и даже получить подтверждение брони — начинаешь верить в чудо. Именно так я наткнулся на квартиру, цена которой оказалась в четрые раза ниже рыночной возможно из-за технической ошибки. В этом кейсе разберём, как возникают такие баги, можно ли требовать исполнения договора и что делать, если вы оказались на месте застройщика или покупателя.

Читать далее

Obsidian: исчерпывающее руководство по Templater

Уровень сложностиСредний
Время на прочтение38 мин
Количество просмотров21K

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

Читать далее

Как ошибки превратились в рабочие процессы: 6 факапов, которые изменили нашу работу

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

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

Читать далее

От Lerna до ModuleFederation

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.4K

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

Рассказ разделён на две части. В первой рассмотрим путь проекта и проблемы, с которыми сталкивались, а во второй разберём, как мы решали часть этих проблем.

Читать далее

PyCharm. Настройка и взаимодействие

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров11K

Привет хабр! В этой статье хочу рассказать, как сделать PyCharm удобнее и покажу пример настройки некоторых вспомогательных инструментов, встроенных в IDE.

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

Дисклеймер: В этой статье будет ряд изображений.

Читать далее

Ускорение сайта или гайд по оптимизации скорости загрузки

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.3K

Скорость загрузки страниц — один из ключевых факторов, влияющих на успех сайта в интернете. Она влияет на пользовательский опыт, конверсию и SEO. Google учло это уже в 2010 году, сделав скорость загрузки фактором ранжирования. В 2018 году метрики были расширены, а в 2020 — дополнены новыми обновлениями.

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

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

Читать далее

Вклад авторов