Обновить
355.68

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

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

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

PEP-734: Субинтерпретаторы в Python 3.14

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

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом будет про: новые питоновские API для ускорение и паралеллизации ваших програм, про управление памятью, про дублирование данных. Ну и много C кода!

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

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

Frontend и OpenAPI: генерация клиента, мокирование API и данных с помощью MSW

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

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

Читать далее

Невидимый архитектор — тот, кто всем мешает, но всех спасает

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

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

Читать далее

Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом

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

Привет! Я Незар, фронтенд-разработчик Т-Банка в одном из продуктов Т-Бизнеса. Наша команда использует Angular, и мы следим за всеми изменениями, которые с ним происходят.

В статье разберу, как Angular эволюционировал от Zone.js к Zoneless-приложениям с современным реактивным подходом Signal API и почему это стало ключевым шагом для повышения производительности и упрощения реактивного программирования. 

На примерах и замерах производительности посмотрим, как переход к Zoneless-подходу с Signal API позволяет сократить избыточные перерисовки, ускорить отклик приложения и сделать код значительно чище и предсказуемее. Сделаем Angular-приложения быстрее и проще, добро пожаловать под кат!

Читать далее

Puter.js: бесплатный бэкенд для сайтов, приложений и игр

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

В 2024 году после трёх лет разработки вышла первая версия Puter OS — «операционной системы для веба». Эта опенсорсная платформа по замыслу напоминает CasaOS, которую мы недавно рассматривали, но есть ряд отличий, и она гораздо интереснее.

Puter OS более ориентирована на разработчиков, предоставляя бэкенд, файловое хранилище, облачные вычисления и доступ к ИИ (GPT-4o, o1, o3, o4, Claude 3.7 Sonnet, Llama, Amazon Polly, and Dall-E) совершенно бесплатно для сторонних приложений и сайтов, если добавить туда библиотеку puter.js.

Конечным пользователям Puter OS предлагает единый интерфейс «операционной системы» с десятками тысяч веб-приложений на виртуальном «рабочем столе» (демо, КДПВ).

Читать далее

Как мы засунули Git в браузер (и чего нам это стоило)

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

Привет, Хабр! Меня зовут Паша, я разработчик Gramax — open source-платформы для управления технической документацией в подходе Docs as Code.

В этой статья я расскажу, как и для чего мы интегрировали Git в браузер, какие технологии использовали и какие технические решения приняли. А если подробнее: почему отказались от IsomorphicGit в пользу libgit2, каким образом мы собрали его под WebAssembly, как он работает с файлами и зачем вообще все это было нужно.

Читать далее

«Почему компилятор Rust такой медленный?»

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

Я потратил месяц на создание веб-сайта в Docker и теперь готов поделиться ужасными историями.

У меня есть проблема.

Мой веб-сайт (на котором была опубликована эта статья) в основном обслуживается одним двоичным файлом Rust. Он стал слишком длинным. Каждый раз, когда мне нужно внести изменение, я должен:

Собрать новую статически компонуемую библиотеку (с --target=x86_64-unknown-linux-musl)

1. Скопировать её на сервер

2. Перезапустить веб-сайт

Ситуация, мягко говоря, неидеальная.

Поэтому мне бы хотелось перейти к развёртыванию веб-сайта при помощи контейнеров (будь то Docker, Kubernetes или что-то иное), в духе подавляющего большинства ПО, разворачиваемого в последний десяток лет.

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

Читать далее

Лучшие библиотеки UI-компонентов для React в 2025 году

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

React остаётся одним из самых популярных инструментов для фронтенд-разработки. Библиотеки UI-компонентов для React значительно развились, предоставляя разработчикам инструменты для создания современных, эффективных и доступных интерфейсов. В этой статье рассмотрим топовые библиотеки UI-компонентов для React, которые стали популярными в 2025 году, и их ключевые особенности.

Читать далее

Оцени меня, если сможешь. Методика точной оценки крупных задач

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

Как часто оценка по задаче совпадает с реальными трудозатратами?

Умение точно оценить объём работ спасает от переработок, напряжённой обстановки на проекте, поддерживает доверительные отношения в команде и показывает вас с хорошей стороны перед заказчиком.

Но интуитивные и ставшие традиционными способы оценки задач дают низкую точность. Пора взять на вооружение другой способ, дающий 90+% точность в оценке.

Читать далее

Steroids — ещё один фронтенд фреймворк на базе React?

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

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

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

Читать далее

Почему я отказался внедрять тёмные паттерны и не получил оффер на фронтенд-лида

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

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

Читать далее

Почему именно юнит-тесты: искусство укрощения кода маленькими шагами

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

Признаемся честно: слово «тестирование» вызывает у многих разработчиков примерно такую же радость, как поход к стоматологу. Большинство морщится и думает: «Опять эти тесты... Лучше бы новую фичу запилил!» И я вас прекрасно понимаю — сам когда-то был в лагере скептиков.

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

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

