SlideShare a Scribd company logo
Software Craftsmanship
meetup #2
Сложность алгоритмов.
Принципы хранения данных.
Павел Вейник
CTO @ Splitmetrics
CEO @ Hard & Soft Skills
Зачем митапы?
Поделиться с разработчиками Splitmetrics
Поделиться со всеми разработчиками
Обкатать новый курс для техлидов
Пообщаться
Для кого митапы?
Для разработчиков
Для тестировщиков
Для сочувствующих и интересующихся
Что если я чего-то не знаю?
Ничего страшного, мы расскажем
Вообще, можно спросить у меня или у коллег
Все будет хорошо
План митапов
1. Software Craftsmanship & Agile.
Как не делать говно?
2. Принципы хранения данных
3. Обзор баз данных
4. Очереди сообщений
5. Кэши и файловые хранилища
План этого митапа
1. Алгоритмическая сложность
2. ACID vs BASE
3. И теорема CAP
4. Примеры применения ACID и BASE
5. 2 простых задания на архитектуру
Время cpu vs память
Найти x в массиве
Перебор
Поиск в отсортированном массиве
Хранение флага для любого x
Зачем это знать?
Нотация O(n)
чтобы понимать сколько лет будет работать ваш
алгоритм
Почему сразу лет?
Базы данных. Транзакция.
Логическая единица работы с данными
Либо вся выполнена
Либо вся не выполнена
ACID
 Atomicity
 Сохраняется или вся транзакция, или ничего
 Consistency
 Транзакция завершается или откат к предыдущему состоянию
 Isolation
 Транзакции изолированы друг от друга
 Durability
 Завершенные транзакции сохраняются
Isolation. Проблемы
Lost update
2 tx -> 1 блок данных
Dirty read
Чтение данных транзакции, которая откатится
Isolation. Проблемы
Non-repeatable read
Разные результаты одной и той же выборки. Др
транзакция успела обновить
Phantom read
Разные результаты одной и той же выборки. Др
транзакция успела добавить
Isolation. Уровни
Read uncommited
Допускает dirty reads
Гарантия – нет lost updates
Isolation. Уровни
Read commited
Допускает phantom reads, non-repeatable
reads
Гарантия – защита от dirty reads
MS SQL Server, PostgreSQL, Oracle
По умолчанию
Isolation. Уровни
Repeatable read
Допускает phantom reads
Гарантия – защита от dirty reads, non-
repeatable reads
С помощью блокировки до конца транзакции
Isolation. Уровни
Serializable
Не допускает проблем
Гарантия – защита от dirty reads, non-
repeatable reads, phantom reads
Как будто все транзакции последовательны
Isolation. Уровни
Snapshot – иногда
Каждая транзация в своей «копии бд»
Гарантия – защита от dirty reads, non-
repeatable reads, phantom reads
Как будто все транзакции последовательны,
локи
Isolation. Уровни
Снижают скорость записи в бд
И чтения
Могут возникнуть dead locks (Serializable)
А если много данных?
Как обеспечить ACID, если данных больше,
чем может вместить один сервер?
Как обеспечить ACID, если мы дублируем
данные между разными серверами?
Что будет прочитано?
Теорема CAP
Consistency
Данные не противоречивы во всех узлах в каждый момент
времени
Availability
Отклик системы корректен, но без гарантии совпадения данных в
узлах
Partition Tolerance
Разрезание системы на изолированные куски не приводит к
некорректности отклика
Partition Tolerance
Абсолютная необходимость
Выбираем между Consistency и Availability
CP или AP
Теорема PACELC
В случае Partitioning выбираем
между Availability или Consistency
В случае не Partitioning выбираем
между Latency или Consistency
Что с ACID, если CAP?
Как выдержать ACID, если у нас
Partitioning?
Что с ACID, если CAP?
Basically Available
Ответ на любой запрос, но не факт что не ошибочный
Soft State
Несогласованность между узлами даже когда нет обновлений
данных
Eventual Consistency
Рано или поздно система придет в согласованное состояние
после прекращения обновления данных
Примеры
Когда необходим ACID?
Когда можно и BASE?
Задание 1
Спроектировать сокращатель
ссылок
10к новых ссылок в сутки
Хотим жить 10 лет
Задание 2
Спроектировать счетчик
100к событий в день
Хотим жить 10 лет
Отчеты по сайту
Что будет на следующем митапе?
Типы бд
Нормализация данных
Выбор бд для проекта
Приемы для оптимизаций
Ссылки
 https://tproger.ru/articles/computational-complexity-explained/
 http://bigocheatsheet.com/
 https://gist.github.com/jboner/2841832
 https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html
 https://ru.wikipedia.org/wiki/ACID
 https://yizhang82.dev/db-isolation-level
 https://towardsdatascience.com/cap-theorem-and-distributed-database-management-systems-5c2be977950e
 https://en.wikipedia.org/wiki/PACELC_theorem
 https://dzone.com/articles/understanding-the-cap-theorem
 https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/
