Различия между архитектурой Monolithi c и SOA - PullRequest
1 голос
/ 06 января 2020

Я перепутал различия этих двух архитектур.

Как правило, Monolithic Architecture относится к различным компонентам приложения, объединяемым в единый бизнес-лог c.
И, Service Oriented Architecture относится к приложению, состоящему из дискретных и слабосвязанных программных агентов, которые выполнить требуемую функцию.

Но я узнал, OOP и цель шаблона проектирования «Одна функция должна иметь одну ответственность» и «Уменьшение зависимостей для увеличения повторного использования функции».

Поэтому мой вопрос:
1. Следуют ли монолитной c архитектуре OOP?
2. Различия между этими двумя архитектурами.

1 Ответ

1 голос
/ 06 января 2020

1. Архитектура монолита c следует OOP?

Хорошие делают. Да. Было бы еще больше беспорядка в коде спагетти, если бы он был процедурным или намного сложнее написать, если бы он был функциональным. Во всех профессиональных компаниях, в которых я работал, все они имели OOP и интегрированные среды, такие как MVP. В моем опыте поддержки компаний с проблемными продуктами, они имели тенденцию быть беспорядком. На самом деле, мало повторного использования, если для масштабирования нужен всего один 1 МБ, единственный способ сделать это - масштабировать все 100 МБ решения.

2. Различия между этими двумя архитектурами.

Сервис-ориентированная архитектура IMO рассматривает каждую функцию как API, свою сервис-ориентированную. В объектно-ориентированном программировании есть несколько арендаторов: Polymorphi c, Resuable, Encapsulated (и Abstract) , это стиль программирования, почти противоположный процедурному программированию et c.

Когда вы разрабатываете службу, скажем, приложение Weather, которое сообщает temp, а также делает прогнозы. Вы захотите иметь абстрактный обобщенный класс c Weather, сделать так, чтобы он поддерживал реализации по Цельсию и Фаренгейту, и вы можете получить некоторый полиморфизм, или, возможно, добавить интерфейс для поддержки различных местоположений или высот и использовать действительно обобщенную c функцию имена, которые звучат абстрактно, как GetTemp (с перегрузкой функций по City, State, Altitude), чтобы инкапсулировать их в класс Weather.

Так что здесь вы создаете его с учетом ориентации на обслуживание и solid OOP Assembly.

«Одна функция должна иметь одну ответственность» и «Уменьшить зависимости, чтобы увеличить повторное использование функции».

Для второй службы, чтобы предсказать временную температуру, которая будет сделайте некоторые вычисления и найдите время для вычисления, поэтому мы захотим изолировать его, чтобы мы могли масштабировать его независимо. Вы можете сделать это, используя другой проект, и вместо того, чтобы ссылаться друг на друга, вы используете технологию обмена сообщениями (SQS, RabbitMQ и т. Д. c), поэтому они слабо связаны.

Примечание. Мы можем просто кэшировать данные c В другом проекте GetTemp легко масштабирует эту часть системы.

...