Ponyu-dev / PracticeTDD

Tasks to practice TDD

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PracticeTDD

Tasks to practice TDD

Репозиторий где можно попрактиковаться в написании кода после того как написаны юнит тесты по TDD Подробное объяснение что это и как работать с этим репозиторием в видео на ютуб (осторожно, там решение первой задачи) https://youtu.be/TvzVYxM626o

Вкратце: выбираете ветку, находите юнит тесты которые требуют код и пишете его, проверяете верность написанного кода посредством запуска юнит тестов

Форкайте репозиторий и наслаждайтесь задачами (пушить решение обратно в этот репозиторий не нужно!)

task/001-stack Стек, FIFO, LIFO рекомендуется написать реализации не используя другие коллекции (ограничиться использованием обычных массивов, https://youtu.be/TvzVYxM626o)

task/002-parse-anything парсим данные кастомным образом (знание типов данных в джава/котлин, не используйте преобразовывающие функции такие как toInt(), https://youtu.be/FJla-SnBfeM)

task/003-range найти в списке ближайшие числа с обоих сторон от указанного (https://youtu.be/tZZ2QBMLo4o)

task/004-password-validation валидация пароля по критериям (минимальная длина, количество букв в верхнем регистре, количество букв в нижнем регистре, количество цифр и количество спец.символов, https://youtu.be/-nbw-fmmZ7Y)

task/005-timed-cache кеш датасорс со временем жизни элементов. Когда айтем кладется в кеш, то задается время его жизни. По прошествию этого времени объект удаляется из памяти (https://youtu.be/HWZDpSgCXV4)

task/006-factorial-hard фабрика факториалов: исходя из типа числа вычислить значение факториала (рекурсия и знание типов данных, https://youtu.be/KYOGThlhT8I)

task/007-filter-list пишем вьюмодель на экран где список товаров и фильтры к ним, применив которые меняется список (https://youtu.be/7e3n1YHdueY)

task/008-contains-for проверка на содержание символа в строке с требованием максимального прохода по циклу (https://youtu.be/oVgskDFfxVU)

task/009-bubble-sort сортировка пузырьком с требованием минимальных циклов (смотри задачу 008, https://youtu.be/mdv6Js-t4Wc)

task/010-int-validations валидации интов используя шаблоны (декоратор и т.д.) пример (проверить что число положительное, не менее 15 и четное, https://youtu.be/E_t1tQhw7e4)

task/011-simple-callback простой колбек (https://youtu.be/cf9GgxuI0Hc)

task/012-lottery лотерейный билет (https://youtu.be/up1dhKWo6hA)

task/013-delay-coroutine задержка времени корутины (принудительно не отдаем ответ от корутины указанное время, https://youtu.be/Zr2qjxxWINE)

task/014-numbers математические операции с числами (https://youtu.be/ssS3Ocrc0L8)

task/015-login вьюмодель на логин с почтой и паролем и работа с интерактором и маперами (https://youtu.be/Ct6HH7nwdmA)

task/016-legacy-api работа с апи легаси вида (с колбеками в самом апи и в репозитории)

task/017-observer простой обсервер паттерн (https://youtu.be/pdDvddUvpCc)

task/018-observer-limited патерн обсервер с максимальным количеством активных подписчиков

task/019-observer-different-types патерн обсервер с 2 типами (обычный и премиум) как подписчиков так и контента (рекомендуется решить 17 и 18 прежде)

task-020/chain-responsibility паттерн цепочка обязанностей в классическом виде (из проекта ЕСР https://youtu.be/gf-MIZIwm2E)

task/021-interactor-parser непростая задача на взаимосвязь парсера с интерактором (из проекта ЕСР https://youtu.be/gf-MIZIwm2E)

task/022-rx-viewmodel RxJava2 простая цепочка и тест на ViewModel (https://youtu.be/cNXVzCUN5p8)

task/023-lambda юнит тесты с лямбдой как аргументом в конструкторе класса (https://youtu.be/KRpJPGGxmOs)

task/024-messages-view-model вьюмодель сообщений из проекта ЕСР (рекомендуется решить сначала задачи 020 и 021) (https://youtu.be/gf-MIZIwm2E)

task/025-paging вьюмодель с динамической подгрузкой следующего и предыдущего контента (https://youtu.be/zGYCcKtcSf4)

task/026-incapsulation пишем правило чистого кода для принципа инкапсуляции для статического анализатора кода (https://youtu.be/E5Ra6ZUCWt8)

task/027-custom-livedata своя ливдата в вьюмодельке (https://youtu.be/t9qIe6BopKU)

task/028-inheritance пишем правило чистого кода для принципа наследование для статического анализатора кода (https://youtu.be/F1WCOTDSedA)

task/029-cloudDataSource разные ответы от сервера в ретрофите, хендлим ошибки (https://youtu.be/6fXu5LAUcUU)

task/030-markdown маркдаун парсер свое решение (сложно) (https://youtu.be/KExoqco07ys)

task/031-good-code-rule-functions правила хорошего кода для функций (https://youtu.be/iR7PI-fuBE4 https://www.youtube.com/watch?v=-31NWghYlAo)

task/032-min-and-max минимум и максимум из чисел (простейшая задача https://youtu.be/RFRrVU0Z9s4)

task/033-node-builder билдер патерном порождаем односвязный список с автогенерацией айди (https://youtu.be/9YCj3_EPDOc)

task/034-revive-view-model вьюмодель которая умеет переживать смерть процесса андроид и восстановить юай стейт (https://youtu.be/HvFLYshXz0o)

task/035-codegen-part-one кодогенератор: пишем код, который будет генерировать код после юнит тестов (https://youtu.be/rA-au9yJ7cc)

task/036-multithreading-observer многопоточный обсервер патерн : 2 входа 1 выход (https://youtu.be/znEFXrT82vs)

task/037-login-view-model пишем вьюмодель на логин (https://youtu.be/L9Dt5ERXf-E https://youtu.be/UFQUnyBKJMI)

task/038-login-view-model-chain цепочка обязанностей в логин вьюмодель из задачи 37 (https://youtu.be/QXwggW1FNcY)

About

Tasks to practice TDD


Languages

Language:Kotlin 100.0%