HTML Diff
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