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
導入事例から学ぶ Polymer開発 / Polymer-Japan-2017-11-04-2
Search
Kenichiro Kishida
November 04, 2017
Technology
570
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
導入事例から学ぶ Polymer開発 / Polymer-Japan-2017-11-04-2
Kenichiro Kishida
November 04, 2017
More Decks by Kenichiro Kishida
See All by Kenichiro Kishida
Compression Streams API によるブラウザネイティブなデータ圧縮/jsfes2025
sizuhiko
0
88
Compression Streams API によるブラウザネイティブなデータ圧縮 /phpstudy-182
sizuhiko
0
93
Code兄弟での CI/CDをいい感じにする方法 / phpstudy-2024-06
sizuhiko
0
230
Webアクセシビリティワークショップを社内でやってみた / phpconfuk-2024
sizuhiko
1
430
デベロッパーよ 健康でいるためには 寝て 旅をして 趣味を持って メンタル大切に / DE-RADIO-2023-06-26
sizuhiko
0
210
ヘビータブユーザーが ワークスペースの利用でどのように変わったか / 2023-05-16 Vivaldi User Meetup TOKYO 2023
sizuhiko
0
390
Node.js v18 ベースイメージを使った AWS Lambda アプリ開発におけつ光と影 / 2023-04-23 JavaScript Fes
sizuhiko
0
260
@swc-node/jest を使って テストを高速化する/jsfes-2022
sizuhiko
0
430
Rails 7の採用提案で注目を集め始めた Import maps の過去、現在、そして未来について/de radio 2
sizuhiko
2
1.5k
Other Decks in Technology
See All in Technology
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
720
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
150
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
230
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
220
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
200
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
8
3.3k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
130
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
190
beyond jj: config & tools ecosystem
indirect
0
370
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
150
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
150
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Speed Design
sergeychernyshev
33
2.1k
Odyssey Design
rkendrick25
PRO
2
810
Product Roadmaps are Hard
iamctodd
55
13k
Documentation Writing (for coders)
carmenintech
77
5.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
From π to Pie charts
rasagy
0
370
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Side Projects
sachag
456
43k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Technical Leadership for Architectural Decision Making
baasie
3
570
Transcript
ಋೖࣄྫ͔ΒֶͿ 1PMZNFS։ൃ 1PMZNFS+BQBO.FFUVQ ,FOJDIJSP,JTIJEB !TJ[VIJLP
ळ ަ௨͚γεςϜϓϩτλΠϓ࡞Ͱ࠾༻ ϑϩϯτࢲਓ Ն *P5..ల ळ ͷలࣔσϞΞϓϦͰ࠾༻ ϑϩϯτΤϯυࢲ ϑϦʔͷ+4FS ౙ
ʢதখاۀ͚ʣ༻8FCαʔϏε։ൃͰ࠾༻ ϑϩϯτΤϯυࢲ ϑϦʔͷ+4FS ϑϩϯτॳΊͯͷਓ
࣌ʜ w ͱΜ͕ͬͯΔͶʂ w ͍ͬͯΔਓ͡Ίͯݟͨ w ͑Δͷʁ w ੲ
ͬͨ͜ͱ͋Δ w ͭΒ͘ͳ͍ʁ
w W w WW w WW w W w W
w W w W w W w W https://github.com/Polymer/polymer/releases 89 Releases!!
ۤ썮썴썝썢ɺࠔ썺썶쎁 ۤ썮썛쎅쎆썶쎡લ쎁쎪썷써쎀쎁 쎆ւਤ쎅쎁썛ߤ࿏쎩ߦ썦쎪썷쎤ʁ ઓ썰쎢쎅쎙ɺੜ쎖ग़썰쎅쎙ɺۤ썮썛쎟 썾쎙ɺॆ࣮썮썽쎢 ʮ࢛݄܅ͷӕʯΑΓ༗അެਖ਼ͷ໊ݴ
Α͔ͬͨ͜ͱ w )5.-λά࠶ར༻ੑ͕ߴ͍ w ϒϩοΫΛΈཱͯΔΑ͏ͩ w άϩʔόϧԚછͳʹͦΕ w ͡ΊͯͷਓೃછΈ͍͢ w
ʢ׳Εͨਓ͕͍ͨํ͕ྑ͍ʣ
131-ύλʔϯ
https://developers.google.com/web/fundamentals/performance/prpl-pattern/?hl=ja
1PMZNFS$-* 'BLF"1*4FSWFS ੩తίϯςϯπͷऔಘ "1*ίʔϧ
None
/1.4DSJQUT “start”: “polymer serve -H 0.0.0.0 & gulp canned”, “lint”:
“gulp lint”, “lint:ci”: “gulp lint —ci”, “test” : “gulp test”, “test:ci”: “gulp test —ci”, “postinstall”: “bower install”, “deploy:xxx”: “gulp deploy —target=xxx”
5FTUJOH const wct = require('web-component-tester').test; const options = { plugins:
{ local: ['chrome', 'firefox'], } }; wct(options).then(() => { console.log('テスト成功'); }).catch((error) => { console.log(error); });
✅ ✅ ✅ ❌ ❌ ✅ ✅ ✅ ✅ ❌
-JOU gulp.task('lint', () => { return gulp.src(['src/**/*.html', '!src/app.html']) .pipe(polylint({noRecursion: true}))
.pipe(jshint.extract('auto')) .pipe(jshint({expr: true})) .pipe(polylint.combineWithJshintResults()) .pipe(jshint.reporter, 'jshint-stylish') .pipe(jshint.reporter, 'fail'); });
4 $MPVE'SPOU )551
#VJME const htmlminOptions = { collapseWhitespace: true, minifyCSS: true, minifyJS:
true, removeComments: true }; gulp.task('deploy.minify', () => { return gulp.src(dist('/src/**/*.html')) .pipe(htmlmin(htmlminOptions)) .pipe(gulp.dest(dist('/src'))); });
(FOFSBUF4FSWJDF8PSLFS const PolymerProject = require('polymer-build').PolymerProject; const addServiceWorker = require('polymer-build').addServiceWorker; const
mergeStream = require('merge-stream'); const swPrecacheConfig = require(path.join(__dirname, '..', '..', 'sw-precache-config.js')); const project = new PolymerProject(require(path.join(__dirname, '..', '..', 'polymer.json'))); gulp.task('deploy.addServiceWorker', ['deploy.stream'], () => { return addServiceWorker({ buildRoot: dist(), project: project, swPrecacheConfig: swPrecacheConfig, }); }); gulp.task('deploy.stream', () => { return mergeStream(project.sources(), project.dependencies()); });
%FQMPZ const awspublish = require('gulp-awspublish'); const parallelize = require("concurrent-transform"); const
cloudfront = require('gulp-cloudfront-invalidate-aws-publish'); gulp.task('deploy.invalidate', () => { const publisher = createPublisher(); return gulp.src(dist('**/*')) .pipe(parallelize(publisher.publish(headers), 10)) .pipe(publisher.sync()) .pipe(cloudfront(cfSettings)) .pipe(publisher.cache()) .pipe(awspublish.reporter()); });
·ͱΊ