SlideShare a Scribd company logo
1 of 26
スタートアップと大規模サイトの
JavaScript
柳澤 直
リクルートホールディングス (住まいカンパニー出向)
新卒2年目 (23さい) 柳澤 直 (やなぎさわ なお)
アプリケーションエンジニア
(Webフロント◎、サーバー○、インフラ△)
2012/03: 人材DBベンチャー(アルバイト) クビになる
2013/05: ソーシャルゲーム会社にて3Dランゲーム開発(アルバイト)
2014/10: 知り合いと起業 http://www.ineeza.com/
2015/10: Youtuber向けポータルサイトUUUM Network開発
2015/05: フリーランス開業 海外スポーツ賭博自動化システムなどグレー
なシステムの受託開発
2015/08: クラウドサービス口コミサイトBoxil開発
2016/02: 自動ネイティブアド生成第三者配信タグシステムの開発
2016/04: Recruit Holdings入社 RSC配属 SUUMOの開発
短期インターンとか含め関わった会社、プロダクト
好きな or 気になってる技
術
JS Conf 2016
JSのためにアイスランドへ出張
JSのスター数 115 /
201
結構JSのことは好きかもしれない、、 ///
大規模
※ 現時点でのやなぎさわの主観です
※ だいたいです
※ 勝手にロゴ使ってすいません、ダメだったら連絡くださいw
※ 他にもいくつかありますが一般公開されてるサイトということで
急成長ベンチャー0 -> 1
ソースを読んだことがあるサイトのプロット
注意
・所属組織等は関係なく全部僕個人の考え方です。
・まだまだ若造です。 経験はそれなりにあるつもりですが会社でも問題児扱いさ
れたりして、まだまだ足りない視点がいくつかあるっぽいのでお気づきの際はこ
っそり教えてください笑
・技術とビジネス両方好きで織り交ぜて話してます。純粋に技術の話を聞きたか
った方はすみません。
・JSって書いてありますがフロントエンドの話題が多いです。フロントに興味の
ない方はすみません。
0 -> 1 フェーズで感じたこと
Wordpressから自社システムへの移行案件
・0 -> 1 なので少ない工数でのビジネス的仮説検証がメイン
・お金のことをもっと身近にというコンセプトのお金に関するメディア
※ 現在絶賛開発中でWordpressから新システムへ移行中
ジョイン時のアーキテクチャ
本体、API
Rails
一般ユーザー
管理画面
フロント
React
API
ライター
MVPのプロダクト
のためにAPI作る
必要性って?
週1、2ヶ月
という短納期
管理画面そんなに
かっこいい必要な
い。。
React Redux
触るファイル多いし
やっぱ面倒かも、、
変更後のアーキテクチャ
本体、管理画面
Rails
一般ユーザー
ライター
・仮説を検証するだけのMVPにマイクロサービス的な高尚な
ものは不要なのでは
・Reactよりどう考えてもjQueryの方が簡単。設定とか諸々
あるし工数はReact等を採用すると上がる
・0 -> 1のフェーズの場合はjQueryでいいじゃん
エンジニア的に楽しい(新しい技術使いたい的な)と
ビジネス要求は時に異なる
最初ノリで作ると後で本当に後悔するから技術選定は
たとえ副業でもちゃんとやる、、、
大規模急成長ベンチャー0 -> 1
とはいえ、、
多分ここら辺でお金を投入して一気にスケールさせるタイミングとかくる
とはいえ、、、
・チャットワークにみるScala再構築事件とか、、
・ベンチャーで数万UUくらいの規模のサイトだったらそんなに機能もないだろう
し、シリーズA, Bくらいの調達のタイミングで丸っと作り直しとかあり?
・マイクロサービスアーキテクチャはシリーズA, Bくらいのタイミングで検討し
始めるのがいいんじゃなかろうか
大規模プロダクトのJSで思ったこと
・世界1の売り上げの不動産検索サイト
・住む場所を探している人に情報を提供している不動産メディア
※ 開発に携わったことがあるのはPCサイトの賃貸
ソースを読む人が異常に多い
(実装者以外や他のチームの人も参照したりする)
Linterやformatterをフル活用
コードレビューもかなり入念にやる
共通部分がサワレナイ、、、
-> 影響範囲が大きすぎる
E2Eテストなど、なんらかの方法でコンバージョン
までの導線を自動テストする
何がどこにあるのかすぐわかるようになっておく
→ 影響範囲の把握
→ フォルダ構成がかなり重要
E2Eテスト
Nightwatch.jsWebdriverIO
JSでかける、、、 ///
テストケースの設計 -> 何をテストするのか
とはいえE2Eむずい
何をテストするのか
リスク
E2Eの
コスト
手動テスト
コスト
ログ 高 低 高
検索機能 中 低 低
... ... ... ..
リスクが高くて
E2Eテストのコストが低くて
手動テストのコストが高いもの からやる
CIに組み込むのが大変 → ブラウザ動かすの大変
とはいえE2Eむずい
DockerHubにあるWebdriverIOのコンテナ構成
E2Eコンテナ
Hubコンテナ
ブラウザコンテナ
(Firefox)
ブラウザコンテナ
(Chrome)
Webサーバー
ブラウザコンテナ
(...)
コンテナ多い、、、
リソース足りなくて落ちたりする、、、
参考
https://hub.docker.com/r/casperlai/docker-
webdriverio/
当たり前だけど大規模サイトは難易度が高いこと
を要求されることが多い
大規模サイトのJSは慎重に開発をする必要がある
→ 当然スタートアップとは違った開発になる
まとめ
・0 → 1の段階のプロダクトは凝ったことしないで仮説検証のために本当に必要
最低限の技術で最小工数の実装
・シリーズA, Bらへんで開発リソースに余裕が出てきたら徐々に新しい技術を検
討すると技術を生かしてプロダクトがグロースできそう
・大規模なプロダクトは影響範囲を把握しやすくしておくことがかなり大事。ま
たデグレの検知をする仕組みがかなりバリューを発揮しそう