Задайте мне вопрос

More Related Content

What's hot

Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Pavel Veinik
 
Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...
HOWWEDOIT
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Kubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rusKubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rus
Ivan Glushkov
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего
Pavel Veinik
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
Alexander Byndyu
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинаАндрей Степенко
 
CCPM Vebinar 21 01 2010
CCPM Vebinar 21 01 2010CCPM Vebinar 21 01 2010
CCPM Vebinar 21 01 2010
Андрей Степенко
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Ontico
 
обзор методов оптимистического управления временем
обзор методов оптимистического управления временемобзор методов оптимистического управления временем
обзор методов оптимистического управления временемAlexander Nevidimov
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and Resiliency
Pavel Veinik
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
Aleksandr Tarasov
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
Ontico
 
Микросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаМикросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаElena Grahovac
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
Max Arshinov
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interaction
Pavel Veinik
 
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь ТумкинУниверсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Cisco Russia
 

What's hot (20)

Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещениеSoftware craftsmanship meetup #9. Логирование, мониторинг, оповещение
Software craftsmanship meetup #9. Логирование, мониторинг, оповещение
 
Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Kubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rusKubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rus
 
Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего Software craftsmanship meetup 21: CQRS что такое и для чего
Software craftsmanship meetup 21: CQRS что такое и для чего
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
вебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазинавебинар 2601 эффективность интернет магазина
вебинар 2601 эффективность интернет магазина
 
CCPM Vebinar 21 01 2010
CCPM Vebinar 21 01 2010CCPM Vebinar 21 01 2010
CCPM Vebinar 21 01 2010
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
 
CCPM DBR Vebinar 28 01 2010
CCPM DBR Vebinar 28 01 2010CCPM DBR Vebinar 28 01 2010
CCPM DBR Vebinar 28 01 2010
 
Tdd in the world of big data
Tdd in the world of big dataTdd in the world of big data
Tdd in the world of big data
 
обзор методов оптимистического управления временем
обзор методов оптимистического управления временемобзор методов оптимистического управления временем
обзор методов оптимистического управления временем
 
20070414 Toc Pm
20070414 Toc Pm20070414 Toc Pm
20070414 Toc Pm
 
Software craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and ResiliencySoftware craftsmanship 15 online: Reliability and Resiliency
Software craftsmanship 15 online: Reliability and Resiliency
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
Микросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опытаМикросервисные архитектуры и немного жизненного опыта
Микросервисные архитектуры и немного жизненного опыта
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
Software craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interactionSoftware craftsmanship 17: Microservices interaction
Software craftsmanship 17: Microservices interaction
 
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь ТумкинУниверсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
Универсальная методика поиска неисправностей от Cisco TAC Игорь Тумкин
 

Similar to Software craftsmanship 2

phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем храненияphpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
Slach
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Andrey Akulov
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
Даниил Зайцев
 
All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - KazanAlexey Bokov
 
Дмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОДмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОDaria Oreshkina
 
Решения Dell для защиты данных и оптимизации ресурсов хранения
Решения Dell для защиты данных и оптимизации ресурсов храненияРешения Dell для защиты данных и оптимизации ресурсов хранения
Решения Dell для защиты данных и оптимизации ресурсов хранения
Dell_Russia
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Ontico
 
Современные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO StorageСовременные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO Storage
DEPO Computers
 
Дедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОДДедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОД
КРОК
 
Mmx cvk-2015
Mmx cvk-2015Mmx cvk-2015
Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2
Andrew Gusev
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
a15464321646213
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
Андрей Новиков
 
