Продвинутый курс по проектированию ПО — это глубокая практическая программа, которая помогает разработчикам освоить системное мышление, улучшить архитектуру кода и научиться проектировать программные системы, устойчивые к росту сложности. Курс подходит тем, кто хочет повысить качество дизайна ПО, понимать структуру кода на уровне принципов и рефакторить эффективно и осознанно.
Что вы изучите в курсе
Программа состоит из шести модулей, каждый из которых раскрывает важный аспект проектирования ПО: от логики и структуры состояний до модульности, рефакторинга и долговечности кода. Материал ориентирован на разработчиков, которые стремятся писать понятные, расширяемые и надёжные системы.
Unit 1 · Скрытый уровень логики
Этот модуль помогает увидеть разницу между проектированием и реализацией, научиться выявлять скрытую сложность и использовать формальные методы для оценки корректности кода.
Почему дизайн отличается от реализации и как это влияет на надёжность.
Как корректный на вид код может скрывать ошибки.
Почему простота в коде иногда иллюзорна.
Использование троек Хоара для формализации логики.
Unit 2 · Принцип встроенного проектирования
Вы узнаете, как проектировать систему так, чтобы структура кода следовала дизайну автоматически, минимизируя скрытые связи.
Как проектная документация может задавать структуру кода.
Способы фиксации дизайна в реализации.
Выявление и устранение скрытых зависимостей.
Unit 3 · Представимые и допустимые состояния
Модуль посвящён проектированию структур данных и API так, чтобы неправильные состояния были невозможны.
Ограничение пространства состояний программы.
Создание API, которые невозможно использовать некорректно.
Разработка надёжного кода без избыточных проверок.
Unit 4 · Принцип данных поверх кода
Фундаментальный подход, который помогает строить модульные системы за счёт фокусировки на структуре данных, а не исполнении.
Секрет Парнаса и скрытие информации.
Как улучшить модульность и расширяемость.
Почему ориентация на данные делает код чище.
Использование принципа для понимания сложных систем.
Unit 5 · Алгебраический рефакторинг
Вы научитесь использовать алгебраические законы для упрощения и преобразования кода, находя эквивалентные, но более выразительные конструкции.
Суммы и произведения типов данных как базовые элементы.
Большинство рефакторингов как следствия нескольких правил.
Сравнение рефакторинга с алгебраическим разложением.
Unit 6 · Долговечность кода
Заключительный модуль посвящён тому, как писать код, который будет устойчив к изменениям и росту требований.
Изоляция предположений в коде.
Применение принципа подстановки Лисков.
Использование теории подтипов для контроля роста сложности.
Кому подойдёт этот курс
Разработчикам среднего и продвинутого уровня.
Тем, кто стремится улучшить архитектурное мышление.
Тем, кто хочет писать более надёжный и предсказуемый код.
Инженерам, работающим над сложными проектами и системами.
Какие навыки вы получите
Глубокое понимание принципов проектирования ПО.
Умение выявлять и устранять скрытую сложность.
Навыки рефакторинга, основанные на формальных принципах.
Создание архитектуры, устойчивой к изменениям.
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
Джимми Коппел - компьютерный ученый и серийный предприниматель, чьи исследования были представлены в New York Times. В 20 лет он окончил Университет Карнеги-Меллона с двумя дипломами, стал лауреатом стипендии Тиля и позже получил степень доктора философии в области языков программирования в MIT.Через свою компанию Mirdin Джимми обучил более 400 инженеров программного обеспечения на продвинутом уровне. Его блог по проектированию программного обесп
Mirdin - это онлайн-платформа для продвинутого обучения, которая ускоряет развитие программистов, моделируя годы опыта и ошибок проектирования всего за несколько часов. Основанная Джимми Коппелом и Нильсом Эрикссоном, Mirdin предлагает практическое обучение по проектированию программного обеспечения, программированию и MLOps для инженеров продвинутого уровня.
Нильс прошел путь от младшего разработчика до ведущего инженера всего за три года. Он стал техническим лидером основной команды веб-платформы Discovery Networks и участвовал в разработке таких продуктов, как Discovery+, которым сейчас пользуются миллионы людей по всему миру. В 2020 году Нильс услышал подкаст с участием Джимми Коппела и решил пройти его курс. Его успехи были настолько впечатляющими, что Джимми лично пригласил Нильса стать его бизн
hi, it said it has 120 hours of video. Kindly check on this admin. Thank you
CourseHunter Team ...
It's hasn't. Here is all author uploaded
... CourseHunter Team
Thanks for letting me know. It is a very great course for sure
CourseHunter Team ...
You are welcome
Umaru
I didn't pay for this and I feel scammed.
suitcase5935 Umaru
How come? I didn't get much farther than lesson 7, but I feel those have at least some value. I wouldn't pay the massive amount of money they demand, but its not complete garbage...
However, I am very open to better courses on the topic of software design that you can recommend :) Its an area I am weak in.
dyowee
Thank you admin.
suitcase5935
Coursehunters Team, does this include their Bonus Exercises for the course? https://self-service.mirdin.com/offers/FmNZEL2o/checkout If not, will you consider adding it?
CourseHunter Team suitcase5935
Since we are working on adding the entire course, this bonus should be included as well.
Anonymous CourseHunter Team
They are not included right now
CourseHunter Team Anonymous
We added all material author provided
Anonymous CourseHunter Team
No, you didn't. Those materials are missing: https://self-service.mirdin.com/offers/FmNZEL2o/checkout
suitcase5935
Interesting course - I believe this is exactly the kind of course I was lacking. One that explains in practical terms how to design, navigate, and work in codebases... I will go through it all and then report back again here if I manage to finish it, on my opinion of it...
In the mean time, are there any similar software design courses that help in understanding and working with larger codebases?
However, I am very open to better courses on the topic of software design that you can recommend :) Its an area I am weak in.
If not, will you consider adding it?
In the mean time, are there any similar software design courses that help in understanding and working with larger codebases?