Socket programming Tasos Alexandridis 1HY335a - Socket Programming.
Фронтенд в Avito · Socket Client • Собственная низкоуровневая...
Transcript of Фронтенд в Avito · Socket Client • Собственная низкоуровневая...
![Page 2: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/2.jpg)
1. История фронтенда
2. Разработка и архитектура
3. Система сборки
2
![Page 3: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/3.jpg)
![Page 4: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/4.jpg)
О проекте• Топ-10 сайтов Рунета
• 10 000 000 000 просмотров в месяц
• 70 000 000 уникальных посетителей в месяц
• 600 000 новых объявлений каждый день
• 450 000 новых картинок каждый день
• 750 000 запросов в минуту
4
![Page 5: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/5.jpg)
![Page 6: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/6.jpg)
История фронтенда
6
![Page 7: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/7.jpg)
2012
7
![Page 8: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/8.jpg)
0
8
![Page 9: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/9.jpg)
ВСЕМ ЗАПРАВЛЯЛИ СЕРВЕР-САЙДЕРЫ
9
![Page 10: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/10.jpg)
2013
10
![Page 11: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/11.jpg)
11
![Page 12: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/12.jpg)
![Page 13: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/13.jpg)
12Desktop Mobile
13
![Page 14: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/14.jpg)
1.5
14
![Page 15: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/15.jpg)
Chrome Firefox IE8+Opera Safari
Opera MiniSafari iOS Android Browser 2.x
Symbian OSBrowser
Chrome for Android
15
![Page 16: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/16.jpg)
2014
16
![Page 17: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/17.jpg)
17
![Page 18: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/18.jpg)
О БОЖЕ, SVG КАРТА!
![Page 19: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/19.jpg)
2
5Desktop
Mobile
1Protools
19
![Page 20: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/20.jpg)
1.9
20
![Page 21: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/21.jpg)
2015
21
![Page 22: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/22.jpg)
Мобильная трансформация *
* mobile first22
![Page 23: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/23.jpg)
11Avito
3Avito Protools
…
23
![Page 24: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/24.jpg)
Service Worker API
WebSocket API
2.x
24
![Page 25: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/25.jpg)
Service Worker API
25
![Page 26: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/26.jpg)
service-worker.js
26
3 байта
![Page 27: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/27.jpg)
27
ЧТО ТЫ ТОЛЬКО ЧТО СКАЗАЛ?!?
![Page 28: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/28.jpg)
28
Используется для напоминания о добавление сайта на домашний экран
![Page 29: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/29.jpg)
29
![Page 30: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/30.jpg)
WebSocket API
30
![Page 31: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/31.jpg)
Socket Client• Собственная низкоуровневая библиотека
• Два транспорта — socket и http
• Поддерживает notify, reconnect, множественные вкладки
• Пока только в приложение Avito Messenger
• Очень скоро на всем проекте Avito
31
![Page 32: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/32.jpg)
Chrome Firefox IE11+Opera Safari
Safari iOS Android Browser 4.x
Chrome for Android
32
![Page 33: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/33.jpg)
Разработка и архитектура
![Page 34: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/34.jpg)
Смутные времена
![Page 35: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/35.jpg)
/static /a /c /3rdparty 404.css account.css alert.css buttons.css catalog.css firefox.css icons.alert.css
typography.css datepicker.css /i /ic /ip /maps /profile cookie.png
/j /3rdparty /blocks account.js cart.js common.js fees-select.js
/avito
/css
/images
/javascript
35
![Page 36: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/36.jpg)
Как это выглядело• Линейная структура
• Односимвольные наименования
• Много глобальных классов и скриптов
• Отсутствие пакетного менеджера
• Много одинакового кода
36
![Page 37: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/37.jpg)
Проблемы• Много задач — много генерируемого кода
• Команда растет и нужны процессы
• Нет методологий разработки интерфейсов
• Нет правил и стандартов разработки
• Нет код-ревью
• Кошмар фронтенд разработчика
37
![Page 38: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/38.jpg)
БЫЛО ВСЁ ОЧЕНЬ И ОЧЕНЬ ПЕЧАЛЬНО
![Page 39: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/39.jpg)
Процесс миграции• Создание код-стайла
• Соглашение о наименовании
• Старый код приводим к новому код-стайлу
• Все новое разрабатываем с новым подходом
• Для старого кода — рефакторинг или оставляй как есть
39
![Page 40: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/40.jpg)
Настоящее
40
![Page 41: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/41.jpg)
Архитектура• Собственная методология разработки интерфейсов
• Полностью компонентный подход
• Отдельные компоненты интерфейса (UI)
• Интегрируемые приложения и сервисы
• Автоматическая проверка код-стайла и линтеры
• Обязательный код-ревью
41
![Page 42: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/42.jpg)
![Page 43: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/43.jpg)
/static /avito /apps /components /containers /ui guide.styl /mobile /apps /components /containers /ui guide.styl
Большая версия
Мобильная версия
Приложения и сервисы
Страницы
Гайды
Компоненты
43
![Page 44: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/44.jpg)
Технологии• Код — Stylus и ES6
• Приложения и сервисы (SPA) — Angular + RequireJS, React + Redux, Basis.js
• Внешние зависимости — NPM
• Анализ кода — JSCS, ESLint и Stylint
• Автоматическое код-ревью — Reviewbot, github.com/limarc/reviewbot
44
![Page 45: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/45.jpg)
![Page 46: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/46.jpg)
Будущее
46
![Page 47: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/47.jpg)
Планы• Больше фронтенд разработчиков
• Серверный рендеринг на Node.js
• Отказываемся от Angular, больше React + Redux
• Гибридная архитектура обычных компонентов
• Гайдбук интерфейсов для дизайнеров
47
![Page 48: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/48.jpg)
Система сборки
![Page 49: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/49.jpg)
Phing
npm install
Gulp
{% assets %}
Apps Vendors
49
![Page 50: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/50.jpg)
{% assets %}
50
![Page 51: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/51.jpg)
.css
.styl
.js
.es6
.svg
HTML?
…
51
![Page 52: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/52.jpg)
Способ подключения ресурсов на страницу
52
![Page 53: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/53.jpg)
![Page 54: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/54.jpg)
![Page 55: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/55.jpg)
![Page 56: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/56.jpg)
Процесс• Трансформация путей
• добавляется префикс /build для .styl и .es6
• преобразование .styl — .css, .es6 — .js
• Clean-css (скоро CSSO)
• UglifyJS
• Собирается в прекомпиляции шаблонов Twig
56
![Page 57: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/57.jpg)
Сборка в среднем 7-8 минут
57
![Page 58: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/58.jpg)
Меняем Bower на NPM
![Page 59: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/59.jpg)
Зачем?• Два пакетных менеджера — две зависимости
• Необходимы приватные пакеты
• Необходимо кеширование пакетов в связи с блокировками
59
![Page 60: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/60.jpg)
+ Sinopia
60
![Page 61: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/61.jpg)
NPM• Один package.json
• Нет пакета на NPM, берем с GitHub
• /node_modules — недоступна в публичной части
• Пакеты для фронтенда собираем в /build/vendor
• Сборка Webpack + умное копирование
61
![Page 62: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/62.jpg)
![Page 63: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/63.jpg)
![Page 64: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/64.jpg)
Sinopia• Собственный NPM сервер
• Open-source, написан на JavaScript github.com/rlidwka/sinopia
• Легко настраивается, запускается как отдельный сервис
• Поддерживает кэширование и переопределение пакетов
64
![Page 65: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/65.jpg)
![Page 66: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/66.jpg)
Заключение
![Page 67: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/67.jpg)
За этот год мы много экспериментировали,что-то у нас получалось, а что-то не очень!
67
![Page 68: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/68.jpg)
Никогда не сдавайтесь!
68
![Page 69: Фронтенд в Avito · Socket Client • Собственная низкоуровневая библиотека • Два транспорта — socket и h6p • Поддерживает](https://reader036.fdocuments.in/reader036/viewer/2022070721/5ee18f71ad6a402d666c65f9/html5/thumbnails/69.jpg)
69
В следующей году нас станет в два раза больше,
и если вы хотите сделать что-то лучшее для
нескольких миллионов людей, присоединяйтесь avito.ru/company/job
inplacers.ru/avito