Обновить
418.9

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

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

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

$2500 в месяц на сервисе с 1 функцией, которая уже была у крупных компаний

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

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

Читать далее

Путь развития (Roadmap) Frontend разработчика

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

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

Читать далее

«Код-ревью — это когда твои комментарии в интернете действительно читают»: дискуссия с разработчиками на C++

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

Заходят как-то на Хабр С++ разработчики из крупных компаний, а у них спрашивают: что такое код-ревью и используют ли они спецификатор final. Эти и другие вопросы с подвохом мы задали инженерам из YADRO, VK, Kaspersky, Syntacore и PVS-Studio. В итоге обсудили инструменты для работы со сторонними зависимостями, интерфейсы «плюсовых» библиотек и отказ (или нет) от exceptions.  

Продолжим дискуссию на митапе по С++, который пройдет онлайн 20 марта. Регистрируйтесь, подключайтесь к трансляции и пишите вопросы и комментарии в чат — ведущие озвучат некоторые из них.

Читать далее

Высказывания трех известных людей о проблемах современной разработки ПО

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

Думаю, что после прочтения статьи Никиты Прокопова «JavaScript Bloat in 2024» (рус. «Насколько потолстел JavaScript к 2024 году?») не я один стал с пессимизмом смотреть на будущее веб-разработки. Хотя тема раздутия JavaScript не нова (одним из первых на эту проблему обратил внимание Эдди Османи в своей статье-отчете «The Cost Of JavaScript» (рус. «Сколько стоит JavaScript?») в 2017 году), но здесь поражает масштаб проблемы, обозначенный автором статьи.

Нечто подобное было с HTML (и в какой-то степени с графикой) на ранних этапах развития Всемирной паутины (далее веб). Проблему раздутия HTML удалось практически полностью решить к середине 00-х за счет внедрения веб-стандартов и совершенствования WYSIWYG-редакторов HTML. Появление технологии AJAX и одностраничных приложений (SPA) сместило акцент на JavaScript, но это не привело к мгновенному утяжелению веб-приложений (например, первые версии Gmail прекрасно работали даже на самых медленных dial-up-соединениях).

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

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

Читать далее

Полное краткое руководство по grammY — JS-библиотеке для создания Telegram-ботов

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели27K

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

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

Добавление своих команд для CLI в Joomla 4 и Joomla 5 с помощью плагина

Время на прочтение18 мин
Охват и читатели1.8K

В Joomla, как и во многих других PHP фреймворках и движках, уже довольно давно (с версий 1.7.x) существует возможность работы с помощью CLI. С его помощью обычно решают те задачи, решение которых в веб-интерфейсе Joomla нецелесообразно из-за возможных ограничений веб-сервера - так называемые "тяжелые" задачи. Это может быть миграция большого количества контента со старой версии Joomla на новую, синхронизация данных с внешним источником по API (синхронизация цен и остатков, выгрузка заказов), работа с файлами и каталогами, выполнение пакетных заданий на больших объёмах и т.д. - всё то, что может занимать много времени и ресурсов сервера.

Как добавить свою команду в CLI интерфейс Joomla расскажет эта статья.

Читать далее

В помощь IT-команде — «Регламент создания баг-репортов» или «Как сделать задачу ясной для тебя из отпуска»

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели3K

Данный регламент я написал на основании опыта работы лидом в IT компании с веб-приложением. Пункты из него прошли проверку практикой. Изначальные версии были основаны на best practice из интернета, agile и опыта предыдущих и текущих руководителей.

Здесь нет привязки на какую-то определенную систему трекинга задач. Использование возможно как для JIRA, Kaiten, GitLab, Trello, так и для excel-таблицы.

К регламенту

WebRTC. Как установить p2p соединение между браузерами

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.4K

WebRTC позволяет браузерам обмениваться информацией напрямую без сервера. Можно передавать видео, звук и данные. Установить WebRTC соединение можно разными способами. В статье описано как WebRTC соединение устанавливается между пользователями редактора схем dgrm.net.

Читать далее

Одно из самых востребованных IT-решений: простыми словами об API

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

Любой современной IT-компании так или иначе приходится работать с данными: они используются как в оптимизации показателей самой компании, так и в предоставлении услуг потребителям. Задача часто осложняется необходимостью управления и передачи больших объемов данных, поэтому организовать работу с ними помогают API.

Статья написана простым языком, где многие вещи объясняются через доступные примеры, чтобы материал был понятен для всех и давал общее представление, а не только рассказывал о тонкостях разработки.

Поговорим про API и разберем следующее:

Что такое API и где используется?
Почему проектам необходим именно API?
Как устроен API?
При помощи чего разрабатывают API?
Как провести сравнительный анализ технологий для разработки API?
Путь разработки и возникающие сложности
Стоит ли рассматривать API для своего проекта?

Читать далее

Защищаем сервис от перегрузки с помощью HAProxy

Время на прочтение13 мин
Охват и читатели23K

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

Я бы хотел немного углубиться в тематику использованного механизма stick tables, но поговорить не про пользователей, активно интересующихся вашим сайтом, а про нагрузочную способность, или ёмкость, всего сайта (ну или каких-то его путей). Во-первых, любой сервис ограничен в количестве одновременных запросов, которые возможно обслужить на существующих ресурсах. Во-вторых, чаще всего у сервиса не одна площадка или хотя бы не один экземпляр балансёра. А это значит, что поймать одинокого пользователя — это, конечно, здорово, но хотелось бы решить и другую интересную задачу: защитить сервис от перегрузки в целом и в случае, если балансёров более одного. Бонусом поговорим о проблеме умного перераспределения нагрузки между локациями.

