SlideShare a Scribd company logo
1 of 104
Download to read offline
REST-SOA-Controller-View:
Проектирование обмена данными
Егор Тафланиди19/03/2016
et@redmadrobot.com
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
01
02
Опрос аудитории
03
Польза
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
04
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
04
- Domain-Specific Language
- DSL-интерфейс
- Обмен модельными объектами
Слои
05
СВОЙСТВА
Entity
• id { get set }
/* no logic */
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
06
Entity
• id { get set }!
- База данных
Сервер
07
СТРУКТУРА
Table: User
id name surname
1 Иван Иванов
2 Сидор Сидоров
- База данных
Сервер
07
СТРУКТУРА
Table: User
name surname
Иван Иванов
Сидор Сидоров
id
1
2
- База данных
Сервер
08
СТРУКТУРА
Table: User
name surname
Иван Иванов
Сидор Сидоров
id
1
2
=>
User
• id
• name
• surname
- ORM вычитывает объект из базы
- DAO транслирует ORM-объект в POJO
Сервер
09
СТРУКТУРА: ПУТЕШЕСТВИЕ ENTITY
User
• id
• name
• surname
ORM

Database
DAO
ORM Object
Business

Logic
Object
Сервер
10
User
• id
• name
• surname
Business

Logic
Serialiser
Object
Transport
DT Object
- ORM вычитывает объект из базы
- DAO транслирует ORM-объект в POJO
- Бизнес-логика транслирует POJO в DTO
СТРУКТУРА: ПУТЕШЕСТВИЕ ENTITY
Сервер
11
User
• id
• name
• surname
Transport HTTP
JSON
Mobile

App
JSON
…
- ORM вычитывает объект из базы
- DAO транслирует ORM-объект в POJO
- Бизнес-логика транслирует POJO в DTO
- Транспорт транслирует DTO в JSON
- JSON передаётся на фронт
СТРУКТУРА: ПУТЕШЕСТВИЕ ENTITY
Сервер
12
СТРУКТУРА: TYPE STACK
User
ORM

Database
DAO
Business

Logic
Serialiser
Transport
…
Product
ORM

Database
DAO
Business

Logic
Serialiser
Transport
…
Message
ORM

Database
DAO
Business

Logic
Serialiser
Transport
…
…
Сервер
13
СЕРВИСЫ
User
Product
Message
} Набор

Web-сервисов
14
Протокол
REST
Протокол
15
RESOURCE
Resource R is a temporally varying membership
function MR(t), which for time t 
maps to a set of entities
/ Representational State Transfer, dissertation /
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Протокол
16
ENTITY & URL ENDPOINT
/entities
(resource)
Array(Entity)
Entity
• id { get set }
Протокол
16
ENTITY & WEB SERVICE
: REntity
POST /entities
GET /entities
GET /entities/{id}
PATCH /entities/{id}
DELETE /entities/{id}
/entities
(resource)
Entity
• id { get set }
Протокол
17
C.R.U.D.
POST /entities
GET /entities
GET /entities/{id}
PATCH /entities/{id}
DELETE /entities/{id}
Create
Read
Update
Delete
Entity
• id { get set }∀
Протокол
18
ВЛОЖЕННОСТЬ. ДОВЕРИЕ К СЕРВЕРУ
User
• id: Long
• name: String
PATCH /users/{id}/name
User
• id: Long
• name: String
/* name patched */
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
19
20
Мобильное приложение
SDK MVC
Мобильное приложение
- Тип данных = ключевая сущность
- Разница в логике = набор полей
21
SERVICE-ORIENTED ARCHITECTURE
Entity
ORM

Database
DAO
Business

Logic
Serialiser
Transport
…
22
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
SERVICE
22
SERVICE
TRANSPORT
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
22
SERVICE
TRANSPORT
SERIALIZERPARSER
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
22
SERVICE
TRANSPORT
SERIALIZERPARSER
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
22
SERVICE
DATABASE
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
DAO
22
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
SERVICESERVICE SERVICE
22
SERVICESERVICE SERVICE
SERVICE LAYER
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
22
SERVICESERVICE SERVICE
SERVICE LAYER
Мобильное приложение
SERVICE-ORIENTED ARCHITECTURE
CONTROLLER
23
Интерлюдия: многопоточность
CALLBACK HELL
Callback Hell
24
24
T1
T2
T3
T4
Callback Hell
24
T1
T2
T3
T4
CONTROLLER
Callback Hell
24
T1
T2
T3
T4
CONTROLLER SERVICE
Callback Hell
24
T1
T2
T3
T4
CONTROLLER SERVICE SERIALIZER
Callback Hell
24
T1
T2
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE
Callback Hell
24
T1
T2
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT PARSER
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT PARSER
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT DBPARSER
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT DBPARSER
Callback Hell
24
T2
T1
T3
T4
CONTROLLER SERVICE SERIALIZER SERVICE TRANSPORT …PARSER DB
Callback Hell
24
T2
T1
T3
T4
SERVICE TRANSPORT PARSER DBSERVICE SERVICE SERVICE
Callback Hell
24
T2
T1
T3
T4
SERVICE TRANSPORT PARSER DBSERVICE SERVICE SERVICE
RESULT
Callback Hell
24
T2
T1
SERVICE PARSERSERVICE SERVICE DB SERVICE …TRANSPORT
Callback Hell
24
T2
T1
SERVICE PARSERSERVICE SERVICE DB SERVICE …TRANSPORT
OPERATION
Callback Hell
Operation
25
id result = transport.obtain(parameters)
id object = parser.parse(result)
db.save(object)
return object
Operation
26
dispatch_async(background_queue, ^{
id result = transport.obtain(parameters)
id object = parser.parse(result)
db.save(object)
dispatch_async(main_queue, ^{
completionBlock(object)
})
})
Operation
27
– (void)main {
id result = transport.obtain(parameters)
id object = parser.parse(result)
db.save(object)
completionBlock(object)
}
@interface Operation : NSOperation

…

@implementation Operation
Агенда
- Опрос аудитории
- Слои
- Сервер
- Протокол
- Мобильное приложение
- Пример
28
00
Пример
SERVICE LAYER
01
Transport
02
Transport
- CRUD ~ URL endpoint + HTTP method + parameters
- ~ Web service base URL
- Семафор в качестве «выпрямителя» потоков
SYNCHRONOUS
03
/**	
	Операция	«Получить	коллекцию	сущностей».	
	Пример:	
	GET	http://api.customer.com/v1/entitites	
	$headers	
	@param	parameters	-	параметры	запроса.	@see	TransportationParameters	
	@return	Возвращает	результат	выполнения	операции.	
	*/	
-	(TransportationResult	*)obtainAllWithParameters:(TransportationParameters	*)parameters;	
Transport
SYNCHRONOUS
03
/**	
	Операция	«Обновить	значение	свойства	сущности».	
	Пример:	
	PATCH	http://api.customer.com/v1/entitites/{entityId}/{property}	
	$headers	
	{	$body_parameters	}	
	@param	entityId			-	идентификатор	сущности;	
	@param	property			-	название	свойства	сущности;	
	@param	parameters	-	параметры	запроса.	@see	TransportationParameters	
	@return	Возвращает	результат	выполнения	операции.	
	*/	
-	(TransportationResult	*)updateWithId:(NSString	*)entityId	
																														property:(NSString	*)property	
																												parameters:(TransportationParameters	*)parameters;
Transport
SYNCHRONOUS
04
Parser
05
Parser
- Наличие объекта = наличие всех его обязательных
полей
- Для пользователя ошибки «парсер не смог
распознать данные» и «данные не пришли» будут
иметь одинаковые последствия
- Не стоит городить непробиваемую «оборону»
- Приложению нужны объекты, а не топология
BLIND
06
Parser
BLIND
@interface	Parser<__covariant	Entity>	:	NSObject	
-	(NSArray	*)parseAll:(id)json;	
-	(BOOL)parsable:(NSDictionary	*)json;	
-	(Class)objectClass;	
-	(NSDictionary	*)mapping;	
-	(Entity)sanitize:(Entity)object;	
-	(Entity)fulfill:(Entity)object		
													from:(NSDictionary	*)json;	
