SlideShare a Scribd company logo
1 of 101
Download to read offline
Александр Сычев
Руководитель отдела
Один день из жизни
iOS-разработчика
iOS department
Александр Сычев
a.sychev@rambler-co.ru
@asychev89
iOS department
iOS department
2014 год
RAMBLER&Co
iOS department
iOS department
CTO
Проектное
управление
Тестирование Разработка Дизайн
iOS department
Департамент
разработки
Отдел Ruby &
Python
разработки
Отдел Frontend
разработки
Отдел iOS
разработки
Отдел C#
разработки
Отдел Android
разработки
Руководители
групп
Руководители
групп
Руководители
групп
Инженеры-
разработчики
Инженеры-
разработчики
Инженеры-
разработчики
Инженеры-
разработчики
Инженеры-
разработчики
iOS department
Проектный
менеджер
iOS
разработчик
iOS
разработчик
Android
разработчик
Android
разработчик
Backend
разработчик
Backend
разработчик
Тестировщик Дизайнер
iOS department
Проектный
менеджер
RDS Заказчик
Продуктовый
менеджер
Бизнес-лидер
iOS department
Функциональный
руководитель
Проектный
менеджер #1
iOS
разработчик
Проектный
менеджер #2
iOS
разработчик
Матричная
структура
Функциональный
руководитель
Backend
разработчик
Backend
разработчик
Функциональный
руководитель
Android
разработчик
Android
разработчик
Проектный
менеджер #3
iOS
разработчик
Backend
разработчик
Android
разработчик
iOS department
iOS department
Стандартизация
iOS department
Стандартизация
• Минимизация «человеческого фактора»
• Повышение степени обучаемости
персонала
• Повышение качества коммуникаций
• Формирование базы знаний
• Автоматизация процесса
iOS department
Стандартизация
• Минимизация «человеческого фактора»
• Повышение степени обучаемости
персонала
• Повышение качества коммуникаций
• Формирование базы знаний
• Автоматизация процесса
iOS department
Стандартизация
• Минимизация «человеческого фактора»
• Повышение степени обучаемости
персонала
• Повышение качества коммуникаций
• Формирование базы знаний
• Автоматизация процесса
iOS department
Один день из жизни
разработчика !
iOS department
"
iOS department
" 🖼
iOS department
От дизайнеров - iOS разработчикам
• Карта экранов приложения
• Карта цветов, используемых в приложении
• Список шрифтов, используемых в приложении
• Размеченные состояния каждого из экранов
• Нарезка элементов для всех экранов
• Видео/gif со всеми нестандартными анимациями
• Иконки приложения
iOS department
От дизайнеров - iOS разработчикам
iOS department
От дизайнеров - iOS разработчикам
$
iOS department
От дизайнеров - iOS разработчикам
https://habrahabr.ru/company/rambler-co/blog/256397/
iOS department
Пишем код
$
iOS department
Пишем код
$
• «Горячие» клавиши
• Code snippets
• Behaviors
• Git blame
iOS department
«Горячие» клавиши
iOS department
Code snippets
iOS department
Code snippets
iOS department
Code snippets
<#[TOKEN NAME]#>
iOS department
Code snippets
<#[TOKEN NAME]#>
iOS department
Behaviors
iOS department
Behaviors
iOS department
Git Blame
iOS department
Open source
Open Source Transformation Engine
Platforms State of the Union - WWDC 2017
iOS department
Open source
Open Source Transformation Engine
Platforms State of the Union - WWDC 2017
$
iOS department
Стандарты
$
• Code Style
• Архитектура
• 3rd party libraries
iOS department
Стандарты
$
• Code Style
• Архитектура
• 3rd party libraries
iOS department
Стандарты
$
• Code Style
• Архитектура
• 3rd party libraries
iOS department
Стандарты
• SOLID
• DRY
• KISS
• YAGNI
iOS department
SOLID
MBLTdev 16: Кто кого SOLID. Сергей Крапивенский
iOS department
Стандарты
$
• Code Style
• Архитектура
• 3rd party libraries
iOS department
3rd party libraries
❓$
iOS department
Тесты
$
iOS department
Тесты
$
Maintainability 🛠
iOS department
https://twitter.com/noahsussman
iOS department
• Понимание требований
• Стабильность при рефакторинге
• Документация
• Хороший API
• Меньше ошибок
Преимущества
iOS department
• Понимание требований
• Стабильность при рефакторинге
• Документация
• Хороший API
• Меньше ошибок
Преимущества
iOS department
• Понимание требований
• Стабильность при рефакторинге
• Документация
• Хороший API
• Меньше ошибок
Преимущества
iOS department
• Понимание требований
• Стабильность при рефакторинге
• Документация
• Хороший API
• Меньше ошибок
Преимущества
iOS department
• Понимание требований
• Стабильность при рефакторинге
• Документация
• Хороший API
• Меньше ошибок
Преимущества
iOS department
Инструменты 🔨
$
iOS department
xUnit
iOS department
- (void)testThatObjectsWithEqualTitleAreEqual {
// given
RubricsObject *object1 = [[RubricsObject alloc] initWithTagID:@"tagID1"
title:@"Title"];
RubricsObject *object2 = [[RubricsObject alloc] initWithTagID:@"tagID2"
title:@"Title"];
// when
BOOL equal = [object1 isEqual:object2];
// then
XCTAssertTrue(equal);
}
iOS department
- (void)testThatObjectsWithEqualTitleAreEqual {
// given
RubricsObject *object1 = [[RubricsObject alloc] initWithTagID:@"tagID1"
title:@"Title"];
RubricsObject *object2 = [[RubricsObject alloc] initWithTagID:@"tagID2"
title:@"Title"];
// when
BOOL equal = [object1 isEqual:object2];
// then
XCTAssertTrue(equal);
}
// given
// when
// then
iOS department
- (void)testThatObjectsWithEqualTitleAreEqual {
// given
RubricsObject *object1 = [[RubricsObject alloc] initWithTagID:@"tagID1"
title:@"Title"];
RubricsObject *object2 = [[RubricsObject alloc] initWithTagID:@"tagID2"
title:@"Title"];
// when
BOOL equal = [object1 isEqual:object2];
// then
XCTAssertTrue(equal);
}
// given
// when
// then
iOS department
- (void)testThatObjectsWithEqualTitleAreEqual {
// given
RubricsObject *object1 = [[RubricsObject alloc] initWithTagID:@"tagID1"
title:@"Title"];
RubricsObject *object2 = [[RubricsObject alloc] initWithTagID:@"tagID2"
title:@"Title"];
// when
BOOL equal = [object1 isEqual:object2];
// then
XCTAssertTrue(equal);
}
// given
// when
// then
iOS department
- (void)testThatObjectsWithEqualTitleAreEqual {
// given
RubricsObject *object1 = [[RubricsObject alloc] initWithTagID:@"tagID1"
title:@"Title"];
RubricsObject *object2 = [[RubricsObject alloc] initWithTagID:@"tagID2"
title:@"Title"];
// when
BOOL equal = [object1 isEqual:object2];
// then
XCTAssertTrue(equal);
}
// given
// when
// then
iOS department
What makes a clean test? Three things.
Readability, readability, and readability.
Robert C. Martin
iOS department
• Предметно-ориентированный язык
• Нет лишнего контекста
• Проверка одной истины
Чистый тест
iOS department
https://youtu.be/VQscQ-glpwI
Чистые тесты
iOS department
Version Control System
$
iOS department
Commits
$
Атомарные
iOS department
Сообщения
Начинать
Commits
iOS department
Git hooks
$
• Размер коммита
• Описание коммита
iOS department
Code review
$
iOS department
Правила
• Объем кода
• Актуальность
iOS department
Объем кода
iOS department
Актуальность
iOS department
Ревью - по расписанию
iOS department
$
iOS department
$
Code review
👍
iOS department
😡
Code review
👎
iOS department
Review
• Self review
• Architectural review
• Design review
iOS department
Self review
iOS department
Architectural review
$
iOS department
Design review
$
iOS department
Code review
https://habrahabr.ru/company/avito/blog/330846/
iOS department
JIRA
$
iOS department
Шаг 1/12
Смотрим
доску проекта
JIRA
$
iOS department
Шаг 2/12
Выбираем
себе задачу
JIRA
$
iOS department
Шаг 3/12
Знакомимся
с задачей
JIRA
$
iOS department
Шаг 4/12
Стартуем
работу над
задачей
JIRA
$
iOS department
Шаг 5/12
Создаем
feature-ветку.
Git
$
iOS department
Шаг 6/12
Пишем атомарные
коммиты на
русском языке с
номерами задач.

