Search
Write a publication
Pull to refresh
0
0
Елизавета @Hemonugi

User

Send message

Оптимизация индексов базы данных: проблемы, решения, практические рекомендации

Level of difficultyMedium
Reading time11 min
Views7.1K

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

Индекс — это как указатель в толстенном справочнике. Без него, чтобы найти нужный термин, вы обречены листать страницу за страницей. С ним — вы мгновенно открываете нужный раздел. Но что, если указатель сам размером с полкниги? Или ведет не туда? Такой помощник только вредит. С индексами в БД всё то же самое. Грамотная стратегия индексирования — это полет. Ошибочная — это бег в мешках по болоту.

Читать далее

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views201K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

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

Читать далее

Порядок следования столбцов в таблицах PostgreSQL

Level of difficultyMedium
Reading time17 min
Views9.5K

Порядок столбцов в таблицах влияет на компактность и производительность. При небольшом числе строк на это не обращают внимание. Если в таблицах хранится много строк, то даже небольшое уменьшение объема хранения может быть полезно. У столбцов есть оптимальный  порядок и менее оптимальные, которые отличаются размером, который используют строки при физическом хранении. Причина того, что переставив столбцы строки в таблице с теми же самыми данными, меняют размер в выравнивании (aligning) и заполнении нулями (padding). В блоке данных выравниваются все структуры: заголовки, поля строк и целиком сами строки.

На 64-разраядных операционных системах, длина любой строки и заголовка строки  выравниваются по 8 байт. То есть если строка занимает 28 байт, то физически она займёт 32 байта. В конец строки будут добавлены пустые байты. Поля выравниваются сложнее - по 4,8, 16 байт. В статье рассматривается перестановка столбцов на примере демонстрационной базы.

Читать далее

Как я автоматизировал поиск работы при помощи LLM

Level of difficultyEasy
Reading time5 min
Views4.9K

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

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

Можно конечно ускорить процесс, выкинув из этого алгоритма пункт с вычитыванием резюме, но:
а) есть немалый шанс, кликая на все подряд, как обезьяна, откликнуться на неподходящую для тебя вакансию; кому-то это норм, но мне бы не хотелось дергать HR'ов лишний раз по поводу вакансии, которая на самом деле мне не интересна;
б) некоторые особо хитрые работодатели добавляют в описание своих вакансий всякие ключевые слова/вопросы, которые нужно упомянуть/ответить в резюме; по мне так не самая лучшая практика, но я их за это не виню.

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

Читать далее...

Основы CQRS

Reading time14 min
Views133K
Данная статья основана на материале из различных статей по CQRS, а также проектов, где применялся такой подход.

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

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

Как устроено индексирование баз данных

Level of difficultyEasy
Reading time12 min
Views138K

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

Почему принципы SOLID не являются надежным решением для разработки программного обеспечения

Reading time6 min
Views12K

Роберт Мартин представил принципы SOLID в 2000 году, когда объектно-ориентированное программирование стало настоящим искусством для программистов. Каждый хочет создать что-то долговечное, которое можно использовать повторно, насколько это возможно, с минимальными изменениями, которые потребуются в будущем. SOLID - идеальное название для этого.

Фактически, объектно-ориентированное программирование работает лучше всего, когда мы можем отделить то, что останется, от того, что изменится. Принципы SOLID помогают разделять это.

Мне лично нравится идея, лежащая в основе принципов SOLID и я многому из нее научился.

Читать далее

Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Пробуем новое

Reading time9 min
Views13K

Привет! Продолжим тему гексагональной архитектуры и DDD, первый пост — здесь

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

Гексагональная архитектура

Одна из самых исчерпывающих статей по гексагональной архитектуре подробно и с примерами раскрывает назначение этой архитектуры. 

Я приведу основные мысли.

Гексагональная архитектура имеет три фундаментальных блока:

Читать далее

Domain Driven Design: модели вместо требований

Reading time6 min
Views9.4K

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

Решение — подход DDD, Domain Driven Design, было предложено Эриком Эвансом в 2003. Но прежде, чем о нем говорить, необходимо немного углубиться в историю развития разработки софта как такового.

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

Как создавался звук в Pathfinder: Kingmaker

Reading time17 min
Views11K


Pathfinder: Kingmaker (далее PF:K для удобства) — компьютерная ролевая игра, созданная студией Owlcat Games и вышедшая этой осенью в Steam и GoG. Проект, вдохновлённый классическими играми от Bioware и разделяющий с ними такие особенности, как использование правил популярной системы настольных игр, сражения в реальном времени с паузой, камера с изометрической проекцией, нелинейность прохождения и возможность получить несколько уникальных завершений.


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

Information

Rating
Does not participate
Location
Южно-Сахалинск, Сахалин, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Linux
Git
Docker
Redis
PostgreSQL
REST
PHP
PhpUnit
Symfony