@end
07
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
Entity
• id
• text
• note
08
Parser
EXAMPLE
@interface	Parser<__covariant	Entity>	:	NSObject	
-	(NSArray	*)parseAll:(id)json;	
-	(BOOL)parsable:(NSDictionary	*)json;	
-	(Class)objectClass;	
-	(NSDictionary	*)mapping;	
-	(Entity)sanitize:(Entity)object;	
-	(Entity)fulfill:(Entity)object		
													from:(NSDictionary	*)json;	
@end
– parseAll:
09
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
10
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
11
Parser
EXAMPLE
@interface	Parser<__covariant	Entity>	:	NSObject	
-	(NSArray	*)parseAll:(id)json;	
-	(BOOL)parsable:(NSDictionary	*)json;	
-	(Class)objectClass;	
-	(NSDictionary	*)mapping;	
-	(Entity)sanitize:(Entity)object;	
-	(Entity)fulfill:(Entity)object		
													from:(NSDictionary	*)json;	
@end
– parseable:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseable:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseable:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseable:
12
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseable:
13
Parser
EXAMPLE
@interface	Parser<__covariant	Entity>	:	NSObject	
-	(NSArray	*)parseAll:(id)json;	
-	(BOOL)parsable:(NSDictionary	*)json;	
-	(Class)objectClass;	
-	(NSDictionary	*)mapping;	
-	(Entity)sanitize:(Entity)object;	
-	(Entity)fulfill:(Entity)object		
													from:(NSDictionary	*)json;	
@end
14
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseable:
Entity
• id = "3"
• text = "annotation"
• note = nil
14
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
Entity
• id = "3"
• text = "annotation"
• note = nil
– sanitize:
14
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
Entity
• id = "3"
• text = "annotation"
• note = nil
– sanitize:
14
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
Entity
• id = 3
• text = "annotation"
• note = nil
– sanitize:
14
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
Entity
• id = 3
• text = "annotation"
• note = nil
– fulfill:
– parseAll:
15
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
15
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
15
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
– parseAll:
15
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
15
Parser
EXAMPLE
{		
			"id":	1,	
			"dict":{		
						"id":	"3",	
						"text":"annotation"	
			},	
			"array":[		
						{		
									"id":4,	
									"text":"description",	
									"note":"FYI"	
						}	
			]	
}
=> [Entity]
16
DAO
ШАБЛОН ПРОЕКТИРОВАНИЯ
17
DAO
- Взаимодействие с DAO посредством 

модельных объектов (Entity : NSObject) => изоляция
- Инжектируемость
- Потокобезопасность
- «Соединение» с базой данных
- Транзакционность
ИДЕОЛОГИЯ
18
DAO
- persist(Entity) -> BOOL
- persistAll(Array<Entity>) -> BOOL
- read(ID) -> Entity
- readAll() -> Array<Entity>
- erase(ID) -> BOOL
- eraseAll() -> BOOL
ИНТЕРФЕЙС
19
Entity Translator
ШАБЛОН ПРОЕКТИРОВАНИЯ
20
Entity Translator
Entity
• id
• text
• note
=>

<=
{		
				"id":4,	
				"text":"description",	
				"note":"FYI"	
}
EntityDTO : NSDictionary
20
Entity Translator
Entity
• id
• text
• note
=>

