検索
ホームページウェブフロントエンドjsチュートリアルJavaScript_JavaScript モジュール性を採用するためのヒント

私たちは再びコンピューターという用語と概念に包まれています。
backboneemberjsspinejsbatmanjs およびその他の MVC フレームワークが侵入しました。
CommonJSAMDNodeJSRequireJSSeaJScurljsモジュール式 JavaScript が登場するのを待ちます。
モジュール型 JavaScript の概念は特に強く、2007 年の Ajax のトレンドに追いついているように見えます。
1. 関数の作成 (手続き型)
2005 年以前は、JavaScript はあまり注目されておらず、フォーム検証などの少数のアプリケーションでのみ使用されていました。当時、Web ページに JS コードは数行しか記述できず、1,000 行は非常に複雑だと考えられていました。このとき、コードのまとめ方はプロセスであり、数十行のコードに対して関数を一つも書く必要はありません。もう少し複雑にするには関数を抽象化する必要があり、より複雑にするにはさらに多くの関数が必要になり、関数は相互に呼び出します。


2. クラスの作成 (オブジェクト指向)
2006 年、Ajax は世界を席巻しました。 JavaScript は真剣に受け止められており、バックエンド ロジックがフロントエンドに配置されることが増えています。 Web ページ内の JS コードの量は劇的に増加しました。現時点では、大量のコードを整理するための関数を記述するだけでは不十分であると思われます。小さな関数をデバッグするときに、1 つの関数から N 番目の関数にジャンプすることがあります。この頃、クラスの書き方が登場し、Prototypeが普及の先駆けとなりました。これを使用してコードを整理し、各クラスを Class.create で作成します。 YUI や Ext などの重量級フレームワークもあります。クラスの記述方法はそれぞれ異なりますが、設計上のアイデアはすべて、大量の JavaScript コードの開発に対応するためのものです。

3. モジュールの作成 (現在、将来?)
2009 年に Nodejs が誕生しました。このサーバーサイド JavaScript はモジュール式の記述方法を採用しており、すぐにブラウザサイド JSer を征服しました。優秀な人材が次々と追随し、モジュールを書くための様々な仕様も次々と登場しています。 CommonJSはフロントエンドとバックエンドの記述方法を統一したいと考えており、AMDはブラウザ側に適していると考えている。そうですね、モジュールを記述するスタイルがどのようなものであっても、モジュール式 JavaScript を記述することが一般的になってきています。準備はできたか? (えっと、挑発的です)

ねえ、モジュラー JavaScript って何ですか? これも私たちが発明した特効薬なのでしょうか?それが何であれ、とにかく勉強してください。プロジェクトでの使用に適しているかどうかについては、各個人の判断に委ねられています。

これを書いているとき、私は「モジュール」について何も言いませんでした。実際、コンピュータ分野では、モジュール化の概念が 40 年近くにわたって推進されてきました。ソフトウェアの全体的な構造はモジュール化の考え方を体現しています。つまり、ソフトウェアはいくつかの独立した名前のコンポーネントに分割されており、各コンポーネントはモジュールと呼ばれます。すべてのモジュールが一緒に組み立てられると、問題の解決策が得られます。得られた。

モジュール化は分割統治法に基づいていますが、ソフトウェアを無制限に細分化できることを意味しますか?実際、分割が細かくなりすぎてモジュールの総数が増加すると、各モジュールのコストは下がりますが、モジュール インターフェイスのコストは増加します。モジュールを適切にセグメント化するには、情報の隠蔽、凝集、結合を理解する必要があります。

情報の隠蔽
モジュールは、モジュールに含まれる情報 (プロセスとデータ) が、それを使用する必要のないモジュールから見えないよう設計する必要があります。各モジュールは独立した機能のみを完了し、この機能のインターフェイスを提供します。モジュールにはインターフェイスを介してアクセスします。 JavaScript では、関数を使用してインターフェイス オブジェクトを非表示にし、カプセル化し、返します。以下は、イベント管理を提供するモジュール イベントです。

コードをコピー コードは次のとおりです。

event = function() {
// さらに実行します
return {
bind: function() {},
unbind: function() {},
trigger: function() {}
}; ();


関数内で目的のインターフェイスのバインド、バインド解除、トリガーを実装するには、大量のコードを記述する必要がある場合がありますが、これらのコード (プロセスとデータ) を他のモジュールに公開する必要はありません。インターフェイスのバインド、バインド解除、トリガーが外部からアクセスできる限り、可能です。

モジュール設計における情報隠蔽のメリットは、モジュールの並行開発をサポートするだけでなく、テストやポストメンテナンスの作業負荷も軽減することは明らかです。将来コードを変更する場合は、インターフェースが変更されていない限り、モジュールの非表示部分を自由に変更できます。たとえば、イベント モジュールが最初に実装されたとき、古いバージョンの IE と標準ブラウザとの互換性を保つために、多くの IE 特別コードが作成されました。ある日、古いバージョンの IE が消滅しました (申年)。午の月)、落ち着いて削除するだけで済みました。

Cohesion
Cohesion は、モジュールの内部実装を指します。これは、情報の隠蔽とローカリゼーションの概念の自然な拡張であり、モジュール内でのコンポーネントの緊密な統合を示します。モジュールの度。利点も明らかで、関連するタスクがグループ化されると非常に読みやすくなります。
設計時には、モジュールの独立性を高めるために、モジュールの凝集性を可能な限り改善する必要があります。

結合度
結合度は特定のモジュールの内部実装の尺度を指し、結合度はモジュール間の関連度の尺度を指します。結合の程度は、モジュール間のインターフェイスの複雑さ、モジュールが入力または呼び出される場所などによって異なります。凝集性とは対照的に、設計時には疎結合システムを追求する必要があります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?May 14, 2025 am 12:15 AM

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

JavaScriptコメント://および / * *を使用するためのガイドJavaScriptコメント://および / * *を使用するためのガイドMay 13, 2025 pm 03:49 PM

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

Python vs. JavaScript:開発者の比較分析Python vs. JavaScript:開発者の比較分析May 09, 2025 am 12:22 AM

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません