среда, 2 апреля 2008 г.
Антипаттерн: Менеджер - пересылальщик писем
Плохой менеджер, когда видит письмо в своем почтовом ящике, по ключевым словам догадывается, кто может за него отвечать и экономя свое время, пересылает письмо.
Хороший же менеджер думает над каждым пришедшим ему письмом, и старается не просто найти ответственного, который может на письмо отреагировать, но и внести какой-то свой вклад, оптимизируя загрузку остальной команды. Например, если заказчик прислал письмо с описанием ошибки, он не пересылает его тестеру со словами "заведи баг", а сам заводит этот баг в системе контроля ошибок.
воскресенье, 30 марта 2008 г.
Антипаттерны Test Driven Development
"Лжец (The Liar). Тест, который успешно проходит во всех случаях. Однако при ближайшем рассмотрении оказывается, что фактически ничего не тестирует
.Попробуй запусти! (Excessive Setup). Тест, который требует сложной и длительной настройки тестового окружения перед запуском. Иногда тест содержит сотни строк кода, подготавливающие необходимые условия для запуска одного теста. В результате очень сложно разобраться действительно тест не прошел, либо что-то случилось с настройками...."
http://stump-workshop.blogspot.com/2008/01/tdd-anti-patterns.html
четверг, 19 июля 2007 г.
Антипаттерны "God Object" и "Big Hairy Object"
God Object
Wikipedia: http://en.wikipedia.org/wiki/God_object
“God Object” – это объект, который знает слишком много или делает слишком много.
Программисты создают Объект-Бога, когда не могут (не хотят) нормально провести объектно-ориентированную композицию. Объекта-Бога невозможно покрыть юнит-тестами, потому что у него огромное количество состояний и «завязок» на внешние сущности. Нельзя проверить какой-то один аспект его функциональности, потому что они намертво связаны с остальными.
В результате, однажды никто не сможет понять, как работает такой объект. Попытки дописать в него новый функционал приведут к лавине багов в старом коде, попытки их починить приведут к новым багам.
Решение – покрывать юнит-тестами по чуть-чуть и делать рефакторинг. Желательно использовать для этого автоматизированные средства, такие как JetBrains ReSharper.
Big Hairy Object
Wikipedia: http://en.wikipedia.org/wiki/Big_Hairy_Object
Почти то же самое, но с огромным числом свойств и методов, напиханных «абы как», безструктурно.
См также:
Другие антипаттерны: http://en.wikipedia.org/wiki/Anti-pattern