<=
ORMEntity
• id
• text
• note
21
DAO TRANSLATOR
Entity Translator
@interface	RealmTranslator	:	NSObject	
-	(RLMEntry	*)toEntry:(id	<Persistable>)entity;	
-	(id<Persistable>)toEntity:(RLMEntry	*)entry;	
-	(NSString	*)entryClass;	
@end
22
DAO TRANSLATOR
Entity Translator
{	
		let	dao:	DAO	=	RealmDAO(translator:	translator)	
}
23
Entity Translator
КОДОГЕНЕРАЦИЯ
24
Entity Translator
КОДОГЕНЕРАЦИЯ
/**	
	Последняя	транзакция.	
	@json	last_transaction	
	@mandatory	
	@realm	lastTransaction	
	*/	
@property	(…)	Transaction	*lastTransaction;
25
Service
26
Service
- Инстанциирование утилит (?)
- Набор виртуальных конструкторов
- Координация данных между утилитами
- Многопоточность, инстанциирование операций
- Асинхронный интерфейс для верхнего слоя UI
ОТВЕТСТВЕННОСТЬ
27
Service Layer
ИНВЕРТЕР ЗАВИСИМОСТЕЙ
28
Service Layer
- Инстанциирование сервисов
- Инжектирование сервисов
- Инжектирование очередей запросов
ОТВЕТСТВЕННОСТЬ
Итоги
- REST
- SOA
- Многопоточность = зло
- Пример реализации сервисного уровня
ВОПРОСЫ ЕСТЬ?ВОПРОСОВ НЕТ!
Егор Тафланиди

et@redmadrobot.com

More Related Content

Viewers also liked

"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)
"Удобный и расширяемый роутинг в iOS-приложении" Тимур  Юсипов (Avito)"Удобный и расширяемый роутинг в iOS-приложении" Тимур  Юсипов (Avito)
"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)AvitoTech
 
"Kotlin и rx в android" Дмитрий Воронин (Avito)
"Kotlin и rx в android" Дмитрий Воронин  (Avito)"Kotlin и rx в android" Дмитрий Воронин  (Avito)
"Kotlin и rx в android" Дмитрий Воронин (Avito)AvitoTech
 
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)AvitoTech
 
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...
"Опыт участия в Microsoft Malware Classification Challenge"  Михаил Трофимов ..."Опыт участия в Microsoft Malware Classification Challenge"  Михаил Трофимов ...
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...AvitoTech
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
 
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ..."Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...AvitoTech
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Ontico
 
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (..."Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...AvitoTech
 
"DeepLink’и в Avito" Артём Разинов (Avito)
"DeepLink’и в Avito" Артём Разинов (Avito)"DeepLink’и в Avito" Артём Разинов (Avito)
"DeepLink’и в Avito" Артём Разинов (Avito)AvitoTech
 
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)AvitoTech
 
"Секционирование без границ" Ильдар Мусин (Postgres Professional)
"Секционирование без границ" Ильдар Мусин (Postgres Professional)"Секционирование без границ" Ильдар Мусин (Postgres Professional)
"Секционирование без границ" Ильдар Мусин (Postgres Professional)AvitoTech
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)AvitoTech
 
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)AvitoTech
 
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов  (..."Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов  (...
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...AvitoTech
 
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)AvitoTech
 
"Построение рекомендательной системы на Python" Василий Лексин (Avito)
"Построение рекомендательной системы на Python" Василий Лексин (Avito)"Построение рекомендательной системы на Python" Василий Лексин (Avito)
"Построение рекомендательной системы на Python" Василий Лексин (Avito)AvitoTech
 
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (..."Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...AvitoTech
 
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)AvitoTech
 

Viewers also liked (20)

"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)
"Удобный и расширяемый роутинг в iOS-приложении" Тимур  Юсипов (Avito)"Удобный и расширяемый роутинг в iOS-приложении" Тимур  Юсипов (Avito)
"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)
 
