TDD - чему я научился у программиста с 36-летним опытом

  Рет қаралды 5,930

Mancho

Mancho

Күн бұрын

Спикер: Ильяс Ландиков (linktr.ee/etoilyas)
За 10 лет опыта Ильяс успел поработать на позициях программиста (SDE), project manager и technical sales во Франции и Южной Корее в области embedded (Java/C/Assembler). Сегодня Ильяс изучает frontend и является нашим студентом в Mancho School по направлению "инженер-программист".
С декабря 2022 года Ильяс участвует в open source разработке вместе с Clare Macrae - специалистом по тестированию и рефакторингу кода. За это время Ильяс обучился методологии разработки TDD, благодаря которой разрабатывает frontend.
Таймкоды:
00:00:00 Начало
00:01:01 Опыт Ильяса
00:05:25 Зачем нужен TDD
00:10:34 Архитектура кода
00:13:24 TDD это кайф
00:17:38 TDD на практике
00:21:08 Разработка эпика на примере
00:42:07 Дискуссия о TDD
Mancho Online:
Веб-сайт: mancho.dev/
Вакансии: mancho.dev/join-us
LinkedIn: / manchodevs
Instagram: / manchodevs
Telegram: t.me/ManchoDevs
Telegram Chat: t.me/ManchoChat
TikTok: / manchodevs
Twitter: / manchodevs
Facebook: / manchoteam
Flickr: www.flickr.com/photos/ManchoD...
Почта: hello@mancho.dev

Пікірлер: 20
@just-another-man
@just-another-man Ай бұрын
Основная суть лекции: 1. Тесты в начале позволяют понять что требуется от метода перед его написанием (это хорошо, так как правильно сформулированный вопрос - уже половина ответа) 2. Наличие теста перед реализацией позволяет сузить фокус цели с написать "крутой" или "сложный" метод до "написать метод, который пройдет тест" (это убирает эмоциональный фон) 3. Если тесты все-равно придется писать - делать их в начале - психологически разгружает (сначала съешь лягушку/самое нелюбимое сделай сначала). Сделал тест и дальше только кайфуй от реализации 4. После того как метод написан - нет уверенности что метод работает правильно и учитывает весь контекст приложения. Для полной уверенности нужен тест. Это означает что, после написания приложения, необходимо написать тест(сменить контекст), затем протестировать приложение, после чего, если найдены ошибки в новом методе - исправить их(сменить контекст обратно). Тесты в начале позволяют исправить ошибки в потоке, без переключения контекста. Это экономит силы и психологически награда(всплеск дофамина) за написанный и работающий метод приходит быстрее. 5. Тесты необходимо регулярно рефакторить с целью сделать их максимально понятным, чтобы они могли служить "документацией в действии". Что тестируется и что ожидается на выходе должно быть понятно с первого взгляда.
@sigumb
@sigumb Ай бұрын
Почему ни слова про самое главное в tdd - дизайн
@pick-pock
@pick-pock Ай бұрын
Лайк за монтаж видео 👍🏼
@alexblack43
@alexblack43 Ай бұрын
Странный аргумент про "1 раз открывал хром". Для меня прокликивание сайтика (фронтенд) намного интереснее и приятнее, чем тупо день пялится в код в вскоде. Когда видишь результат, то сразу в голову приходит много идей, что надо доделать, изменить, доработать. И появляется хоть какая-то уверенность, что оно работает как задумано. С тестами нет ни удовольствия (не вижу как работает сайт), ни уверенности (может я тесты криво написал и их проходит такой же кривой код). Тесты делаю халатно гпт-чатом, лишь бы были. Польза - чтобы видеть фейлы при каких-то совсем тупых сценариях, типа случайного удаления/перезаписи каких-то файлов в гите коллегами или смене формата какой-то апишки.
@testcloud3404
@testcloud3404 Ай бұрын
TDD хороший подход, но только для определенного функционала с которым прикладной программист сталкивается крайне редко как правило это алгоритмические задачи парсинг/компиляция различные структуры данных и алгоритмы ядро бизнес логики ... и тому подобные вещи упарываться и разрабатывать через TDD буквально все, ну не знаю
@kanycake
@kanycake Ай бұрын
Супер! Крутое выступление 🔥
@ukrainetoday960
@ukrainetoday960 Ай бұрын
19:37 - с TDD инкрементно увеличивается количество кода которое необъходимо поменять при изменении. TDD Это как строительные леса - помогают при разработке, но удлиняют время и сложность общего кода (тесты + сам код)
@MichaelKondrashin
@MichaelKondrashin Ай бұрын
Я дико извиняюсь, но можно ли доверять мнению программиста, который полагает, что число "2" не простое?...
@mgcmsn
@mgcmsn Ай бұрын
Я надеюсь что TDD станет стандартом индустрии разработки. Хороший код с которым приятно работать рождается именно там.
@pick-pock
@pick-pock Ай бұрын
TDD - это полезно, но здесь докладчик его переоценивает и не обосновывает его плюсы. Например, про оптимальную архитектуру: 1. Почему архитектура на основе TDD будет обязательно оптимальна? 2. 100 джунов и 100 сеньёров пришедших из других языков и фреймворков - напишут 200 разных «оптимальных» архитектур. 3. Выбор инструментов (ЯП, фреймворки, либы) очень сильно влияют на код и его архитектуру - и TDD здесь никак не помогает. Например, в практической части показаны тесты на Redux. А почему TDD не сказал автору, что Redux - не очень хороший менеджер состояния? 4. Ещё есть кривой нейминг, который испортит код, его архитектуру и понимание. И TDD тут тоже не помощник. Не нужно переоценивать - это идёт во вред популяризации TDD.
@epoxyworld2024
@epoxyworld2024 Ай бұрын
Refactoring-Oriented Software Engineering. Что-то ничего существенного по этой теме не нашел. Поделитесь ссылками, кто в теме.
@etoilyas
@etoilyas Ай бұрын
kzfaq.info/get/bejne/obqTd6WKqNbOZ4U.html
@timur2887
@timur2887 Ай бұрын
TDD - методология защиты от программистов низкой квалификации . Лучшие продукты создавались вообще в других парадигмах)
@lonky_
@lonky_ Ай бұрын
унижение ручного тестирования итт)
@AEF23C20
@AEF23C20 Ай бұрын
всё это хорошо, но нет всё упирается в жёсткий перфоманс, и всякие тдд вообще не подходят
@timur43378
@timur43378 Ай бұрын
Какое отношение перфоманс к тдд имеет?
@AEF23C20
@AEF23C20 Ай бұрын
перфоманс имеет отношение к ПО, и никакое тдд к перфомансу не приведёт
@putin-pnh
@putin-pnh Ай бұрын
учиться можно У а не От
@javoronkov
@javoronkov Ай бұрын
Машинный перевод to learn from ;)
Do you have a friend like this? 🤣#shorts
00:12
dednahype
Рет қаралды 47 МЛН
WHY DOES SHE HAVE A REWARD? #youtubecreatorawards
00:41
Levsob
Рет қаралды 36 МЛН
Экономность в Амазон
1:00
Mancho
Рет қаралды 10 М.
Проектируем YouTube - Введение в System Design
12:49
System Design Notes
Рет қаралды 29 М.
Как делают и зарабатывают на Open Source
23:00
Senior Software Vlogger
Рет қаралды 87 М.