SlideShare a Scribd company logo
オープンソースを活用した
フロントエンド開発の取り組み
Mar. 30th, 2015
at 春のフロントエンドまつり
Tsutomu Ogasawara
@ogaoga
自己紹介
Tsutomu Ogasawara
@ogaoga
Front-end Engineer / Team Manager
背景
● HTML5 やスマートフォンの普及による、
フロントエンドの重要性増大と複雑化。
● 問題解決のためにオープンソースのツール
やライブラリがいろいろ出てきた。
● 開発者が試しに使ってみたら結構便利。
オレオレ Gruntfile.js の大量発生
問題点
● 新規開発のたびに、環境構築に時間をかけ
てしまう。
● 最新の技術、バージョンに追いつかない。
● 人によって構成がバラバラ。
問題点
● 新規開発のたびに、環境構築に時間をかけ
てしまう。
● 最新の技術、バージョンに追いつかない。
● 人によって構成がバラバラ。
長期的、組織的に非効率。
解決案
● ツールや構成を標準化して、誰もが同じ環
境、フローで開発ができるように。
● 様々なサービス、開発手法にフィットする
よう、カスタマイズ可能であること。
● 開発したツールが継続的にメンテナンスさ
れ、常に最新の状態になること。
Yeoman
Yeoman
● プロジェクトに必要なファイル一式を生成
するツール。
● すぐに開発が始められるよう、テンプレー
トやツールが準備されている。
● 対話形式でカスタマイズが可能。
● 様々なジェネレータが利用可能。
Yeoman
generator-rff
● 自分たちの開発にフィットする Yeoman ジ
ェネレータを開発。
● ファイル構成や設定の標準化と、その一元
管理。
● 様々な言語、構成、オプションに対応。
generator-rff
$ npm install -g generator-rff
$ yo rff
generator-rff
Markup
HTML / Jade
Stylesheet
CSS / Sass / LESS / Stylus
Script
JavaScript / CoffeeScript
Utilities
CSS Autoprefixer / CSS Sprite
/ Icon Fonts
Libraries
Mordernizr
Testing
HTML Validation / CSS Lint
/ JSHint / JSCS / Mocha
/ Jasmine
Optimization
Minification / SVG Optimization
/ Static Revision Revisioning
Deployment
Deploy to Git repository
/ Deploy via FTP
Others
SSI Support on preview
generator-rff
生成されたプロジェクトに含まれている機能
● ビルド(Grunt)
● プレビュー(BrowserSync)
● パッケージ管理(Bower)
● デプロイ(Git / FTP)
● etc...
generator-rff / ビルド
Grunt
generator-rff / プレビュー
BrowserSync デモ
generator-rff / パッケージ管理
Bower デモ
効果
● 素早くプロジェクトを始められ、便利な機
能を簡単に利用できる。
● 自動的にファイルが最適化され、意識せず
に Web パフォーマンスが向上。
● ファイル構成やツールが標準化されたので、
複数人での開発や引き継ぎが容易に。
オープンソース化
https://github.com/rakuten-frontend/generator-rff
オープンソース化
● generator-rff 自体が、オープンソースの組み
合わせ。
● GitHub / npm / Travis CI などのツールが利
用可能。
● 外部委託案件でも利用可能。
● 社内の取り組みを知ってもらうチャンス。
オープンソース化
https://github.com/rakuten-frontend/bower-browser
オープンソース化
これから
● 標準ライブラリの充実
o CSS Framework
● デプロイとテストの自動化
o ブラウザテスト
o SEO / Web Performance / Mobile Friendly
これから
● 標準ライブラリの充実
o CSS Framework
● デプロイとテストの自動化
o ブラウザテスト
o SEO / Web Performance / Mobile Friendly
ツール、ライブラリ、環境を
有機的に統合していく
まとめ
● オープンソースを最大限活用。
● 自分たちの環境にあったツールを開発。
● 開発効率、Web パフォーマンスの向上。
● メンバー間で共通の認識を持てる。
● 対外的なアピールにも。
Thanks!

More Related Content

Viewers also liked

Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technology
Tsutomu Ogasawara
 
What's Parse
What's ParseWhat's Parse
What's Parse
Tsutomu Ogasawara
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
Tsutomu Ogasawara
 
CakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaogaCakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaoga
Tsutomu Ogasawara
 
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5expHtml5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Tsutomu Ogasawara
 
