Толстые классы и проектирование ошибок в Software Design Studio
Джон Аутерхаут делится опытом курса Software Design Studio, где студенты учатся декомпозиции задач и проектным решениям через итеративную разработку и код-ревью. Главные принципы: классы должны быть толстыми (маленький интерфейс, много функциональности), а ошибки нужно проектировать так, чтобы они не возникали. Курс трудоемкий, но помогает студентам задуматься о сложности как о дизайн-проблеме.
Джон Аутерхаут делится опытом курса Software Design Studio, где студенты учатся декомпозиции задач и проектным решениям через итеративную разработку и код-ревью. Главные принципы: классы должны быть толстыми (маленький интерфейс, много функциональности), а ошибки нужно проектировать так, чтобы они не возникали. Курс трудоемкий, но помогает студентам задуматься о сложности как о дизайн-проблеме.
Идеи о декомпозиции и управлении сложностью применимы при проектировании оркестрации моделей: стремитесь к простым интерфейсам, скрывающим сложность, и избегайте избыточных абстракций. Принцип 'определяйте ошибки из существования' помогает строить устойчивые пайплайны, где сбои обрабатываются на ранних стадиях, а не плодятся исключения.