SlideShare a Scribd company logo
1 of 60
Download to read offline
Углубленное
программирование
на Java
Лекция 5 / 1
«QA и всё такое»
Александр Акбашев
Saturday, October 19, 13
О себе
Образование:
2005-2011 МГТУ им. Баумана - магистр
2011- ? МГТУ им.Баумана - аспирант
2011 - 2013 Open University Skolkovo

Ключевой поворот:
2011 - Mail.Ru Games (Allods Team)
Senior QA Engineer, команда сервера Skyforge

2
Saturday, October 19, 13
Содержание лекции
1. Контроль качества разрабатываемого
программного обеспечения
2. Юнит-тесты
3. Функциональные тесты
4. Нагрузочные тесты
5. Профилирование: сервера, памяти, контента

3
Saturday, October 19, 13
QA
Не волнуйтесь, если что-то не работает. Если бы всё работало, вас бы уволили.
Mosher’s Law of Soſtware Engineering

Критерии качества разрабатываемого ПО
Оценка качества разрабатываемого ПО
Формальные проверки

4
Saturday, October 19, 13
Тестирование
Черный ящик

Белый ящик

ничего не знаем

знаем всё

QA/тестировщики

разработчики
5

Saturday, October 19, 13
Виды тестов
Unit тесты
Пишут все программисты
Перед коммитом изменения проверяются
самим программистом
После коммита изменения проверяются системой CI
Метрика - покрытие кода тестами

6
Saturday, October 19, 13
Виды тестов
Функциональные тесты
Пишутся для ключевых элементов
Проверяют, что сервер запускается
и аватар может
убить моба программистом

7
Saturday, October 19, 13
Виды тестов
Нагрузочное тестирование
Проверяют, выдерживает ли сервер заявленное число пользователей
Выявление наиболее популярных и наиболее редких багов
Метрика - максимальное число пользователей в один момент времени (CCU)

8
Saturday, October 19, 13
UnitTest
Лучше написать и выполнить неполные тесты,
чем не выполнить полные.
Мартин Фаулер

9
Saturday, October 19, 13
UnitTest
Проверка отдельных модулей

10
Saturday, October 19, 13
UnitTest
Безопасный рефакторинг

11
Saturday, October 19, 13
UnitTest
Совместимость модулей

12
Saturday, October 19, 13
UnitTest
Mock-объекты для тестов

13
Saturday, October 19, 13
UnitTest
Mock-объекты для тестов

13
Saturday, October 19, 13
UnitTest
Защита от повторения ошибок

14
Saturday, October 19, 13
UnitTest
Test Driven Development

15
Saturday, October 19, 13
UnitTest
Hello, world!
Среда тестирования: JUnit
В IDEA: Navigate -> Test
public class simpleTest {

@Before

public void setUp() throws Exception {

}




@After
public void tearDown() throws Exception {
}





}

@Test
public void test() {

fail("Not yet implemented");
}
16

Saturday, October 19, 13
UnitTest
Простейший Unit тест
public class Math {
private int a;
private int b;
public Math (int a, int b) {
this.a = a;
this.b = b;
}
public int getSum() {
return this.a + this.b;
}

}

public int getDiv() {
return this.a % this.b;
}

