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 легко масштабирует эту часть системы.