Гоняем тесты.

Соблюдаем code
style.
Code
$
iOS department
Шаг 7/12
Создаем
code-review
Code review
$
iOS department
Шаг 8/12
Дожидаемся
аппрува code
review
Code review
$
iOS department
Шаг 9/12
Мержим ветку
в develop
Git
$
iOS department
Шаг 10/12
Обновляем
статус на
"Ready"
JIRA
$
iOS department
Шаг 11/12
Проверяем
тесты на CI
CI
$
iOS department
Шаг 12/12
Собираем
сборку
CD
$
iOS department
• Artifactory (enterprise)
• Fabric
• TestFlight
CD
$
iOS department
1. Берем задачу в Jira
2. Работаем в feature-ветке
3. Сливаем в develop после review
4. Заливаем сборку через CD
$
iOS department
Gitlab CI
CI/CD for mobile done right, Tomasz Grynfelder
iOS department
Ramb-n-roll
fastlane
iOS department
Open source
¯_(ツ)_/¯
iOS department
Dashramba
https://github.com/rambler-digital-solutions/dashramba
iOS department
Dashramba
iOS department
Dashramba
iOS department
Dashramba
iOS department
Dashramba
https://news.realm.io/news/wwdc-2017-swift-panel/
iOS department
🛌
💤
iOS department
a.sychev@rambler-co.ru
@asychev89
fastlane

