エンタープライズアプリケーションでAngularJSを使用する5つの理由

エンタープライズアプリケーションでAngularJSを使用する5つの理由



画像



エンタープライズアプリケーションの世界における現在の状況は、一言で言えばカオスです。



古くなったコードから始まり、ドキュメントなしでN年間開発者から開発者に渡されました。 コードが複雑になりすぎる複雑すぎるインターフェースへ。 N個のテクノロジーを1つのアプリケーションに混在させる前。 事実に直面しましょう。これらのものが作成されたとき、誰も彼らのサポートについて考えませんでした。 今日、私たちは問題に直面しています-これらのアプリケーションをすべて修正する方法は? どこから始めますか? 彼らに常識をもたらすには? それらを現代の技術スタックに持ち込む方法は?



この投稿では、 AngularJSを企業環境で使用すると、アプリケーションに常識がもたらされるだけでなく、アプリケーションが成長できるようになる理由についての私の意見を示します。



1)徐々に開始する



企業環境では、新しくて新鮮なプロジェクトよりも、見苦しい見捨てられたプロジェクトに遭遇する可能性が高くなります。 何回も書き直されたプロジェクトで。 開発者がしばしばコードを捨てて、それを再び書き直すことを理解するのは非常に困難です。 もちろん、これはコストと時間の両方に影響します。



これは、 AngularJSフレームワークでは発生しません。 アプリケーションのいくつかの場所にそれを含めることから始めて、ゆっくりと書き直しを始めることができます。 そして、これは機能するだけでなく、素晴らしいアプリケーションの基礎を築くことができます。 ng-appをどこにでも配置できるという事実を考えると、たとえば、次のように言えます。 次に、バックエンド開発者がWebサービスを作成し(そう、私はフロントエンド開発者です)、 Karmaテストランナーでテストの作成を開始すると、すぐにアプリケーションのホームページのコントローラー、ビュー、およびモデルが突然表示されます。 これらはすべて、 AngularJSを使用して制御され、独自の小さな世界に美しくカプセル化されています。 私の友人、あなたはとてもとても良いことをしました。



2)開発者による迅速な適応



テクノロジーは急速に変化しているため、時代に遅れずについていくことが非常に困難になっています。 適切な学習方法があるか、O'Reillyのさまざまな本を読んで、これらすべてがどのように機能するかを理解しようとして苦しんでいます。



最近広く知られるようになったすばらしいものの1つは、Javascript MVCフレームワークです。 彼らは、Javascriptの維持と理解がいかに困難になったかをコミュニティが認識したという事実に基づいています。 Javascript MVCフレームワークは、必要に応じて学習して適用するための優れたツールです。 たとえば、私たちの場合、Webアプリケーションです。



AngularJSの場合、JavaScript MVCフレームワークについてまったく知識がなくても、 AngularJSの公式Webサイトを安全に開き、トレーニングビデオ(かなりクールな方法)を見ることができます。モデル、ビュー、コントローラー(MVC)を使用してアプリケーションを作成する方法、そして重要なこととして、これらすべてをテストできるようになります。



これにより、大規模なチームはいつでも簡単にオンラインになり、サイトでトレーニングを受けることができます。また、同じソースからトレーニングを受けているため、チームメンバーは互いに質問し、自分のペースでフレームワークを学習できます。 これは、メンバーが互いにリモートで作業するチームがある場合に特に重要です。



3)パフォーマンスとスケーラビリティ



必要な詳細をすべて備えたプロジェクトを迅速に構築する能力は、迅速な開始と効率化の鍵です。 私の記憶では、プロジェクトに必要なものすべてをインストールして慣れるのに約1週間しかかからなかったプロジェクトがありました。 これによりパフォーマンスが低下し、何かが欠落していることを明確に示します。



これを修正するために、 Yeomanを使用できます。 Yeomanは、プロジェクトをすばやく開始、実行、および組み立てることができるツールのコレクションで構成されるワークフローです。



