#author("2020-11-10T04:02:18+00:00","default:admin","admin")
#author("2020-11-10T07:18:21+00:00","default:admin","admin")
[[Node.js:https://nodejs.org/en/]]
-[[Node.js Documentation:https://nodejs.org/api/all.html]]

-[[いまさら聞けないNode.js:https://knowledge.sakura.ad.jp/24148/]]

-[[A Starter Guide to Building Real-time Applications with Node.js:https://livecodestream.dev/post/2020-07-11-a-starter-guide-to-building-real-time-applications-with-nodejs/]]

-Yahoo
--[[Node.js徹底攻略 ─ ヤフーのノウハウに学ぶ、パフォーマンス劣化やコールバック地獄との戦い方:https://employment.en-japan.com/engineerhub/entry/2019/08/08/103000]]
--[[ヤフーのフロントエンドと Node.js の関係性:https://techblog.yahoo.co.jp/entry/20191120782387/]]
--[[Callback を撲滅せよ:https://techblog.yahoo.co.jp/javascript/nodejs/callback-to-promise/]]
-[[Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例:https://www.slideshare.net/techblogyahoo/yahoobff]]
-[[YJTC18 A-6 ヤフーのNode.js:https://www.slideshare.net/techblogyahoo/yjtc18-a6-nodejs]]

-[[秒間100万クエリ・8万リクエストの「グラブル」安定稼働を支える、Cygames「3つの取り組み」【デブサミ2017】:https://codezine.jp/article/detail/10044?p=2]]

-[[Node.js の色々:https://utf-8.jp/public/2020/0715/owasp-hasegawa.pdf]]

-[[PLAIDがNode.jsを採用し、5年間で12万行書いてわかったこと:https://tech.plaid.co.jp/plaid_loves_nodejs/]]

-[[初心者向け!3分で理解するNode.jsとは何か?:https://eng-entrance.com/what-is-nodejs]]
-[[Node.js を5分で大雑把に理解する - Qiita:http://qiita.com/hshimo/items/1ecb7ed1b567aacbe559]]

-[[Node.jsでサーバーサイドJavascriptに挑戦:https://www.pc-koubou.jp/magazine/32604]]
-[[Node.jsで作成したWebサービスをAzureで公開する:https://qiita.com/hoshimado/items/6aed10a2057fa77487b6]]

-[[なぜIoT分野ではNode.jsが用いられているのでしょうか?:https://teratail.com/questions/77821]]

-[[JavaScript ベスト・オブ・ザ・イヤー 2019:https://risingstars.js.org/2019/ja/]]

-[[【2019年完全保存版!】Node.jsを採用して開発している企業・会社一覧:https://offers.jp/media/programming/a_1423]]

*重要ポイント [#eee905a5]
-[[Node.jsを触る前にこれだけは絶対に押さえておこう4選:https://qiita.com/zwirky/items/36531a44c1554a0286cf]]
-[[Node.jsの実行モデルを理解するために必要な前提知識を説明していく:https://qiita.com/junjis0203/items/7d3e63253a3d291a04c6]]

**Single Thread [#lc6f1c32]
-[[Node.jsだってmulti-thread/multi-processできるもん。:https://qiita.com/darai0512/items/568ea7d49d2c522b7c45]]

**Non Blocking I/O [#w79925a7]
-[[Node.jsの非同期I/Oについて調べてみた:https://engineer.recruit-lifestyle.co.jp/techblog/2019-12-13-node-async-io/]]
-[[JavaScript (Node.js) の非同期処理とシングルスレッド:https://qiita.com/megmogmog1965/items/e661d0915148ef902620]]

-リクエストを並行して捌ける
-大量の同時接続に耐えられる
-サーバリソースを効率的に利用しやすい

**イベントループ [#z9ed35de]
-イベントを監視してイベントの都度、設定された処理を呼び出す
-イベントループが止まると、アプリケーション全体が止まる

*[[libuv:https://libuv.org/]] [#e6728f82]
-[[An Introduction to libuv:https://nikhilm.github.io/uvbook/]]

*処理速度 [#d44e7e4b]
-[[2019年の後半。いま、高速で生産性の高い開発言語はなに?!旬の言語 C++, C#, Javascript, Python で比較してみた!:https://qiita.com/james0827/items/b69fd64a16d66cbe9327]]
-[[色々な言語で計算速度を比較してみた:https://qiita.com/hanaata/items/c91788bcac2a40f1bb05]]

-[[Web Framework Benchmarks:https://www.techempower.com/benchmarks/]]
--[[https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=fortune&l=gcv6kd-0&p=hweg3v-qt5t8q-d1fif4-72&w=tcd33s-2c8ef&f=0-0-jz6vk-0-0-2t4w-0-0-0]]

-[[Node.jsでCPUコアをフルに使って負荷の高い処理ができるかなと思ったらできた:https://qiita.com/ovrmrw/items/316c588b8a0ba718a3e3]]

-[[CPU and I/O performance diagnostics in Node.js:https://medium.com/the-node-js-collection/cpu-and-i-o-performance-diagnostics-in-node-js-e513ba433c39]]
-[[Node.js and CPU profiling on production (in real-time without downtime):https://medium.com/voodoo-engineering/node-js-and-cpu-profiling-on-production-in-real-time-without-downtime-d6e62af173e2]]

-[[Keeping Node.js Fast: Tools, Techniques, And Tips For Making High-Performance Node.js Servers:https://www.smashingmagazine.com/2018/06/nodejs-tools-techniques-performance-servers/]]

-[[Node.jsサーバーで1万の同時接続を処理したい:https://teratail.com/questions/179143]]

-[[インテル® VTune™ プロファイラー・パフォーマンス解析クックブック: 設定レシピ:https://www.isus.jp/products/vtune/vtune-cookbook-configuration-recipes/]]

*他プラットフォームとの比較 [#u30aa889]
-[[.NET Core vs Node.js: What Should You Choose?:https://medium.com/swlh/net-core-vs-node-js-what-should-you-choose-3d7a96cd40]]
-[[Nodejs vs ASP.NET core: Which is the best for web application development:https://www.webnexs.com/blog/nodejs-vs-asp-net-core/]]
-[[Node.js vs. .NET Core: 3 key considerations:https://searchapparchitecture.techtarget.com/tip/Nodejs-vs-NET-Core-3-key-considerations]]
-[[ASP.NET Core vs Node.js: Which one is better for Large Scale Web Development?:https://www.samarpaninfotech.com/blog/net-core-vs-nodejs-for-enterprise-web-development/]]
-[[.NET Core or Node.js? [We increased throughput by 2,000%]:https://raygun.com/blog/dotnet-vs-nodejs/]]

*パフォーマンスチューニング [#v8e4428e]
-[[0から始めるNode.jsパフォーマンスチューニング:https://blog.koh.dev/2020-03-04-nodejs-performance/]]
-[[Node.jsのパフォーマンス最適化を阻むものの見つけ方:https://postd.cc/how-to-find-node-js-performance-optimization-killers/]]
-[[「俺のNode.jsがこんなに遅いわけがない!」って時に試したいこと:https://qiita.com/DeployCat/items/1eae80c6493ec2b96c74]]
-[[Node.js Performance 改善ガイド:https://yosuke-furukawa.hatenablog.com/entry/2017/12/05/125517]]
-[[Node.jsのパフォーマンスチューニングのtips:https://blog.hiroppy.me/entry/2017/11/06/095943]]
-[[React/Redux/Node.jsのSSR/SPAを速くする6つのチューニングポイント:https://www.atmarkit.co.jp/ait/articles/1706/08/news011.html]]

**Worker Threads [#t7bbd9e5]
-[[Node.js: CPU負荷で3秒かかっていた処理を「Worker Threads」で1秒に時短する:https://qiita.com/suin/items/bce351c812603d413841]]

**負荷分散 [#ifbd5947]
***Clusterモジュール [#p64c8ee7]
-[[Node.jsのClusterをセットアップして、処理を並列化・高速化する:https://postd.cc/setting-up-a-node-js-cluster/]]
-[[【Node.js+Express】Clusterモジュールでマルチスレッド化:https://qiita.com/mkeisuke/items/76229aec7c4d513a1d2f]]
-[[node.js clusterでHTTPサーバをマルチプロセス化する:https://kaworu.jpn.org/javascript/node.js_cluster%E3%81%A7HTTP%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E3%83%9E%E3%83%AB%E3%83%81%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E5%8C%96%E3%81%99%E3%82%8B]]

*Nginx [#ncfc86cf]
-[[Node.jsはそれ自体がhttpサーバのようですが、nginxやapacheサーバを使う必要はないのでしょうか?大規模でもNode.jsだけで対応できるのでしょうか?:https://jp.quora.com/Node-js%E3%81%AF%E3%81%9D%E3%82%8C%E8%87%AA%E4%BD%93%E3%81%8Chttp%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%81%8C-nginx%E3%82%84apache%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E4%BD%BF]]

*EventEmitter [#a9965844]
-[[Node.jsのEventEmitterについていろいろ:https://qiita.com/Apacher-inf/items/8f4a6054eea93650b113]]
-[[Node.jsのEventEmitterでイベント駆動プログラミングをする:https://www.whizz-tech.co.jp/1659/]]
-[[[Javascript] イベント駆動型の設計ができるEventEmitterに入門:https://www.yoheim.net/blog.php?q=20170103]]

*HTTP/2 [#t2c8e5ca]
-[[SSL/TLSなしのHTTPでもHTTP/2に対応してくれるWebサーバーのリバースプロキシ:https://scrapbox.io/nwtgck/SSL%2FTLS%E3%81%AA%E3%81%97%E3%81%AEHTTP%E3%81%A7%E3%82%82HTTP%2F2%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8BWeb%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7]]


*インストール・設定 [#eddd5122]
-[[Macにnode.jsをインストールする手順:http://qiita.com/akakuro43/items/600e7e4695588ab2958d]]
-[[Node.jsとnpmのアップデート手順(Mac・nodebrew):http://www.stdio.jp/entry/node_js/update-mac-nodebrew]]
-[[nodebrewで任意のバージョンのNode.jsをインストールして、そのバージョンを指定して使う:http://dev.classmethod.jp/server-side/node-js-server-side/nodebrew-install-node-js-and-specify-using-version/]]

-[[nvm(Node Version Manager)を使ってNode.jsをインストールする手順:https://qiita.com/ffggss/items/94f1c4c5d311db2ec71a]]

-[[Nginx を Node.js のリバースプロキシとして使う:http://dotnsf.blog.jp/archives/1058466329.html]]

**[[nodist:https://github.com/nullivex/nodist]] [#lfe1b41d]
-[[releases:https://github.com/nullivex/nodist/releases]]

-[[nodistでNode.jsをバージョン管理:https://qiita.com/satoyan419/items/56e0b5f35912b9374305]]
-[[Nodist を使って、Node.js のバージョン管理を行う方法【 Nodist 導入編 】:https://qiita.com/Futo_Horio/items/0825aa96088c5ff0906b]]
-[[【Windows10】nodistでnodeをインストール:https://qiita.com/nt_tn/items/f3193cde496399b41e51]]

-[[node.js を始めるときにつまずいたことまとめ:https://qiita.com/fujimoto_d1/items/2cf5d672b2bf9299f71c]]
--[[Windows10でnode/npm周りにproxy設定する備忘録:https://qiita.com/flat-8-kiki/items/f71f5375a053fab01033]]
--[[コマンドプロンプトでProxyの設定をする:https://bacchi.me/windows/proxy-setting/]]
--[[npm install で SSL Error になった時の対処法。:https://blog.yug1224.com/archives/563d9b67bf652a600632d01e/]]
--[[プロキシがある場合のツールの設定いろいろ その2:https://penult.hatenablog.com/entry/20120817/1345218432]]
-[[Nodistのインストール時PATH not updatedで失敗したとき:https://qiita.com/JDM/items/918aff03a33b7af68824]]

**npm [#ye1674d5]
-[[フロントエンド開発の3ステップ(npmことはじめ):http://qiita.com/hashrock/items/15f4a4961183cfbb2658]]
-[[グローバルにインストールしたnode moduleがnot foundになる時の対処:http://qiita.com/joe-re/items/12987cdeee506dea3889]]

 $ npm init
-このディレクトリ下は npm が管理下に置く!」宣言
-いろいろ英語で聞かれるが、とりあえず全部エンターキーを押しても問題ない
-終了すると、ディレクトリ直下にpackage.jsonが作成される

 $ npm install [パッケージ名]
-node_modulesというフォルダ下に、ライブラリが保存される

 $ npm install [パッケージ名] --save
-package.json内に取ってきたライブラリが追記される

 $ npm install -g [パッケージ名]
-グローバルインストール(npmのインストール場所にパッケージをインストール)
-主にターミナルで利用できる便利ツールをインストールするために使用
-[[npmで入る便利ツールまとめ:https://gist.github.com/hashrock/7fdf1b937e1eb5de796d]]

 $ npm run [タスク名]
-package.json内に書かれたシェルスクリプトを実行
-npm run だけを実行すると、現在どんなタスクがpackage.json内にあるかを一覧表示

-例:タスク build を package.json に記述
 {
   "scripts": {
     "build": "browserify src/main.js > build/bundle.js"
   }
 }

 $ npm root -g
-グローバルのnode_modulesディレクトリのパスを表示

 $ npm bin -g
-npmがグローバルで使用しているディレクトリを表示

 $ npm start
-HTTPサーバを起動
-最低限の設定が必要 => [[npm startでWEBサーバを起動させる最小限のこと:http://qiita.com/armorik83/items/0658f4a6c75270da726a]]
-[[Node.jsのhttp-serverっていうコマンドラインのウェブサーバーが便利:https://firegoby.jp/archives/5706]]

**npx [#xd17713b]
-[[npxでnodeモジュールを実行する:https://qiita.com/tatakahashiap/items/1c4ab221c4993e7c4ebf]]

**Chromebook [#a7c3d719]
-[[ChromebookのLinux環境上にNode.jsをnvmを使って導入する:https://relativelayout.hatenablog.com/entry/2019/12/27/061526]]

*パッケージ [#q0d5328d]
-[[開発をちょっと楽にする、nodeモジュール紹介:http://blog.aqutras.com/entry/2016/04/11/210000]]

-[[axios:https://www.npmjs.com/package/axios]]
--[[axiosを乗りこなす機能についての知見集:http://qiita.com/inuscript/items/ccb56b6fc05aa7821c42]]http://qiita.com/inuscript/items/ccb56b6fc05aa7821c42]]

-classnames
 $ npm install --save classnames

-cuid ... a useful tool for generating unique IDs
-immutable
--不変なオブジェクトを扱うのに便利。React で重宝する。
--[[immutable.js を使ってみる:http://smart.ataglance.jp/2015-06-04-try-immutable-js/]]
--[[Immutable.jsを色々触ってみました:http://qiita.com/ryoppy/items/9afa0038a04feeb5783c]]

-[[fetch-mock:https://www.npmjs.com/package/fetch-mock]]

-[[json-server:https://github.com/typicode/json-server]]
--json流しこむだけでサーバーが作れる。とりあえず今すぐモックサーバーを立てて動作を確かめたい時に便利。

-lodash
--モダンなjavascript関数群
--[[lodash(Underscore.js)まとめ, Swift, Objective-C, PHPもあるよ:http://qiita.com/you_matz/items/802a07bdee283b930068]]

-marked
 $ nom install --save marked

-querystring

*非同期処理 [#n7cd343d]
-[[NODE.JSの役に立つお話(主にノンブロッキングIO, 非同期処理):https://kcs1959.jp/archives/5228/general/node-js%E3%81%AE%E5%BD%B9%E3%81%AB%E7%AB%8B%E3%81%A4%E3%81%8A%E8%A9%B1%E4%B8%BB%E3%81%AB%E3%83%8E%E3%83%B3%E3%83%96%E3%83%AD%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0io-%E9%9D%9E%E5%90%8C%E6%9C%9F]]
-[[Callback を撲滅せよ:https://techblog.yahoo.co.jp/javascript/nodejs/callback-to-promise/]]
-[[【JavaScript】非同期処理の完了をpromiseとasync/awaitで待つ方法:https://tech.playground.style/javascript/asynchronous-processing/]]

*ログ出力 [#e1843139]
**Log4js [#f6afbe17]
-[[Node.jsでlog4jsを使ってログを出力する:https://dev.classmethod.jp/articles/node-js-log4js/]]
-[[【Node.js入門】ログ(logger)の管理を効率化するlog4js-nodeの使い方まとめ!:https://www.sejuku.net/blog/82816]]

**morgan [#yf1234d9]
-[[morganでアクセスログを書き込みつつ、書き込み先を自前のロガーに変える #Node.js:https://progret.hatenadiary.com/entry/2020/01/08/181731]]

*TypeScript [#xe2f57d0]
-[[TypeScript + Node.js プロジェクトのはじめかた2020:https://qiita.com/notakaos/items/3bbd2293e2ff286d9f49]]

-[[TypeScriptで始めるNode.js入門:https://ics.media/entry/4682/]]
-[[Node.js & TypeScriptのプロジェクト作成:https://typescript-jp.gitbook.io/deep-dive/nodejs]]
-[[TypeScript コードのコンパイル (Node.js):https://docs.microsoft.com/ja-jp/visualstudio/javascript/compile-typescript-code-npm?view=vs-2019]]
-[[【TypeScriptチュートリアル】実行環境を構築しよう:https://awesome-linus.com/2019/10/09/typescript-tutorial-create-environment/]]

*AMQP [#b43ac320]
-[[Node.jsで習得するRabbitMQによるメッセージキューイング その2 (ACKとpersistent):https://komari.co.jp/blog/4271/]]

*TCP通信 [#bf7248a4]
-[[Node.js TCP client and server example:https://gist.github.com/tedmiston/5935757]]
-[[How To Develop a Node.js TCP Server Application using PM2 and Nginx on Ubuntu 16.04:https://www.digitalocean.com/community/tutorials/how-to-develop-a-node-js-tcp-server-application-using-pm2-and-nginx-on-ubuntu-16-04]]

-[[Socket.IO, React and Node.js: Going Real-Time:https://www.valentinog.com/blog/socket-react/]]
-[[Windows + Node.js + Socket.io でチャット:http://wisteriahill.sakura.ne.jp/socketio/index.html]]

*Azure [#e35a9a79]
-[[Node.js アプリを Azure App Service へ最適な形でデプロイする:https://blog.shibayan.jp/entry/20190807/1565161017]]

*事例 [#me97939a]
-[[[Node.js で https をサポートする http proxy サーバを 80行で書いた:http://qiita.com/LightSpeedC/items/5c1edc2c974206c743f4]]
-[[Node.jsのhttp-proxyでプロキシサーバーを作る:http://qiita.com/setouchi/items/75de9db509f20ecaf369]]
-[[node.jsでシンプルなwebサーバー:http://qiita.com/_shimizu/items/094c4beace9c7a36deb1]]

-[[WEB+DB PRESS vol.97のReactで作るシングルページアプリケーション入門の練習用コード:https://github.com/seriwb/spa-note]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS