SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
モダンな感じで
Chrome Extension
作ってみた
t_murano
Kanazawa.rb meetup #40
自己紹介
• t_murano (@k242hd_akg)
• 社会人1年目
• Vimmer
• ISUCON出たりたまに競プロやってたり…
最近こんなの作ってた
アプリは置いておいて
モダンな話
使ってる技術とか
Babel npm
Webpack
jsdom
Sinon.JS
power-assert
mocha
React
ES6
使ってる技術とか
Babel npm
Webpack
jsdom
Sinon.JS
power-assert
mocha
React
ES6
テスト関係
言語関係
※無理やり分類するとこんな感じ
View関係
言語関係は
1. npmで必要なパッケージを取得
2. ES6でコードを書く
3. Babelでトランスパイル
4. Webpackでガッチャンコ
以上!
テストツール
• mocha : test framework
• power-assert : assertion library
• Sinon.JS : test double
• jsdom : DOM simulator
jsdom
• 昔はブラウザ上でテストしてた(…らしい)
• ブラウザではなくNode.js上でDOMを構築
• CLIで結構テストが走る → 楽ちん
React
• JUST THE UI
• Virtual DOM (あんまり意識しないと思う)
• DOMの変更や構造が把握しやすくなる
2つのComponent
inputのeventをcatch
定義しておいた props (I/F)
ラベルを変更
アプリ作って思ったこと
• ChromeExtensionでも基本的にはSPA等と変わ
らないので、モダンな技術が使える
• Reactとjsdomでテスト書きやすい感じ
• Google先生を相手にすると厄介
まとめ
• モダン化いいね
おわり

Contenu connexe

Tendances

Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
Shinobu Okano
 

Tendances (20)

VimM#3
VimM#3VimM#3
VimM#3
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
 
暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacs
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environment
 
Playで作るwebsocketサーバ
Playで作るwebsocketサーバPlayで作るwebsocketサーバ
Playで作るwebsocketサーバ
 
Mbed2013
Mbed2013Mbed2013
Mbed2013
 
play framework 勉強会 in 関西
play framework 勉強会 in 関西play framework 勉強会 in 関西
play framework 勉強会 in 関西
 
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
Unite vim
Unite vim Unite vim
Unite vim
 
エディタ戦争
エディタ戦争エディタ戦争
エディタ戦争
 
Phpstormをつかいはじめました〜序〜 #sa_study
Phpstormをつかいはじめました〜序〜 #sa_studyPhpstormをつかいはじめました〜序〜 #sa_study
Phpstormをつかいはじめました〜序〜 #sa_study
 
PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春PHP7実環境ベンチ2016春
PHP7実環境ベンチ2016春
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
WordBench Nagoya 2015年3月勉強会
WordBench Nagoya 2015年3月勉強会WordBench Nagoya 2015年3月勉強会
WordBench Nagoya 2015年3月勉強会
 
node.js
node.jsnode.js
node.js
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
 
Xml rpc を使ってブログ投稿
Xml rpc を使ってブログ投稿Xml rpc を使ってブログ投稿
Xml rpc を使ってブログ投稿
 
mrubyでゲームを書いてみた
mrubyでゲームを書いてみたmrubyでゲームを書いてみた
mrubyでゲームを書いてみた
 
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
 
Varnish
VarnishVarnish
Varnish
 

En vedette

Media programing2012
Media programing2012Media programing2012
Media programing2012
y42sora
 
Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)
y42sora
 
Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42
Yoichiro Tanaka
 
ChatWorkではじめるChrome Extensionもぐもぐ会
ChatWorkではじめるChrome Extensionもぐもぐ会ChatWorkではじめるChrome Extensionもぐもぐ会
ChatWorkではじめるChrome Extensionもぐもぐ会
cw-ozaki
 

En vedette (15)

Chrome extension入門
Chrome extension入門Chrome extension入門
Chrome extension入門
 
微妙なサイトを自分好みに勝手に改造しちゃおう! ※Chromeの拡張機能で
微妙なサイトを自分好みに勝手に改造しちゃおう!  ※Chromeの拡張機能で微妙なサイトを自分好みに勝手に改造しちゃおう!  ※Chromeの拡張機能で
微妙なサイトを自分好みに勝手に改造しちゃおう! ※Chromeの拡張機能で
 
