metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-09-25 12:17 pm

О TDD, ретроградстве и варении в собственном соку

По мотивам предыдущего поста про taucraft: решарпер там или не решарпер, но Test-Driven-Development штука (вроде бы) объективно полезная.

При этом я почти уверен, что я TDD не использую, т.к. уже 15 лет занимаюсь всякой хренью в экстренном темпе, тесты у меня все заключаются в "проверить 10 раз чтобы миграция 30 Гб БД прошла успешно" и "отчетность видна от имени пользователя, который ей будет пользоваться".

Правильность же реализации/рефакторинга/замены всего с нуля проверяется за счет двойной записи бухгалтерии, наличия нескольких путей расчета одной и той же цифры и статических гарантий (т.е., например, я никогда не стану делать отчет отдельными запросами по списку аналитических кодов, если его можно сделать одним select/group by, при этом в него нужная аналитика попадет гарантированно). Плюс функциональщина, статические типы, кодогенерация - ну невозможно ошибится в коде, если у тебя источник информации для кода всегда один. А ошибки вида "не так спроектировали" - тестами не лечатся.

Еще я не использую разного рода современные инструменты, версии студии меняю через 2-3 года после их выхода, склонен использовать самодельные компоненты вместо готовых и вообще страдаю ретроградством.

Проблема в том, что у меня совершенно нет критериев оценки, где я прав и пропускаю ненужные buzz-words мимо ушей, а где не прав, и упускаю полезные инструменты. Потому что на всех работах инструменты/платформы/методики работы выбираю я и обсудить этот выбор на адекватном уровне не с кем.
Раньше хотя бы был вменяемый критерий "успеем проект сдать вовремя или не сделаем вообще", а сейчас и он смысл потерял - это вообще перестало зависеть от используемых технологий, а стало зависеть от наличия бабла у клиентов и правильной организации труда.

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

[identity profile] metaclass.livejournal.com 2012-09-25 09:35 am (UTC)(link)
Хм, у меня ни одно из условий не выполнено, за исключением последнего, разве что.

[identity profile] raydac.livejournal.com 2012-09-25 09:38 am (UTC)(link)
тогда лучше и не суйся в TDD, я активно практиковал TDD (и даж семинар посещал с мастер-классом в финке по данному вопросу), но это все было под работодателем который требовал "время неглавное, главное - качество". баблища же у работодателя было тоже много, так что можно было неделю писать тесты и три дня функционал.. в РБ и РФ за такое с какашками съедят

[identity profile] raydac.livejournal.com 2012-09-25 09:43 am (UTC)(link)
p.s.
там же кстати видел людей которые работают по данной схеме уже не первый год и всю жизть считай рабочую провели у энтого работодателя, они отнеслись с недоверием когда я сказал, что вообще то в других местах за TDD и парное программирование вас изнасилуют, колесуют и уволят, так как для работодателя это будет равносильно удвоению себестоимости проекта удвоению его сроков и всю маржу к черту снесут вобщем посреднику и на откатах люди потеряют а они в РФ ого-го, полпроекта считай по деньгам... не.. это антироссийская практика