忍者ブログ

プログラミングの練習

プログラミングの問題やプログラミング関連知識、ソフトウェアのテストについてのブログです

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



Web Frameworks ・・・


「Web Framesworks, Database  and Web Sracks」

の続きです。

バックエンドフレームワーク


バックエンドは、数多くの機能からなる。たとえば、外部からの攻撃に対するAPIの保護、認証、データベースとの連携、ユーザからのリクエストに応じた処理等である。

NodeJS


NodeJSは、非同期でイベントドリブンなJavaScriptのランタイムで、スケーラブルなアプリケーションを構築することができる。

数多くのコネクションを同時に管理できる。それぞれのコネクションは、コールバックがトリガーとなる、それ以外の時は、Sleepしている。この動作は、他の多くのスレッドを利用する同期モデルとは異なる。
さらにNodeでは、lockを利用しないので、デットロックを心配する必要がない。
I/Oを発生させる機能が少ないため、プロセスがブロックされることはない。
これらの特質のため、Nodeは、スケーラブルなものとなっている。Nodeは、オプティマズされたV8エンジンを利用している。

Django


Python用のWebフレームワーク。高速に動作し、開発者が迅速に開発できるようになっている。開発者がビジネスロジックの実装に集中できるようにしている。Gjangoは、認証、サイトマップ、コンテンツ管理、RSS feedsなど、多くの機能を支援している。
Djangoは、MVCアーキテクチャを採用している。Modelは、ロジカルなデータ構造で、Webインターフェイスとデータベースの仲介を行う。Viewは、ユーザインターフェイスのロジックを含む。controllerは、modelからviewのデータのやり取りを行う

Spring Boot


Spring bootは、巨大なモノリックなアプリケーションより、マイクロサービスに適している。Docker のコンテナにダイレクトに Deployできる。サーバサイドのアプリケーション、REST API、イベント駆動型の処理を容易に作成できる。また、health check(モニタリング)、メトリクスデータの提供などの機能もある。SAMLやOAuth、LDAPなど業界標準の認証プロトコルをサポートする。
多くのリレーション、非リレーショナルのデータベース、クラウド・サービス、MapReduceフレームワーク等に対応している。


(続きます)




C# foreach


こんな感じでしょうか。
 static void Main(string[] args)
  {

            int[] myInt = { 1, 2, 3 };

            foreach(int i in myInt) {
                Console.WriteLine(i);
            }

  }





Web Storage


古くからある方法では、Webブラウザーがデータを保存できる方法は、Cookie に限られていた

Cookie では、扱えるデータ量に制限があり、また、暗号化されていないと、セキュリティ上の危険もある

Web Storage APIは、JavaScriptのAPIとして

データの保存や抽出を可能にするもの

セッションの間だけに、データの有効期間を設定できる

また、Cookie に比較して、膨大なデータ量が保管できる




アルゴリズム設計の考え方


1.力ずく戦略

すべての方法を、しらみつぶしに試す

2.分割統治戦略

大きな問題を、小さな均質な問題に分割する

3.ダイナミック・プログラミング

分割された問題には、同じものが存在するのでこれを、何回も解くことを回避する

4.欲張り選択戦略

分割した服問題の1つを選び、他は破棄することで、効率を確保する