Как стать автором
Обновить
365.75

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

От Lerna до ModuleFederation

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

Мониторинг Web Vitals через Яндекс.Метрику: пошаговое руководство

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

Web Vitals — набор метрик от Google, которые показывают, насколько быстро и стабильно загружается ваш сайт, как плавно отображается контент и насколько оперативно интерфейс реагирует на действия пользователя.

В этой статье вы найдёте пошаговую инструкцию по интеграции Web Vitals в проект, отправке метрик в Яндекс.Метрику и настройке отчётов для оперативного мониторинга. Благодаря этому вы сможете своевременно выявлять и устранять «узкие места» в работе приложения ещё до появления жалоб пользователей.

Читать далее

История одного компонента

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

Введение в любой фреймвок начинается с написания одного простого компонента. Чаще всего этим компонентом будет "счетчик нажатий". Это своеобразный "hello world" в мире фронтенд разработки. Именно поэтому я и возьму его за основу данного материала.

Читать далее

Автоматический подбор браузером контрастного цвета в CSS

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

Вам когда-нибудь хотелось, чтобы можно было написать простой CSS для объявления цвета, после чего браузер сам бы определял, чёрный или белый должен сочетаться с этим цветом? Теперь это возможно благодаря contrast-color(). В статье мы объясним, как это работает.

Представьте, что вы разрабатываете веб-сайт или веб-приложение, и в дизайне требуется куча кнопок с разными цветами фона. Для обработки цвета фона можно создать переменную --button-color, а затем присваивать ей разные значения.

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

Читать далее

$mol: 10 лет спустя

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

Здравствуйте, меня зовут Дмитрий Карловский и я... всю жизнь занимаюсь открытием исходников. Позвольте немного рассказать о ней. Кого-то эта история вдохновит, кого-то наоборот, но надеюсь никого не оставит равнодушным. Рид будет лонгим. Уж простите, но из реквиема по мечте нот не выкинешь.

Сесть и прочитать

Go-микросервисы: Стандартизация архитектуры с Clean Architecture и DDD

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

Go-разработчики часто сталкиваются с парадоксом: изначально простой и понятный проект со временем превращается в сложный для поддержки монолит.

✔️ Бизнес-логика оказывается размазана между слоями?

✔️ Замена базы данных требует переписывания половины кода?

✔️ Новым разработчикам требуется недели, чтобы разобраться в проекте?

В этой статье мы разбираем практическое применение DDD и Clean Architecture в Go. Обсуждаем возможный стандарт структуры микросервиса. Оптимизируем существующие.

🔥 Для разработчиков, которые хотят создавать проекты, остающиеся поддерживаемыми даже через годы развития.

Читать далее

React Labs: View Transitions, Activity и другие обновления

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



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


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


  • View Transitions (переходы между экранами)
  • Activity

А также делимся обновлениями по возможностям, над которыми продолжаем работать:


  • Треки производительности React (React performance tracks)
  • Расширение редактора кода для компилятора
  • Автоматические зависимости эффектов
  • Ссылки на фрагменты (fragment refs)
  • Конкурентные хранилища данных (concurrent stores)

Пример использования View Transitions и Activity в клоне AirBnB
Читать дальше →

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