Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
導入事例から学ぶ Polymer開発 / Polymer-Japan-2017-11-04-2
Search
Kenichiro Kishida
November 04, 2017
Technology
560
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
55
Compression Streams API によるブラウザネイティブなデータ圧縮 /phpstudy-182
sizuhiko
0
75
Code兄弟での CI/CDをいい感じにする方法 / phpstudy-2024-06
sizuhiko
0
230
Webアクセシビリティワークショップを社内でやってみた / phpconfuk-2024
sizuhiko
1
420
デベロッパーよ 健康でいるためには 寝て 旅をして 趣味を持って メンタル大切に / DE-RADIO-2023-06-26
sizuhiko
0
200
ヘビータブユーザーが ワークスペースの利用でどのように変わったか / 2023-05-16 Vivaldi User Meetup TOKYO 2023
sizuhiko
0
380
Node.js v18 ベースイメージを使った AWS Lambda アプリ開発におけつ光と影 / 2023-04-23 JavaScript Fes
sizuhiko
0
250
@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
Chainlitで作るお手軽チャットUI
ynt0485
0
260
LLMにもCAP定理があるという話
harukasakihara
0
380
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
270
小さくはじめるSLI/SLO ~育てながら組織に定着させる実践知~ / Starting Small with SLI/SLOs: Building Adoption Through Continuous Growth
nari_ex
7
2k
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
150
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
680
自宅LLMの話
jacopen
1
600
入門!AWS Blocks
ysuzuki
1
130
AIエージェントが名古屋の猛暑からあなたを守る
happysamurai294
0
130
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
260
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
130
Featured
See All Featured
A Soul's Torment
seathinner
6
2.9k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
How to train your dragon (web standard)
notwaldorf
97
6.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Faster Mobile Websites
deanohume
310
31k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
430
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Building the Perfect Custom Keyboard
takai
2
790
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Building an army of robots
kneath
306
46k
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()); });
·ͱΊ