Продвинутый курс по проектированию ПО - это программа с 6 основными блоками, направленная на улучшение навыков проектирования программного обеспечения. Курс охватывает принципы логики, проектирования структур данных, управление состоянием, модульность и устранение ошибок. Студенты проходят рефакторинг кода, учатся избегать скрытых связей и эффективно решать задачи дизайна программных систем.
Описание курса
Unit 1 | Скрытый уровень логики
Откройте для себя ключевую разницу между проектированием и реализацией в нашем первом модуле. Освойте тройки Хоара, чтобы разобраться в сложности кода и заложить основу для мастерства в разработке программного обеспечения.
Почему проектирование принципиально отличается от реализации и что это значит для создания надежного кода.
Как код, который никогда не терпит сбоев, может всё же содержать ошибки.
Понимание того, что код, выглядящий простым, может быть сложным, и как избежать написания уязвимого кода.
Тройки Хоара - простой способ спецификации, позволяющий увидеть сложность так же наглядно, как и сам код.
Unit 2 | Принцип встроенного проектирования
Погрузитесь в самый глубокий и далеко идущий принцип. Как зафиксировать дизайн программы непосредственно в её коде?
Понимание того, что код может быть механически выведен из проектной документации, и как этот взгляд упрощает системное проектирование.
Использование принципа встроенного проектирования для лучшей структуризации кода.
Понимание наиболее общих форм связей между частями кода. Как находить и устранять скрытые связи, предотвращая превращение простых задач в сложные.
Unit 3 | Принцип представимых и допустимых состояний
Научитесь ограничивать состояния программы так, чтобы только допустимые состояния могли быть представлены.
Понимание того, как разделить пространство состояний программы и уменьшить вероятность сбоев.
Проектирование структур данных и интерфейсов API, которые невозможно использовать неправильно.
Разработка кода без проверок ошибок, который при этом надёжнее самого «защитного» подхода.
Unit 4 | Принцип данных поверх кода
Узнайте, как подход, при котором внимание сосредоточено на структурах данных, способствует лучшей модульности и скрытию информации.
Секрет Парнаса по сокрытию информации, который используется уже более 40 лет.
Как использование принципа скрытия информации делает код более модульным и удобным для расширения.
Организация программы вокруг структур данных для повышения её чистоты и читаемости.
Как экстремальное применение этого принципа позволяет быстрее понимать сложные системы.
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.
rawstyle
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.
rawstyle
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
rawstyle
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
rawstyle
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?