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
ベトナム拠点との楽しいフロントエンド開発とそのためにやった事 in Ginza#9
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shuji Matsuda
February 05, 2020
Programming
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ベトナム拠点との楽しいフロントエンド開発とそのためにやった事 in Ginza#9
Shuji Matsuda
February 05, 2020
More Decks by Shuji Matsuda
See All by Shuji Matsuda
[Sponsor LT] Tribal Media Houseのご紹介
smatsudatbh
0
65
Other Decks in Programming
See All in Programming
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
440
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
contenteditable と日本語入力に向き合う
colorful12
0
200
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
110
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
430
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.3k
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
890
Build your cross-platform service in a week with App Engine
jlugia
234
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Claude Code のすすめ
schroneko
67
230k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Mind Mapping
helmedeiros
1
400
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Speed Design
sergeychernyshev
33
2.2k
Facilitating Awesome Meetings
lara
57
7.2k
Transcript
ベトナム拠点との 楽しいフロントエ ンド開発とそのた めにやった事 @onigiri_ in Ginza.js #9
自己紹介
自己紹介 - 松田 衆治 (@onigiri_) - トライバルメディア ハウス勤務 - ベトナムにも開発拠点があります。
- テックリードやってます。 - 割と好きなのはフロントエンド かな... - 新規事業やってます。 - React(Next) - Go - GCP - (余談)前々職は通信事業者で、前職は某グルメ系メディアでフロントエンド エンジニ ア
今日の発表について
今日の発表について • すいません、技術的に新しい話はほとんど入ってないです。 ◦ 後スライド今日準備しました .... • オフサイトで言語が違う人たちと開発する時って「色々意識して準備した方がいいよ ね」っていうLTです
ベトナムについて
ベトナムについて • 東南アジアの一国 • 純朴で真面目な方が多い気がする。 ◦ ルールを守る事に特に違和感がない • 憧れの職業1位が医者で2位がエンジニア(らしい) ◦
優秀な層がエンジニアに集まる ◦ ただしエンジニアコミュニティはほとんどない ▪ 学びは全て仕事から
開発体制
ベトナム側 開発者4名 (フロント) ベトナム側 開発者4名 (フロント) 開発体制 • 私がテックリードで ◦
委託の人にバックエンドをやってもらい ◦ ベトナム側にフロントエンド をやってもらっている。 ▪ 若手多め ▪ 理由は今回説明しません。(長くなるので ◦ インフラはGCPのPaaSやManaged Service使ってます(雰囲気 私 (テックリード) 国内の若手 (フロント・バックエ ンド) 委託の方 (バックエンド) ベトナム側 開発者4名 (フロント) ベトナム側 開発者4名 (フロント)
意識した事
自身の経験と意識した事 • 私自身、オフショア拠点側で開発した事あるので、その経験を元に開発準備段階で 色々考えて実行しました。 • 口頭のコミュニケーションに頼らない開発プロセスを実現する ◦ 英語は通じるが、お互い母国語じゃないので実のところ難しい ◦ コミュニケーションごとに解釈によるエラーが発生するリスクがある
• そもそもの自然言語コミュニケーションの必要性を減らす ◦ ドキュメント含む
実際にやった事
やった事 Part.1 • まず、フレームワーク選定 ◦ 型と親和性高い方がいいよね ▪ ドメイン的なナレッジを型で共有できるから ◦ 英語のドキュメントが豊富な方がいいよね ◦
→React(Next)かなぁ(個人の判断です ◦ 一応、相手側の何のフレームワークが一番人気か聞いてみたが ▪ 「It’s definitely React」って言ってました(個人の感想です • 環境構築まで日本側でやった ◦ Next + TypeScript + eslint ▪ 文法共有はlinterで ◦ Jestやenzymeなどで参考のためにサンプルテストも書いた後で repository共有した
やった事 Part.2 • dev serverからバックエンドの開発環境(GCP)へAPIをproxyする ◦ バックエンド開発者とのコミュニケーションが不要にするため ◦ NextのCustom Serverとhttp-proxy-middlewareを使う ◦
Proxy先は共用の開発環境で GCPのApp Engine上 • APIの仕様書的なものをBackendのrepository上に配置する ◦ 現状はPostmanのcollection ◦ 仕様をわざわざ伝える必要が減る
やった事 Part.2 • dev serverからバックエンドの開発環境へAPIをproxyする ◦ バックエンド開発者とのコミュニケーションが不要にするため ◦ NextのCustom Serverとhttp-proxy-middlewareを使う ◦
Proxy先は共用の開発環境で GCPのApp Engine上 • APIの仕様書的なものをBackendのrepository上に配置する ◦ 現状はPostmanのcollection ◦ 仕様をわざわざ伝える必要が減る
やった事 Part.3 • valueに対するラベルはenumで事前に定義しておく。 ◦ optionのlabelとかに使えていい感じ ▪ 日本語コピペゲーも避けれる ◦ バックエンドとの区分値とも合わせているので副次的に良い ◦
区分値変わるたびに依頼するのはとても大変なので、こっちで実装しちゃうのが楽 ◦ 例えばGenderの区分値
やった事 Part.3 • valueに対するラベルはenumで事前に定義しておく。 ◦ optionのlabelとかに使えていい感じ ▪ 日本語コピペゲーも避けれる ◦ バックエンドとの区分値とも合わせているので副次的に良い ◦
区分値変わるたびに依頼するのはとても大変なので、こっちで実装しちゃうのが楽 ◦ 例えばGenderの区分値
結局、ドキュメントで共有したもの • コンポーネント設計 ◦ 仕組みでカバーできない • スタイルガイド • DoDなど、タスクをやる上で必要なルールなど
今後やりたい(やっている)もの • Fetchのbodyやresponseの型を定義する ◦ API仕様より堅めの確認をしたい。 ◦ Fetchのwrapperを作成する ◦ ついでに変更にも強くなる •
stylelintをもう少し真面目にやりたい • ベトナムからレイテンシの低いところにAPI proxy先を置きたい ◦ パフォーマンス検証をよりしやすくしたい ◦ 香港だと思う ◦ でも、コストが... (費用と運用)
最後に
最後に • やってみた感想: ◦ ベトナム拠点との開発は色々大変だが、準備しておけば何とかなる。 ◦ 何より吸収が早いので一緒にやっていて楽しい • と言いつつも ◦
大変なことも多いので、今後もやり方を模索していく • 「私はこうやって海外拠点との開発やってます!」的な情報共有待ってます!