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
71
ゼロから始めるフロントエンドモジュール開発についてあれこれ
ls_pr
March 17, 2021
Tweet
Share
More Decks by ls_pr
See All by ls_pr
戦場で生き抜く 炎上案件の耐え方
ls_pr
0
160
自作PCのすすめ
ls_pr
0
94
ツボを押さえたWFの作り方
ls_pr
0
83
Linuxのちょこっと調べ
ls_pr
0
79
色々な色の話~今日から使える簡単配色テクニック3つ~
ls_pr
0
190
ejsのすすめ
ls_pr
0
110
JSにおける正規表現
ls_pr
0
83
Vue.jsの機能を使って色々作ってみた
ls_pr
0
350
NuxtではじめるVue.js
ls_pr
0
250
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
860
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Into the Great Unknown - MozCon
thekraken
34
1.6k
What's in a price? How to price your products and services
michaelherold
244
12k
KATA
mclloyd
29
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
2
160
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Designing for humans not robots
tammielis
250
25k
Building Applications with DynamoDB
mza
92
6.1k
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!!