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

  • @victorklimov5254
    @victorklimov5254 Жыл бұрын

    Интересно слушать твои размышления. Продолжай выпускать ролики!

  • @-dubok-
    @-dubok-11 ай бұрын

    Полностью согласен насчёт TDD! Именно так и нужно программировать. Но я бы пошёл ещё дальше: нужно начинать с описания ТРЕБОВАНИЙ к приложению. Именно с требований всё и начинается. Требования - это то, что ожидается от приложения. А затем эти ожидания уже превращаются в код тестов. Без тестов и правда, сложнее, и как будто ходишь в тумане и не понимаешь, что из себя представляет твоё приложения, работает ли оно правильно, нет ли нигде ошибки. Вскрывать косяки на уровне продакшена - это такое себе. Лучше сразу с помощью тестов удостовериться, что всё работает как задумано. Поэтому, да - сперва надо думать, а потому делать. А думание начинается с вопроса «А что я хочу от своего приложения?» А этот вопрос уже превращается в тесты, после написания которых пишется уже код приложения, удовлетворяющий им.

  • @gray0072
    @gray00722 ай бұрын

    Супер, спасибо!

  • @alexandrmotorin5842
    @alexandrmotorin5842 Жыл бұрын

    Прямо вдохновил поизучать и использовать TDD

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Круто! НАдо продвигать полезности в массы. Будут вопросы - пиши в чат t.me/kydavoitichat.

  • @nikitavashkulatov890
    @nikitavashkulatov890 Жыл бұрын

    Спасибо за ролик! По поводу написания хороших тестов порекомендовал бы книгу Владимира Хорикова Принципы юнит-тестирования.

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Спасибо, буду посмотреть

  • @FrazyCrog
    @FrazyCrog6 ай бұрын

    хорошее видео, спасибо

  • @rerost9795
    @rerost97952 ай бұрын

    Впервые натыкаюсь на такой формат видео о программировании. Обычно это какие-то гайды/обучающие видео. А тут чисто мысли и опыт разработки.

  • @kydavoiti

    @kydavoiti

    2 ай бұрын

    Привет! Это неудивительно. Я точно знаю такие каналы, но их мало. Зарубежные есть, которые даже просмотры собирают, но они скорее про развлечение. Можно долго рассуждать почему так, но факт есть факт.

  • @victorklimov5254
    @victorklimov5254 Жыл бұрын

    Привет! Стараюсь применять TDD несколько недель. Тоже кайфую. Это кажется более органичным для мышления способом написания кода. Вдумчиво, итеративно, с большей уверенностью на каждом шаге.

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Круто! Мы в чате канале ТГ будем читать/обсуждать книгу Кента Бека, можешь подключаться. Я уже без TDD себя некомфортно чувствую. С ним намного спокойнее можно идти шаг за шагом к цели.

  • @user-ib1ng9lo2p
    @user-ib1ng9lo2p10 ай бұрын

    Очень странно, что так мало подписчиков. Нравится тебя слушать, видео довольно непринуждённое. Было бы круто в перспективе увидеть что-то в лайв-коддинге, если есть такие идеи на будущее)

  • @kydavoiti

    @kydavoiti

    10 ай бұрын

    Есть идея, может быть реализую

  • @alexanderj8981
    @alexanderj8981 Жыл бұрын

    Лет 5 исключительно по TDD работаю. Штука затягивает, полностью меняет подход к делу. Где-то через полгода-год-два меняется понимание этого процесса TDD, но тут заранее не объяснишь. Много сложностей с ним бывает, особенно если принципиально везде-везде использовать, но удовольствия от работы все же больше. Есть у TDD очень большой недостаток, который крайне сложно обойти или исправить - найти напарников на проект, которые дисциплинированно будут работать по этой же методологии и понимать как писать правильные тесты - почти нереально, даже если вокруг полсотни коллег. В лучшем случае они будут писать тесты после кода, забывая покрыть некоторые части, упуская детали, оставляя тесты, которые ничего не тестируют и которые разобрать сложно. А TDD такая штука, что тут не получится вести проект, в котором один разработчик придерживается этого подхода, а остальные могут даже тесты потом не написать - так очень многие плюсы пропадают и смысл практически теряется.

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Привет! Круто. Насчет того, чтобы вся команда писала по TDD. У меня не так, я один применяю этот подход. Может быть бы работа спорилась, если бы все по TDD писали. Я думаю, что я как единица стал полезнее для команды. Было бы интересно в таком коллективе поработать. Полностью согласен: > удовольствия от работы все же больше

  • @alexanderj8981

    @alexanderj8981

    Жыл бұрын

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

  • @Nox254
    @Nox254 Жыл бұрын

    Большое спасибо за ролик! Для себя выделил несколько интересных идей. P.S. Наметишь себе дорогу в рай, если книги на которые ты ссылаешь будут попадать в описание к ролику).

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Привет! Спасибо! Я опять забыл добавить)))) Добавлю завтра - отпишу сюда в комментах; Я там везде показывал обложки, найти должно быть несложно 🤔

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Добавил ссылки в описание.

  • @alexandrmotorin5842
    @alexandrmotorin5842 Жыл бұрын

    Можешь подсказать как ты выучил английский, может методики там или какие-то ресурсы?

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    У меня средний уровень английского, но учил я его по нескольким книгам. - Одна для подготовки к ЦТ (тестирование в Беларуси). - Одна книга по грамматике для ВУЗов. - Книга о глаголах. - Прекрасный сайт: www.engvid.com - Смотрел фильмы и мультики (начал с моих самых любимых, потому что я их проще понимал. был знаком со словами на родном языке) - Читал книги. Если будут интересны конкретные книги - пиши также в ТГ t.me/kydavoitichat. Я там закину подробнее названия.

  • @alfany6252
    @alfany6252 Жыл бұрын

    Описание для видео взято из Obsidian? )

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Ага, я его просто копирнул. Я почти всегда так делал. Иногда я из Source мода беру, иногда и View. Это удобно, тем более в KZread куцый форматер, поэтому проще использовать MD для своих 😎

  • @DSSMCMXCVIII
    @DSSMCMXCVIII Жыл бұрын

    сними видосик как писать тест на простом примере

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Привет! Скоро будет такой ролик. Основной вопрос - это ЯП. Не могу выбрать какой правильнее. Пjка в фаворитах Java/Lua/Python, но и это большой выбор. Хочется еще подобрать достойный пример, чтобы это не было на уровне Person/Car (как в некоторых других моих роликах), если уже делать практику, то и пример пусть будет практичный. Я думаю просто записать как я делаю фичи в свой Lua-конфиг для neovim.

  • @Cosmicgate2236
    @Cosmicgate22363 ай бұрын

    зачем людям слушать в начале видео про твой опрос, зачем людям слушать про твой тг канал, и все это в самом начале ролика?!?...скипнул сразу, чего и вам советую

  • @ArcherGodson
    @ArcherGodson Жыл бұрын

    я TDD собираюсь использовать, а может использовал, но забыл, а может не буду.. а может я продвигающий ролики бот

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    А может и не использовали. Может бот, написанный по TDD. Может каждый пункт отдельно и все вместе 🤔

  • @user-nv3cn9dj5x
    @user-nv3cn9dj5x Жыл бұрын

    TDD не работает. Рефакторинг функции часто меняет её интерфейс(параметры), значит и тест ты должен поменять. Пока ты будешь писать тесты я уже доставлю пользователю софт, соберу фидбэк, баги, пофикшу их. Уже с этого момента я буду получать деньги и найму тебя, чтобы ты покрыл мне тестами наиболее важные части. Ранее тоже имел подобные проблемы. когда дойдёшь до того чтобы двигаться к цели прямой линией, а не замей - откажешься от TDD и вылечишься от бесконечного тулинга с допиливанием плагинов под dwm и идеальной настройки vim (под себя). Единственное где я вижу применение TDD - security critical software. И тесты должен писать не тот кто будет заниматься имплементацией.

  • @user-nv3cn9dj5x

    @user-nv3cn9dj5x

    Жыл бұрын

    Кент Бек это инфоцыган, который на книжках своих по XP зарабатывает. Это тоже самое что цитировать страуструпа как сильного программиста на C++, который ни одной программы в жизни не написал.

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Ок, жду оффер

  • @temcodes
    @temcodes Жыл бұрын

    Зачем автор ролика специально басит на камеру?

  • @kydavoiti

    @kydavoiti

    Жыл бұрын

    Хм, не задумывался, надо будет у него уточнить

Келесі