Вопросы

Меня всегда интересовал вопрос про UML-диаграммы. Например какие инструменты для этого есть, чем лучше выгружать из текущего кода диаграмму, есть ли инструменты для генерации кода по UML-диаграммам и т. п. Есть опыт работы с этим?
Подскажите, как часто вы в своей работе сталкиваетесь с потребностью в знании алгоритмов и структур данных в PHP? Если это действительно важная часть знаний PHP-разработчика уровня Middle, то что посоветуете в качестве обучения. Я нашел несколько популярных ресурсов, но они все без привязки к PHP:
У меня в работе крупный проект на Symfony. Состоит из двух частей, связанных общей БД и общими сущностями: веб-портал и корпоративный сайт. Правильно ли я понял, что для современной веб-разработки есть тренды в сторону смещения к сочетанию PHP-фреймворка с JS-фреймворком. Например, мне перспективнее создать один проект на основе API-Platform и привязаться к нему парой фронтедов на VueJS или AngulerJS. Или я не правильно всё понял и есть более умное решение?
Я заметил, что на моем одном проекте становится слишком много различий в конфигурациях. Например, сессии на деве в файлах, а на проде в базе данных, кеш на деве один, на проде другой, а на локалке третий. Подскажите библиотеку или "самурай уэй". Есть какое подобие dotenv или что нибудь вроде того?
Я хочу научиться TDD, разработке через тестирование. Возможно, пройти какой-то спецкурс или видеоуроки. Не подскажете, где такой курс найти?
Можно ли назвать ваш проект аукциона микросервисной архитектурой? Или это просто разделение? Что такое микросервис?
Могли бы порекомендовать пару проверенных пакетов, если сами пользовались, для двух нужд. Пагинация для среды SLIM + куски Symfony + Doctrine (ORM+DBAL) + TWIG. RBAC доступ на основе ролей. Нужно реализовывать ролевой доступ как для сотрудников, так и для клиентов (пользователей приложения) с множеством типов привилегий для ролей: финансовые привилегии, доступ к элементам интерфейсов...
Как начать изучать программирование на PHP с нуля? Что стоит почитать? Или есть какие-то хорошие источники или курсы по основам программирования на PHP? Нужно ли что-то изучить до начала программирования? Было бы круто, если был бы какой-то список от начала обучения и до его конца.
Почему в языке Go авторы не добавили выбрасывание исключений, как сделано в Java и PHP?
Почему все не любят геттеры и сеттеры? Что в них плохого?
Нужны ли статические методы? Когда их применение оправдано?
Какие основные фреймворки для JavaScript и для PHP? Чем они различаются?
Что посоветуете по автоматизированному тестированию?
Посоветуйте хороший материал про DDD, TDD, BDD?
Что это такое за REST? Является ли им GraphQL или gRPC?