Сегодня перебирал старые файлы и нашел HTML архив подкаста “Канадского Лося и Со.” с первого русского подкаст-терминала Russian Podcasting (rpod.ru) – кто помнит те времена???

Сперва подумал стереть, но тут же передумал – какая память пропадает!?!?! Всем кому интересно, выкладываю 1.2 GB архив.


Жизнь – это игра, а в любой игре герой отправляется в путешествие, чтобы преодолеть трудности и победить финального босса. Последние 4 года я находился в таком путешествии, с само-назначенным квестом: тестирование кода.

Шаблоны тестирования в xUnit стала последней книгой для меня и иронично самой сложной. Эту книгу я отыскал на Амазоне и решил: «она большая и, наверное, содержит много материала, о котором я никогда не слышал». В реальности мой рационал не мог быть дальше от правды. Книга действительно содержит много информации и однозначно полезной, однако у книги есть несколько фундаментальных проблем, которые в совокупности сводят коэффициент полезного действия фактически к нулю. Но, пойдём по порядку.

Первая проблема – длина книги! Она слишком большая! Книгу стоило разбить на две отдельные книги: первые 300 страниц – все что нужно знать, вторые 500 страниц ещё раз и с глубокими примерами и добавочными мыслями. Если бы я писал книгу, то однозначно бы сжал ее до 350 страниц и на этом концерт был бы закончен.

Вторая проблема – механизм доставки! Все сухо, с определениями, повторами и со странной структурой. Автор жутко напоминает профессора, который готов бубнить что-то 3 часа подряд, не взирая на аудиторию или её отсутствие. В какой-то момент (после 350-ой страницы) я реально стал задумываться, если автору платят по количеству слов в книге. Я предположу одно: возможно когда книга такая длинная, то сложно следить за изложением мыслей и структурой. Однако пишут же хорошие и очень длинные книги по фантастике?!?!?

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

Четвёртая проблема – реклама! После половины книги можно легко догадаться, что автор является большим поклонником книги Мартина Фалера – Рефкторинг, на книге даже стоит печать от Мартина. Но как можно на протяжении всей книги вставлять рекламные отсылки: “и тут мы используем рефактор технику от Мартина… чтобы отрефакторить тест…”? Обычно в книгах упоминают и делают ссылки либо при первом использовании, либо в начале или конце книги. Однако делать это на протяжении всей книги и фактически в каждой главе, причем ссылаясь на одну и туже технику (по большинству) это уже бесстыдная пиар компания и уместно задать вопрос: а цель автора состоит в том, чтобы убедить читателя купить ещё одну книгу?

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

Финальные мысли: книга в принципе хорошая, однако советовать её всем не могу! Книга прийдется по вкусу тем кто уже знаком с темой и хочет по максимуму выжать все что можно. Однако давать её программистам для улучшения навыков, того не стоит! Есть куда более полезные книги: Разработка через тестирование по примерам и Искусство модульного тестирования с примерами C# не говоря о блогах и других ресурсах. Автор мог бы сделать шикарный материал, если бы убрал все выше описанные недостатки и сфокусировался на рецептах.

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

Итого:
+: Огромное количество информации по тестированию
-: Слишком длинная
-: Изложение довольно сухое
-: Много повторений и рекламы другой книги
-: Излишний фокус на фрейворки по тестированию ( которые уже устарели )
=: Книга для тех кто хочет выучить тему вдоль и поперек. Однако рекомендовать её программистам я бы не стал – слишком низкий возврат по инвестициям. Есть куда более полезные книги для практического применения, не говоря о блогах и других ресурсах!

Название: xUnit Test Patterns: Refactoring Test Code
Авторы: Gerard Meszaros
Обложки:


Preface:

About two and half years ago I purchased a used Fiskars StaySharp Max Reel Mower for $60. After an initial tune up I’ve been using it trouble free as the main (and only) mower for two and half seasons.

Getting saggy:

Recently I encountered an issue that I couldn’t imagine happening – saggy chain, manifested by chain falling off during use. In my infinite ignorance I believed that the chain is the ultimate power transferring mechanism which under normal loads would never fail. Unfortunately I was proven wrong suspiciously fast – about 2.5 years of use (without accounting for previous ownership).

After some quick research I figured only two things: there aren’t many people with the same issue and Fiskars does not sell replacement chains for their infamous StaySharp Max Reel Mower. Moreover, Fiskars doesn’t seem to sell any parts for the mower, in other words if anything wears out then you either buy a new mower or substitute with custom or “whatever fits” parts.

I decided to follow Scott Robinson’s path purchased bicycle chain and replaced it. The job is easy and straight forward, no issues there. However when I took apart the mover, I discovered worn teeth on both gears. In addition, new chain seemed to have similar amount of slack as old one. Honestly, I’m not sure how everything is going to work out, but for the time being, the new chain seems to do the trick.

Concluding rant:

This far I’m very happy with the mower. It is cheap, easy to use, easy to tune up and doesn’t require much attention. I adjust blade twice per season and mow grass once a week to keep it from overgrowing. However I’m fairly annoyed with the fact that Fiskars doesn’t sell replacement parts for StaySharp Max Reel Mower! Does it simply imply that the mower will never break? Or that the mower is disposable like a plastic bag? For me, neither is the case and so I’m ask: what the hell is Fiskars doing?

Download: StaySharp Max User Manual PDF