Публикации по теме 'software-design'


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

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

Стоит ли проходить курсы Grokking System Design and Coding Interview от DesignGurus.io? Обзор
Является ли Design Guru хорошим местом для обучения системному дизайну и подготовке к собеседованию по программированию? Здравствуйте, ребята, как технический энтузиаст, я всегда увлечен изучением системного проектирования и преуспеваю в технических интервью, и в поисках ресурсов я наткнулся на Курс по проектированию систем пару лет назад. Меня сразу же заинтриговали их диаграммы , подобные показанной выше, и их обещание всесторонне подготовить меня к собеседованиям по..

Шаблон дизайна посетителя с примером
Что такое шаблон проектирования посетителя? Представляют операцию, которая должна выполняться над элементами структуры объекта. Посетитель позволяет определить новую операцию без изменения классов элементов, над которыми она работает. Чтобы лучше понять приведенное выше объяснение, посмотрите на следующую диаграмму. Левая сторона представляет объекты посетителей, а правая сторона представляет структуру объекта. Структура объекта может быть коллекцией типа Array, List, ArrayList..

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

Совет C++ 8: избегайте использования исключений в деструкторах
Здравствуйте, сегодня я хочу поделиться с вами еще одним замечательным советом из книги Скотта Мейерса Efficient C++ . Совет заключается в следующем: Предотвращение выхода исключений из деструкторов Еще лучше, если вы можете избежать использования исключений в деструкторах, сделайте это. Это связано с тем, что C++ не любит деструкторы, генерирующие исключения. Хорошо, это здорово, но что, если вам абсолютно необходимо иметь операцию в вашем деструкторе, которая может..

Определение ошибок вне существования
Определение ошибок вне существования Осмотрительная обработка ошибок - один из краеугольных камней построения надежной системы. Однако обработка ошибок не обязательно означает определение и обработку каждого случая ошибки. Интересно, что иногда лучше «исключить ошибки из существования». Этот пост относится к главе из замечательной книги Джона Остерхаута Философия дизайна программного обеспечения ( также есть запись беседы на эту тему, если вы хотите понять ее суть) . Как..