More Related Content

Similar to Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co

Apache Lucene + Hibernate = Hibernate Search
Apache Lucene + Hibernate = Hibernate SearchApache Lucene + Hibernate = Hibernate Search
Apache Lucene + Hibernate = Hibernate SearchVitebsk Miniq
 
Rambler.iOS #2: Адаптивная верстка iOS приложений
Rambler.iOS #2: Адаптивная верстка iOS приложенийRambler.iOS #2: Адаптивная верстка iOS приложений
Rambler.iOS #2: Адаптивная верстка iOS приложенийRAMBLER&Co
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭOleg Parinov
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакераNeuron Hackspace
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыDenis Ivanov
 
Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Yandex
 
Rad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаRad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаazamat isaev
 
RDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDKRDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDKRAMBLER&Co
 
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервереAndrew Sovtsov
 
Keep it calm and functional. Автотесты для iOS приложений
Keep it calm and functional. Автотесты для iOS приложенийKeep it calm and functional. Автотесты для iOS приложений
Keep it calm and functional. Автотесты для iOS приложенийSQALab
 
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js: от web-b...
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-b...FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-b...
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js: от web-b...FrontDays
 
Ios workshop-fs
Ios workshop-fsIos workshop-fs
Ios workshop-fsivgeniya
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and AngularSQALab
 
React native. Bridge From Web To Mobile. Intro
React native. Bridge From Web To Mobile. IntroReact native. Bridge From Web To Mobile. Intro
React native. Bridge From Web To Mobile. IntroIgor Izraylevych
 
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Mail.ru Group
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на RailsAndrei Kaleshka
 

Similar to Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co (20)

UI+unit testing in iOS
UI+unit testing in iOSUI+unit testing in iOS
UI+unit testing in iOS
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
Apache Lucene + Hibernate = Hibernate Search
Apache Lucene + Hibernate = Hibernate SearchApache Lucene + Hibernate = Hibernate Search
Apache Lucene + Hibernate = Hibernate Search
 
Rambler.iOS #2: Адаптивная верстка iOS приложений
Rambler.iOS #2: Адаптивная верстка iOS приложенийRambler.iOS #2: Адаптивная верстка iOS приложений
Rambler.iOS #2: Адаптивная верстка iOS приложений
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакера
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэнды
 
Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code.
 
Rad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаRad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продукта
 
RDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDKRDSDataSource: Автогенерация документации для SDK
RDSDataSource: Автогенерация документации для SDK
 
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
20160316 Работа с подготовленными заранее опросниками, хранимыми на сервере
 
Keep it calm and functional. Автотесты для iOS приложений
Keep it calm and functional. Автотесты для iOS приложенийKeep it calm and functional. Автотесты для iOS приложений
Keep it calm and functional. Автотесты для iOS приложений
 
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js: от web-b...
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-b...FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-b...
FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js: от web-b...
 
Ios workshop-fs
Ios workshop-fsIos workshop-fs
Ios workshop-fs
 
Protrarctor and Angular
Protrarctor and AngularProtrarctor and Angular
Protrarctor and Angular
 
