Обновить
512K+

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

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

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

Андрей Ситник: программист не обязан становиться инфлюенсером

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

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

Читать далее

GraphQL, что ты такое?

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

Привет! Сегодня у нашей статьи два автора — бэкенд-разработчик Артём и фронтенд-разработчик Илья. 

Примерно год назад мы решили попробовать внедрить graphQL у себя в проекте и сейчас хотим поделиться, как это происходило. Расскажем, что такое GraphQL, как его внедряли, почему мы вообще решили с ним подружиться и как начать взаимодействовать с API бэкенда словно вы граф, а не холоп.

Если лень читать или больше нравится видеоформат — вам сюда

Читать далее

Установка MongoDB в условиях санкций через прокси

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

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

Читать далее

Наняли админов? Разобрались с DevOps? Время подумать об SRE

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

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

Так почему джуны все-таки не нужны?

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

Для джуна поиск работы похож на полосу препятствий. Тот, кто успешно преодолел ров с крокодилами, катящиеся шары, лаву и дротики с ядом, получает приз — классную работу. 

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

Читать далее

История стиля который никто не просил или body margin 8px

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

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

Читать далее

Хорошие монолиты. Простая архитектура лучше всего

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

Критика монолитов стала в индустрии обычным делом. Многие считают каким-то очевидным фактом, что распределённые (микро-)сервисы всегда лучше монолитных приложений, написанных от начала до конца как цельный неделимый независимый кусок.

Если вспомнить, то идея модульных микросервисов всплыла около десяти лет назад на подъёме идеологий гибкой разработки (Agile) и DevOps. Эти мощные концепции сильно повлияли на индустрию.

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

Создаем слайдер с изображением и текстом на React.js с нуля и оптимизируем

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

В этой статье я хочу затронуть задачу, с которой вы можете столкнуться на собеседовании на позицию Front-End — создание Image Slider.

За последние 5 месяцев у меня было 15 онсайт собеседований, а также офферы от Google, Roku, Microsoft и других. (Больше информации можно прочитать в моем Telegram-канале)

Вы должны реализовать этот виджет за ~45–50 минут и рассказать об оптимизации. Эту информацию я постараюсь рассказать здесь. Основная цель состоит не в том, чтобы реализовать Image Slider с большим количеством функционала, а в том, чтобы показать, как реализовать и оптимизировать.

Читать далее

Общий синтаксис для математических выражений

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

О математическом менеджере с единым синтаксисом.

Читать далее

PrimeNG + NestJS = CRM — часть 1

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

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

Читать далее

Знакомство с тестированием веб-приложений

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

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

Распространенные ошибки при написании плагинов Joomla 4

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

Перевод недавней статьи профессионального PHP-разработчика, руководителя Akeeba Ltd и ведущего разработчика Akeeba Backup для WordPress, Joomla! и standalone Николаса Дионисопулоса.

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

Читать далее

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

Как мы в hh.ru отправляем пользователям миллиард уведомлений в месяц

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

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

Меня зовут Кирилл, я — тимлид команды Bonjour в hh.ru. Сегодня я расскажу как у нас устроены рассылки.

Читать далее

Сайт фотографа

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

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

Читать далее

Создание WebCron плагина для Joomla 4 (Task Scheduler Plugin)

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

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

Как написать плагин для выполнения задач по CRON в Joomla 4 рассказывает эта статья.

Читать далее

Использование протокола MQTT в PHP

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

Статья посвящена использованию библиотеки php-mqtt/client в PHP-проектах для реализации функций подключения, подписки, отписки, а также обмена сообщениями между MQTT-клиентом и сервером.
Читать дальше →

Синхронизируем приложения с помощью Advisory Locks (postgresql). Что это, зачем, и нюансы работы с pgBouncer

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


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


К счастью, во многих случаях в проекте уже есть какая-нибудь база данных, которую можно использовать для этих целей. СУБД сама управляет блокировками, и многие проблемы решаются сами, "под капотом". Например, если два инстанса попытаются обновить одну и ту же строку в таблице, то эта строка не превратится в кашу. СУБД автоматически возьмет нужный лок, и тот, кто пришёл вторым, просто будет ждать, пока этот лок не будет снят.


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


Для решения подобных проблем в PostgreSQL есть так называемые необязательные блокировки (advisory locks), т.е. локи, которые берутся, исходя из логики приложения, а не автоматики хранения/выдачи данных в БД.

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

Десять лет — полет нормальный

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

Всем привет!

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

Итак, с чем пришли мы к сегодняшнему дню.

OpenLiteSpeed быстрый. Но не всегда

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

Привет, Хабр! Меня зовут Алексей, сегодня расскажу, как делал нагрузочное тестирование nginx, Apache и OpenLiteSpeed (он же OLS) и какой из серверов быстрее. 

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

Читать далее