Вот как я это делаю:
Разделите задачу на несколько маленьких.(наброски на доске / листе бумаги)
Заставьте каждую часть работать.(реализация)
Имейте в виду, как другие части компонента получат к нему доступ.(доска)
Интеграция.(доска, реализация)
Каждый раз, когда вы это делаете, переписываете оба API, улучшая то, о чем вы не думали в части # 2.
Сделай так, чтобы все выглядело красиво.(доска, реализация)
Подумайте о скорости.(доска, реализация)
Примечание: Не нарушайте порядок
Если вы пытаетесь все оформить на бумаге, и на простой доске /лист бумаги не достаточно, тогда вы можете быть чрезмерно инженерным.Будьте осторожны с этим.
Если вы следуете этому шаблону, то вы, скорее всего, избежите как чрезмерного проектирования, так и неправильных проектных решений.