Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDD - 10 години по-късно

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

TDD - 10 години по-късно

Опит за по-дълбок и философски анализ на това, което ми е дало TDD.

Avatar for Hristo Deshev

Hristo Deshev

November 30, 2013

Other Decks in Programming

Transcript

  1. За мен • TDD-ист (TDD-аст ☺) от над 10 години.

    • Практикувал и сам и в различни по големина екипи и проекти. • … и официално и партизански. • Обучавал и зарибявал с TDD формално и неформално.
  2. Какво ми дава TDD? • Superpowers! – Качество – Гъвкавост

    – Смелост – Спокойствие – Професионално и личностно развитие
  3. Професионално развитие • Управление на сложността на системата • Абстракция

    • Дедупликaция • dependency management. Нещата, за които ние програмистите трябва да мислим.
  4. Личностно развитие • Системи с моментална обратна връзка • Автоматизация

    на всичко: provision, build, test, deploy, monitor. • Хигиена • “Не съм страхотен програмист, а просто добър програмист със страхотни навици.” – Кент Бек • TDD е полезният навик, който изгражда други полезни навици!
  5. Страхът от кода • В отношенията програмист-код може да има

    само един господар. • Много е лесно да забравиш кой е шефът. Резулат: Programming by Coincidence
  6. Мениджмънтът • Вече не е чак такъв проблем. • Все

    пак е добре да знае, какви екзотични практики използваме в проекта.
  7. Колегите • Могат не само да не практикуват TDD, ами

    и да ви пречат вие да правите това. • “Можеш да заведеш коня до водата, но не можеш да го накараш да пие” • Проповядването на TDD си има своите тънкости. • Непрактикуването на TDD не ги прави автоматично идиоти или мърлячи!
  8. Перфекционизъм и обсебване “ВСИЧКО ТРЯБВА ДА СЕ ТЕСТВА, MY PRECIOUS!”

    • Реален (и неподозиран) психологически проблем. • Perfect is the enemy of good. Лечението: • Не тестваме скучните части. • Проекти за забавление, където му отпускаме края.
  9. [BONUS] Митове и вредности • “Тестовете могат да покажат наличието

    на дефекти, но не и отсъствието им.” – Дейкстра • Не може да пишеш сложни алгоритми с TDD. • Не може да пишеш игри/операционни системи/бази данни/компилатори с TDD. • Няма смисъл да пишеш прости неща с TDD. • Пишем 2 пъти повече код и поддържаме 2 пъти повече код! • Отнема повече време. • С правилните езици за програмиране TDD става ненужно.