0 2K

Выбор стратегии деплоя микросервисов

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

0 5.4K

Как правильно выбрать коллекцию в .NET?

.NET Framework содержит множество классов коллекций. Это может затруднить решение, когда какой использовать. Группировка их вместе на основе их свойств может значительно облегчить выбор для конкретного сценария. Именно это мы и сделаем в этой статье

0 7.8K

Принципы объектно-ориентированного проектирования

SOLID принципы:

  • The Single Responsibility Principle​ (SRP) — Принцип единственной обязанности У класса должна быть только одна причина для изменения.
  • The Open Closed Principle​ (OCP) — ​Принцип открытости/закрытости Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для модификации.
  • The Liskov Substitution Principle​ (LSP) — ​Принцип подстановки Лисков Должна быть возможность вместо базового типа подставить любой его подтип.
  • The Interface Segregation Principle​ (ISP) — ​Принцип разделения интерфейсов Клиенты не должны вынужденно зависеть от методов, которыми не пользуются. Интерфейсы принадлежат клиентам, а не иерархиям​
  • The Dependency Inversion Principle​ (DIP) — ​Принцип инверсии зависимости Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Другие принципы:

  • Release Equivalence Principle (REP) — ​Принцип эквивалентности повторного использования и выпуска Единица повторного использования равна единице выпуска.​
  • Сommon Closure Principle (CCP) — ​Принцип общей закрытости Все классы внутри пакета должны быть закрыты относительно изменений одного и того же вида. Изменение, затрагивающее пакет, должно затрагивать все классы в этом пакете и только в нем.​
  • Сommon Reuse Principle (CRP) — Принцип совместного повторного использования Все классы внутри компонента используются совместно. Если вы можете повторно использовать один класс, то можете использовать и все остальные.
  • Acyclic Dependencies Principle (ADP) — ​Принцип ацикличности зависимостей В графе зависимостей между пакетами не должно быть циклов.​
  • Stable Dependencies Principle (SDP) — ​Принцип устойчивых зависимостей Зависимости должны быть направлены в сторону устойчивости.
  • Stable Abstractions Principle (SAP) — ​Принцип устойчивых абстракций Пакет должен быть столь же абстрактным, сколь и устойчивым​