
Веб-разработка *
Делаем веб лучше
Андрей Ситник: программист не обязан становиться инфлюенсером

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

Привет! Сегодня у нашей статьи два автора — бэкенд-разработчик Артём и фронтенд-разработчик Илья.
Примерно год назад мы решили попробовать внедрить graphQL у себя в проекте и сейчас хотим поделиться, как это происходило. Расскажем, что такое GraphQL, как его внедряли, почему мы вообще решили с ним подружиться и как начать взаимодействовать с API бэкенда словно вы граф, а не холоп.
Если лень читать или больше нравится видеоформат — вам сюда.
Установка MongoDB в условиях санкций через прокси

В нынешней ситуации многие сервисы блокируют доступ из РФ, я покажу как можно обойти этот запрет с помощью ProxyChains и Tor на примере MongoDB.
Наняли админов? Разобрались с DevOps? Время подумать об SRE

ИТ-индустрии нашего региона потребовалось некоторое время, чтобы осознать принципиальную разницу между DevOps и системным администратором, хотя путаница в вакансиях и описаниях продолжалась вплоть до конца десятых годов, а в отдельных случаях, мы уверены, девопсов принимают за сисадминов и по сей день. Однако развитие IT-сектора как в России, так и в целом по миру привело к следующему витку специализации сотрудников. И если DevOps возникли из-за необходимости увязать между собой разработку серверную часть и наладить пути доставки обновлений и коммуникацию между командами, то SRE — уже следующая ступень эволюции, с новыми требованиями по глубине скиллов и их комплекту.
Так почему джуны все-таки не нужны?

Для джуна поиск работы похож на полосу препятствий. Тот, кто успешно преодолел ров с крокодилами, катящиеся шары, лаву и дротики с ядом, получает приз — классную работу.
Всем привет, это Макс Кравец. В 2021 году я написал серию статей о том, почему джуны никому не нужны и куда катится рынок зарплат разработчиков в IT. В них я посмотрел на вопросы со стороны нанимателя. Рассказал, почему джуны — это рисковая инвестиция. Дал общие советы, как новичку не застрять на начальном уровне, прокачать самостоятельно soft- и hard-скиллы и достигнуть желаемого роста в зарплате. Спустя полгода я решил дополнить эти материалы.
История стиля который никто не просил или body margin 8px

Все браузеры элементу body добавляют внешний отступ со значением 8px (margin 8px). Это часть таблицы стилей по умолчанию, рекомендованных w3c. Но почему именно 8px? Откуда такая тенденция?
Хорошие монолиты. Простая архитектура лучше всего

Критика монолитов стала в индустрии обычным делом. Многие считают каким-то очевидным фактом, что распределённые (микро-)сервисы всегда лучше монолитных приложений, написанных от начала до конца как цельный неделимый независимый кусок.
Если вспомнить, то идея модульных микросервисов всплыла около десяти лет назад на подъёме идеологий гибкой разработки (Agile) и DevOps. Эти мощные концепции сильно повлияли на индустрию.
Но что мы видим спустя десять лет? В реальности нас окружает большое количество хороших монолитных приложений, которые великолепно работают без перехода на микросервисы. Как же так?
Создаем слайдер с изображением и текстом на React.js с нуля и оптимизируем

В этой статье я хочу затронуть задачу, с которой вы можете столкнуться на собеседовании на позицию Front-End — создание Image Slider.
За последние 5 месяцев у меня было 15 онсайт собеседований, а также офферы от Google, Roku, Microsoft и других. (Больше информации можно прочитать в моем Telegram-канале)
Вы должны реализовать этот виджет за ~45–50 минут и рассказать об оптимизации. Эту информацию я постараюсь рассказать здесь. Основная цель состоит не в том, чтобы реализовать Image Slider с большим количеством функционала, а в том, чтобы показать, как реализовать и оптимизировать.
PrimeNG + NestJS = CRM — часть 1

Решили in-house разработать CRM систему. По ходу разработки встречались интересные моменты, которые постараюсь описать в нескольких статьях. В статьях постараюсь избежать банальностей типа: скачал, распаковал, запустил, и вот глядите, swagger из коробки. Таких статей, как и видео на Ютубах, уже очень много. Постараюсь поделиться просто интересными деталями, которые встречались по ходу разработки. Забегу вперед — систему настроили и запустили.
Распространенные ошибки при написании плагинов Joomla 4

