Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Вениамин Тамбурин
Search
FrontFest
November 21, 2017
Programming
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Вениамин Тамбурин
FrontFest
November 21, 2017
More Decks by FrontFest
See All by FrontFest
Тим Чаптыков
frontfest
0
1.2k
Егор Банщиков
frontfest
0
900
Jose M. Perez
frontfest
0
760
Алексей Иванов
frontfest
0
1.4k
Екатерина Пригара
frontfest
0
720
Léonie Watson
frontfest
0
790
Кирилл Чернышев
frontfest
0
770
Виктор Грищенко
frontfest
0
660
Игорь Алексеенко
frontfest
0
510
Other Decks in Programming
See All in Programming
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
830
Next.js: The final boss of Web Performance
guaca
0
290
Railsバージョンを4倍にした話
optim
0
470
R8 の設定見直しでアプリサイズ削減
andpad
0
220
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
440
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
500
phperだってパンチカードでコーディングしたい
o0h
PRO
0
360
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
290
ジョジョの世界をXRで再現する
mofurune
0
180
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
Ethics towards AI in product and experience design
skipperchong
2
440
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Making Projects Easy
brettharned
120
6.8k
Building an army of robots
kneath
307
47k
Designing for Timeless Needs
cassininazir
1
530
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Designing for humans not robots
tammielis
254
26k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Transcript
Как мы пишем фронтенд в Букинге Вениамин Тамбурин
None
None
Booking.com работает более чем в 220 странах на 43 языках
В чем заключается роль разработчика интерфейсов?
None
None
Локализация Эксперименты Мониторинг Производительность Ответственность команды Инновации
Локализация и интернационализация
43 языка 50 валют 2000+ комбинаций
None
None
Верстка HTML и CSS всегда должна работать
None
None
None
None
Английский Русский Болгарский Китайский Арабский
None
Мы должны понимать язык и культуру наших пользователей
два варианта на одном экране
None
None
Говоря с человеком на том языке, который он понимает, ты
говоришь с его головой. Если ты говоришь с человеком на его родном языке, ты говоришь с его сердцем — Нельсон Мандела
Эксперименты
None
Buy now Buy now vs
Buy now Buy now ! if track(experiment)
Buy now Buy now Logged in/out Language/currency Country of origin
Browser/OS/Device Visited products Navigation flow Search criteria Validation errors Customer’s city/state Payment type Customer service calls Cancellations Page load time Wallclock/CPU Number of queries Server/client-side errors
Buy now Buy now Продолжительность: 14 дней Посетители: 45140 (22570
на вариант) Transactions Average price 407 (1.8%) $ 42,00 $ 42,84 339 (1.5%) +20% +2%
Что бы мы ни делали, мы делаем через A/B эксперименты
Но новый макет очевидно лучше старого! Мы можем обойтись без
эксперимента! — большинство дизайнеров
Какой вариант лучше? Поднимите правую руку ✋ Не поднимайте руку,
если нет разницы Поднимите левую руку
Какой вариант лучше? Поднимите правую руку ✋ –1.7% отказов
Какой вариант лучше? Поднимите правую руку ✋ Не поднимайте руку,
если нет разницы Поднимите левую руку
Какой вариант лучше? Поднимите левую руку +203% CTR
Какой вариант лучше? Поднимите правую руку ✋ Не поднимайте руку,
если нет разницы Поднимите левую руку
Какой вариант лучше? Поднимите левую руку +43.4% покупок
Какой вариант лучше? Поднимите правую руку ✋ Не поднимайте руку,
если нет разницы Поднимите левую руку
Какой вариант лучше? Ни один вариант не показал значимых изменений
Buy now Buy now vs Net conversion Click-through rates Validation
errors больше слова про то, что мы тестируем и тезнологии, не только кнопки
vs Net conversion Page load time Validation errors jQuery 1.11
jQuery 3.0
vs Time to render Net conversion (per UA) Page load
time Virtual DOM morphdom
Задача — не увеличить конверсию, но быть лучше для наших
пользователей
Мониторинг
Каждая часть приложения покрыта метрикой
None
Каждое событие создает Event
{ action => ’hotel’, referrer => ’http://booking.com’, country => ’us’,
ip => ’222.222.2.22’, git_tag => ’20160625-120178’, node => ’xx555-33’, browser => ’chrome’, version => ’49’, js_error => { file => ’hotel.js’, error => ’undefined B is not a function’, stack => ’...’, line_number => 337 }, js_data => { first_load => 4343, first_paint => 1200 } is_robot => 0, … } Event
Мы можем быстро реагировать на любые проблемы
None
Производительность
Пользователь должен иметь возможность забронировать отель где бы он ни
находился
Первый DOM Content Ready Первый onLoad Средний DOM Content Ready
Средний onLoad Размер страницы Wallclock CPU Память
Service Workers Critical rendering path Asynchronous assets and templates Assets
pre-fetching
Любое улучшение производительности пройдет через эксперимент
Ответственность и автономность команд
Каждый дизайнер и разработчик может выдвинуть идею и воплотить ее
в жизнь
Идея Обсуждение Дизайн и разработка Тестирование Релиз Создание A/B эксперимента
Анализ результата Выводы и новые идеи
Все в равной мере ответственны за принятые решения и результаты
Инновации
Booking.com продолжает расти более 20 лет
Мы делаем редизайн и рефакторинг с большой осторожностью
None
ценность для пользователей польза компании радость разработчикам
Как же мы делаем фронтенд для 224 стран и 40
языков?
Локализация. Мы стараемся быть ближе к пользователям и говорить с
ними на одном языке
Эксперименты. Мы не доверяем интуиции, но принимаем решения на основе
точных данных
Мониторинг. Мы быстро реагируем на возникающие проблемы
Мы ответственны за все принимаемые решения
Мы следим за новостями рынка и технологий
None
Любите не инструменты, но продукт и вызовы
Пользователь — мера всего
Dank jullie wel! Спасибо!