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
ゼロから始めるフロントエンドモジュール開発についてあれこれ
Search
ls_pr
March 17, 2021
0
57
ゼロから始めるフロントエンドモジュール開発についてあれこれ
ls_pr
March 17, 2021
Tweet
Share
More Decks by ls_pr
See All by ls_pr
戦場で生き抜く 炎上案件の耐え方
ls_pr
0
150
自作PCのすすめ
ls_pr
0
77
ツボを押さえたWFの作り方
ls_pr
0
75
Linuxのちょこっと調べ
ls_pr
0
64
色々な色の話~今日から使える簡単配色テクニック3つ~
ls_pr
0
180
ejsのすすめ
ls_pr
0
100
JSにおける正規表現
ls_pr
0
70
Vue.jsの機能を使って色々作ってみた
ls_pr
0
340
NuxtではじめるVue.js
ls_pr
0
250
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
The Language of Interfaces
destraynor
154
24k
Designing for Performance
lara
604
68k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Writing Fast Ruby
sferik
627
61k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Transcript
ゼロから始めるフロントエンドモジュー ル開発についてあれこれ SOSUKE YAMADA FREELANCER
主な仕事 WEB系のバックエンドの製造 /設計をメインフィールドとして活動しています。主に Laravelを基本としたPHPでの Webサイトの構築に携わっています。案件によっては要件定義書の作成やプロジェクトマネージメントなども状 況に応じて行います 好きな言語 LISP 学生の頃に学びそれまでに学習していた C言語やJavaと言った言語とは根本的な発想が違っていたのが印象
的でした これからやりたいこと フロントエンドについての技術の深堀とマイクロサービスアーキテクトについて フロントエンドでの Node.jsやSPA,SSRと言った技術の根本的な動作原理についての理解を深めているところで す。その後マイクロサービスアーキテクトについての理解を深めていき、最終的には様々なアーキテクトを現場 のニーズに応じて取捨選択できるようになって行けたらと思います
モジュール開発 ってなんぞや? 処理をモジュール単位で分割して管理し開発を行うこと ・jQueryしか知らん ・webpackって言葉は聞いたことはあるけど... ・npm run devしたらとりあえずapp.jsができてその中にコンパイルされたソース コードがあるんでしょ
モジュール開発 疑問 そもそもインタプリタ型言語のJavaScriptをなんで一々コンパイルするの? 別にファイルにjsファイル内で別のjsファイルを読み込ませなくても、html上でsrcタグ使っ て読み込ませたらいいよね jQueryがCDNで読み込まれてたらそれでいいだろ・・・
なんでモジュール開発をするの? MDN曰く 参考:https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Modules JavaScript のプログラムはとても小さいものから始まりました。初期の用途は、必要に応じてウェブページにちょっとした対話的な機 能を追加する独立したスクリプト処理がほとんどであったため、大きなスクリプトは通常必要ありませんでした。 そして何年かが過ぎ、今や大量の JavaScript を持つ完全なアプリケーションをブラウザーで実行することはもちろん、JavaScript を
他のコンテキスト (例えば Node.js) で使うこともあります。 それゆえ近年は、JavaScript プログラムをモジュールに分割して必要な時にインポートできるような仕組みの提供が検討されるよう になってきました。
なんでモジュール開発をするの? まとめ ・ブラウザでのスクリプト処理が肥大化してきたため。(コード内での依存関係が発生, 名 前空間の煩雑化, 処理を複数の箇所で再利用したい) ・ブラウザー以外でJavaScriptを利用するケースが出てきたりもしている。(Node.jsなど)
モジュール開発するために 1. ソースをモジュール単位で分割して管理。モジュールを別のソース内で読み込みを 行うことができるようにすること(CommonJS, ES Modules, AMD) 2. モジュールの読み込みはブラウザ上では対応していないためモジュールハンドラー を利用してビルドする必要がある(webpack,
Browserify, RequireJSなど)
コードの読み込み モジュールの読み込み方には複数の形式がある commonJS 読み込み: require(‘aaa’) モジュール定義: module.exports = function() {...}
ES modules 読み込み: import aaa from ‘aaa’ モジュール定義: export default function() {...} *CDNを利用しており、CDNがモジュールと依存関係を持っている場合は commonJSを利用して読み込ませた方が良い。 (読み込みファイルの順番に前後関係を作れるため )
ビルド ・バンドルファイルの依存関係を解決し、ファイルのモジュールを1つのファイルに集約し てくれる ・コードの圧縮を行ってくれる ・Vue.jsやReact.jsなどで作成されてjsファイル以外のコードを解析しJavaScriptとして解 釈。jsファイルとしてビルドする ・コードを過去のECMAScriptトランスパイルすることができる
ビルド Webpackが好まれるのは? モジュールを分割してビルドすることができる 利用箇所が限られるモジュールについては分割してビルドすることができる 例えばVue.jsやjQueryなどはコア機能として全ての画面で読み込ませるが動的処理に ついては各画面の分割したファイルを読み込ませて対応するなど ホットリロードに対応している ホットリロードとは起動したプログラムのソースコードを監視し変更が行われた時にリアルタイ ムで反映を行う (Webpackを利用しているStorybookはホットリロードにより起動する)
ご静聴ありがとうございました Thank You!!