Java: вчера, сегодня, завтра
Java: вчера, сегодня, завтраJava: вчера, сегодня, завтра
Java: вчера, сегодня, завтра
Леонид Ставила
 
Smirnov Memcached Highload 2008
Smirnov Memcached Highload 2008Smirnov Memcached Highload 2008
Smirnov Memcached Highload 2008Ontico
 
Smirnov Memcached High Load 2008
Smirnov Memcached High Load 2008Smirnov Memcached High Load 2008
Smirnov Memcached High Load 2008Ontico
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
Elena Ometova
 

Similar to Software craftsmanship 2 (20)

phpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем храненияphpConf 2010 Классификация систем хранения
phpConf 2010 Классификация систем хранения
 
Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)Новые возможности распределенной обработки данных в памяти (Coherence)
Новые возможности распределенной обработки данных в памяти (Coherence)
 
Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)Тестируем производительность распределённых систем, Александр Киров (Parallels)
Тестируем производительность распределённых систем, Александр Киров (Parallels)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Distributed systems
Distributed systemsDistributed systems
Distributed systems
 
All about Azure - Kazan
All about Azure - KazanAll about Azure - Kazan
All about Azure - Kazan
 
Дмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПОДмитрий Еманов — Под капотом серверного ПО
Дмитрий Еманов — Под капотом серверного ПО
 
Решения Dell для защиты данных и оптимизации ресурсов хранения
Решения Dell для защиты данных и оптимизации ресурсов храненияРешения Dell для защиты данных и оптимизации ресурсов хранения
Решения Dell для защиты данных и оптимизации ресурсов хранения
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
 
Современные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO StorageСовременные серверы DEPO Storm и системы хранения DEPO Storage
Современные серверы DEPO Storm и системы хранения DEPO Storage
 
Дедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОДДедупликацию в каждый ЦОД
Дедупликацию в каждый ЦОД
 
Mmx cvk-2015
Mmx cvk-2015Mmx cvk-2015
Mmx cvk-2015
 
Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2Ukraine, Kharkiv, Java Club. Day 2
Ukraine, Kharkiv, Java Club. Day 2
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
 
Java: вчера, сегодня, завтра
Java: вчера, сегодня, завтраJava: вчера, сегодня, завтра
Java: вчера, сегодня, завтра
 
Smirnov Memcached Highload 2008
Smirnov Memcached Highload 2008Smirnov Memcached Highload 2008
Smirnov Memcached Highload 2008
 
Smirnov Memcached High Load 2008
Smirnov Memcached High Load 2008Smirnov Memcached High Load 2008
Smirnov Memcached High Load 2008
 
владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 

More from Pavel Veinik

Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
Pavel Veinik
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Pavel Veinik
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering Webinar
Pavel Veinik
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Pavel Veinik
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the Monolith
Pavel Veinik
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
Pavel Veinik
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Pavel Veinik
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3
Pavel Veinik
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadership
Pavel Veinik
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
Pavel Veinik
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Pavel Veinik
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.
Pavel Veinik
 

More from Pavel Veinik (12)

Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
 
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
Software craftsmanship meetup 20. транзакции и data constistency в микросерви...
 
System Engineering Webinar
System Engineering WebinarSystem Engineering Webinar
System Engineering Webinar
 
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
Software craftsmanship online meetup 18: Kafka как пример идеально горизонтал...
 
Software craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the MonolithSoftware craftsmanship 14 online Splitting the Monolith
Software craftsmanship 14 online Splitting the Monolith
 
Software craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systemsSoftware craftsmanship 12 online highload systems
Software craftsmanship 12 online highload systems
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
 
Software craftsmanship 3
Software craftsmanship 3Software craftsmanship 3
Software craftsmanship 3
 
Women in technology_week-women_leadership
Women in technology_week-women_leadershipWomen in technology_week-women_leadership
Women in technology_week-women_leadership
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
 
Программирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстовПрограммирование и лингвистика: как понять язык и извлечь знания из текстов
Программирование и лингвистика: как понять язык и извлечь знания из текстов
 
Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.Человеческий фактор в разработке, или ORM на noSql через JPA.
Человеческий фактор в разработке, или ORM на noSql через JPA.
 

Software craftsmanship 2