"Kotlin и rx в android" Дмитрий Воронин (Avito)
"Kotlin и rx в android" Дмитрий Воронин  (Avito)"Kotlin и rx в android" Дмитрий Воронин  (Avito)
"Kotlin и rx в android" Дмитрий Воронин (Avito)
 
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)
"Ускорение сборки большого проекта на Objective-C + Swift" Иван Бондарь (Avito)
 
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...
"Опыт участия в Microsoft Malware Classification Challenge"  Михаил Трофимов ..."Опыт участия в Microsoft Malware Classification Challenge"  Михаил Трофимов ...
"Опыт участия в Microsoft Malware Classification Challenge" Михаил Трофимов ...
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
 
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ..."Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...
"Быстрое внедрение Sphinx на примере проекта Фоксфорд.Учебник" Антон Ковалёв ...
 
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)
 
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (..."Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...
"Распознавание марки и модели автомашин на изображениях" Евгений Нижибицкий (...
 
"DeepLink’и в Avito" Артём Разинов (Avito)
"DeepLink’и в Avito" Артём Разинов (Avito)"DeepLink’и в Avito" Артём Разинов (Avito)
"DeepLink’и в Avito" Артём Разинов (Avito)
 
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)
“Атличнаи дивчачьи каньки”: исправляем ошибки. Андрей Смирнов (Avito)
 
"Секционирование без границ" Ильдар Мусин (Postgres Professional)
"Секционирование без границ" Ильдар Мусин (Postgres Professional)"Секционирование без границ" Ильдар Мусин (Postgres Professional)
"Секционирование без границ" Ильдар Мусин (Postgres Professional)
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)
 
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)
"Распознавание категории объявления по изображениям" Артур Кузин (МФТИ)
 
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов  (..."Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов  (...
"Успеть за 100 миллисекунд: контекстная реклама на Sphinx" Дмитрий Хасанов (...
 
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
"Kotlin для Android: 1.0 и далее" Дмитрий Жемеров (JetBrains)
 
"Построение рекомендательной системы на Python" Василий Лексин (Avito)
"Построение рекомендательной системы на Python" Василий Лексин (Avito)"Построение рекомендательной системы на Python" Василий Лексин (Avito)
"Построение рекомендательной системы на Python" Василий Лексин (Avito)
 
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (..."Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
"Контекстная реклама в Avito: что под капотом?" Вадим Аюев и Андрей Остапец (...
 
Physical Architecture Layer Design
Physical Architecture Layer DesignPhysical Architecture Layer Design
Physical Architecture Layer Design
 
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)
"Бэк-офис в Avito: миллиард объявлений на 10 серверах" Вячеслав Крюков (Avito)
 

Similar to "REST-SOA-View-Controller или Проектирование сервис-ориентированной системы сервер/мобильное приложение" Егор Тафланиди (Redmadrobot)

Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоARCCN
 
ITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLAITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLAMichael Kozloff
 
Облачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAОблачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAActiveCloud
 
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...ARCCN
 
А.Шаманин -- "Инженерия справочных данных промышленного каталога"
А.Шаманин -- "Инженерия справочных данных промышленного каталога"А.Шаманин -- "Инженерия справочных данных промышленного каталога"
А.Шаманин -- "Инженерия справочных данных промышленного каталога"Anatoly Levenchuk
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Тенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связиТенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связиCisco Russia
 
Услуги КРОК в сфере облачных вычислений
Услуги КРОК в сфере облачных вычисленийУслуги КРОК в сфере облачных вычислений
Услуги КРОК в сфере облачных вычисленийКРОК
 
Стратегия развития технологий Интернета Вещей в Cisco
Стратегия развития технологий Интернета Вещей в CiscoСтратегия развития технологий Интернета Вещей в Cisco
Стратегия развития технологий Интернета Вещей в CiscoCisco Russia
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remotingKewpaN
 
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...Microsoft
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 
Решения крок для фармацевтики и медицины
Решения крок для фармацевтики и медициныРешения крок для фармацевтики и медицины
Решения крок для фармацевтики и медициныAlex Shan
 
Контроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияКонтроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияCisco Russia
 
SDN в корпоративных сетях
SDN в корпоративных сетяхSDN в корпоративных сетях
SDN в корпоративных сетяхCisco Russia
 
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereИнновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereCisco Russia
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеCisco Russia
 

Similar to "REST-SOA-View-Controller или Проектирование сервис-ориентированной системы сервер/мобильное приложение" Егор Тафланиди (Redmadrobot) (20)

Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 
ITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLAITSM форум России. Облачные вычисления. Проблемы работы с SLA
ITSM форум России. Облачные вычисления. Проблемы работы с SLA
 
Облачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAОблачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLA
 
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
Технологии Программно-Конфигурируемых Сетей и Виртуализации Сетевых Функций (...
 
А.Шаманин -- "Инженерия справочных данных промышленного каталога"
А.Шаманин -- "Инженерия справочных данных промышленного каталога"А.Шаманин -- "Инженерия справочных данных промышленного каталога"
А.Шаманин -- "Инженерия справочных данных промышленного каталога"
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Rest API
Rest APIRest API
Rest API
 
Тенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связиТенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связи
 
Service Desk by InfraManager ITSM
Service Desk by InfraManager ITSMService Desk by InfraManager ITSM
Service Desk by InfraManager ITSM
 
Услуги КРОК в сфере облачных вычислений
Услуги КРОК в сфере облачных вычисленийУслуги КРОК в сфере облачных вычислений
Услуги КРОК в сфере облачных вычислений
 
Стратегия развития технологий Интернета Вещей в Cisco
Стратегия развития технологий Интернета Вещей в CiscoСтратегия развития технологий Интернета Вещей в Cisco
Стратегия развития технологий Интернета Вещей в Cisco
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
Microsoft и облако Azure для разработчиков на Android – сервисы для бэкенда, ...
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Решения крок для фармацевтики и медицины
Решения крок для фармацевтики и медициныРешения крок для фармацевтики и медицины
Решения крок для фармацевтики и медицины
 
Контроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияКонтроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколения
 
SDN в корпоративных сетях
SDN в корпоративных сетяхSDN в корпоративных сетях
SDN в корпоративных сетях
 
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereИнновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применение
 

More from AvitoTech

Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)
Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)
Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)AvitoTech
 
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...Применение компьютерного зрения для анализа спортивных соревнований (Николай ...
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...AvitoTech
 
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)AvitoTech
 
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)AvitoTech
 
