SlideShare a Scribd company logo
1 of 90
2
Временная сложность
алгоритма
O(n)
3
Временная сложность
алгоритма
O(n)
4
Временная сложность
алгоритма
O(n)
4 операции
5
O-нотация - обозначение, описывающее
зависимость количества операций от
входных данных
6
O-нотация - обозначение, описывающее
зависимость количества операций от
входных данных
O(n)
7
Big O
[4, 6, 6, 7, 4, 7, 8, 5]
8
Big O
O(n)
[4, 6, 6, 7, 4, 7, 8, 5]
9
Big O
O(n)
[4, 6, 6, 7, 4, 7, 8, 5]
8
O(n/2)
10
Big O
O(n)
[4, 6, 6, 7, 4, 7, 8, 5]
8
O(n/2) 4
O( 𝑛2
)
11
Big O
O(n)
[4, 6, 6, 7, 4, 7, 8, 5]
8
O(n/2) 4
O( 𝑛2
) 64
O(2 𝑛
)
12
Big O
O(n)
[4, 6, 6, 7, 4, 7, 8, 5]
8
O(n/2) 4
O( 𝑛2
) 64
O(2 𝑛
) 256
13
Основные обозначения Big O
14
Big-O Complexity Chart
bigocheatsheet.com
15
Алгоритмы VS Структуры данных
Имплементация
16
Алгоритмы VS Структуры данных
Имплементация
17
Алгоритмы VS Структуры данных
Имплементация
O(n)
O(n) O(n) O(n) O(n)
18
Алгоритмы VS Структуры данных
Имплементация
O(n)
O(n) O(n) O(n) O(n)
0 1 2 3 4
{} {} {} {} {}
19
Алгоритмы VS Структуры данных
Имплементация
Интерфейс
O(n)
O(n) O(n) O(n) O(n)
0 1 2 3 4
{} {} {} {} {}
20
Алгоритмы VS Структуры данных
Имплементация
Интерфейс
O(n)
O(1) O(n) O(n) O(1)
0 1 2 3 4
{} {} {} {} {}
push() shift() unshift() length()
14
21
Cтруктуры данных “из коробки”
22
Cтруктуры данных “из коробки”
1. Array
23
Cтруктуры данных “из коробки”
1. Array
2. Hash Table (Object, Set, Map)
24
Cтруктуры данных “из коробки”
1. Array
2. Hash Table (Object, Set, Map)
Индексация Поиск Вставка Удаление
25
Cтруктуры данных “из коробки”
1. Array
2. Hash Table (Object, Set, Map)
Индексация Поиск Вставка Удаление
O(1) O(n) O(n) O(n)
26
Cтруктуры данных “из коробки”
1. Array
2. Hash Table (Object, Set, Map)
Индексация Поиск Вставка Удаление
O(1) O(n) O(n) O(n)
(N/A) O(1) O(1) O(1) O(1)
27
Пересечение масивов
28
Array.prototype.indexOf
29
Пересечение масивов
30
Множественные проверки
31
Множественные проверки
Стэк
32
Стэк
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
33
Стэк
1
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
34
Стэк
1
2
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
35
Стэк
1
2
3
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
36
Стэк
1
2
3
4
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
37
Стэк
1
2
3
4
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
38
Стэк
1
2
3
4
LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
39
Стэк
1
2
LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
1. Парсеры (<div><p><a></a></p></div>)
2. Транспиляторы ({“(({}))”})
3. Стэк вызовов функций JavaScript
4. Истории изменений
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
40
41
Стэк вызовов функций JavaScript
42
Базовая реализация
43
Очередь
44
Очередь
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
45
Очередь
1
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
46
Очередь
2 1
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
47
Очередь
3 2 1
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
48
Очередь
4 3 2 1
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
49
Очередь
FIFO (англ. first in — first out, «первым пришёл — первым вышел»).
4 3 2 1
firstlast
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
50
Очередь
FIFO (англ. first in — first out, «первым пришёл — первым вышел»).
1. Очереди
2. Очередь событий JavaScript
4 3 2 1
firstlast
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
51
Базовая реализация
52
Связанные списки
53
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
54
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
DATA
55
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
DATA
DATA
56
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
DATA
DATA
DATA
57
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
DATA
DATA
DATA
DATA
58
1. Последовательности
Связанные списки
Индексация Поиск Вставка Удаление
O(n) O(n) O(1) O(1)
DATA
DATA
DATA
59
Бинарное дерево
52
60
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
53
61
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[5, 8, 13, 6, 4, 23, 9]
54
62
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[5, 8, 13, 6, 4, 23, 9]
indexOf()/includes() - O(n)
55
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[5, 8, 13, 6, 4, 23, 9]
indexOf()/includes() - O(n)
Hash table conversation - O(n + 1) => O(n) // O(1)
63
64
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[5, 8, 13, 6, 4, 23, 9]
indexOf()/includes() - O(n)
Binary search O(n log(n) + log(n)) => O(n log(n))
Hash table convertation - O(n + 1) => O(n) // O(1)
65
Бинарный поиск
[6, 5, 8, 13, 7, 4, 23, 9]
66
Бинарный поиск
[4, 5, 6, 7, 8, 9, 13, 23]
O(n log(n))
[6, 5, 8, 13, 7, 4, 23, 9]
67
Бинарный поиск
23
[4, 5, 6, 7, 8, 9, 13, 23]
68
Бинарный поиск
23
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
69
Бинарный поиск
23
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
70
Бинарный поиск
23
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
71
Бинарный поиск
23
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
[4, 5, 6, 7, 8, 9, 13, 23]
O(log(n))
72
Бинарный поиск
73
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
indexOf()/includes() - O(n)
Binary search O(n log(n) + log(n)) => O(n log(n))
Hash table conversation - O(n + 1) => O(n) // O(1)
Binary search tree - O(log(n))
[6, 5, 8, 13, 7, 4, 23, 9]
74
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
6
[6, 5, 8, 13, 7, 4, 23, 9]
75
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
5
6
[6, 5, 8, 13, 7, 4, 23, 9]
76
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
5 8
6
[6, 5, 8, 13, 7, 4, 23, 9]
77
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
13
5 8
6
[6, 5, 8, 13, 7, 4, 23, 9]
78
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
13
5 8
6
7
[6, 5, 8, 13, 7, 4, 23, 9]
79
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
13
5 8
6
4 7
[6, 5, 8, 13, 7, 4, 23, 9]
80
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
23
13
5 8
6
4 7
[6, 5, 8, 13, 7, 4, 23, 9]
81
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
82
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
83
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
84
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
85
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
86
Индексация Поиск Вставка Удаление
O(log(n)) O((log(n)) O((log(n)) O((log(n))
Бинарное дерево
[6, 5, 8, 13, 7, 4, 23, 9]
9 23
13
5 8
6
4 7
87
1. Использование структур данных шире хранения большого объёма
данных.
2. Исполнительные конструкции кода могут быть упрощены.
3. Правильный выбор СД структурирует приложение и делает код
понятнее.
4. Повторяющиеся вычисления не должны существовать.
5. Правильно подобранная СД для задачи ускоряет приложение.
88
1. https://habr.com/ru/post/359192/ - Классические алгоритмы и
структуры данных на JavaScript
2. https://github.com/trekhleb/javascript-algorithms - Репозиторий
реализаций
3. http://bigocheatsheet.com - Таблицы и графики Big O
4. https://habr.com/ru/post/339656/ - О выборе структур данных для
начинающих
5. https://habr.com/ru/post/422259/ - Основные структуры данных.
Матчасть. Азы
Материалы
89
“Умные структуры данных
и тупой код работают куда
лучше, чем наоборот.”
ESR
Any
questions?
Nick.Gromov.92 nick-gromov-1614b7125
+38 066 083 07 06

More Related Content

Similar to Структуры данных в JavaScript | Odessa Frontend Meetup #13

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JSFestUA
 
Logarifmy logarifmicheskaya funkciya
Logarifmy logarifmicheskaya funkciyaLogarifmy logarifmicheskaya funkciya
Logarifmy logarifmicheskaya funkciyaIvanchik5
 
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...Alexey Paznikov
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JSFestUA
 
Highload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексыHighload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексыPavel Egorov
 
Highload. Создание специализированных высокопроизводительных индексов
Highload. Создание специализированных высокопроизводительных индексовHighload. Создание специализированных высокопроизводительных индексов
Highload. Создание специализированных высокопроизводительных индексовAlexander Byndyu
 
Learning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинLearning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинMail.ru Group
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Ontico
 
Игорь Лабутин «Коллекционируем данные в .NET»
Игорь Лабутин «Коллекционируем данные в .NET»Игорь Лабутин «Коллекционируем данные в .NET»
Игорь Лабутин «Коллекционируем данные в .NET»SpbDotNet Community
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevIosif Itkin
 
Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Mikhail Shcherbakov
 
На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#Artem Borzilov
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonYandex
 

Similar to Структуры данных в JavaScript | Odessa Frontend Meetup #13 (17)

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
 
Logarifmy logarifmicheskaya funkciya
Logarifmy logarifmicheskaya funkciyaLogarifmy logarifmicheskaya funkciya
Logarifmy logarifmicheskaya funkciya
 
Python. Введение
Python. ВведениеPython. Введение
Python. Введение
 
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...
Анализ эффективности выполнения алгоритма параллельной редукции в языке Cray ...
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
 
Highload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексыHighload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексы
 
Highload. Создание специализированных высокопроизводительных индексов
Highload. Создание специализированных высокопроизводительных индексовHighload. Создание специализированных высокопроизводительных индексов
Highload. Создание специализированных высокопроизводительных индексов
 
Learning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинLearning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван Сметанин
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
 
Игорь Лабутин «Коллекционируем данные в .NET»
Игорь Лабутин «Коллекционируем данные в .NET»Игорь Лабутин «Коллекционируем данные в .NET»
Игорь Лабутин «Коллекционируем данные в .NET»
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
 
Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#Поиск ошибок в программах на языке C#
Поиск ошибок в программах на языке C#
 
На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#На что способны современные статические анализаторы для C#
На что способны современные статические анализаторы для C#
 
Олег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и PythonОлег Алистратов — Сортировка списков в Perl и Python
Олег Алистратов — Сортировка списков в Perl и Python
 

More from OdessaFrontend

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19OdessaFrontend
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...OdessaFrontend
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19OdessaFrontend
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18OdessaFrontend
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17OdessaFrontend
 
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17OdessaFrontend
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
 
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OdessaFrontend
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16OdessaFrontend
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16OdessaFrontend
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16OdessaFrontend
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщикаOdessaFrontend
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15OdessaFrontend
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15OdessaFrontend
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15OdessaFrontend
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15OdessaFrontend
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14OdessaFrontend
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13OdessaFrontend
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13OdessaFrontend
 

More from OdessaFrontend (20)

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17
 
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
 

Структуры данных в JavaScript | Odessa Frontend Meetup #13