Igor Vasilenko Senior iOS Developer @ Tinkoff Bank Interested in clean software design and open-source projects

Не является ли TDD двойной работой и почему мы должны задуматься над тем, чтобы начать использовать TDD в своих проектах?

Перевод статьи из выпуска Podlodka Podcast #23

Параметризованные юнит тесты в iOS разработке

После прочтения одной из статей в блоге Сергея Теплякова о параметризованных юнит тестах - я был восхищен данным инструментом и решил попробовать в среде Objective-C.

Насколько хороши ваши тесты?

Некоторые характеристики тестов, которые предполагают, что в вашем дизайне что-то не так.

Шпаргалка по TDD паттернам

Заключительная статья серии постов о TDD паттернах по мотивам чтения замечательной книги Test-Driven Development By Example - Kent Beck

Test-Driven Development By Example - Kent Beck. TDD паттерны. Test List.

Что мы должны протестировать? Перед тем как начать, напишите список всех тестов, которые вы хотели бы реализовать

Test-Driven Development By Example - Kent Beck. TDD паттерны. Test Data.

Какие данные вы используете для test-first тестов? Используйте данные, которые делают ваши тесты проще для чтения и сопровождения.

Test-Driven Development By Example - Kent Beck. TDD паттерны. Evident Data.

Как вы представляете данные для теста? Включая ожидаемый и актуальный результаты, пытаясь сделать их связь между собой очевидной.

Test-Driven Development By Example - Kent Beck. TDD паттерны. Test First.

Когда мы должны писать тесты? До того как вы напишите код, который будет тестироваться.

Test-Driven Development By Example - Kent Beck. TDD паттерны. Assert First.

Когда мы должны писать ассерты? Кент Бек предлагает писать их первыми.

Test-Driven Development By Example - Kent Beck. TDD паттерны. Isolated Test.

Как должны запущенные тесты влиять друг на друга? Ответ: Никак!

Code-review

В данном посте хотелось бы поговорить о прекрасном слове Code-review и рассказать как он построен в команде YOTA.

ReactiveCocoa. Concurrency. Multithreading.

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

LLDB. Использование expr и переменных

Давненько не писал ничего интересного и решил исправить ситуацию. Люблю делиться тем, чего сам совсем недавно узнал и попробовал на практике. И сегодня мы поговорим об LLDB в Xcode, а в частности про команду expr.

Выполняем несколько анимаций последовательно с конечным callback блоком

На днях потребовалось написать класс, который бы умел выполнять анимации в сериальном порядке, которые мы бы передавали в массиве. Так же требовалось, чтобы по окончанию всех анимаций был общий callback блок. Хотелось бы поделиться с вами получившимся результатом.

Сетевой слой во главе с тандемом AFNetworking & Mantle

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

Chisel - дебажим по харду!

Вероятно все знают какого это дебажить свое приложение и в курсе, что чаще всего это боль. Сегодня наткнулся на классную фичу, сделанную ребятами из Facebook

Big-O Algorithm Complexity Cheat Sheet

Hey, guys! Все, кто ходил на собеседования на позицию разработчика, не важно какую именно, будь то iOS или Android и так далее, хотя бы раз слышали вопросы про структуры данных, асимптотику, о-большое.

Разработка iOS приложений с VIPER

В последнее время я стал много слышать об архитектуре под названием VIPER. Я настолько заинтересовался этой темой, что решил изучить данную тему поглубже и рассказать о ней подробнее всем остальным.

Swift - нововведения

Я не сомневаюсь, что многие из нас вчера смотрели презентацию WWDC 2014 от Apple. Были представлены новая операционная система OS X Yosemite, а так же iOS 8. Но главное, чем наверное взбудоражило Apple программистов во всем мире, так это новым языком - Swift!