Шаблоны
проектирования в том смысле, что это
software design patterns.
Как правильно
замечено, design patterns облегчают общение
программистов — вместо того, чтобы
долго объяснять «берем вон ту загогулину
и пихаем ее в эту заковырину», достаточно
сказать нечто типа «а тут мы применим
шаблон делегирования», и тебя поймут.
И что немаловажно, поймут правильно.
С другой
стороны, изучение шаблонов проектирования
позволяет получить представление о
best practices при решении разных программерских
задачек. Нет нужды изобретать велосипеды
— все уже изобретено, причем неоднократно
:)
Лично я полагаю,
что design patterns это обоюдоострое оружие.
Можно легко пораниться. Посмотрите, к
примеру, на Zope. Сделано как в лучших
домах — по всем правилам и паттернам.
С точки зрения надежности, применимости
и расширяемости — все прекрасно.
Архитектура на ять. Но каково человекам,
которые пытаются разобраться в этом
хитровыебанном сплетении миллионов
интерфейсов, адаптеров, утилит и прочих
сервисов? Инструмент прекрасен,
архитектура бесподобна, но никто не
пользуется, ибо проще сделать что-то
свое, с блекджеком и шлюхами, чем
разобраться в том, как правильно
использовать Zope.
Или вот,
замечено, что некоторые шаблоны просто
не нужны, если использовать правильный
язык программирования:
Peter Norvig
demonstrates that 16 out of the 23 patterns in the Design Patterns
book (that is primarily focused on C++) are simplified or eliminated
(via direct language support) in Lisp or Dylan.
Тем не менее,
design patterns необходимо изучать и применять
на практике.
Поэтому — вот
нам, питонистам, набор ресурсов для
изучения:
Коллекция
модулей Python с шаблонной реализацией
шаблонов (хаха) https://github.com/faif/python-patterns
Несколько
более структурированная коллекция
модулей Python, человек книгу пишет
https://bitbucket.org/davidcorne/design-patterns-in-python/src
И набор
блогостатей от автора
http://davidcorne.com/category/design-patterns-in-python/
Ну и введение
в тему http://ru.wikipedia.org/wiki/Шаблон_проектирования
original post http://vasnake.blogspot.ru/2014/04/blog-post_10.html
Комментариев нет:
Отправить комментарий