Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Javascript в Go – Aleksei Shaikhaleev
Search
GopherCon Russia
April 13, 2019
Programming
0
99
Javascript в Go – Aleksei Shaikhaleev
GopherCon Russia
April 13, 2019
Tweet
Share
More Decks by GopherCon Russia
See All by GopherCon Russia
Go Profiling from Bottom Up - Felix Geisendörfer
gopherconrussia
0
240
Learning Unsung Gotchas of Go - Rashmi Nagpal
gopherconrussia
1
280
Прозрачный gRPC-proxy один-ко-многим - Андрей Смирнов
gopherconrussia
0
150
Из Python в Go и обратно - Андрей Минкин
gopherconrussia
0
150
Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS - Иван Осадчий
gopherconrussia
0
180
Пакет embed: распаковка знаний - Илья Данилкин
gopherconrussia
0
250
За пару мгновений до main() - Олег Ковалев
gopherconrussia
0
150
Тестирование в Go c Ginkgo и Gomega - Александр Егурнов
gopherconrussia
0
130
Building an Autoscaling HTTP Proxy for Kubernetes - Aaron Schlesinger
gopherconrussia
0
140
Other Decks in Programming
See All in Programming
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.3k
認証・認可の基本を学ぼう後編
kouyuume
0
190
生成AIを利用するだけでなく、投資できる組織へ
pospome
1
310
SwiftUIで本格音ゲー実装してみた
hypebeans
0
250
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
680
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
310
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
220
sbt 2
xuwei_k
0
280
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
150
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.5k
dotfiles 式年遷宮 令和最新版
masawada
1
760
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
A designer walks into a library…
pauljervisheath
210
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Automating Front-end Workflow
addyosmani
1371
200k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Raft: Consensus for Rubyists
vanstee
141
7.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Transcript
Javascript в Go Aleksei Shaikhaleev, backend dev @Travelpayouts.com
Контентные проекты Сайты о путешествиях
Мы делаем классные встраиваемые виджеты
Нам нужен умный прокси! Источник данных Прокси Источник данных Источник
данных Виджет — специализированные языки выражений например, Common Expression Language https://github.com/google/cel-go
— специализированные языки выражений например, Common Expression Language https://github.com/google/cel-go
— скриптовые языки программирования Python, PHP, Ruby, Lua, Javascript Что делать?
Что делать? — специализированные языки выражений например, Common Expression Language
https://github.com/google/cel-go — скриптовые языки программирования Python, PHP, Ruby, Lua, Javascript
Что делать? — специализированные языки выражений например, Common Expression Language
https://github.com/google/cel-go — скриптовые языки программирования Python, PHP, Ruby, Lua, Javascript — Go биндинги к существующим движкам: Google V8, duktape
Окей, а что с Javascript в Go? — Go биндинги
к существующим движкам: Google V8, duktape — Интерпретаторы написанные на Go https://github.com/robertkrimen/otto https://github.com/dop251/goja
Окей, а что с Javascript в Go? — Go биндинги
к существующим движкам: Google V8, duktape — Интерпретаторы написанные на Go https://github.com/robertkrimen/otto https://github.com/dop251/goja
Otto:
Конфиг:
JS parser:
JS parser:
Грабли и костыли: — Интеграционные тесты, используем golden files —
Нельзя вместить в мастер и задеплоить на продакшен, пока тесты не станут зелеными
Тесты: — Интеграционные тесты
Тесты: — Интеграционные тесты — Нельзя вместить в мастер и
задеплоить на продакшен, пока тесты не станут зелеными
Как сделать удобно?
Наивный бенчмарк: — сделать лучше версионирование парсеров, автоматически откатывать, если
что пошло не так
Что хочется улучшить? — сделать лучше версионирование парсеров, автоматически откатывать,
если что пошло не так — перейти на более быстрый интерпретатор JS
Что хочется улучшить? — сделать лучше версионирование парсеров, автоматически откатывать,
если что пошло не так — перейти на более быстрый интерпретатор JS — сделать автоматическую проверку JS литерами
Что хочется улучшить? — сделать лучше версионирование парсеров, автоматически откатывать,
если что пошло не так — перейти на более быстрый интерпретатор JS — сделать автоматическую проверку JS линтерами
Стоила игра свеч? — Javascript в Го можно интерпретировать в
продакшене — Даже внутренние утилиты должны быть удобными
Что ещё? @nimdraugsael я на Гитхабе и в Твиттере Встраиваемые
интерпретаторы для Go: https://github.com/avelino/awesome-go#embeddable-scripting-languages Интерпретаторы JS: https://github.com/robertkrimen/otto https://github.com/dop251/goja