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
脱なんちゃってフロントエンド/frontend_to_properly
Search
Masahiko Sakakibara
July 14, 2018
3.3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
脱なんちゃってフロントエンド/frontend_to_properly
Masahiko Sakakibara
July 14, 2018
More Decks by Masahiko Sakakibara
See All by Masahiko Sakakibara
決済端末ビジネスを、決済会社だけのものにしない/stripe_terminal_business
rdlabo
0
60
JavaScriptで始める店舗インフラ決済構築/stripe_terminal_workshop
rdlabo
0
57
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
710
本当に欲しかったのはモノレポツールではなく、tsconfigの設定だった / monorepo-tsconfig
rdlabo
1
420
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
590
プライベートプロダクト戦略 - フロントエンドカンファレンス沖縄 / private_product_frontend
rdlabo
3
4.9k
GitHubをCMSとして使う話/ using_github_as_CMS
rdlabo
0
730
JavaScriptから デバイスの力を100%引き出すための Web APIとCapacitor入門 / power_from_javascript
rdlabo
0
650
Capacitor4_release
rdlabo
0
740
Featured
See All Featured
KATA
mclloyd
PRO
35
16k
The SEO Collaboration Effect
kristinabergwall1
1
590
Accessibility Awareness
sabderemane
1
240
Discover your Explorer Soul
emna__ayadi
2
1.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The agentic SEO stack - context over prompts
schlessera
0
970
Music & Morning Musume
bryan
48
7.4k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
440
Transcript
Ұൠࣾஂ๏ਓϦϨʔγϣϯσβΠϯݚڀॴ දཧࣄɹࡗݪণ ʮͳΜͪΌͬͯʯϑϩϯτΤϯυ
None
ࣗݾհ ࡗݪণ Ұൠࣾஂ๏ਓϦϨʔγϣϯσβΠϯ ݚڀॴදཧࣄ Ұൠࣾஂ๏ਓΤϦΞɾ ΠϊϕʔγϣϯɾΞϥΠΞϯε$50 *POJD+BQBOද *POJDίΞίϯτϦϏϡʔλʔ
<1SPEVDU>"SFB*OOPWBUJPO3FWJFX
<1SPEVDU>UJQTZT
$POUSJCVUF ionic-team/ionic ionic-team/starters ionic-team/ionic-cli
։ൃαϙʔταʔϏε
ϑϩϯτΤϯυͱ Ϣʔβͷग़ೖྗΠϯλʔϑΣΠεͷͯ͢ マークアップ UI Design プログラミング
੩తαΠτ マークアップ
ಈతαΠτ 出力結果 動的プログラミング言語
1)1ͷಛ の中に を書くための言語 <php foreach($array as $string){ ?> <li class=‘list-style-apply’><?php
echo $string;?></li> <?php } ?> <p>ここにもHTML書けちゃう!</p>
ͪΌΜͱϑϩϯτΤϯυΛΈΑ͏
8FCͷτϨϯυ ੩తαΠτ 4JOHMF1BHF"QQMJDBUJPO 41" 3&45"1*(SBQI2-ʹΑΔόοΫΤ ϯυͱϑϩϯτΤϯυͷϒϦοδ +BWB4DSJQUʹΑΔϦονͳ6*
1SPHSFTTJWF8FC"QQT 18" 41" 8FC"1* ಈతαΠτ ΑΓΑ͍69Λࢦ͢
41"18"ʹ͓͚Δ1)1ͷׂ フロントエンド 動的プログラミング言語 API
41"ͰγʔϜϨεͳϢʔβମݧΛɻ
41"ͰγʔϜϨεͳϢʔβମݧΛɻ index.html 4JOHMF1BHF"QQMJDBUJPO
41"ͰγʔϜϨεͳϢʔβମݧΛɻ
41"ͰγʔϜϨεͳϢʔβମݧΛɻ ৗʹߴͰ҆ఆͨ͠ύϑΥʔϚϯε ॳظϩʔυͰTIFMMͷϩʔυྃʗϖʔδ ભҠͷߴԽʗ-B[Z-PBEJOH ωΠςΟϒΞϓϦͷΑ͏ͳૢ࡞ੑ ʢ1SPHSFTTJWF8FC"QQTͰޙड़ʣ σʔλͷޮతͳ༻
࠶ϩʔυΛߦΘͳ͍ʗ+40/ϑΝΠϧ ʢ3&45"1*ʣͷޮతར༻ \n^
41"ͰγʔϜϨεͳϢʔβମݧΛɻ ͜Εͷ௨৴ίετ
41"ͰγʔϜϨεͳϢʔβମݧΛɻ 2435文字
41"ͰγʔϜϨεͳϢʔβମݧΛɻ [{ "name": "tipsys", "desc": "国内で唯一の女友だちをつくる女性専用ソーシャルサービス。PWA・iOS・Androidアプリで配信中。ユーザ数1万人を 突破しました!", "image": "assets/images/tipsys.svg", "miniImage":
"assets/images/tipsys.svg", "url": "https://tipsys.me" }, { "name": "Ionic-WP.com", "desc": "アプリ制作に興味をもつWeb制作者のためのパッケージをオープンソースで公開。WordPressとIonicで簡単にアプリ をつくることができます。", "image": "assets/images/
[email protected]
", "miniImage": "assets/images/
[email protected]
", "url": "https://ionic-wp.com" }, { "name": "執筆・出版", "desc": "技術書籍の執筆を行っております。「Ionicで作る モバイルアプリ制作入門」「PHPフレームワークCodeIgniter3 超入 門」好評発売中!", "image": "assets/images/
[email protected]
", "miniImage": "assets/images/
[email protected]
", "url": "https://amzn.to/2HOhiy1" }] 716文字
41"ͰγʔϜϨεͳϢʔβମݧΛɻ
41"ͰγʔϜϨεͳϢʔβମݧΛɻ
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏ ΦϑϥΠϯදࣔ #BDLHSPVOE4ZOD 1VTI௨ ϗʔϜը໘ʹՃ
(14ΧϝϥͳͲͷ /BUJWFػೳͷΞΫηε
ΦϑϥΠϯදࣔʢΩϟογϡදࣔʣ w ࣗͰνΣοΫ͓ͯ͠ؾʹೖΓʹೖΕ͓ͨ ళใΛग़ઌͰݟ͢ w ిंͷதͰϒϥβόοΫͨ͠ॠؒʹτϯ ωϧʹೖͬͨ w ʰΠϯλʔωοτଓ͕͋Γ·ͤΜʱ 8FCͰํͳ͍ʁ
σϞ IUUQTBJSBSFBJBKQ 18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
#BDLHSPVOE4ZOD ΦϑϥΠϯ࣌ʹૹ৴ͨ͠σʔλΛ࣋ͪଓ ͚ɺΦϯϥΠϯʹ෮ؼͨ࣌͠ʹࣗಈతʹ ૹ৴͢Δػೳ 18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
1VTI௨ ࢈ܦ৽ฉΛ͡Ίͱͯ͠ଟ͘ͷେखϝσΟ Ξ'BDFCPPL5XJUUFSͳͲ͕͢Ͱʹ࣮ ɻϒϥβͰ1VTI௨͕ૹΕ·͢ɻ ϗʔϜը໘ʹՃ ΞϓϦͱಉ༷ʹϗʔϜʹΞΠίϯΛஔ Ͱ͖ΔɻωΠςΟϒΞϓϦͬΆ͘ىಈɻ (14ΧϝϥͳͲͷ εϚϗػೳͷΞΫηε 18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏ RAIL モデル 100ms 60FPS 1000ms 活用
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏ https://developers.google.com/web/fundamentals/performance/rail?hl=ja
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
18"Ͱ8&#ΛΞϓϦͱͯ͠ਐԽͤ͞Α͏
Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ
Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ )5.- $ +BWB "QBDIF'PVOEBUJPO
)5.- $ +BWB 4XJGU ,PUMJO *POJDUFBN /BUJWF1SPHSFTTJWF8FC"QQT Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ
Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ /BUJWF6*4IFMMʢ/BUJWFͱ8FC7JFXͷ༥߹ʣ .JYJOH/BUJWF6*BOE8FCXBDSPTTQMBUGPSN6*
Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ https://vimeo.com/55486684
Ϣʔβ·ͩϓϥοτϑΥʔϜΛબͳ͍ͷʁ 888
Ϣʔβ͚ͩ͡Όͳͯ͘ɺαʔόʹ༏͘͠
Ϣʔβ͚ͩ͡Όͳͯ͘ɺαʔόʹ༏͘͠ .PEFMͰσʔλΛܗͯ͠ ߹ʹΑͬͯ$PUSPMMFSͰ ͦΕΛల։ɾ࠶ܗͯ͠ 7JFXͰల։͢Δ 7JFXͷϨϯμϦϯάॏ͍ɻ
Ϣʔβ͚ͩ͡Όͳͯ͘ɺαʔόʹ༏͘͠ EC2��コスト1 (t2 small1台) RDS��コスト3 (t2 small 1台/ medium 1台)
���������※ チューニング前はコスト8
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά ʁ
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά ʁ
ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά
フロントエンド 動的プログラミング言語 HTTPレスポンス ࣗ༝ࣗࡏͳΤϥʔϋϯυϦϯά
"1*ͱϑϩϯτΤϯυͷଟ༷ͳؔ
"1*ͱϑϩϯτΤϯυͷଟ༷ͳؔ "1*ʹΑΓɺ ίϯςϯπͱ6*Λ ૄ݁߹ͳؔʹɻ \n^ https://speakerdeck.com/hideokamoto/javascriptdehazimeru-multi-ui-application
"1*ͱϑϩϯτΤϯυͷଟ༷ͳؔ ユーザ、コメント管理 記事の既読管理 カテゴリへのアイキャッチ画像 記事と画像 閲覧
"1*ͱϑϩϯτΤϯυͷଟ༷ͳؔ 期間の記事を取得して 文字列でメルマガ自動生成 記事と画像 メルマガ配信
41"18"ʹ͓͚Δޡղ
ىಈ͍ΜͰ͠ΐʁ (PPHMFݕࡧͰͪΌΜͱಡΈࠐΜͰ͘Εͳ͍ͷͰ 0(1λάͱ͔ͪΌΜͱಈ͔ͳ͍ΜͰ͠ΐʁ 18"͍ͬͯ·͍ͪ͡Όͳ͍ͷʁ
w 4&-&$5͍ w ෳ$16Λ༻͍ͯΫΤϦ࣮ߦ͢ΔʮύϥϨϧΫΤϦʯʢતʣ w 1PTU(*4ΛͬͯਤσʔλΛѻ͑Δʢۭؒσʔλѻ͑Δ w ܕ͕ݫ֨ͳͷͰൺֱ͕ࣜॻ͖͍͢ w ϒϩοΩϯάॲཧ͕ݰਓࢦ
18"͍ͬͯ·͍ͪ͡Όͳ͍ͷʁ
18"͍ͬͯ·͍ͪ͡Όͳ͍ͷʁ
18"͍ͬͯ·͍ͪ͡Όͳ͍ͷʁ
18"͍ͬͯ·͍ͪ͡Όͳ͍ͷʁ
͜Ε͔Βͷ1)1 で フロントエンドを描画するのが ΞϯνύλʔϯʹͳΔ͙ͦͩ͢͜ɻ
/&9545&1ϑϩϯτΤϯυΛֶ΅͏
1)1Ͱ3&45"1*ͭ͘Δͷ؆୯ <php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS'); if
($_SERVER['REQUEST_METHOD'] == ‘OPTIONS') exit(); http_response_code(200) ����echo json_encode($array); return; ܕ͋Δʢ1)1ʙʣ 4FSWFSMFTT'SBNFXPSL1)1ରԠʢBSBJOFTTFSWFSMFTTQIQʣ ԿΑΓॻ͖׳ΕͯΔʂ
ϑϩϯτΤϯυΛ͡ΊΔ͓͢͢Ίύοέʔδ &4Y 8FC1BDL 4$44 443 QSFSFOEFS 5ZQF4DSJQU 3FBDU "OHVMBS 7VFKT
-B[Z-PBE $BQBDJUPS $PSEPWB "QQ .BOJGFTU 'MBU %FTJHO .BUFSJBM %FTJHO
ϑϩϯτΤϯυΛ͡ΊΔ͓͢͢Ίύοέʔδ &4Y 8FC1BDL 4$44 443 QSFSFOEFS 3FBDU "OHVMBS 7VFKT -B[Z-PBE
$BQBDJUPS $PSEPWB "QQ .BOJGFTU 'MBU %FTJHO .BUFSJBM %FTJHO 5ZQF4DSJQU
ϑϩϯτΤϯυΛ͡ΊΔ͓͢͢Ίύοέʔδ $-* %FTJHO 4VQQPSU 18"$PSEPWB$BQBDJUPSϑϧαϙʔτͷ +BWB4DSJQU6*'SBNFXPSLʢશ෦ࡌͤʣ
*POJDϓϩμΫτ
*POJDϓϩμΫτ
*POJDϓϩμΫτ
*POJDϓϩμΫτ
ॻ੶ʮ*POJDͰ࡞ΔϞόΠϧΞϓϦ੍࡞ೖʯ IUUQTBN[OUP[I$QQ[
8FCσβΠφʔ͕ͰεϚϗΞϓϦΛެ։
͡Ό͋ɺ8PSE1SFTTͲ͏ͳͷ͞ʢʣ
͡Ό͋ɺ8PSE1SFTTͲ͏ͳͷ͞ʢʣ
όοΫΤϯυݴޠͰ ϑϩϯτΤϯυΛॻ͘ͷΊΑ͏ɻ ݁
None