Еще про тесты

Oct 28, 2011 09:27

Кевлин Хенни как-то привел хорошую аналогию. Он спросил у группы программистов на его докладе: "Зачем автомобилю тормоза?" И, выслушав идентичные ответы "Чтобы можно было резко остановиться", отрицательно покачал головой ( Read more... )

Leave a comment

kouzdra October 28 2011, 08:16:24 UTC
У TDD заморочка другая - помимо тестов есть масса других способов увеличения надежжности кода - основные - инварианта (assert-assert) и более или менее грамотное использование статического типового контроля - инкапсуляции etc.

Так вот по моим наблюдениям адепты TDD очень часто полагают, что тормоза придумали трусы - что ничего кроме unit-tests не надо.

Reply

object October 28 2011, 08:21:57 UTC
"Так вот по моим наблюдениям адепты TDD очень часто полагают, что тормоза придумали трусы - что ничего кроме unit-tests не надо."

Цитаты из адептов, которым ничего другого не надо?

Reply

kouzdra October 28 2011, 08:29:59 UTC
Это из наблюдений за знакомыми TDD-поклонниками.

Reply

object October 28 2011, 08:33:23 UTC
Я так и думал.

Reply

kouzdra October 28 2011, 08:41:03 UTC
Так а это именно то, за что я не перевариваю крикливый джобс-стайл - продажа "средства от всех болезней" - "Структурное програмирование!!!!"/"Структрное программирование - шит. Обектное программирование!!!!"/"Агильное программирование!!!!"/"Unit Tests решатт все ваши проблемы!!!!"/"Паттерны!!!!!"/"Вы все делали не правильно - думать не надо - Test Driven Development!!!!"

А потом с жертвами всей этой маркетологии "патентованных серебрянных пуль" жить.

С некоторым ужасом жду того же про "Функциональное программирование".

Reply

object October 28 2011, 08:53:29 UTC
Ну если кто-то видит и рекламирует одни шашечки, это еще не означает, что никто никуда не едет.

Reply

kouzdra October 28 2011, 08:59:52 UTC
Смотря что - например все вышеперечисленное на мой взгляд именно что никуда не едете. Для меня маркером туфты является "парадигма" и "методология". При том что идеи могут быть сами по себе весьма полезными.

Reply

kouzdra October 28 2011, 09:01:13 UTC
Кстати - большинство знакомы мне адептов TDD очень не любили и "обыкновенные" (не unit) тесты

Reply

bydl0coder October 28 2011, 20:31:00 UTC
Все известные мне адепты TDD гоняют тесты в тестовом окружении, когда изолировать все от всего не имеет смысла. А так-то русский народ короче сформулировал: "сдуру можно и хуй сломать".

Reply

kouzdra October 28 2011, 09:11:47 UTC
PPS: Еще у меня есть опыт(и даже отработанный спич) по объяснению с-шным-юниксовым чем собственно хороша идея/эклипс - потому как они видят там рекламный hype c buzzwords про рефакторинги, quickfixes - воспринимают как подсказки для идиотов, которые сами не могу понять на что тут ругается компилятор etc - и дропают ее с диагнозом - "это для чайников".

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

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

Reply

object October 28 2011, 09:19:47 UTC
Если вы в этом не видите смысла и прекрасно управляетесь без этого, то вы, конечно, правы. Мне представляется странным то упорство, с которым вы объясняете тем, кто считает, что стал работать более продуктивно, что они не правы. В конце концов не существует единственно верной методологии.

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

Reply

kouzdra October 28 2011, 09:28:29 UTC
Да я и так прекрасно понимаю почему не работало (кстати экстремальные программисты свой главный рекламный проект провалили с треском - что адепты XP предпочитают не замечать). Именно потому что нашли не полезные дополнительные меры по повышению надежности, а единственно верную технлогию,о отменяющую все остальное.

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

На что ответ в идеологии TDD - "у нас нет user case на эту тему - будет - тогда и будем смотреть". Потом естественно есть user case (бо как я уже говорю - тема вполне заезженная). К этому моменту у них уже код представляет собой несопровождаемую кучу дерьма и хаков под предыдущие user cases (или - еще более тяжелый случай - очень изящное, но не поддающееся переделке именно в силу изящества) и...

Reply

object October 28 2011, 09:40:03 UTC
Разумеется, если у ваших знакомых в итоге ничего не получается, то значит это все не для них.

Reply

kouzdra October 28 2011, 09:54:19 UTC
Так не только у них не получается - экстремальщиков я же не зря привел - фэйл же был прилюдный. Что до вас -пока вы занимаетесь просто там внедрение ant/make или чего еще там, continuous builds,каких-то тестов и вообще - внедрением инструментов - я всецело за. А вот как только прозвучит что-то про @@est driven development"/"User stories" и проч. - буду ждать проблем.

Reply

object October 28 2011, 10:01:38 UTC
Я как раз на этой неделе делал доклад на семинаре "BDD and Eexcutable Specifications". Вместе с Гойко Аджичем, который книгу на эту тему написал. И уже год как общаюсь в большом проекте с экспертами через user stories и язык Геркин (Given/When/Then). Ни я, ни эксперты не можем себе представить, как бы нам удалось так эффективно работать без этого.

Проект подходит к концу (по крайней мере главная фаза), так что проблем уже не дождаться.

Но да, я знаю, что кому-нибудь приспичит рассказать мне, что мы все делали не так. Это обычное дело.

Reply

kouzdra October 28 2011, 10:04:18 UTC
Без чего "без этого" - без маркетинговых buzzwords?

Reply


Leave a comment

Up