YeomanはAngularJSと同じように動作します(同じファミリーに属しているので理にかなっています)。 Yeomanを使用すると、(ジェネレーターを使用して)AngularJSリポジトリを作成できます。これには、 Twitter Bootstrapの最新バージョン、Angularのさまざまなピース、 Karma Test Runnerなどが含まれます。 また、フォルダー内のリポジトリーを任意の名前(アプリケーションに関連付けられていることが望ましい)で初期化するだけで、すべてを結合できます。 Yeomanはこの名前を使用してアプリケーション名前空間を作成し、同時に、テストサンプルに関連付けられたコントローラーサンプルに関連付けられたビューのサンプルを作成します。



このような構造により、何かを迅速に収集できるだけでなく、より大きなものを構築するための基盤が作成されます。 さらに、リリースする準備ができたらすぐにgruntコマンドを実行するだけで、ファイルが圧縮および結合され( ngminを使用)、別のフォルダーに配置されます。 それは素晴らしいことではありません!



特に、単一ページのアプリケーションを作成しているため、すべてがRESTFULである必要があります。つまり、適切なJSONを生成する場合、このアプリケーションは任意のバックエンドと対話できます。 コードとロジックを分離しているため、アプリケーションのスケーリングと開発が容易になります。



4)テストテストテスト



状況:プロジェクトには数千、おそらく数十万行のコードがあります。 あなたは真ん中に投げられました。 ドキュメントはなく、新しい機能を実装する必要が緊急にあります。 あなたはコードをいじり始め、すぐに他の何かが壊れていることに気づき、なぜあなたは何時間も費やさなければならないかもしれません...おそらくあなたの変更が他の何かを壊した方法を理解するために混乱したコードをさまよう...とても悪い



長期間にわたって大量のコードを維持するための最も重要なことの1つは、テストの使用です。 Yeomanの AngularJSジェネレーターが提供するKarmaテストランナーを使用すると、バックグラウンドで単体テストを継続的に実行できます。 したがって、何かを変更して「保存」をクリックすると、テストが自動的に実行され、壊れた場所で何かを壊したか、テストが正しく構築されているか、そしておそらく壊れています。



通常、開発者は次のように新しいコードを挿入するため、これは非常に便利です。 彼らは10-15行を追加し、保存し、何かを壊します。 次に、8行のコードなどについてコメントします。 保存、再起動、まだ機能していませんか? いや? 明らかに、エラーはこれらの2-5行にあるはずです。



Nファイルと非表示の依存関係をナビゲートし、前の開発者がこれを書いたときに考えていたことを理解しようとするよりも、これを行う方がはるかに簡単です。



5)優れたコミュニティサポート



多くの場合、1つのコードで動けなくなり、なぜ機能しないのか分かりません。 これまでのところ、コミュニティは問題の解決を支援することになると私を決して失望させませんでした。 StackoverflowまたはGoogleグループで質問すると、数時間または数分後に必要な答えが得られます。AngularJS開発チーム自体からも得られます。 そして、これはあなただけでなく、あなたの問題が解決されたときに、他の開発者が自分でこのソリューションを使用できるので役立ちます。 これにより、学習プロセスと潜在的な障害の検出が高速化されます。 実際、これはそれ自体が進化と成長を続けるプロセスです。



結論: AngularJSのような非常に自信のあるJavaScript MVCフレームワークを使用することは、古いコードのクリーンアップを開始するための素晴らしい方法です。 開発チームが最前線にいない場合、 AngularJSトレーニングを自分のペースでオンラインで受講し、使用方法を学ぶことができます。 開発の準備が整ったら、 Yeomanを有効にして、 AngularJSTwitter BootstrapKarma Test Runner 、およびYeomanが提供する他の多くの機能を使用して、数分でこの「アップグレード」の使用を開始できます。 開発者がビルドを開始すると、 テストを通じて開発メソッド使用して、 AngularJSでビルドするすべてのユニットテストとテストスクリプトを作成できます。 これにより、将来誰かが新しいプロジェクトに参加して変更を加えたい場合に、彼がこれを行うのがずっと簡単になることが保証されます。 そして、彼のコードが何に影響するかをよく理解しています。



AngularJSは究極の防弾ソリューションではありませんが、Object.observe、より適切に制御されたスコープなど、JavaScriptの新しいバージョンで導入されるクールなものへの道を開くのに役立ちます。 理論的には、これらの革新(そして私自身もこれを信じています)は、JavaScriptを使用するすべてのアプリケーションに秩序とより自然な開発方法をもたらすでしょう。



All Articles