Перевод недавней статьи профессионального PHP-разработчика, руководителя Akeeba Ltd и ведущего разработчика Akeeba Backup для WordPress, Joomla! и standalone Николаса Дионисопулоса.
В статье он делится своим опытом отладки плагинов Joomla 4, написанных разными разработчиками, в тех случаях, когда они, как правило, приводят к неожиданному сбою сайта. Оказывается, большинство плагинов страдают от нескольких очень распространенных и легко предотвратимых проблем. Так же в статье много сопутствующей, но от этого не менее важной и интересной информации.
Ближайшие события
Как мы в hh.ru отправляем пользователям миллиард уведомлений в месяц

В hh.ru много пользователей, а уведомлений мы отправляем еще больше: о регистрации, о восстановлении пароля, об изменении статуса услуг, о новых сообщениях и т.д. Одних только email-уведомлений мы отправляем около 900 миллионов в месяц, а ведь есть еще пуши и смс.
Меня зовут Кирилл, я — тимлид команды Bonjour в hh.ru. Сегодня я расскажу как у нас устроены рассылки.
Сайт фотографа

Контакты, прайс и портфолио - это то, из чего состоит 99% сайтов фотографов. И не удивительно, что многие коллеги фотографы за последние лет 5 отказались от своих персональных сайтов и их роль стали играть страницы в социальных сетях. Я же наоборот, стал развивать свой персональный сайт и делать так, чтоб мои клиенты туда почаще заходили. Да что там можно такого придумать?
Создание WebCron плагина для Joomla 4 (Task Scheduler Plugin)

В Joomla! появился планировщик задач начиная с версии 4.1. Он помогает автоматизировать повторяющиеся и рутинные задачи самого широкого спектра, начиная от технического обслуживания и заканчивая сложными синхронизациями по API. Планировщик задач запускает задачу, определенную в плагине, с помощью задания CRON.
Как написать плагин для выполнения задач по CRON в Joomla 4 рассказывает эта статья.
Синхронизируем приложения с помощью Advisory Locks (postgresql). Что это, зачем, и нюансы работы с pgBouncer

В современном мире у одного бекенд-приложения обычно запущено больше одного экземпляра, хотя бы из соображений надёжности. А это значит, что для синхронизации их действий надо что-то придумывать, какое-то внешнее решение: мьютексов или, к примеру, гошных каналов внутри приложения уже недостаточно.
К счастью, во многих случаях в проекте уже есть какая-нибудь база данных, которую можно использовать для этих целей. СУБД сама управляет блокировками, и многие проблемы решаются сами, "под капотом". Например, если два инстанса попытаются обновить одну и ту же строку в таблице, то эта строка не превратится в кашу. СУБД автоматически возьмет нужный лок, и тот, кто пришёл вторым, просто будет ждать, пока этот лок не будет снят.
Проблема в том, что такая автоматика с принудительными локами подходит не для всех случаев. Например, вы массово обрабатываете файлы, предполагая, что никакой файл не будет обрабатываться одновременно двумя приложениями сразу, но при этом не хотите создавать для синхронизации полноценную таблицу в БД. В проектах Каруны такие задачи возникают довольно регулярно.
Для решения подобных проблем в PostgreSQL есть так называемые необязательные блокировки (advisory locks), т.е. локи, которые берутся, исходя из логики приложения, а не автоматики хранения/выдачи данных в БД.
Десять лет — полет нормальный

Всем привет!
Именно так начался пост десятилетней давности о появившемся сайте со шрифтами. Да, вот так незаметно пролетели 10 лет, и по меркам интернета это, пожалуй, возраст человека, который уже закончил учиться и вышел в свободное плавание. Так и наш проект, пройдя все переделки, стабилизировался в своем функционале и движется по заданному курсу. Но за все это время одно осталось неизменным — бесплатные шрифты и свободный доступ к ним.
OpenLiteSpeed быстрый. Но не всегда

Привет, Хабр! Меня зовут Алексей, сегодня расскажу, как делал нагрузочное тестирование nginx, Apache и OpenLiteSpeed (он же OLS) и какой из серверов быстрее.
Поводом для теста стало добавление OLS в наш продукт — ISPmanager. Это панель для управления веб-серверами и сайтами. Поддержка Apache и nginx у нас была давно, а вот OLS — в новинку. Добавить его в ISPmanager очень просили наши пользователи. Разработчики говорят, что OLS супербыстрый сервер, да и независимые замеры подтверждают. Но мы решили проверить всё сами. Оказалось, сервер действительно производительный, но всё же не всегда обгоняет конкурентов. Подробности под катом.



