Курс The Software Architect Mindset обучает основам архитектуры программного обеспечения и предоставляет практические советы по созданию софтверных продуктов, которые готовы к масштабированию и стабильной работе в условиях высокой нагрузки.
Вы - начинающий или разработчик среднего уровня, уже владеющий навыками программирования, но не имеющий чёткого пошагового плана для превращения прототипа в работающую масштабируемую систему, доступную пользователям.
Создание сложной системы требует не только написания чистого и поддерживаемого кода, но и понимания следующих аспектов:
- Какие API и сервисы использовать для взаимодействия,
- Как организовать компоненты системы на уровне архитектуры,
- Как безопасно хранить и управлять доступом к данным,
- Где размещать приложение и какие облачные ресурсы для этого нужны.
Большинство ресурсов в интернете предлагают только часть решения, оставляя вам остальную головоломку. Либо они слишком специфичны и не подходят для вашего случая. Технологии облаков постоянно развиваются, и вы можете не заметить, что решение устарело, пока не столкнетесь с проблемами при его реализации.
В итоге вы погружаетесь в бесконечное листание Википедии и обсуждений на StackOverflow. Даже ChatGPT может не помочь, так как советы часто обобщенные, и вы не знаете, какие вопросы задать.
Неправильные архитектурные решения в начале часто приводят к разрушительным последствиям. Программное обеспечение не работает плавно, пользовательский опыт ухудшается, масштабирование становится сложным, а поддержка - настоящим кошмаром. Более того, вы, скорее всего, переплачиваете за ненужные облачные ресурсы, что быстро становится дорогим. Исправление этих проблем позже требует много времени.
Мне действительно грустно слышать такие истории, потому что архитектура программного обеспечения не обязательно должна быть сложной. Если вы знаете, как заложить прочный фундамент и следовать основным лучшим практикам, вы сделаете гораздо более удачные решения и избежите большинства подводных камней. Как только у вас появится это понимание и вы будете знать, на что обращать внимание при создании приложения, это сэкономит вам и вашим коллегам много времени и денег.
Я создал множество программных продуктов с нуля, и каждый раз это был огромный процесс обучения. Теперь у меня есть стандартный подход к созданию софтверных продуктов, который помогает сократить время разработки, фокусируется на упрощении процессов, использует минимальное количество облачных ресурсов и масштабируется только тогда, когда это имеет смысл и является экономически эффективным.
Большинство курсов являются теоретическими и рассматривают концепции на высоком уровне, не предоставляя практического пути для того, чтобы действительно запустить ваше ПО. Я не утверждаю, что курсы по архитектуре не должны охватывать теорию. Однако, на мой взгляд, идеальный курс по архитектуре программного обеспечения должен:
- Показывать процесс от начала до конца.
- Предоставлять примеры кода и настройки для использования в ваших проектах.
- Продвигать лучшие практики в проектировании и архитектуре ПО.
- Помогать легко принимать оптимальные архитектурные решения.
ПРЕДСТАВЛЯЕМ THE SOFTWARE ARCHITECT MINDSET
Этот курс включает заранее записанные, компактные видео, которые научат вас всему, что нужно знать о проектировании архитектуры ПО. Курс также содержит упражнения, викторины, челленджи и загружаемые материалы. Видео созданы по высоким стандартам канала ArjanCodes на YouTube.
Курс практичен и способен изменить ваш подход. В его основе - полностью готовая к использованию SaaS-платформа, которая рассматривается как пример на протяжении всего курса.
Вам предоставляется доступ к:
- Полному исходному коду бэкенда на Python и фронтенда на TypeScript
- Скриптам и настройкам DevOps
- Полным реализациям различных механизмов аутентификации и управления доступом на основе ролей
- Примерам подключения к общим сервисам, таким как сервис отправки электронной почты и базы данных
- Пошаговому обзору того, как мы создавали продукт и почему выбрали такой подход.
Эту платформу можно использовать как основу для ваших проектов, что сэкономит вам недели или даже месяцы разработки.
При разработке такой платформы возникает множество архитектурных вызовов:
- Поскольку платформа является веб-ориентированной, вам нужны как фронтенд, так и бэкенд-сервисы. Это означает необходимость выбора технологий для каждого сервиса и определения того, как они будут взаимодействовать, будут ли они монолитами или микросервисами, и т.д.
- Бэкенд должен интегрироваться с другими сервисами, такими как база данных и сервис отправки электронной почты, при этом сохраняя возможность лёгкого тестирования.
- Платформа нуждается в механизме аутентификации и управления доступом, чтобы пользователи могли безопасно с ней взаимодействовать.
- Облачная архитектура должна быть легко управляемой при масштабировании платформы, оставаясь при этом экономически эффективной.
Моя команда не только справилась с этими вызовами, но и пошла дальше:
- Мы использовали комбинацию Python/FastAPI для бэкенда и Typescript/React для фронтенда, чтобы продемонстрировать возможности каждой технологии. Платформа рассматривается в нескольких видео курса в качестве примера, и мы добавили видео, посвящённые объяснению дизайнерских решений этой платформы.
- Мы сделали так, чтобы компоненты и сервисы, такие как сервис отправки электронной почты и база данных, можно было легко заменить, используя абстракцию, внедрение зависимостей и другие лучшие практики проектирования ПО.
- Мы реализовали не один механизм аутентификации, а целых три, которые можно легко поменять, чтобы увидеть, как работает каждый из них.
- Мы тщательно продумали облачную архитектуру, чтобы она была как масштабируемой, так и экономичной, рассматривая различные варианты, такие как серверлес-функции, управляемые контейнеры и полноценный Kubernetes кластер. Курс включает глубокое обсуждение всех этих вариантов, их плюсов и минусов.
На разработку этой платформы наша команда потратила несколько месяцев полной занятости, и вы получите всё это, приобретая курс.