Your SlideShare is downloading. ×
Tdd in the world of big data
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tdd in the world of big data

401
views

Published on

Published in: Self Improvement

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
401
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Немного о себе. Идеолог гибких инженерных практик в компании Люксофт. Общаюсь много с обыкновенными инженерами. Часто в паре, где мы пробуем Pair Programming Ping-Pong, TDD, Clean Code, Agile Design на их боевых примерах и проектах. На картинке Office Space моими глазами и ушами. Мой последний опыт тесно связан с проектом, где нужно быстро обрабатывать огромный массив предложений по десяткам тысяч критериев. На проекте работает MongoDB, Riakи Hadoop.
  • Как изветно самый большой миф гибкой разработки – это хаотичность. Этот миф некогда был и моим заблуждением. На самом деле в отличие от традиционного подхода, который накладывает ограничения и правила на принятие дизайнерских решений и дает полную свободу в дисциплине, гибкие методологии открывают большую свободу принятия дизайнерских решений, но устанавливает определенную дисциплину и последовательность работы с кодом. TDD – это одна из дисциплин, имеющих четкие правила, которые нужно соблюдать. TDD – по сути, это привычка. Как и другую привычку её нужно вырабатывать в течении 3-6 месяцев, и часто зависит от возраста разработчика.
  • NoSQLхранилища данных делятся на три основные категории. На этом мастер-классе будем рассматривать как совмещать дисциплинуTDD с разработкой функционала под самые популярные NoSQLхранилища по одной из каждой технологии (MongoDB, Cassandra, Neo4J). В конце также коснемся темы применимостиTDD с Hadoop и применимость TDD в .NET C# на примере работы с MongoDB
  • На этом мастер-классе мы в основном будем использовать Java библиотеки для построения тестов. Разберем новые возможности jUnit 4.10
  • Transcript

    • 1. TDD IN THEWORLD OFBIG
    • 2. НЕМНОГО О СЕБЕ Классаня TDD штука. Но работает TDD ? А у нас не везде кто за это будет релиз на платить? носу
    • 3. НЕМНОГО ПРО TDD Три Закона TDD  Первый закон TTD . Не пишите код продукта, пока не напишете отказной модульный тест.  Второй закон TTD . Не пишите модульный тест в объеме большем, чем необходимо для отказа. Невозможность компиляции является отказом.  Третий закон TTD. Не пишите код продукта в объем большем, чем необходимо для прохождения текущего отказного теста.
    • 4. ВЛИЯНИЕ TDD НА ПРОИЗВОДИТЕЛЬНОСТЬ ?654 CLASSIC3 TDD2 GURU10 1M 3M 6M 1Y
    • 5. AFD (ASSERT FIRST DEVELOPMENT) Помагает больше думать, меньше кодировать Помагает по максимуму использовать возможности IDE по кодогенерации.
    • 6. КОГДА НЕ TDD ? БОЛЬШИЕ, НАГР УЗОЧНЫЕ, СЛОЖ НЫЕ ТЕСТЫ РАЗРАБОТКА МАЛЕНьКИЕ, ЛЕГ КИЕ ФУНКЦ-НЫЕ ТЕСТЫ
    • 7. НЕМНОГО ПРО NO.SQL Key-Value Stores (Amazon Dynamo, Hbase, Cassandra) Document Stores (MongoDB, Riak) Graph Databases (Neo4J)
    • 8. NOSQL FACTS Windows Azure cloud based on MongoDB MongoDB highly supported by Microsoft and good API for Java, C++, C#, PHP, Python, Perl, Ruby Cassandra has massive numeber of production users http://www.datastax.com/cassandrausers Hadoop is used in Yahoo. Deployed on 4000 nodes and process 32PB of data.
    • 9. ТЕСТИРОВАНИЕ В ГИБКОЙ РАЗРАБОТКЕ Ideas, brainstorming  Critical thinking PoC Stage (Scalability, Performance)  Load tests  Exploratory tests Development (Functionality)  Functional tests (unit, integration, end-to-end) UAT  Acceptance tests, demo  Stress, performance tests
    • 10. ЧТО ТАКОЕ БОЛЬШИЕ ДАННЫЕ ? Не обязательно терабайты данных 10-100 м. Предложений в день MESSAGER ОБЛАКО REST WEB SERVER MONGO RAM RAM RAM MONGO MONGO 10 тыс. подписчиков в день НОДЫ НА АМАЗОНЕ
    • 11. NOSQL TESTING CHALLENGES Доп. тестирование транзакционности. Симуляция конкурентных запросов. Доп. тестирование на целостность данных при разных условиях, в.т.ч. Constraints, connections Доп. тестирование пессимистичных блокировок и возможного отката В целом интеграционных и функциональных тестов может быть больше Тестирование Больших Данных
    • 12. ИНСТРУМЕНТЫ Junit 4.10 (http://sourceforge.net/projects/junit/) Nosql unit (https://github.com/lordofthejars/nosql- unit) MRUnit (http://mrunit.apache.org/) Amazon WS (http://aws.amazon.com/) Примеры (https://github.com/javamv/tdd-bigdata)
    • 13. EMBEDDED SERVER APPROACH Test NOSQL IN-MEMORY INSTANCE Тесты не требуют выделенного окружения и работающего сервера nosql db Тесты отрабатывают очень быстро. Высокий уровень изоляции тестов Отлавливают до 70-80% функциональных дефектов Легкая отладка тестов
    • 14. НЕДОСТАТКИ EMBEDDED ПОДХОДА Не отлавливают дефекты, связанные с кластерными конфигурациями и тонкими настройками Такой тип тестирование поддерживают не все производители NOSQL БД Невозможность тестирования данных больших объемов
    • 15. MANAGED SERVER APPROACH Start Instance NOSQL Test Run Test REAL INSTANCE Shut down instance Тесты не требуют выделенного окружения, но требуют проинсталлированный дистрибутив NOSQL сервера Отлавливают до 90-100% функциональных дефектов Возможность тестирования данных больших объемов
    • 16. НЕДОСТАТКИ MANAGED ПОДХОДА Затрудненная отладка тестов Скорость отрабатываютки тестов зависит от скорости запуска сервера и количество запусков на тестовую сюиту Уровень изоляции зависит от конфигурации тестовой сьюиты Тесты зависят от успешности запуска NOSQL сервера Такой тип тестирования иногда не работает под Windows
    • 17. STANDALONE SERVER APPROACH NOSQL Start Instance Test Run Test Human REAL INSTANCE Shut down instance Отлавливают 100% функциональных дефектов Возможность тестирования данных больших объемов Возможность гибкой конфигурации тестового стэнда
    • 18. НЕДОСТАТКИ STANDALONE ПОДХОДА Дорогая отладка тестов Проход тестов зависят от работы NOSQL сервера Уровень изоляции низкий Тесты требуют выделенного окружения Скорость отрабатываютки тестов зависит от скорости протокола и канала
    • 19. XYZ  Спасибо!  javamv@gmail.com

    ×