Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ベトナム拠点との楽しいフロントエンド開発とそのためにやった事 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
0
62
ベトナム拠点との楽しいフロントエンド開発とそのためにやった事 in Ginza#9
Shuji Matsuda
February 05, 2020
Tweet
Share
More Decks by Shuji Matsuda
See All by Shuji Matsuda
[Sponsor LT] Tribal Media Houseのご紹介
smatsudatbh
0
62
Other Decks in Programming
See All in Programming
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
CSC307 Lecture 06
javiergs
PRO
0
690
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Apache Iceberg V3 and migration to V3
tomtanaka
0
180
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
dchart: charts from deck markup
ajstarks
3
1k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
510
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
Making Projects Easy
brettharned
120
6.6k
GitHub's CSS Performance
jonrohan
1032
470k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Technical Leadership for Architectural Decision Making
baasie
2
250
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Typedesign – Prime Four
hannesfritz
42
3k
Paper Plane
katiecoart
PRO
0
46k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
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先を置きたい ◦ パフォーマンス検証をよりしやすくしたい ◦ 香港だと思う ◦ でも、コストが... (費用と運用)
最後に
最後に • やってみた感想: ◦ ベトナム拠点との開発は色々大変だが、準備しておけば何とかなる。 ◦ 何より吸収が早いので一緒にやっていて楽しい • と言いつつも ◦
大変なことも多いので、今後もやり方を模索していく • 「私はこうやって海外拠点との開発やってます!」的な情報共有待ってます!