More Related Content

Similar to スタートアップと大規模サイトの JavaScript

事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西Tomoyuki Sugita
 
Data API ことはじめ
Data API ことはじめData API ことはじめ
Data API ことはじめYuji Takayama
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化takashi ono
 
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみたMaho Takara
 
gumiStudy #18 クラウドを使うユーザーが考えるべきこと
gumiStudy #18 クラウドを使うユーザーが考えるべきことgumiStudy #18 クラウドを使うユーザーが考えるべきこと
gumiStudy #18 クラウドを使うユーザーが考えるべきこと雄哉 吉田
 
進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報softlayerjp
 
20130126 mtddcms
20130126 mtddcms20130126 mtddcms
20130126 mtddcmsyokonaka
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005知礼 八子
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開ToruKubota4
 
AWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSIONAWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSIONMariko Nishimura
 
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界Amazon Web Services Japan
 
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)さくらインターネット株式会社
 
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)takashi ono
 
UDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfUDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfRikuHamaguchi
 
UDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfUDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfRikuHamaguchi
 
最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめ最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめMasaki Yamamoto
 
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまでMasafumi Konishi
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?J-Stream Inc.
 
受託開発をやりながらboardを軌道に乗せるまで
受託開発をやりながらboardを軌道に乗せるまで受託開発をやりながらboardを軌道に乗せるまで
受託開発をやりながらboardを軌道に乗せるまでYusuke Tamukai
 

Similar to スタートアップと大規模サイトの JavaScript (20)

事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西事業会社で働くエンジニアのマインドセット - DevLOVE関西
事業会社で働くエンジニアのマインドセット - DevLOVE関西
 
Data API ことはじめ
Data API ことはじめData API ことはじめ
Data API ことはじめ
 
WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化WordPressの進化とWordPress名古屋コミュニティの進化
WordPressの進化とWordPress名古屋コミュニティの進化
 
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた
第二回SoftLayerユーザー会 ラズベリーパイとオブジェクトストレージを繋いでみた
 
gumiStudy #18 クラウドを使うユーザーが考えるべきこと
gumiStudy #18 クラウドを使うユーザーが考えるべきことgumiStudy #18 クラウドを使うユーザーが考えるべきこと
gumiStudy #18 クラウドを使うユーザーが考えるべきこと
 
進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報進化を続けるBluemix 最新情報
進化を続けるBluemix 最新情報
 
20130126 mtddcms
20130126 mtddcms20130126 mtddcms
20130126 mtddcms
 
「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005「クラウドの変質化」Yako presen 141005
「クラウドの変質化」Yako presen 141005
 
Staticwp 20131013
Staticwp 20131013Staticwp 20131013
Staticwp 20131013
 
AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開AWSで動画共有サイトを作成して全社に公開
AWSで動画共有サイトを作成して全社に公開
 
AWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSIONAWS SUMMIT TOKYO 2012 - BASCULE SESSION
AWS SUMMIT TOKYO 2012 - BASCULE SESSION
 
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
[AWS Summit 2012] 事例セッション #2 Bascule Meets AWS! クラウドが加速させる デジタルクリエイションの世界
 
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)
さくらのクラウド・サービス概要と構成例(第29回 さくらの夕べin徳島)
 
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)
マーケティングオートメーション&Mauticとは(WordBench Nagoya 2017年2月勉強会)
 
UDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfUDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdf
 
UDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfUDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdf
 
最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめ最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめ
 
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで
2020/9/30 【エンジニア起業】小規模スタートアップがウェブサービス(SocialDog)を軌道に乗せるまで
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
 
受託開発をやりながらboardを軌道に乗せるまで
受託開発をやりながらboardを軌道に乗せるまで受託開発をやりながらboardを軌道に乗せるまで
受託開発をやりながらboardを軌道に乗せるまで
 

スタートアップと大規模サイトの JavaScript

Editor's Notes

  1. エンジニアとして楽しいということとビジネス要求って違うんだなと実感 オーバースペックな技術を使ってもしゃーない -> css in jsとかクラス名ハッシュ化されてかなり嬉しいけどこの段階で命名かぶるとか滅多にないしそんなにメリットない 早い方がいい
  2. やりすぎてgulpが3000行になった、、 やりすぎない程度にメタプログラミングしましょうw
  3. 逆に言うとスタートアップとかだったら正直SRAとかどうでもいいから機能追加しまくった方がいい
  4. 逆に言うとスタートアップとかだったら正直SRAとかどうでもいいから機能追加しまくった方がいい