Пример неожиданной полемики.



У меня в ленте подписок следующие два доклада идут рядом. Они были сделаны на разных конференциях, выложены на youtube практически одномоментно и в целом я думаю тут нельзя подозревать никакого умысла. Каждый пел о том, о чём пел, а полифония возникла сама.



1. Phisl Nash, "Rewiring your brain with test driven thinking in C++", Meeting C++ 2023, https://youtu.be/Hx-1Wtvhvgw

2. Ian Cooper, "TDD Revisited", NDC Porto 2023, https://youtu.be/IN9lftH0cJc



Смотреть именно в таком порядке. Первый доклад это не доклад, это проповедь. У уважаемого докладчика горят глаза. Он уличает аудиторию в недостаточном следовании учению, а потом на восхитительно дурацком примере (начало в 20:25) показывает как приходят к спасению. За десять минут. У меня правда есть вопрос к 29:45 -- а почему собственно он прекратил писать тесты в этот момент? Может там ещё что осталось невыловленное? Я имею в виду -- у него до этого каждый новый тест ловил по багу. Он написал пятый и бросил. Но за общие презентационные скиллы всё это можно простить, доклад очень хорош и я могу его очень порекомендовать.



Правда после него остаются более фундаментальные вопросы. Например такой: TDD это мягко скажем не новая практика. Оно известно давно. Оно очень и очень мало где применяется в чистом виде. Может быть это само по себе означает что в нём есть какое-то место где всё идёт не по плану? Ну например самое простое: большое количество написанных юнит-тестов делает дизайн негибким, а программирование это всё ещё исследовательская область. Или там -- зачем вообще тратить время программистов на юнит-тесты, может мы лучше сделаем генератор и сгенерируем миллиард таких тестов автоматически из спецификации? И сделаем это после того как основные бизнес-задачи решены чтобы просто почистить перед релизом? Ну и прочие вопросы.



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



Если посмотреть оба доклада один за другим, возникает двойное удовольствие. Своего рода стереоскопия. Но даже не это самое главное. Первый докладчик много говорит о перестройке мозга. Мне кажется, если в каком направлении и надо перестраивать мозг, так это в направлении когда вы слушаете что вам говорят и за десять минут понимаете кто перед вами: просто проповедник или человек, желающий глубоко разобраться?



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



Просто это два очень разных жанра. Примерно как прочитать про некоего героя любовный роман, где повествуется о его нежных чувствах. А потом прочитать про него же детектив. Где его нежные чувства тщательно расследуются. И раскрываются совсем по новому.



#talks