Pull to refresh
4
Евгений@Mellornread⁠-⁠only

В настоящее время занимаюсь web-разработкой

Send message

Как не нужно использовать паттерн Repository

Reading time7 min
Reach and readers63K
image

Данная статья является неким опытом, который был приобретен в результате весьма неприятной архитектурной ошибки, допущенной мной при длительной разработке проекта на Laravel5.

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →

Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны

Level of difficultyMedium
Reading time21 min
Reach and readers63K

– Ваш терминал и ваше интернет соединение – это файл!
– Да что вы такое говорите?
– Скажите ещё, что и мышка в моей руке или жёсткий диск – это тоже файл.
– Абсолютно верно!

На самом деле, с точки зрения Linux – это так.

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

Читать далее

Древовидные структуры в SQL в одну таблицу

Level of difficultyMedium
Reading time11 min
Reach and readers20K

Как реализовать хранение и работу каталога папок в PostgreSQL? Есть большое количество вариантов. Но хочется, чтобы реализация выглядела лаконично, не нарушала прозрачность выполняемых операций, не вызывала блокировок, не требовала большого вовлечения клиента в специфику работы и т.д. Потому сегодня попробуем реализовать хранение древовидных структур и работу с ними без использования триггеров, блокировок, дополнительных таблиц (представлений) и внешних инструментов в SQL.

Читать далее

Подключаем Centrifugo в laravel

Level of difficultyMedium
Reading time11 min
Reach and readers5.7K

В этой статье мы рассмотрим интеграцию сервера реального времени Centrifugo с фреймворком Laravel, основные настройки и нюансы работы

Centrifugo – это сервер для работы в реальном времени, который поддерживает различные транспорты для подключения клиентов, включая WebSocket, HTTP-streaming, Server-Sent Events (SSE) и другие. Он использует publish-subscribe паттерн для обмена сообщениями

Читать далее

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов. Часть 2

Level of difficultyMedium
Reading time2 min
Reach and readers9.2K

Месяц назад я опубликовал пост об инструменте для автоматической оптимизации SQL-запросов. Идея была простая — убрать этап «общения» с ИИ и предоставить простой интерфейс, где не нужно придумывать промпты.

За первый месяц сервис использовали более 1000 человек. Ниже — выводы и результаты.

Читать далее

JavaScript: массивы от А до Я для тех, кто только начал

Level of difficultyEasy
Reading time6 min
Reach and readers9.9K

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

Читать далее

Duyler — Событийно-ориентированный, неблокирующий PHP-фреймворк

Level of difficultyMedium
Reading time27 min
Reach and readers7K

В данной статье, я хотел бы рассказать вам о Duyler (производное от Do While) - событийно-ориентированном, «неумирающем» и неблокирующем PHP-фреймворке.

Читать далее

Об индексах на столбцах с низкой кардинальностью

Level of difficultyMedium
Reading time13 min
Reach and readers9.7K

Что будет, если использовать B-tree индекс в базе данных на столбцах, где всего пара уникальных значений несколько десятком миллионов записей? Рассмотрим, сравним и измерим эффективность на примере приема soft delete.

А так же попробуем раскрыть особенности особенности индексации B-tree, работа планировщика. Не все, конечно, но достаточно, чтобы остались вопросы для дальнейшего изучения.

Будет полезно разработчикам BE, которые надеются найти "серебряную пулю" и решить вопросы производительности быстро и сразу ;-)

Читать далее

Автоматическое определение параметров хранения в базе данных

Level of difficultyMedium
Reading time7 min
Reach and readers5.9K

Предлагается к рассмотрению метод динамического определения форматов хранения и типов индексации в таблицах аналитической базы данных Dimension DB. На основе метаданных из источников данных (SQL-запросов, таблиц или представлений) определяется формат хранения или представления данных, а по текущему распределению данных, автоматически определяется тип индексирования.

Читать далее

Оптимизация Redis для высоких нагрузок: полное руководство

Level of difficultyMedium
Reading time15 min
Reach and readers10K

Привет, Хабр! На связи Александр Горьев, ведущий разработчик в Selectel. Сегодня в фокусе нашего внимания Redis — высокопроизводительное хранилище «ключ-значение», работающее в оперативной памяти. Скорость, простота и богатый набор структур сделали Redis очень популярным.

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

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

Читать далее

Кандидат сбежал в слезах. Про накрутку опыта

