TDD - это круто! Разработка через тестирование и только!
Ғылым және технология
Привет! Сегодня расскажу про [[Тестирование|TDD]. Поделюсь тем, как я к нему пришел. Расскажу плюсы разработки через тестирование.
Пишите комментарии на [[KZread]], делитесь там своим опытом! Давайте продвигать хорошие практики вместе!
Если нужна помощь с использованием этой практики - пишите, я буду рад помочь.
Подписывайтесь на канал и на ссылке ниже, там обсуждают правду:
- Telegram Channel: t.me/kydavoiti
- Telegram Chat: t.me/kydavoitichat
- VK: kydavoiti
- GitHub: github.com/IlyasYOY
Книги:
- [Working Effectively with Legacy Code: Feathers, Michael: 8601400968741: Amazon.com: Books](www.amazon.com/Working-Effect...)
- [Книга "Экстремальное программирование: разработка через тестирование" Бек Кент - купить книгу ISBN 978-5-4461-1439-9 с быстрой доставкой в интернет-магазине OZON](www.ozon.ru/product/ekstremal...)
- [Читать онлайн «Думай медленно… Решай быстро», Даниэль Канеман - ЛитРес](www.litres.ru/daniel-kaneman/...)
Главы:
00:00 Отрывки
00:16 Начало!
02:00 Структура ролика
02:48 Как я заинтересовался TDD?
04:42 Первые пробы
05:38 Нужда в систематизации
07:05 Время на подумать
07:21 Полноценное TDD
07:50 Почему стоит использовать TDD?
08:02 Код всегда протестирован
09:23 Думать, а потом делать!
11:45 Органичное развитие
13:25 Почти нет отладки
15:08 Как быстро возвращаться в контекст?
16:14 Код тестируем из коробки
17:51 Тесты выглядят, как код
18:56 Глубокая работа с инструментами тестирования
19:44 Вывод
20:45 Конец
Пікірлер: 34
Интересно слушать твои размышления. Продолжай выпускать ролики!
Полностью согласен насчёт TDD! Именно так и нужно программировать. Но я бы пошёл ещё дальше: нужно начинать с описания ТРЕБОВАНИЙ к приложению. Именно с требований всё и начинается. Требования - это то, что ожидается от приложения. А затем эти ожидания уже превращаются в код тестов. Без тестов и правда, сложнее, и как будто ходишь в тумане и не понимаешь, что из себя представляет твоё приложения, работает ли оно правильно, нет ли нигде ошибки. Вскрывать косяки на уровне продакшена - это такое себе. Лучше сразу с помощью тестов удостовериться, что всё работает как задумано. Поэтому, да - сперва надо думать, а потому делать. А думание начинается с вопроса «А что я хочу от своего приложения?» А этот вопрос уже превращается в тесты, после написания которых пишется уже код приложения, удовлетворяющий им.
Супер, спасибо!
Прямо вдохновил поизучать и использовать TDD
@kydavoiti
Жыл бұрын
Круто! НАдо продвигать полезности в массы. Будут вопросы - пиши в чат t.me/kydavoitichat.
Спасибо за ролик! По поводу написания хороших тестов порекомендовал бы книгу Владимира Хорикова Принципы юнит-тестирования.
@kydavoiti
Жыл бұрын
Спасибо, буду посмотреть
хорошее видео, спасибо
Впервые натыкаюсь на такой формат видео о программировании. Обычно это какие-то гайды/обучающие видео. А тут чисто мысли и опыт разработки.
@kydavoiti
2 ай бұрын
Привет! Это неудивительно. Я точно знаю такие каналы, но их мало. Зарубежные есть, которые даже просмотры собирают, но они скорее про развлечение. Можно долго рассуждать почему так, но факт есть факт.
Привет! Стараюсь применять TDD несколько недель. Тоже кайфую. Это кажется более органичным для мышления способом написания кода. Вдумчиво, итеративно, с большей уверенностью на каждом шаге.
@kydavoiti
Жыл бұрын
Круто! Мы в чате канале ТГ будем читать/обсуждать книгу Кента Бека, можешь подключаться. Я уже без TDD себя некомфортно чувствую. С ним намного спокойнее можно идти шаг за шагом к цели.
Очень странно, что так мало подписчиков. Нравится тебя слушать, видео довольно непринуждённое. Было бы круто в перспективе увидеть что-то в лайв-коддинге, если есть такие идеи на будущее)
@kydavoiti
10 ай бұрын
Есть идея, может быть реализую
Лет 5 исключительно по TDD работаю. Штука затягивает, полностью меняет подход к делу. Где-то через полгода-год-два меняется понимание этого процесса TDD, но тут заранее не объяснишь. Много сложностей с ним бывает, особенно если принципиально везде-везде использовать, но удовольствия от работы все же больше. Есть у TDD очень большой недостаток, который крайне сложно обойти или исправить - найти напарников на проект, которые дисциплинированно будут работать по этой же методологии и понимать как писать правильные тесты - почти нереально, даже если вокруг полсотни коллег. В лучшем случае они будут писать тесты после кода, забывая покрыть некоторые части, упуская детали, оставляя тесты, которые ничего не тестируют и которые разобрать сложно. А TDD такая штука, что тут не получится вести проект, в котором один разработчик придерживается этого подхода, а остальные могут даже тесты потом не написать - так очень многие плюсы пропадают и смысл практически теряется.
@kydavoiti
Жыл бұрын
Привет! Круто. Насчет того, чтобы вся команда писала по TDD. У меня не так, я один применяю этот подход. Может быть бы работа спорилась, если бы все по TDD писали. Я думаю, что я как единица стал полезнее для команды. Было бы интересно в таком коллективе поработать. Полностью согласен: > удовольствия от работы все же больше
@alexanderj8981
Жыл бұрын
@@kydavoiti Если весь проект с дисциплиной по тестам, то можно не бояться и рефакторить что угодно. Можно практически спокойно релизить если все тесты прошли. И ты при этом знаешь, что все, что планировал сделать новое - работает, включая все старые фичи. Но как только хоть один разработчик на проекте не придерживается подхода, то все эти плюсы сразу исчезают для всех - тесты прошли, но это не говорит о том, что все и везде работает.
Большое спасибо за ролик! Для себя выделил несколько интересных идей. P.S. Наметишь себе дорогу в рай, если книги на которые ты ссылаешь будут попадать в описание к ролику).
@kydavoiti
Жыл бұрын
Привет! Спасибо! Я опять забыл добавить)))) Добавлю завтра - отпишу сюда в комментах; Я там везде показывал обложки, найти должно быть несложно 🤔
@kydavoiti
Жыл бұрын
Добавил ссылки в описание.
Можешь подсказать как ты выучил английский, может методики там или какие-то ресурсы?
@kydavoiti
Жыл бұрын
У меня средний уровень английского, но учил я его по нескольким книгам. - Одна для подготовки к ЦТ (тестирование в Беларуси). - Одна книга по грамматике для ВУЗов. - Книга о глаголах. - Прекрасный сайт: www.engvid.com - Смотрел фильмы и мультики (начал с моих самых любимых, потому что я их проще понимал. был знаком со словами на родном языке) - Читал книги. Если будут интересны конкретные книги - пиши также в ТГ t.me/kydavoitichat. Я там закину подробнее названия.
Описание для видео взято из Obsidian? )
@kydavoiti
Жыл бұрын
Ага, я его просто копирнул. Я почти всегда так делал. Иногда я из Source мода беру, иногда и View. Это удобно, тем более в KZread куцый форматер, поэтому проще использовать MD для своих 😎
сними видосик как писать тест на простом примере
@kydavoiti
Жыл бұрын
Привет! Скоро будет такой ролик. Основной вопрос - это ЯП. Не могу выбрать какой правильнее. Пjка в фаворитах Java/Lua/Python, но и это большой выбор. Хочется еще подобрать достойный пример, чтобы это не было на уровне Person/Car (как в некоторых других моих роликах), если уже делать практику, то и пример пусть будет практичный. Я думаю просто записать как я делаю фичи в свой Lua-конфиг для neovim.
зачем людям слушать в начале видео про твой опрос, зачем людям слушать про твой тг канал, и все это в самом начале ролика?!?...скипнул сразу, чего и вам советую
я TDD собираюсь использовать, а может использовал, но забыл, а может не буду.. а может я продвигающий ролики бот
@kydavoiti
Жыл бұрын
А может и не использовали. Может бот, написанный по TDD. Может каждый пункт отдельно и все вместе 🤔
TDD не работает. Рефакторинг функции часто меняет её интерфейс(параметры), значит и тест ты должен поменять. Пока ты будешь писать тесты я уже доставлю пользователю софт, соберу фидбэк, баги, пофикшу их. Уже с этого момента я буду получать деньги и найму тебя, чтобы ты покрыл мне тестами наиболее важные части. Ранее тоже имел подобные проблемы. когда дойдёшь до того чтобы двигаться к цели прямой линией, а не замей - откажешься от TDD и вылечишься от бесконечного тулинга с допиливанием плагинов под dwm и идеальной настройки vim (под себя). Единственное где я вижу применение TDD - security critical software. И тесты должен писать не тот кто будет заниматься имплементацией.
@user-nv3cn9dj5x
Жыл бұрын
Кент Бек это инфоцыган, который на книжках своих по XP зарабатывает. Это тоже самое что цитировать страуструпа как сильного программиста на C++, который ни одной программы в жизни не написал.
@kydavoiti
Жыл бұрын
Ок, жду оффер
Зачем автор ролика специально басит на камеру?
@kydavoiti
Жыл бұрын
Хм, не задумывался, надо будет у него уточнить