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
脱なんちゃってフロントエンド/frontend_to_properly
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
660
本当に欲しかったのはモノレポツールではなく、tsconfigの設定だった / monorepo-tsconfig
rdlabo
1
370
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
480
プライベートプロダクト戦略 - フロントエンドカンファレンス沖縄 / private_product_frontend
rdlabo
3
4.8k
GitHubをCMSとして使う話/ using_github_as_CMS
rdlabo
0
650
JavaScriptから デバイスの力を100%引き出すための Web APIとCapacitor入門 / power_from_javascript
rdlabo
0
630
Capacitor4_release
rdlabo
0
700
Web技術で稼ぐため選択肢を俯瞰しよう/options_to_earn_web_technology
rdlabo
0
170
Ionicモバイルアプリ制作入門/get_started_with_ionic
rdlabo
0
170
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Facilitating Awesome Meetings
lara
57
7k
Fireside Chat
paigeccino
42
3.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
RailsConf 2023
tenderlove
30
1.5k
Ethics towards AI in product and experience design
skipperchong
2
310
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
A Soul's Torment
seathinner
6
2.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
Optimizing for Happiness
mojombo
378
71k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
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