Level of difficultyEasy
Reading time13 min
Reach and readers72K

У него в резюме Python, Playwright, Pytest, Jenkins, Docker, Kafka, GitHub, GitLab, и он вёл QA-гильдию в Третьем Царстве. А потом пришёл на собес — и не смог объяснить, чем отличается UI-тест от интеграционного. Мы дали задачу. Он попытался её решить. Мы все плакали. Он — тоже.

Читать далее

PWA и WebView — как сделать ваше веб-приложение доступным в офлайн-режиме

Level of difficultyMedium
Reading time10 min
Reach and readers4.4K

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

Читать далее

VS Code: 5 интересных функций и расширений, меняющих подход к разработке

Level of difficultyEasy
Reading time4 min
Reach and readers22K

Visual Studio Code прочно закрепился как один из самых популярных редакторов кода, и не зря. Его гибкость, производительность и огромная экосистема расширений делают его незаменимым инструментом для миллионов разработчиков. Однако, даже опытные пользователи зачастую не догадываются о некоторых его «скрытых» возможностях, которые могут кардинально изменить привычный рабочий процесс и значительно повысить продуктивность.

В этой статье мы рассмотрим 5 интересных функций и расширений VS Code, без которых, возможно, вы уже не сможете представить свою разработку.

Читать далее

AI-генератор сайтов на ChatGPT и Next.js 15: Создаем SEO-оптимизированные страницы с нуля (аналог v0)

Level of difficultyMedium
Reading time62 min
Reach and readers7.7K

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

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

Или используйте полную автоматизацию так же как в v0, но с прицелом под крупные корпоративные интеграции.

Читать далее

Ваш сайт теряет пользователей прямо сейчас. Виноват один символ: '+' в email

Level of difficultyMedium
Reading time5 min
Reach and readers6.8K

Привет, Хабр! Представьте ситуацию: вы нашли крутой сервис, регистрируетесь, вводите свой email my.name+coolservice@gmail.com (ведь вы, как и я, любите порядок во входящих) и… получаете ошибку «Некорректный email». Знакомо? Уверен, что да.

Каждый раз, когда я сталкиваюсь с таким, у меня дергается глаз. Это не просто мелкий баг. Это симптом глубокой проблемы в подходе к разработке и непонимания базовых стандартов. Давайте раз и навсегда разберемся, почему сервисы не принимают почту с «плюсом», почему это плохо для бизнеса и, главное, как это исправить.

Читать далее

Техническое задание на разработку сайта

Level of difficultyEasy
Reading time6 min
Reach and readers5K

Привет, с вами Вячеслав Егоров, основатель и CEO MediaTen. Сотрудничая с крупными клиентами, я понял, что у них есть запросы на полный комплекс услуг от одного подрядчика. И помимо разработки, в него входят аудиты и написание подробной технической информации, в том числе техзаданий.

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

Читать далее

Когда JOIN тянет ко дну: как одно изменение ускорило запрос в 75 раз

Level of difficultyMedium
Reading time6 min
Reach and readers2.3K

TL;DR Иногда «убить» самый тяжёлый JOIN — проще, чем кажется. Достаточно вынести агрегат в коррелированный под-запрос и дать движку опереться на индекс.

Читать далее

Цифровая слежка: ищем человека, зная только его номер

Reading time5 min
Reach and readers35K

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

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

Читать далее

Разумные существа в космосе

Reading time13 min
Reach and readers1.5K

Тема разума в космосе (вселенной) малоизученная и перспективная. Знания для размышлений по ней дают философия, психология, физика, биология, космология и компьютерные науки. В настоящей работе тема подсвечена с авторской “колокольни”. Исследуется сущность возможных видов разумных существ и их расселение в космосе. Статья может показаться в чём-то предвзятой или фантастичной. Приветствую конструктивную критику.

Читать далее

Внедрение зависимостей в PHP: от основ до фреймворков

Level of difficultyMedium
Reading time18 min
Reach and readers5.2K

Внедрение зависимостей (DI), контейнер внедрения зависимостей (DI-контейнер) и автоматическое разрешение зависимостей (autowiring) в PHP: шаг за шагом.

Цель статьи — дать начинающим PHP-разработчикам практическое понимание того, как работает внедрение зависимостей (DI) и контейнер внедрения зависимостей (DI-контейнер), а также показать, как эти принципы применяются в современных фреймворках.

Читать далее

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity