2010-06-05 2 views
1

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

Как вы оцениваете эти соображения? Что привлекает вас больше всего, когда вы решите применить шаблон?

Интересно, сколько раз повторное использование кода (особенно для шаблонов MVP, MVC) было важно? Например, библиотека DAL часто делится между проектами (она многократно используется), но часто ли используются контроллеры/представления (абстрагированные через интерфейсы)?

ответ

0

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

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

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

Что касается демонстрационной способности ... ну ... клиент заинтересован в том, насколько хорошо приложение работает с точки зрения того, чего он хочет от него, а не с точки зрения того, насколько «круто» мой код. 'nuff сказал

3

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

А что касается reusablilty, то да, в ряде случаев, обычно что-то вроде: создать веб-страницу для сохранения/обновления какой-либо записи. Несколько месяцев спустя - нам нужно разоблачить это как услугу для третьей стороны, чтобы потреблять - если ваш код структурирован хорошо, это должно быть легким и низким риском, поскольку вы добавляете только новый интерфейс.

+0

Спасибо, добавлен ремонтируемый. –

1

Я надеюсь, что большинство людей используют шаблоны, чтобы научиться решать проблемы дизайна в определенном контексте. Все те нефункциональные реквизиты, которые вы упомянули, могут быть действительно важны в зависимости от потребностей заинтересованных сторон в проекте. Что касается MVC и т. Д., Это подразумевается не только для повторного использования между проектами, что часто бывает невозможным или хорошей идеей. Преимущества, которые вы получаете от MVC, должны быть важны в проекте, который вы используете в этой архитектуре. Вы можете самостоятельно изменять детали и модели, вы можете повторно использовать представления с контроллерами для разных моделей, вы должны иметь возможность изменять данные о сохранении, не влияя на ваши контроллеры и представления. Все это очень важно при разработке единого проекта.

1

«Повторное использование кода», как определено во многих книгах, является более или менее мифом. Постарайтесь больше сосредоточиться на удобном для чтения - простоте в обслуживании. Не начинайте с «повторного использования» в виду, будет лучше, если вы начнете сначала думать о тестируемости, а затем снова использовать что-то. Важно доставлять, тестировать, иметь чистый код, рефакторировать, не повторять себя и менее важно строить из исходных компонентов, которые могут быть повторно использованы между проектами. То, что должно быть повторно использовано, должно быть естественным процессом, более похожим на открытие: вы видите повторение, чтобы вы создали нечто, которое можно использовать повторно в этой конкретной ситуации.

Смежные вопросы