空室検索 Map
空室検索 Map空室検索 Map
空室検索 Map
Tsutomu Ogasawara
 
楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例
Tsutomu Ogasawara
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 

Viewers also liked (8)

Cutting edge of web technology
Cutting edge of web technologyCutting edge of web technology
Cutting edge of web technology
 
What's Parse
What's ParseWhat's Parse
What's Parse
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
CakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaogaCakePHP 事例紹介 @ogaoga
CakePHP 事例紹介 @ogaoga
 
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5expHtml5 in Rakuten (at HTML5 Experts Night#1) #html5exp
Html5 in Rakuten (at HTML5 Experts Night#1) #html5exp
 
空室検索 Map
空室検索 Map空室検索 Map
空室検索 Map
 
楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例楽天の e コマースと HTML5 活用事例
楽天の e コマースと HTML5 活用事例
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to オープンソースを活用したフロントエンド開発の取り組み

MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
Hiroshi Yamato
 
業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日
Mitsuru Ogawa
 
Plannahのチーム開発とdeploy gateの紹介
Plannahのチーム開発とdeploy gateの紹介Plannahのチーム開発とdeploy gateの紹介
Plannahのチーム開発とdeploy gateの紹介Kenji Kinukawa
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
Yuta Matsumura
 
困った時のDev toolsの使い方(初心者向け)
困った時のDev toolsの使い方(初心者向け)困った時のDev toolsの使い方(初心者向け)
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
 
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼンOSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
Masanori Itoh
 
Progcamp internet 100801
Progcamp internet 100801Progcamp internet 100801
Progcamp internet 100801Hiro Yoshioka
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 
先取り Go1.5
先取り Go1.5先取り Go1.5
先取り Go1.5
Preferred Networks
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズ
Miho Yamamoto
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
Yuta Matsumura
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
 
DevLOVE広島 第1回 その改善いつするの?
DevLOVE広島 第1回  その改善いつするの?DevLOVE広島 第1回  その改善いつするの?
DevLOVE広島 第1回 その改善いつするの?
Kazuya Matsubara
 
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組みProduct Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組みshibao800
 
[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例
Takashi Suzuki
 
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUGデブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUG
dsuke Takaoka
 
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
Ozawa Kensuke
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~InnovationSprint2011
 
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
Shinji Enoki
 
今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門
VirtualTech Japan Inc./Begi.net Inc.
 

Similar to オープンソースを活用したフロントエンド開発の取り組み (20)

MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日業務系WebアプリケーションがStrutsから旅立つ日
業務系WebアプリケーションがStrutsから旅立つ日
 
Plannahのチーム開発とdeploy gateの紹介
Plannahのチーム開発とdeploy gateの紹介Plannahのチーム開発とdeploy gateの紹介
Plannahのチーム開発とdeploy gateの紹介
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
困った時のDev toolsの使い方(初心者向け)
困った時のDev toolsの使い方(初心者向け)困った時のDev toolsの使い方(初心者向け)
困った時のDev toolsの使い方(初心者向け)
 
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼンOSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
 
Progcamp internet 100801
Progcamp internet 100801Progcamp internet 100801
Progcamp internet 100801
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
先取り Go1.5
先取り Go1.5先取り Go1.5
先取り Go1.5
 
いんふらフレンズ
いんふらフレンズいんふらフレンズ
いんふらフレンズ
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous Testing
 
DevLOVE広島 第1回 その改善いつするの?
DevLOVE広島 第1回  その改善いつするの?DevLOVE広島 第1回  その改善いつするの?
DevLOVE広島 第1回 その改善いつするの?
 
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組みProduct Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
Product Ownership~NTTデータと楽天それぞれの文脈でのサービスづくり、人づくり、チームづくりの取り組み
 
[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例[Gree] Dialogflowを利用したチャットボット導入事例
[Gree] Dialogflowを利用したチャットボット導入事例
 
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUGデブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUG
 
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
ぼくのかんがえたさいきょうの機械学習プロダクトの作り方
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
 
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
海外(ミラノ、ベルリン)での国際カンファレンスに参加して -LibreOffice/Nextcloud/Collabora Onlineの場合-
 
今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門
 

Recently uploaded

Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 

Recently uploaded (7)

Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 

オープンソースを活用したフロントエンド開発の取り組み