Node.jsベストプラクティス--2017年にどのようにしてより良い開発者になるか

6602 ワード

1年前、私たちはHow to Become a Better Node.js Developer in 2016という文章を書いたので、このテーマを振り返って2017年の準備に成功したと思います.
2017年最高のNode.js実践
ES 2015の使用
昨年はES 2015をお勧めしましたが、現在の状況は大きく異なります.
その頃に戻ると、Node.js v 4は当時の安定バージョン(LTS)で、ES 2015の57%の機能をサポートしていました.1年が過ぎ、Node v 6はES 2015の99%の機能をサポートするようになりました.
最新のLTS Node.jsバージョンを使用している場合は、babelを必要とせずにすべてのES 2015の特性を使用することもできます.しかし、それでもブラウザ側ではbabelが必要かもしれません.
Node.jsバージョンのES 2015のサポートに関する詳細が必要な場合は、node.greenに問い合わせることをお勧めします.
Promisesの使用
80年代に初めてPromisesの概念を提案した.現在、多くの現代プログラミング言語がこの特性をサポートしており、私たちの符号化をより簡単にしています.
ファイルを読み込み、解析してnameフィールドを印刷する機能を想像します.コールバックを使用すると、次のようになります.
fs.readFile('./package.json', 'utf-8', function (err, data) { 
  if (err) {
    return console.log(err)
  }

  try {
    JSON.parse(data)
  } catch (ex) {
    return console.log(ex)
  }
  console.log(data.name)
})

Promisesは、このコードをより読みやすくすることができます.
fs.readFileAsync('./package.json').then(JSON.parse).then((data) => { console.log(data.name) }) .catch((e) => { console.error('error reading/parsing file', e) })