public class simpleTest {
private Math math;
private int a = 3;
private int b = 1;
@Before
public void setUp() throws Exception {
math = new Math(a, b);
}
@Test
public void testGood() {
assertEqual(a+b, math.getSum());
}
@Test
public void testBad() {
assertEqual(a/b, math.getDiv());
}
17

Saturday, October 19, 13
UnitTest
Какие Unit тесты нужны вам?
Mock Frontend
Page Generator
Балансировщик
Message System

18
Saturday, October 19, 13
UnitTest
Устанавливаем Mockito
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.4</version>
</dependency>

19
Saturday, October 19, 13
FunctionalTest
Необходимое, но недостаточное условие
работоспособности.
Практика

20
Saturday, October 19, 13
FunctionalTest
Функциональное тестирование
Реализует ли требуемый функционал
Поднимается ли сервер?
Можно ли зайти в игру?
Можно ли играть?

Ручное тестирование должно быть более глубоким

21
Saturday, October 19, 13
FunctionalTest
Selenium

Без единой строки кода
(plugin Firefox)

Много кода на Java

Быстро

Не так быстро

Слабо контролируемо

Полный контроль

Несерьезно

Путь джедая

22
Saturday, October 19, 13
FunctionalTest
Установка Selenium
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.4.0</version>
</dependency>

23
Saturday, October 19, 13
FunctionalTest
Схема работы теста

Вход на
страницу

Заполнение
формы

Отправка

Win!

Получение ID

24
Saturday, October 19, 13
FunctionalTest
Реализация тестирования аутентификации
public void testLogin(@NotNull String url,@NotNull String username,@NotNull String password) {

WebDriver driver = new HtmlUnitDriver(true);
driver.get(url);
// Find the text input element by its name
WebElement element = driver.findElement(By.name(“userName"));
element.sendKeys(username);
WebElement element = driver.findElement(By.name(“password"));
element.sendKeys(password);
// Now submit the form. WebDriver will find the form for us from the element
element.submit();









// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {

@Override

@NotNull

public Boolean apply(@NotNull WebDriver d) {


final int id = d.findElement(By.name(“id”));


return id != 0;


}

});
driver.quit();

}
25
Saturday, October 19, 13
FunctionalTest
Домашнее задание
3 unit теста на каждый разработанный модуль
завести тест с помощью Selenium

26
Saturday, October 19, 13
LoadTest
[robic]: привет, нужно просетапить сервер чтоб держал нагрузку
[robic]: нужен mysql и apache
[ad_minic]: какая нагрузка?
[robic]: большая
[ad_minic]: круто
[ad_minic]: тогда ставь большой апач и большой мускуль на большой сервер

bash.org

27
Saturday, October 19, 13
LoadTest
Моделирование

28
Saturday, October 19, 13
LoadTest
Ожидаемое использование

29
Saturday, October 19, 13
LoadTest
Нескольких пользователей

30
Saturday, October 19, 13
LoadTest
Одновременно

31
Saturday, October 19, 13
LoadTest
Как происходит?
Формируется список активностей гейммеханики
Формируются параметры игрового дизайна
Реализуется бот
Проводится испытание
Анализируются результаты

32
Saturday, October 19, 13
LoadTest
Список активностей гейммеханики
Танк должен ехать вправо/влево/вниз/вверх
Танк должен стрелять
Танк должен умирать

33
Saturday, October 19, 13
LoadTest
Параметры игрового дизайна
Танк должен ехать 4 секунды из 5
Танк должен стрелять раз в 5 секунд
Танк должен умирать раз в 10 секунд

Танк НЕ обязан делать это осознанно

34
Saturday, October 19, 13
LoadTest
Проводится испытание
Час
Два
8 часов
Сутки
Неделю
?

35
Saturday, October 19, 13
LoadTest
Рекомендуемые инструменты
jMeter
LoadBalancer
Yandex-tanki

36
Saturday, October 19, 13
LoadTest
Анализируются результаты

lo
Бы от ad
ко
ва

1. Потребление CPU, %

Hi

gh

2. Диск (iowait)
3. Сеть, Mb/s

4. Время отклика, ms

Text

5. CCU, users
6. Load, parrots
7. Использование памяти, МБ

37
Saturday, October 19, 13
LoadTest
CCU, users
private Map<Integer, Avatar> avatars = new HashMap<>();
public final int getTotalAvatars() {
return avatars.size();
}

38
Saturday, October 19, 13
LoadTest
Server FPS
Инициализация
Входные данные
Обработка данных
Тик сервера
Обновление состояния
Выходные данные
Освобождение ресурсов

39
Saturday, October 19, 13
LoadTest
Load [parrots]
public void run () {
while(true) {
msgSystem.execForAbonent(this);
Thread.sleep(100); 
 // фиксированное время ожидания потока
}
}
private static final int TICK_TIME = 20;
public void run () {
while(true) {
long startTime = System.currentTimeMillis();
msgSystem.execForAbonent(this);
int deltaTime = System.currentTimeMillis() - startTime;
float load = deltaTime / TICK_TIME;
if (load < 1)

// динамическое время ожидания потока
Thread.sleep( TICK_TIME - deltaTime );
}
}
40
Saturday, October 19, 13
LoadTest
Многопоточность
Не спать вредно
Много спать тоже вредно
Чем больше нагрузка на CPU, тем лучше

41
Saturday, October 19, 13
LoadTest
Нагрузка на процессор

42
Saturday, October 19, 13
LoadTest
Нагрузка на процессор

43
Saturday, October 19, 13
LoadTest
Память
long free = Runtime.getRuntime().freeMemory();
long max = Runtime.getRuntime().maxMemory();

44
Saturday, October 19, 13
Углубленное
программирование
на Java
Лекция 5 / 2
«Вся правда о GC»
Александр Акбашев
Saturday, October 19, 13
Garbage Collector
Если бы в Java действительно работала сборка мусора,
большинство программ бы удаляли сами себя при первом
же запуске.
Robert Sewell

46
Saturday, October 19, 13
Garbage Collector
Garbage collector (GC)
Поиск недостежимых объектов
Освобождение памяти

Stack

Heap

Типы ссылок
Strong references
Weak references
Soſt references
Phantom references
47
Saturday, October 19, 13
Garbage Collector
Strong References

Объект не удаляется

48
Saturday, October 19, 13
Garbage Collector
Soſt References

Объект удаляется...если нужна память
Учитывает количество ссылок
Используется для memory-sensitive cache
new SoſtReference(T obj);

49
Saturday, October 19, 13
Garbage Collector
Weak References

Объект удаляется
Атомарно очищает все слабые ссылки на объект
Если надо, помещает объекты на финализацию
Перед использовать - проверять на NULL
WeakHashMap
new WeakReference(T obj);

50
Saturday, October 19, 13
Garbage Collector
Phantom References

Не использовать в домашних условиях

51
Saturday, October 19, 13
Garbage Collector
Немного о потреблении памяти

52
Saturday, October 19, 13
Garbage Collector
HotSpot JVM
 Permanent Generation
Heap 

 New Generation
Eden

 Survivor

Old Generation
 Survivor
t

-XX:PermSize

-XX:MaxPermSize

-Xms

-Xmx

53
Saturday, October 19, 13
Garbage Collector
 Survivor

Eden

Copy Collection
Mark-compact algorithm
54
Saturday, October 19, 13
Garbage Collector

55
Saturday, October 19, 13
Garbage Collector
Что делать? Как настраивать?
jvisualvm входит в JDK

56
Saturday, October 19, 13
Итого
Домашнее задание
MemoryUsage
CCU
Load

http://www.highcharts.com/
http://www.oracle.com/

57
Saturday, October 19, 13
Спасибо за внимание
Акбашев Александр,
a.akbashev@corp.mail.ru

Saturday, October 19, 13
UnitTest
Простейший Mock для Frontend
1. Refactor -> Extract -> Interface
2. Public methods
getAddress
doGet
doPost
run
3. @Mock

59
Saturday, October 19, 13

More Related Content

What's hot

2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
Омские ИТ-субботники
 
Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?
Nikita Lipsky
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ontico
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчика
Anton Arhipov
 

What's hot (20)

JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference EditionJVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
JVM: краткий курс общей анатомии, JPoint 2016 Conference Edition
 
Борис Сазонов, RAII потоки и CancellationToken в C++
Борис Сазонов, RAII потоки и CancellationToken в C++Борис Сазонов, RAII потоки и CancellationToken в C++
Борис Сазонов, RAII потоки и CancellationToken в C++
 
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов
 
. Kotlin для Автоматизации тестирования – первые впечатления
. Kotlin для Автоматизации тестирования – первые впечатления. Kotlin для Автоматизации тестирования – первые впечатления
. Kotlin для Автоматизации тестирования – первые впечатления
 
01 - Java. Введение в Java
01 - Java. Введение в Java01 - Java. Введение в Java
01 - Java. Введение в Java
 
Елена Жукова "Жизнь вне JavaScript"
Елена Жукова "Жизнь вне JavaScript"Елена Жукова "Жизнь вне JavaScript"
Елена Жукова "Жизнь вне JavaScript"
 
Быстрое введение в TDD от А до Я
Быстрое введение в TDD от А до ЯБыстрое введение в TDD от А до Я
Быстрое введение в TDD от А до Я
 
Statis code analysis
Statis code analysisStatis code analysis
Statis code analysis
 
AOT для Java: Мифы и Challenges
AOT для Java: Мифы и ChallengesAOT для Java: Мифы и Challenges
AOT для Java: Мифы и Challenges
 
Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?Верификация Java байткода: когда, как, а может отключить?
Верификация Java байткода: когда, как, а может отключить?
 
Spring puzzlers 2
Spring puzzlers 2Spring puzzlers 2
Spring puzzlers 2
 
Java 9 Модули. Почему не OSGi?
Java 9 Модули. Почему не OSGi?Java 9 Модули. Почему не OSGi?
Java 9 Модули. Почему не OSGi?
 
Java 8 Support at the JVM Level
Java 8 Support at the JVM LevelJava 8 Support at the JVM Level
Java 8 Support at the JVM Level
 
Scala performance под капотом
Scala performance под капотомScala performance под капотом
Scala performance под капотом
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
 
03 - Java. Объекты, классы и пакеты в Java
03 - Java. Объекты, классы и пакеты в Java03 - Java. Объекты, классы и пакеты в Java
03 - Java. Объекты, классы и пакеты в Java
 
JPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчикаJPoint 2015 - Javassist на службе Java-разработчика
JPoint 2015 - Javassist на службе Java-разработчика
 
Akka: как я перестал бояться и полюбил асинхронный код
Akka: как я перестал бояться и полюбил асинхронный кодAkka: как я перестал бояться и полюбил асинхронный код
Akka: как я перестал бояться и полюбил асинхронный код
 
Spring puzzlers
Spring puzzlersSpring puzzlers
Spring puzzlers
 

Viewers also liked

Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1
Technopark
 
АиСД осень 2012 лекция 1
АиСД осень 2012 лекция 1АиСД осень 2012 лекция 1
АиСД осень 2012 лекция 1
Technopark
 
Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8
Technopark
 
Java осень 2013 лекция 8
Java осень 2013 лекция 8Java осень 2013 лекция 8
Java осень 2013 лекция 8
Technopark
 
Android осень 2013 лекция 3
Android осень 2013 лекция 3Android осень 2013 лекция 3
Android осень 2013 лекция 3
Technopark
 
Проектирование графических интерфейсов весна 2014 лекция 2
 Проектирование графических интерфейсов весна 2014 лекция 2 Проектирование графических интерфейсов весна 2014 лекция 2
Проектирование графических интерфейсов весна 2014 лекция 2
Technopark
 
Безопасность интернет-приложений осень 2013 лекция 8
Безопасность интернет-приложений осень 2013 лекция 8Безопасность интернет-приложений осень 2013 лекция 8
Безопасность интернет-приложений осень 2013 лекция 8
Technopark
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
7bits
 

Viewers also liked (9)

Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1
 
АиСД осень 2012 лекция 1
АиСД осень 2012 лекция 1АиСД осень 2012 лекция 1
АиСД осень 2012 лекция 1
 
Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8Разработка веб-сервисов осень 2013 лекция 8
Разработка веб-сервисов осень 2013 лекция 8
 
Java осень 2013 лекция 8
Java осень 2013 лекция 8Java осень 2013 лекция 8
Java осень 2013 лекция 8
 
Android осень 2013 лекция 3
Android осень 2013 лекция 3Android осень 2013 лекция 3
Android осень 2013 лекция 3
 
Проектирование графических интерфейсов весна 2014 лекция 2
 Проектирование графических интерфейсов весна 2014 лекция 2 Проектирование графических интерфейсов весна 2014 лекция 2
Проектирование графических интерфейсов весна 2014 лекция 2
 
Безопасность интернет-приложений осень 2013 лекция 8
Безопасность интернет-приложений осень 2013 лекция 8Безопасность интернет-приложений осень 2013 лекция 8
Безопасность интернет-приложений осень 2013 лекция 8
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
 
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложенияСтажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
Стажировка-2015. Разработка. Занятие 3. Серверные Java-приложения
 

Similar to Java осень 2013 лекция 5-1

Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозит
Elena Kotina
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
UA Mobile
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Yandex
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
yaevents
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Nikolay Samokhvalov
 

Similar to Java осень 2013 лекция 5-1 (20)

Антон Тюрин — Облачная платформа Cocaine — облако своими руками
Антон Тюрин — Облачная платформа Cocaine — облако своими рукамиАнтон Тюрин — Облачная платформа Cocaine — облако своими руками
Антон Тюрин — Облачная платформа Cocaine — облако своими руками
 
Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозит
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chai
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Java 9: what is there beyond modularization
Java 9: what is there beyond modularizationJava 9: what is there beyond modularization
Java 9: what is there beyond modularization
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
 
C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.C++ STL & Qt. Занятие 10.
C++ STL & Qt. Занятие 10.
 
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья СтусьПолный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
 
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3C
 
Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"Александр Тармолов "БЭМ и JavaScript: Тестирование"
Александр Тармолов "БЭМ и JavaScript: Тестирование"
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi
JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry PiJavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi
JavaOne Russia 2013: Опыт использования JDK и Glassfish с Raspberry Pi
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
Groovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conferenceGroovy presentation on Exception #7 conference
Groovy presentation on Exception #7 conference
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 

More from Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 

More from Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

Java осень 2013 лекция 5-1