Node.jsとは

Node.jsとはサーバサイドJavaScriptの一種

サーバサイドJavaScriptとはサーバサイドのアプリケーションの実装言語として、JavaScriptを使用する言語および環境のこと
ブラウザ(クライアント)サイドと同じ開発言語で、サーバサイドの開発が出来るので、開発効率が上がるといわれている。

サーバサイドJavaScriptにはこれらがある。

  • Node.js
    googleが開発したエンジン、V8で実行する環境
  • Rhino
    JavaVM上で実行するJavaScript言語処理系
  • Aptana Jaxer
    Aptana社がオープンソースとして配布している。

でもそれだけならそんなに自分は興味を持ちませんでした。
node.jsの何がすごいと感じたかというと

  • WebSocketが簡単そう。
  • サーバーの負荷分散に期待あり。

です。

WebSocketが簡単そうは「node.jsでTwitteのタイムライン取得」でも書きましたが
ほんとに簡単に実装が出来ました。
npmというパッケージマネージャーでフレームワークなどのライブラリを取り込めるのでいろいろ可能性があります。

負荷分散はC10k 問題で「apache vs nginx」=「スレッド対イベントループ」を取り上げています。
Apacheはスレッド、nginx はイベントループで、スレッドモデルは実行スタックをコピーするので
スレッド(アクセス)が増えるほどメモリ使用率が上昇するが、イベントループはプロセスは1個なので
メモリ使用量はあまり上がらないので、大量のアクセスに関してはイベントループが有利ということ。

そして、Node.jsは後者のイベントループ
これによって、特定の重い処理を待つことなく、次の入力を受け取れるので
トランザクションを重視するより、短縮URLのようなIOを優先されるような場合で活用できそう。

New Posts
Android APIよく忘れるのでメモ

Android 1.0 1 Base Android 1.1 2 Base1.1 Android 1.5 3 Cupcake Android 1.6 4 Donut Android 2.0 5 Eclair Android 2.0.1 6 Eclair 0.1 Android 2.1.x 7 Eclair mr1 Android 2.2.x 8 Froyo Android 2.3 9 Gingerbread Android 2.3.1 Android 2.3.2 Android 2.3.3 10 Gingerbread mr1 Android 2.3.4 Andr

Android minSdkVersion の引き上げ

昔のアプリを久しぶりに修正しようと思ったら、minSdkVersionを引き上げる必要があった。 Error:Execution failed for task ':flatalk:processDebugManifest'. > Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 14 declared in library [com.android.support:appcompat-v7:26.0.0-alpha1] /Users/admin/.android/build-cache/df7faf3c442bb6a7448aef64241ef184a528/output/An

Cordova Android Runtime Permission Plugin - cordova-plugin-android-permissionsでパーミッション要求が行われない。 requestPermission is not work

cordova-plugin-android-permissions permissions.requestPermission(successCallback, errorCallback, permission); ステップ実行で確認すると、hasPermissionではstatus.hasPermissioがFALSEになっているのですが 、デバック実行しても、パーミション要求が動かないことがありました。 原因はpluginの入れ替えで、要求するパーミンションがAndroidManifest.xmlから消えていたのが原因でした、Manifestに無いパーミッションはリクエストしても要求画面は開きません。 cordova-plugin-cameraを入れ直した際に、Manif

Youtube API - ユーチューブのカテゴリを取得する( VideoCategories: list)

GET https://www.googleapis.com/youtube/v3/videoCategories partのみ必須になっていたけど、regionCodeも必要だった。。今回はJPを指定。 参照:https://developers.google.com/youtube/v3/docs/videoCategories/list#try-it { "kind": "youtube#videoCategoryListResponse", "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/siiWQ_WM0OtxtxK7NUUJKFwqDRc\"", "items": [ { "kind": "youtube#videoC

Cordova Plugin作成 ( plugin.xml記載ミスでassets全部消えた。。)

<resource-file src="res/assets/cordova-plugin-4assets.js" target="assets" /> target-dirとtargetを記載ミスしてました。 正しくは、 <resource-file src="res/assets/cordova-plugin-4assets.js" target="assets/cordova-plugin-4assets.js" /> <resource-file src="res/assets/cordova-plugin-4assets.js" target-dir="assets/" /> プラグイン削除時にtargetも消されるので、assetsご


Share Link

Web Contents & Apps


Tags


Posts


Category