0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>1. RabbitMQ Streams для сбора и обработки телеметрии умного дома</a></li>
1
<ul><li><a>1. RabbitMQ Streams для сбора и обработки телеметрии умного дома</a></li>
2
<li><a>2. Архитектура для разработчиков и админов: кому какие навыки нужны?</a></li>
2
<li><a>2. Архитектура для разработчиков и админов: кому какие навыки нужны?</a></li>
3
<li><a>3. Почему может понадобиться полусинхронная репликация?</a></li>
3
<li><a>3. Почему может понадобиться полусинхронная репликация?</a></li>
4
<li><a>4. Шаблоны GRASP: Creator (создатель)</a></li>
4
<li><a>4. Шаблоны GRASP: Creator (создатель)</a></li>
5
<li><a>5. Шаблоны GRASP: Controller (контроллер)</a></li>
5
<li><a>5. Шаблоны GRASP: Controller (контроллер)</a></li>
6
</ul><h4>1.<a>RabbitMQ Streams для сбора и обработки телеметрии умного дома</a></h4>
6
</ul><h4>1.<a>RabbitMQ Streams для сбора и обработки телеметрии умного дома</a></h4>
7
<p>Посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования с примерами кода на Go.</p>
7
<p>Посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования с примерами кода на Go.</p>
8
<h4><a>2. Архитектура для разработчиков и админов: кому какие навыки нужны?</a></h4>
8
<h4><a>2. Архитектура для разработчиков и админов: кому какие навыки нужны?</a></h4>
9
<p>Классифицировали знания архитектуры в зависимости от уровня и деятельности специалистов. Памятка для тех, кто хочет прокачать свои навыки проектирования приложений или ПО, но не достаточно хорошо ориентируется в какой последовательности их осваивать.</p>
9
<p>Классифицировали знания архитектуры в зависимости от уровня и деятельности специалистов. Памятка для тех, кто хочет прокачать свои навыки проектирования приложений или ПО, но не достаточно хорошо ориентируется в какой последовательности их осваивать.</p>
10
<h4><a>3. Почему может понадобиться полусинхронная репликация?</a></h4>
10
<h4><a>3. Почему может понадобиться полусинхронная репликация?</a></h4>
11
<p>Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду, классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.</p>
11
<p>Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду, классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.</p>
12
<p>На текущий момент имеются два паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.</p>
12
<p>На текущий момент имеются два паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.</p>
13
<h4><a>4. Шаблоны GRASP: Creator (создатель)</a></h4>
13
<h4><a>4. Шаблоны GRASP: Creator (создатель)</a></h4>
14
<p>Шаблоны GRASP являются скорее не паттернами проектирования (как GoF’овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP’овских паттернов является необходимым условием написания хорошего кода. Паттерн Creator решает такую же типовую задачу как и его предшественник: создавать экземпляры класса должен класс, которому они нужны.</p>
14
<p>Шаблоны GRASP являются скорее не паттернами проектирования (как GoF’овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP’овских паттернов является необходимым условием написания хорошего кода. Паттерн Creator решает такую же типовую задачу как и его предшественник: создавать экземпляры класса должен класс, которому они нужны.</p>
15
<h4><a>5. Шаблоны GRASP: Controller (контроллер)</a></h4>
15
<h4><a>5. Шаблоны GRASP: Controller (контроллер)</a></h4>
16
<p>Обязанности по обработке входящих системных сообщений необходимо делегировать специальному объекту Controller’у. Controller - это объект, который отвечает за обработку системных событий, и при этом не относится к интерфейсу пользователя. Controller определяет методы для выполнения системных операций.</p>
16
<p>Обязанности по обработке входящих системных сообщений необходимо делегировать специальному объекту Controller’у. Controller - это объект, который отвечает за обработку системных событий, и при этом не относится к интерфейсу пользователя. Controller определяет методы для выполнения системных операций.</p>
17
<p>Еще больше технических материалов вы найдете в <a>нашем блоге на хабре</a>.</p>
17
<p>Еще больше технических материалов вы найдете в <a>нашем блоге на хабре</a>.</p>
18
18