Читать далее

Go на митап: обсудим sync.Pool, свой mini-k8s, паттерны и сообщения об ошибках

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

28 марта встречаемся на митапе по Go-разработке с инженерами из команд систем хранения данных и телекома YADRO, а также разработчиками из VK и AvitoTech. Эксперты расскажут, как: 

снизить нагрузку на сборщик мусора,

сделать свой mini‑k8s,

написать библиотеку для обработки ошибок,

использовать горутины грамотно и безопасно.

Митап пройдет в Нижнем Новгороде и онлайн. Регистрируйтесь на встречу и выбирайте удобный формат участия. А под катом читайте программу и знакомьтесь со спикерами.

Читать далее

Мы пилили монолит — много нас, а он один. Полезные советы от команды Яндекс Еды

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели23K

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

Распилить

Запуск идеи стоит 5 млн, и это дорого. Как сэкономить на проекте? Спойлер: откажитесь от React

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

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

Рендеринг — это преобразование кода в визуализированную страницу. Самые распространённые типы — на сервере (server side rendering, или SSR) и в браузере клиента (client side rendering, или CSR). В последнее время мы чаще используем серверный рендеринг с помощью технологии HTMX и советуем его заказчикам. В статье расскажем, почему.

Читать далее

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

Решаем ошибку при миграции на Storybook 7

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели1.5K

Привет, я фронтенд-разработчик в Skyeng. При переходе с шестой версии Storybook на седьмую встретилась ошибка «Providers from the BrowserModule have already been loaded. If you need access to common directives such as NgIf and NgFor, import the CommonModule instead».

В этой статье объясняю, почему возникает баг и как его исправить.

Читать далее

Как сверстать письмо, чтобы оно дошло до получателя таким, как задумано

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

Привет! Меня зовут Егор Стеблин, я фронтенд-разработчик отдела спецпроектов в KTS.

В статье расскажу и покажу, как сверстать письмо, чтобы оно наверняка правильно отображалось во всех почтовых клиентах — особенно в Outlook, который до сих пор возглавляет подборки по популярности в РФ.

В конце — пример целого письма в HTML.

Читать далее

Сборка мусора в V8

Время на прочтение19 мин
Охват и читатели8.7K

В этой статье мы детально разберем процесс сборки мусора движком V8. Познакомимся с понятиями поколений, Minor и Major Garbage Collection, посмотрим, как аллоцируются, трассируются и маркируются объекты в памяти. Что происходит с пустыми областями после очистки, и как выполняется сборка мусора в фоновом режиме. 

Читать далее

Как я случайно превратила свой сокращатель ссылок в приманку для мошенников

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

Пару месяцев назад я запустила сервис y.gy, навороченный сокращатель URL. Вызвано это было личной нуждой: в другом моём проекте, getwaitlist.com, используется множество реферальных ссылок, а доступные сервисы сокращения url не внушали мне доверия. В итоге я решила создать собственный инструмент, который наверняка окажется полезен не только мне.

Я разработала лучший в своём роде сокращатель со всеми возможными примочками, начиная с обширной кастомизации и заканчивая хорошей аналитикой трафика. Это всё, что мне было нужно. По аналогии со многими аналогичными инструментами я разместила интерфейс «Shorten Link» по центру домашней страницы. Регистрация для использования сервиса не требуется. Я сделала доступ бесплатным и неограниченным, опираясь на принцип: «бесплатность – лучшая маркетинговая стратегия». Закончив с настройкой, я без громких заявлений сделала релиз и начала потихоньку продвигать свой проект.
Читать дальше →

Zustand.js: современный, невесомый, производительный и очень гибкий state manager

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

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

В статье я расскажу:

о простом интерфейсе Zustand

о его внутреннем устройстве

о производительности без усилий: 3 простых способа оптимизаций

о производительности на максималках: не всегда нужно использовать длинный цикл рендера React, чтобы достичь максимальной производительности - Zustand может быстрее!

о применении на практике: советы и рекомендации по интеграции Zustand в ваши проекты для достижения масштабируемости и удобства поддержки.

Начните активно использовать Zustand в своих проектах - вы будете приятно удивлены простотой и удобством работы с ним.

Читать далее

Переезд с Ubuntu 18.04 на 20.04 в подсистеме WSL

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

Всем привет!

Если Вы читаете эту статью, то, скорее всего, столкнулись с проблемами в работе с личными или рабочими проектами, вызванными недавним обновлением VS Code до версии 1.86. И вроде новая версия нужна, и страшно потерять все данные.

Читать далее

Написание слоя API в приложении — это прошлый век! Встречайте универсальный прокси

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

Перестаньте писать, генерировать и переписывать API слой для каждого приложения - создайте универсальный прокси с TypeScript единый для множества приложений и обновляйте только типы при изменениях API на сервере!

Ваш API слой всегда будет оставаться минимальным в размерах и не увеличится ни на байт с увеличением количества вызываемых методов! Это обеспечит стройность вашим бандлам и добавит удовольствие пользователю от быстрой загрузки вашего сайта

Читать далее

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