Подтвердить что ты не робот

Что должно быть на первом месте - шаблон дизайна или код?

Я начинаю новый новый проект - должен ли я смотреть на свою спецификацию и решать, какие шаблоны дизайна применять, или просто придумать общую идею организации и позволить шаблонам органично появляться через рефакторинг?

В вашем опыте, какой метод будет наиболее продуктивным и иметь больший шанс привести к чистому элегантному коду?

Мне также интересно, существуют ли шаблоны дизайна, которые не определены GoF, но могут быть столь же ценными? Если да, то какие полезные ресурсы для информирования о них?

4b9b3361

Ответ 1

Вы должны органично вырастить свой код, применяя шаблоны по мере их соответствия. Совпадение с шаблонами слишком рано может привести к большому количеству неподходящего кода и так много слоев абстракции, что дизайн становится запутанным. Свидетель любого кода, который вы видели, который был написан сразу после того, как кто-то впервые обнаружил шаблоны, -)

Ответ 2

Если шаблон явно не выпрыгнет из спецификации, я бы не стал пытаться выбрать что-то из GoF и забить проблему до тех пор, пока она не будет соответствовать шаблону.

Лучше концептуально понять различные уровни абстракции в вашей голове и придумать план (не обязательно популярный шаблон дизайна) для того, как вы его реализуете. Это то, с чем вы лучше справитесь. Зная шаблоны GoF, вы сможете улучшить свою способность думать о проблемах с точки зрения разработки кода, они не должны быть решениями для каждой проблемы и искусственно заставлять вашу проблему вписываться в шаблон проектирования, может означать ненужное усложнение и обфускацию.

Ответ 3

  • Изложите примеры использования.
  • Подумайте о дизайне, просматривающем весь существующий шаблон дизайна.
  • Начать реализацию.

Я считаю, что главная цель здесь - не изобретать колесо.

PS. После того, как вы пройдете второй шаг несколько раз и привыкнете к нему, вы сможете интегрировать этот шаг в шаг 3.

Ответ 4

Если я никогда не сомневаюсь, я просто начинаю писать код. Слишком долго структура начнет просить о некоторых рефакторингах, и выбор почти всегда очевиден.

Хотя меня иногда вдохновляет определенный шаблон, он почти всегда содержит код, который показывает мне правильный путь.

Я также не боюсь сжечь и перестроить части программы. Там цитата мне очень нравится от Скотта Адамса: "Творчество позволяет себе ошибаться, искусство знает, какие из них сохранить". Иногда правильный ответ не очевиден, пока вы не попробуете его неправильно.

Ответ 5

Я бы держался подальше от вашего кодирования слишком сильно, используя первоначальный дизайн шаблонов. Лучше всего просто сделать простой код и при необходимости реорганизовать шаблон дизайна, который лучше всего отражает ваши требования.

Ответ 6

Вы должны вырастить свой код органично, применяя шаблоны по мере их соответствия.

Откомандирован! Некоторые из худших спагетти, которые я видел, это OO С++ с множеством шаблонов. Fluxbox едва переносится; Синергия (v2) кипит, жарит и печет мою лапшу: (

И некоторые из самых красивых кодов, которые я видел, это OO C, где OO был двумя интерфейсами плюс 4 и 20 реализаций соответственно.

Ответ 7

Вы должны понять, какие шаблоны будут соответствовать этой проблеме, прежде чем начинать кодирование. Если нет, сделайте прототип, чтобы понять, чего вы хотите достичь. Затем найдите шаблоны и отбросьте (структуру) прототипа (и повторно используйте хорошие бит).

Ответ 8

Хороший совет здесь уже. Чтобы ответить на вопрос о полезных шаблонах, кроме книги GoF. Есть, вы должны проверить Larman Применение UML и Patterns, где он описывает шаблоны GRASP.