Skip to Content
JavaScriptデザインパターンを学ぶ 第2版
book

JavaScriptデザインパターンを学ぶ 第2版

by Addy Osmani
March 2025
Intermediate to advanced
298 pages
4h 18m
Japanese
O'Reilly Media, Inc.
Content preview from JavaScriptデザインパターンを学ぶ 第2版

第10章. モジュールJavaScriptデザインパターン

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

スケーラブルJavaScriptの世界では、 アプリケーションがモジュール化されていると言うとき、多くの場合、モジュールに格納された、高度に切り離された、異なる機能のセットで構成されていることを意味する。 疎結合は、可能な限り依存関係を取り除くことで、アプリの保守性を容易にする。効率的に実装すれば、システムの一部分の変更が、他の部分にどのような影響を与えるかを確認するのは非常に簡単になる。

以前の章では、モジュール型プログラミングの重要性と、モジュール型デザインパターンの現代的な実装方法について説明した。ES2015ではJavaScriptにネイティブ・モジュールが導入されたが、モジュール化されたJavaScriptを書くことは2015年以前にも可能だった。

このセクションでは、古典的なJavaScript(ES5)構文を使ったモジュール型JavaScriptの3つの形式について見ていく:非同期モジュール定義(AMD)、CommonJS、ユニバーサル・モジュール定義(UMD)である。JavaScriptモジュールについての詳細は、モジュールのインポート、エクスポートなどのES2015+構文をカバーする第5章を参照してほしい。

スクリプト・ローダーについて

スクリプト・ローダーの話を抜きにして、AMDや CommonJSモジュールを論じるのは容易ではない。スクリプト・ローディングは、ある目的を達成するための手段だった。モジュールJavaScriptは、互換性のあるスクリプト・ローダーを使って初めて実装できる。

AMDやCommonJS形式のモジュール・ローディングを処理する優れたローダーがいくつか利用可能だったが、個人的にはRequireJSと curl.jsが好みだった。

AMD

AMD形式は、モジュールと依存関係の両方を非同期にロードできるモジュールを定義するための提案として導入された。AMD形式の全体的な目標は、開発者が使用できるモジュールJavaScriptのソリューションを提供することである。AMDには、非同期で柔軟性が高いという利点があり、コードとモジュール・アイデンティティの共通結合をなくすことができる。多くの開発者がAMDの使用を楽しんでおり、当時は利用できなかったJavaScriptモジュールへの信頼できる足がかりと考えることもできる。

AMDはCommonJSリストでモジュール形式のドラフト仕様として始まったが、完全なコンセンサスに達することができなかったので、形式のさらなる開発はamdjsグループに移った。

これは、Dojo、MooTools、そしてjQueryを含むプロジェクトに受け入れられた。CommonJS AMD形式という用語は時折見かけるが、CommonJSリストの参加者全員がそれを追求することを望んだわけではないので、単にAMDまたは非同期モジュール・サポートと呼ぶのがベストである。

この提案は、Modules Transport/Cと呼ばれていた時期もあった。しかし、この仕様は既存のCommonJSモジュールをトランスポートするためのものではなく、むしろモジュールを定義するためのものだったので、AMDという名前付けを選ぶ方が理にかなっていた

モジュールを使い始める

AMDについて特筆すべき最初の2つの概念は、モジュール定義を容易にするための ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

アルゴリズムクイックリファレンス 第2版

アルゴリズムクイックリファレンス 第2版

George T. Heineman, Gary Pollice, Stanley Selkow, 黒川 利明, 黒川 洋
Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Mario Casciaro, Luciano Mammino, 武舎 広幸, 阿部 和也

Publisher Resources

ISBN: 9798341625952