потому интерфейс и является чистой абстракцией: мы обозначаем и выносим видимые признаки через методы (поведение), обозначаем названием
при использовании интерфейсов мы прячем реализацию (инкапсуляция), мы можем реализовать абстракцию различным конкретным кодом (полиморфизм) в бесконечном множестве вариантов и можем абстрагировать общие черты (наследование интерфейса), вынося на уровень выше в др сущности
При наследовании поведения у нас есть наследвоание интерфейса, потому наследование как пример для разных штук приводить нужно аккуратно
Слава, если бы можно было ходить на войну и в случае проигрыша — снова попробовать повторно, то так бы все и делали, тк это лучший из способов обучения и возможности попробовать новые высоты
например 2 юзера видеохостинга для камер наблюдений охраны будет много генерировать нагрузки, тк постоянная нагрузка
если статьи отдавать, то можно и для 10 000 простенький сервер использовать, тк статьи отдаваться могут отдаваться кешами (в т.ч. серверными)
2 юзера ипотеки могут генерить много нагрузки: запросы во внешние сервисы по всем документам, верификациям, скоринга и прочее (все можно разнести в асинхронную работу, но все же профиль нагрузки большой)
Его поля соответствуют полям записей в БД и читаются обычным способом через репозиторий
У вас в джаве есть ORM Hibernate, возьмите ее
Она представляет дата-маппер, то есть вы пишите бизнес-объект, работаете с ним, а когда надо замаппить часть или все его поля — пишите маппинг (за счет конфигов/аннотаций)
ТАк вы докером или symfony cli пользуетесь?
Очевидно, что команды symfony cli выполняются там, где стоит cli
Команды к докер-контейнеру через docker-compose
там должен быть docker-compose или докер-файлы для развертки, скорее всего есть именно для дев-среды