Yandex Tank - Арсений Фомченко
Yandex Tank - Арсений ФомченкоYandex Tank - Арсений Фомченко
Yandex Tank - Арсений ФомченкоAvitoTech
 
Migro - Юрий Богомолов
Migro - Юрий БогомоловMigro - Юрий Богомолов
Migro - Юрий БогомоловAvitoTech
 
TableKit - Максим Соколов
TableKit - Максим СоколовTableKit - Максим Соколов
TableKit - Максим СоколовAvitoTech
 
Jsonwire Grid - Михаил Подцерковский (Avito)
Jsonwire Grid - Михаил Подцерковский (Avito)Jsonwire Grid - Михаил Подцерковский (Avito)
Jsonwire Grid - Михаил Подцерковский (Avito)AvitoTech
 
SimplePEG - Алексей Охрименко
SimplePEG - Алексей ОхрименкоSimplePEG - Алексей Охрименко
SimplePEG - Алексей ОхрименкоAvitoTech
 
Как перестать бояться и начать контрибьютить - Алексей Кудрявцев
 Как перестать бояться и начать контрибьютить - Алексей Кудрявцев Как перестать бояться и начать контрибьютить - Алексей Кудрявцев
Как перестать бояться и начать контрибьютить - Алексей КудрявцевAvitoTech
 
"Анонимизация фото с помощью Vision", Хомутников Тимофей, Avito
"Анонимизация фото с помощью Vision",  Хомутников Тимофей, Avito"Анонимизация фото с помощью Vision",  Хомутников Тимофей, Avito
"Анонимизация фото с помощью Vision", Хомутников Тимофей, AvitoAvitoTech
 
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
“iOS 11 в App in the Air”, Пронин Сергей, App in the AirAvitoTech
 
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb..."ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...AvitoTech
 
