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
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Search
Yu Watanabe
July 04, 2017
Technology
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Yu Watanabe
July 04, 2017
More Decks by Yu Watanabe
See All by Yu Watanabe
JUnitテストをCI環境で並列で実行する方法とその速度, スケーラビリティ
nabedge
6
3k
クラウド時代だからSpring-Retryフレームワーク
nabedge
0
330
ツール比較しながら語るO/RマッパーとDBマイグレーション
nabedge
0
180
JavaでWebサービスを作り続けるための戦略と戦術
nabedge
0
120
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
nabedge
0
87
Selenium再入門
nabedge
0
82
テストゼロからイチに進むための戦略と戦術
nabedge
0
110
jOOQってなんて読むの?から始めるSpringBootとO/Rマッパーの世界
nabedge
0
180
あなたのプロジェクトが気軽にJavaをバージョンアップするために必要なこと
nabedge
0
78
Other Decks in Technology
See All in Technology
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
2
830
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
DGX Spark でどこまでハッキングができるのか?
kash1064
0
170
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.4k
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
260
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
580
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
140
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.1k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
670
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
380
Getting Started with Google Antigravity
glaforge
0
180
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Making Projects Easy
brettharned
120
6.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Exploring anti-patterns in Rails
aemeredith
4
530
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
560
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Six Lessons from altMBA
skipperchong
29
4.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Making the Leap to Tech Lead
cromwellryan
135
10k
Optimising Largest Contentful Paint
csswizardry
37
4k
Transcript
Webエンジニアが スタートダッシュをキメるための ローカル開発環境の勘所 Webエンジニア勉強会#1 at 新橋 2017-6-2 Fri @nabedge
Who ? 2 • わたなべ • (株)ビズリーチ • twitter: @nabedge
• github: nabedge • http://www.slideshare.net/nabedg e/presentations
Webサービスのコードを どこで どうやって 書くのか? レベル0〜レベル4 3
レベル0 4 本番サーバ コード ※データセンター建物内にて
レベル1 5 • エディタ • SCPクライアント 本番サーバ コード
レベル2 6 • エディタ • ローカルなサーバ ◦ XAMP, MAMP, etc
• SCPクライアント 本番サーバ コード
レベル3 7 • エディタ • ローカルなサーバ ◦ XAMP, MAMP, etc
• SCPクライアント 本番サーバ コード 検証サーバ コード
レベル4 8 本番サーバ コード 検証サーバ コード CI VCS MySQL, Redis,...
MySQL, Redis,...
ローカル開発環境で何ができるべきなのか • コードをサクサク書ける • 書いたコードが動くことを自分のPCで 確認できる ◦ ↑コードが動くための バックエンドサーバが必要 9
ここが面倒
10 • エディタ(補完機能つき) • ビルドツール連携 ◦ gradle, mvn, npm... •
VCS連携 • ミドルウェア群 ◦ MySQL, PostgreSQL ◦ Memcached ◦ fakes3... ?
長大な「ローカル開発環境構築手順書」 1. PostgreSQLのインストーラをダウンロードして ダブルクリック 2. Redisを... 3. C;¥Windows¥system32¥drivers¥etc¥hosts ファイルを編集... 4.
…以下すんごく長い 11
半年も経つと • 手順書が長すぎてうっかり抜け漏れ • 「memcached ? それもうRedisに変えたんだけど、 手順書直すの忘れてましたテヘヘ」 • 他チームから助っ人として来たら、
他のWebサービスの開発環境とバッティングして うまくインストールできない 12
NOT 手順書 & PCに直接インストール BUT 仮想OS & 自動化スクリプト 13
ポイント 1. ローカル開発環境で必要な ミドルウェア群を仮想OS上に構築する 2. それを実現するための OracleVitrutalBox or VMWare, Vagrant
, Docker 14
15 MacOS / Windows OracleVBox / VMWare CoreOS / Ubuntu
Docker (MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード
16 MacOS / Windows OracleVBox / VMWare CoreOS / Ubuntu
Docker (MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード $ vagrant up $ vagrant ssh -c \ "sh /vagrant/docker/docker-compose-up.sh" 2コマンドで構築完了
複数の仮想OSテクノロジーをなぜ併用する? • ホスト型仮想OS環境 = Oracle VBox • コンテナ型仮想OS環境 = Docker
17
18 Docker OracleVBox + Vagrant 起動速度、プロビ ジョニング速度 軽い 重い 複数の開発環境
の共存によるバッ ティング ポート番号 かぶり問題 仮想OSの IPアドレスを ずらせば解決
ローカル開発環境4原則 1. 自動化 2. アプリの変化に合わせて 誰でも環境を変更して配布可能 3. 他のサービスの開発環境と干渉しない 4. 金の弾丸
19
原則1 サルでもやれるくらいの自動化 • git clone foo-pj • cd foo-pj/local-env •
vagrant up • vagrant ssh -c \ “cd /vagrant/docker; docker-compose up” 20
原則2 誰でも環境を変更して配布可能 • vi Vagrantfile • vi Dockerfile • vi
docker-compose.yml • git commit, push 21
原則3: 他の開発環境と干渉しない 22 OracleVBox / VMWare CoreOS / Ubuntu Docker
(MySQL) Docker (Redis) CoreOS / Ubuntu Docker (PgSQL) Docker (fakes3) Aサービスの コード Bサービスの コード 192.168.1.1 192.168.2.2
原則4 金の弾丸 23 Mac Book Pro 3GHz Core i7 16GB
memory 250GB SSD Jet Brains All Products Pack ※2015年春時点スペック
スタートダッシュをキメたいエンジニア募集! https://www.bizreach.co.jp/recruit/ 24