現在、現在のfsはPromiseのreadFileAsync apiを返すものではありません.これを行うためにpromisifyAllのようなモジュールを使用します.
標準JavaScript形式の使用
コードスタイルについて話すときは、1つの会社がコードスタイルを統一することが重要です.このようにして、プロジェクトを変更する必要がある場合にのみ、インフラストラクチャの違いを心配することなく、効率的にゼロから始めることができます.
RisingStackでは、すべてのプロジェクトでJavaScript Standard Styleを使用しています.
Standardを使用すると、インストール後に直接使用できます.他のことをする必要はありません..eslintrcを管理する必要もありません.  .jshintrc,または  .jscsrcファイル.特定のStandardのルールはStandard rulesを表示できます.
dockerの使用-コンテナは2017年に生成環境で大量に使用されます
dockerミラーを導入ツールとして使用できます.dockerコンテナは、コード、実行環境、システムツール、システムライブラリなど、サーバに必要なすべてのソフトウェアを含む完全なファイルシステムにパッケージ化できます.
しかし、なぜ容器を使う必要があるのでしょうか.
  • コンテナは、アプリケーションを隔離された環境で
  • 実行することができます.
  • セキュリティツールとして、コードをより安全にすることができます.
  • 軽量級dockerミラー
  • により、導入が安定します.
  • シミュレーションラインの実行環境
  • をローカルで実行できます.
    official getting started tutorialからdockerを学ぶことができます.またKubernetes best practicesもおすすめです 
    あなたのプロジェクトを監視します
    あなたのアプリケーションにエラーが発生した場合、最初に知っている人はユーザーではなく開発者であるべきです.
    最新のオープンソースソリューションPrometheusは、プロジェクトの監視を実現するのに役立ちます.PrometheusはSoundCloudベースのオープンソースツールボックスで、プロジェクトを監視してアラームを鳴らすことができます.Prometheusの唯一の欠点は、いくつかの構成を設定し、自分で管理する必要があることです.
    箱を開けてすぐに使えるソリューションを探しているなら、私たちが開発したTrace by RisingStackも使えます.
    トレースは次のようなことをするのに役立ちます
  • アラーム
  • 本番環境でのメモリとcpu分析
  • 分散トレースおよびエラー検索
  • 性能監視
  • npmパッケージのセキュリティを保護する
  • バックグラウンド・プロセスでのメッセージ・サービスの使用
    httpリクエストを使用してメッセージを送信すると、受信サーバがダウンタイムすると、すべてのメッセージが失われます.トランスポート・レイヤが永続化をサポートし、メッセージ・キューを使用してメッセージを送信するような場合は、この問題はありません.
    受信サーバがダウンタイムした場合、メッセージは保存され、サービスが再起動した後も送信されます.サーバがダウンタイムではありませんが、エラーが送信された場合、メッセージは再送信されます.これにより、データが失われないことを保証できます.
    例えば、数千件のメールを送信する必要があります.このシーンでは、メールアドレスやユーザーの名前などの基礎情報を取得するだけで、バックグラウンドで簡単にこれらの情報とメール情報を統合して送信することができます.
    この方法の最大のメリットは、メールが失われることなく、必要なときに横方向にサービスを拡張できることです.数百万のメールを送信する必要がある場合は、同じ方法でサービスを増やすことができます.
    メッセージ・キューの選択肢はたくさんあります
  • RabbitMQ
  • Kafka
  • NSQ
  • AWS SQS

  • 最新のLTSバージョンのNode.jsを使用
    安定性と新しい特性をバランスさせるために、最新のLTSバージョンのNode.jsを使用することをお勧めします.私がこの文章を書いたとき、最新のLTSバージョンは6.9.2でした.
    nvmを使用してnodeバージョンを切り替えることができます.2つのコマンドだけでnodeバージョンを管理および切り替えることができます.
    nvm install 6.9.2 
    nvm use 6.9.2

    セマンティックバージョン管理の使用
    数ヶ月前、Node.js開発者の調査を行い、開発者の意味化バージョンの使用状況を取得しました.
    残念なことに、調査者の71%がモジュールの提出と使用時に意味化されたバージョン管理を使用していることが分かった.私たちはこの数字をもっと高くすべきだと思っています.それぞれ意味バージョンを使うべきです.semverルールに従ってpackageを提出しないと、Node.jsアプリケーションを破壊しやすくなります.
    バージョン番号でプロジェクトやモジュールを管理することが重要です.ユーザーは、新しいバージョンを使用する前にモジュールが更新されたかどうかを知る必要があります.
    これが意味バージョン制御の由来です.1つのバージョン番号には、プライマリ・バージョン番号、セカンダリ・バージョン番号、パッチ・バージョン番号が必要です.異なる場所のバージョン番号を更新すると、異なる意味を表します.
  • プライマリ・バージョン番号:更新に互換性のないAPIがあることを示す
  • サブバージョン番号:更新に新しい機能があることを示す(既存のapiを破壊しない)
  • パッチバージョン番号:更新はモジュールが後方互換性のあるバグ修復を行ったことを示す
  • npmはsemverルールに基づいて依存をインストールするので、モジュールをパブリッシュする前にsemverルールに従っているかどうかを確認してください.そうしないと、依存を使用している他のアプリケーションを破壊します.
    あなたの応用安全を保証します
    あなたのユーザーデータの安全を保証することは、2017年の第一の大事です.2016年だけで、いくつかの安全な措置が欠けているため、数百万のユーザーアカウントが漏れています.
    私たちのブログNode.js Security Checklistを読むことで、Node.jsのセキュリティにアクセスできます.ブログには以下のトピックが含まれています.
  • 安全なHTTP Headers
  • 強制保護
  • セッション管理
  • 不安全依存
  • データ検証
  • これらの基礎を身につけると、私のNodeに関するインタラクティブな議論Surving Web Security with Node.jsを見ることができます.
    Severlessの学習
    Serverless started with the introduction of AWS Lambda. Since then it is growing fast, with a blooming open-source community. In the next years, serverless will become a major factor for building new applications. If you’d like to stay on the edge, you should start learning it today. One of the most popular solutions is the , which helps in deploying AWS Lambda functions.
    SeverlessはAWS Lambdaが最初に提案したもので、その後急速に発展し、オープンソースのコミュニティを構築しました.
    次の年には、新しいアプリケーションを構築する際にserverlessが標準になります.この分野に残りたいなら、最初から勉強する必要があります.
    Severless Frameworkは現在最もポピュラーなソリューションであり、AWS Lambda functionsの導入で役立ちます.
    会議やパーティーに参加して発言する
    会議とパーティーに参加するのは、新しいトレンド、開発技術、ベストプラクティスを理解し、学ぶのに良い方法です.当日、これももっと新しい人と知り合う場です.
    To take it one step forward, I’d like to encourage you to speak at one of these events as well! As public speaking is tough, and “imagine everyone’s naked” is the worst advice, I’d recommend checking out speaking.io for tips on public speaking!
    その上で、私もいくつかの会議で発言することを奨励します.
    公共の場で発言するのは容易ではないが、「imagine everyone’s naked」は最悪のアドバイスだ.speaking.ioに行ってテクニックを学ぶことをお勧めします.
    Become a better Node.js developer in 2017
    テキストリンク