ASO for iOS 11
ASO for iOS 11ASO for iOS 11
ASO for iOS 11AvitoTech
 
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)AvitoTech
 
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...AvitoTech
 
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)AvitoTech
 
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)AvitoTech
 
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...AvitoTech
 
Конкурс Авито-2017 - Решение 2ое место - Василий Рубцов
Конкурс Авито-2017 - Решение 2ое место - Василий РубцовКонкурс Авито-2017 - Решение 2ое место - Василий Рубцов
Конкурс Авито-2017 - Решение 2ое место - Василий РубцовAvitoTech
 

More from AvitoTech (20)

Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)
Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)
Сегментация изображений на острие науки (Евгений Нижибицкий, Rambler&Co)
 
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...Применение компьютерного зрения для анализа спортивных соревнований (Николай ...
Применение компьютерного зрения для анализа спортивных соревнований (Николай ...
 
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)
Распознавание лиц с помощью глубоких нейронных сетей (Сергей Миляев, VisionLabs)
 
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)
AvitoNet: сервис компьютерного зрения в Avito (Артур Кузин, Avito)
 
Yandex Tank - Арсений Фомченко
Yandex Tank - Арсений ФомченкоYandex Tank - Арсений Фомченко
Yandex Tank - Арсений Фомченко
 
Migro - Юрий Богомолов
Migro - Юрий БогомоловMigro - Юрий Богомолов
Migro - Юрий Богомолов
 
TableKit - Максим Соколов
TableKit - Максим СоколовTableKit - Максим Соколов
TableKit - Максим Соколов
 
Jsonwire Grid - Михаил Подцерковский (Avito)
Jsonwire Grid - Михаил Подцерковский (Avito)Jsonwire Grid - Михаил Подцерковский (Avito)
Jsonwire Grid - Михаил Подцерковский (Avito)
 
SimplePEG - Алексей Охрименко
SimplePEG - Алексей ОхрименкоSimplePEG - Алексей Охрименко
SimplePEG - Алексей Охрименко
 
Как перестать бояться и начать контрибьютить - Алексей Кудрявцев
 Как перестать бояться и начать контрибьютить - Алексей Кудрявцев Как перестать бояться и начать контрибьютить - Алексей Кудрявцев
Как перестать бояться и начать контрибьютить - Алексей Кудрявцев
 
"Анонимизация фото с помощью Vision", Хомутников Тимофей, Avito
"Анонимизация фото с помощью Vision",  Хомутников Тимофей, Avito"Анонимизация фото с помощью Vision",  Хомутников Тимофей, Avito
"Анонимизация фото с помощью Vision", Хомутников Тимофей, Avito
 
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
“iOS 11 в App in the Air”, Пронин Сергей, App in the Air
 
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb..."ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...
"ARKit в приложении Афиша Рестораны”, Меджлумян Самвел, Антышев Дмитрий, Ramb...
 
ASO for iOS 11
ASO for iOS 11ASO for iOS 11
ASO for iOS 11
 
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
Добиваемся эффективности каждого из 9000+ UI-тестов - Максим Сахаров (Tutu.ru)
 
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...
Проблемы управления тестами, или Что мешает создавать дешевые и полезные тест...
 
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)
Запускаем тесты в Continuous Integration - Сергей Пак (JetBrains)
 
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
Векторы развития систем автоматизации тестирования - Дмитрий Химион (Avito)
 
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...
Прокачиваем WebDriverAgent, или Как тестировать iOS-приложения после ядерного...
 
Конкурс Авито-2017 - Решение 2ое место - Василий Рубцов
Конкурс Авито-2017 - Решение 2ое место - Василий РубцовКонкурс Авито-2017 - Решение 2ое место - Василий Рубцов
Конкурс Авито-2017 - Решение 2ое место - Василий Рубцов
 

"REST-SOA-View-Controller или Проектирование сервис-ориентированной системы сервер/мобильное приложение" Егор Тафланиди (Redmadrobot)