Media programing2012
Media programing2012Media programing2012
Media programing2012
 
Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)Gitの使い方(rabese -i編)
Gitの使い方(rabese -i編)
 
Oak Park
Oak ParkOak Park
Oak Park
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
 
Chrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensionsChrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensions
 
Chrome 拡張のご紹介
Chrome 拡張のご紹介Chrome 拡張のご紹介
Chrome 拡張のご紹介
 
Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42
 
Chrome Apps 概要
Chrome Apps 概要Chrome Apps 概要
Chrome Apps 概要
 
[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....
[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....
[db tech showcase Tokyo 2016] B22: 超高速NoSQLデータベースと超高速SSDの融合 by Aerospike Inc....
 
eZ Publishのextension開発チュートリアル
eZ Publishのextension開発チュートリアルeZ Publishのextension開発チュートリアル
eZ Publishのextension開発チュートリアル
 
ChatWorkではじめるChrome Extensionもぐもぐ会
ChatWorkではじめるChrome Extensionもぐもぐ会ChatWorkではじめるChrome Extensionもぐもぐ会
ChatWorkではじめるChrome Extensionもぐもぐ会
 
WebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をするWebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をする
 
CSPの話〜FxOSチューン☆〜
CSPの話〜FxOSチューン☆〜CSPの話〜FxOSチューン☆〜
CSPの話〜FxOSチューン☆〜
 

Similaire à モダンな感じでChrome Extension作ってみた

Javakuche yono
Javakuche yonoJavakuche yono
Javakuche yono
yono05
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
Yuki KAN
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
ytanno
 

Similaire à モダンな感じでChrome Extension作ってみた (20)

[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
Hello, C++ + JavaScript World! - Boost.勉強会 #11 東京
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
JSer Class #2
JSer Class #2JSer Class #2
JSer Class #2
 
Javakuche yono
Javakuche yonoJavakuche yono
Javakuche yono
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
 
Haikara
HaikaraHaikara
Haikara
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
 
MediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live StreamingMediaRecorder と WebM で、オレオレ Live Streaming
MediaRecorder と WebM で、オレオレ Live Streaming
 
Xcore introduction
Xcore introductionXcore introduction
Xcore introduction
 
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
 
Jenkins + awsで並列テスト
Jenkins + awsで並列テストJenkins + awsで並列テスト
Jenkins + awsで並列テスト
 
WebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこWebRTCでドラゴンボールごっこ
WebRTCでドラゴンボールごっこ
 
便利で危険なnpm install
便利で危険なnpm install便利で危険なnpm install
便利で危険なnpm install
 
勉強会20140207
勉強会20140207勉強会20140207
勉強会20140207
 

Plus de Takumi Murano (10)

Dockerぐらし!
Dockerぐらし!Dockerぐらし!
Dockerぐらし!
 
金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料金大アルゴリズム勉強会#007資料
金大アルゴリズム勉強会#007資料
 
金大アルゴリズム勉強会#006資料
金大アルゴリズム勉強会#006資料金大アルゴリズム勉強会#006資料
金大アルゴリズム勉強会#006資料
 
Operator's Side
Operator's SideOperator's Side
Operator's Side
 
金大アルゴリズム勉強会#005資料
金大アルゴリズム勉強会#005資料金大アルゴリズム勉強会#005資料
金大アルゴリズム勉強会#005資料
 
金大アルゴリズム勉強会#004資料
金大アルゴリズム勉強会#004資料金大アルゴリズム勉強会#004資料
金大アルゴリズム勉強会#004資料
 
金大アルゴリズム勉強会#003資料
金大アルゴリズム勉強会#003資料金大アルゴリズム勉強会#003資料
金大アルゴリズム勉強会#003資料
 
金大アルゴリズム勉強会#002資料
金大アルゴリズム勉強会#002資料金大アルゴリズム勉強会#002資料
金大アルゴリズム勉強会#002資料
 
金大アルゴリズム勉強会#001資料
金大アルゴリズム勉強会#001資料金大アルゴリズム勉強会#001資料
金大アルゴリズム勉強会#001資料
 
Lombok java
Lombok javaLombok java
Lombok java
 

Dernier

Dernier (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

モダンな感じでChrome Extension作ってみた