Читать далее

Добавляем в CRM выбор лучшего времени общения с клиентом

Время на прочтение6 мин
Количество просмотров960

Привет, Хабр. На связи Екатерина Саяпина, Product Owner платформы МТС Exolve. В этом материале я расскажу, как автоматически добавить в CRM оптимальное время для общения с клиентами. В рамках этого кейса я покажу настройку нашей платформы и получение информации из нее в Битрикс24.

Читать далее

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

Как мы сделали «ssyoutube для ChatGPT» и что из этого вышло

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

Потребность поделиться диалогом из ChatGPT рано или поздно возникает. Однако нативного экспорта в удобный формат вроде PDF или Markdown платформа не предлагает. Копипаст — плохое решение: таблицы разваливаются, форматирование кода съезжает, а изображения просто пропадают. Мы решили эту задачу для себя, написав собственный конвертер. Оказалось, что он полезен не только нам.

Так появился pdfchatgpt.com. Принцип простой: копируешь share-ссылку и диалога с ChatGPT, добавляешь pdf в начало ссылки и получаешь готовый файл. Также можно перейти на pdfchatgpt.com и просто вставить ссылку на диалог.

В этой статье — технический разбор нашего решения: от простого скрипта с puppeteer до асинхронной системы с очередями. Делимся опытом для тех, кто решает схожие задачи.

Читать далее

Как я полюбил LESS и с его помощью избавился от копипасты в своём CSS-коде, а разметку сделал семантической

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

В силу личной специфики (я чаще работаю не над веб-страницами, а над интерфейсами для десктопных и мобильных приложений, которые пишу на HTML/CSS), я долго избегал рабочие процессы сложнее, чем «отредактировал CSS-файл и сохранил его», и открыл для себя CSS-препроцессинг довольно поздно, но… В наши дни он, в общем-то, ничуть не устарел, и актуален не меньше, чем раньше. Так что, если вы пишете CSS (а не генерируете его) для чего угодно (SPA, приложения, лендинги, веб-аппы и т.д.), но до сих пор не пользуетесь LESS или SASS — приглашаю под кат, где я, стараясь не опускаться до уровня «очередной-пересказ-учебника», немного расскажу о принципах LESS, инструментах, его текущем состоянии и поделюсь своими техниками и приёмами (с примерами). А если вы не пишете CSS, но знакомы с традиционными языками программирования, всё равно добро пожаловать: я провожу параллели между ними и LESS, а заодно рассказываю об очень полезных принципах проектирования от Алана Кея.

Читать далее

Большинству людей плевать на качество софта

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

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

Но у этой деградации есть естественная причина, и она очень простая. Дело в том, что большинству людей по большому счёту наплевать.

Читать далее

Внедрение зависимостей (DI) через библиотеку Tsyringe

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

Привет, Хабр! Меня зовут Роман Мельник, я фронтенд-разработчик во «ВКонтакте для Бизнеса». Наша команда создаёт инструменты, которые помогают владельцам сообществ управлять и развивать свои проекты. Сегодня я расскажу про Dependency Injection (DI) через библиотеку Tsyringe.

Почему это важно? Крупные проекты сталкиваются со следующими проблемами: разрастающимся глобальным стором, сложностями тестирования, масштабирования и переиспользования кода. Внедрение зависимостей помогает решить эти вопросы, делая код гибким и управляемым. На практике это выглядит гораздо интереснее. Давайте разберёмся!

Начнём с архитектурных принципов и паттернов.

Читать далее

Как я пришёл в open source в 2025-м (с утилитой для бекапа PostgreSQL), чуть не потеряв проект на ~$1500\мес в 2023-м

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

Однажды я столкнулся с проблемой, когда почти потерял коммерчески успешный пет-проект из-за устаревших резервных копий БД (ещё до того, как он стал коммерчески неуспешным). При этом, даже после частичного восстановления, все-таки потерял ~30% прибыли от проекта, много нервов и времени.

Это подтолкнуло меня на разработку своего открытого инструмента для бекапа PostgreSQL. С разными хранилищами, уведомлениями при сбоях и health check'ом. Собственно, о том, как я потерял деньги и затем разработал проект — хочу рассказать в статье ниже.

Читать далее

От React всё так же веет безумием, но все об этом молчат

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

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

Так что вот она полноценная статья, ещё больше той, из которой она родилась. Здесь я подробно опишу все проблемы React и поясню, почему это может не быть виной разработчиков.

Читать далее

Laravel: электронная подпись на сервере с PDF визуализацией

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

Сегодня я хочу поделиться с вами решением, которое позволит вам реализовать подписание PDF-документов электронной подписью и их визуализацию прямо на вашем Laravel сервере.

Читать далее

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