Appery.io Ukraine_2016
Appery.io Ukraine_2016Appery.io Ukraine_2016
Appery.io Ukraine_2016
 
React native. Bridge From Web To Mobile. Intro
React native. Bridge From Web To Mobile. IntroReact native. Bridge From Web To Mobile. Intro
React native. Bridge From Web To Mobile. Intro
 
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
Юрий Крутилин. Инструментарий для реверс-инжиниринга Android-приложений
 
Корпоративное приложение на Rails
Корпоративное приложение на RailsКорпоративное приложение на Rails
Корпоративное приложение на Rails
 

More from Сбертех | SberTech

Есть ли жизнь без Dagger'a, Михаил Крестьянинов Avito
Есть ли жизнь без Dagger'a, Михаил Крестьянинов AvitoЕсть ли жизнь без Dagger'a, Михаил Крестьянинов Avito
Есть ли жизнь без Dagger'a, Михаил Крестьянинов AvitoСбертех | SberTech
 
Feature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехFeature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехСбертех | SberTech
 
Чистая архитектура, Артур Бадретдинов АБЦТ
Чистая архитектура, Артур Бадретдинов АБЦТЧистая архитектура, Артур Бадретдинов АБЦТ
Чистая архитектура, Артур Бадретдинов АБЦТСбертех | SberTech
 
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...Сбертех | SberTech
 
Боремся с NPE вместе с Kotlin, Павел Шацких СберТех
Боремся с NPE вместе с Kotlin, Павел Шацких СберТехБоремся с NPE вместе с Kotlin, Павел Шацких СберТех
Боремся с NPE вместе с Kotlin, Павел Шацких СберТехСбертех | SberTech
 
Аспекты применения Agile для крупных хранилищ данных
Аспекты применения Agile для крупных хранилищ данных Аспекты применения Agile для крупных хранилищ данных
Аспекты применения Agile для крупных хранилищ данных Сбертех | SberTech
 
самое интересное в мире блокчейн, опыт и рецепты от сбербанка
самое интересное в мире блокчейн, опыт и рецепты от сбербанкасамое интересное в мире блокчейн, опыт и рецепты от сбербанка
самое интересное в мире блокчейн, опыт и рецепты от сбербанкаСбертех | SberTech
 
Подходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организацияхПодходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организацияхСбертех | SberTech
 

More from Сбертех | SberTech (11)

Есть ли жизнь без Dagger'a, Михаил Крестьянинов Avito
Есть ли жизнь без Dagger'a, Михаил Крестьянинов AvitoЕсть ли жизнь без Dagger'a, Михаил Крестьянинов Avito
Есть ли жизнь без Dagger'a, Михаил Крестьянинов Avito
 
Feature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТехFeature toggles в процессе подбора, Алексей Ульенков СберТех
Feature toggles в процессе подбора, Алексей Ульенков СберТех
 
Чистая архитектура, Артур Бадретдинов АБЦТ
Чистая архитектура, Артур Бадретдинов АБЦТЧистая архитектура, Артур Бадретдинов АБЦТ
Чистая архитектура, Артур Бадретдинов АБЦТ
 
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...
Модульная архитектура Сбербанк Онлайн, Владимир Озеров и Александр Черушнико...
 
Боремся с NPE вместе с Kotlin, Павел Шацких СберТех
Боремся с NPE вместе с Kotlin, Павел Шацких СберТехБоремся с NPE вместе с Kotlin, Павел Шацких СберТех
Боремся с NPE вместе с Kotlin, Павел Шацких СберТех
 
Аспекты применения Agile для крупных хранилищ данных
Аспекты применения Agile для крупных хранилищ данных Аспекты применения Agile для крупных хранилищ данных
Аспекты применения Agile для крупных хранилищ данных
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
Биометрия и платежи
Биометрия и платежиБиометрия и платежи
Биометрия и платежи
 
самое интересное в мире блокчейн, опыт и рецепты от сбербанка
самое интересное в мире блокчейн, опыт и рецепты от сбербанкасамое интересное в мире блокчейн, опыт и рецепты от сбербанка
самое интересное в мире блокчейн, опыт и рецепты от сбербанка
 
Подходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организацияхПодходы к построению хранилищ данных в крупных организациях
Подходы к построению хранилищ данных в крупных организациях
 
Blockchain
BlockchainBlockchain
Blockchain
 

Recently uploaded (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

Один день из жизни iOs разработчика, Александр Сычёв Rambler&Co