2019/06/19に見た記事等を雑に分類するだけ

  • 設計
  • webpack
    • 面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門 | さくらのナレッジ

      • webpack
        • Webブラウザで複数のモジュールに分割されたJavaScriptプログラムを実行させたい場合、HTML内でscriptタグを使って必要なモジュールを個別にロードさせる必要があった
        • このようにscriptタグを使ってJavaScriptをロードする場合、メンテナンス性が悪く、モジュール間の依存性の管理が必要になり、不具合が発生しやすい
        • webpackはJavaScriptコードの結合やモジュール管理機構を実現するためのツールの1つ
        • webpackの機能の中核はアセットバンドル
          • 「CommonJS」や「AMD(Asynchronous Module Definition)」といったモジュール規格に沿って実装されたJavaScriptモジュールを適切に結合して1ファイルにまとめる機能
          • 結合対象とするファイルを自動的かつ適切な順序で追加する
        • JavaScriptだけでなくCSSや画像といったリソースを扱うことも可能
      • インストール
        • ディストリビューション公式パッケージマネージャ経由、またはnpm
        • 前者は安定板が提供されているが、バージョンが古いことも多い
        • そのため特に事情がない限りは、最新版が利用できるnpm経由のインストールを選択するとよい
      • JavaScriptのバンドル処理を実行する
        • webpackで出力したコードの冗長性は、minify設定により解消できる
        • minifyとは、不要なスペースやインデントなどを削除したり、関数名や変数名を短いものに置き換えたりすることでソースコードのサイズを圧縮する処理のこと
        • minifyしたソースコードは人間の目には読みにくくデバッグしにくい → SourceMap
        • SourceMapはminifyしたソースコードとオリジナルのソースコードとの対応付けを定義したファイル
      • Babel
        • ECMAScript規格がアップデートされ続ける一方で、その新機能をサポートしないブラウザも存在する。
        • そこで、新機能を使ったコードを、それをサポートしないWebブラウザで利用できるようなコードに変換するツールが登場している。
        • その中でも有名なものがBabel
      • TypeScriptで記述したコードをJavaScriptに変換してからバンドルできる
      • CSSファイルの結合やminifyも可能
  • マネジメント
    • 引っぱらないリーダーのチーム作り戦術 - 日々の神ログ

      • 安全な環境をつくる
        • 心理的安全性が高い環境
        • 日頃からメンバーに対し、承認の態度を示し続ける
      • 弱さを共有する
        • リーダーが率先して弱さを共有することで、メンバーも安心して自分の弱さを共有できる
      • 共通の目標を持つ
        • チームとして共通の目標(理念、価値観)があることで、細かいルールを定めずとも自分たちで考え判断し、行動することができる
  • UI
  • GitHub
  • CircleCI
  • AWS
    • 20180220 AWS Black Belt Online Seminar - Amazon Container Services

      • 13 of 51, 44 of 51の絵がわかりやすい
      • コンテナのユースケース
        • マイクロサービスアーキテクチャ
          • 多数のマイクロサービスを同じ様に管理
        • 非同期ジョブ実行 (バッチコンピューティング)
          • ジョブのリクエストに応じた柔軟なスケール
        • 継続的インテグレーション、継続的デプロイ(CI/CD)
          • 開発〜テスト〜本番まで一貫したイメージを利用
      • コンテナを利用した開発に必要な技術要素
        • アプリのステートレス化
          • ステートが必要なものはコンテナの外に置く
            • 例: RDBMSが必要 → RDS
            • 例: オブジェクトの保存 → S3
        • レジストリ
          • コンテナイメージの置き場所
          • ECR
        • コントロールプレーン / データプレーン
          • コントロールプレーン
            • コンテナの管理をする場所
              • ECS
              • EKS
          • データプレーン
            • 実際にコンテナが稼働する場所
              • Fargate
              • EC2
        • CI/CDパイプライン
          • アプリのコード変更〜コンテナのデプロイを管理する
          • CodePipeline
          • CodeBuild
      • Amazon Container Services
      • なぜCI/CDパイプラインが重要なのか
        • 誰でも同じようにデプロイできる
        • イメージがどうやって作られどこで使われているか把握
        • アプリ毎に統一された手法を利用する
      • Fargateを利用したコンテナAuto Scalingの優位性
        • Fargateの場合
          • Serviceのスケールに応じて自然にコンテナが起動・終了する
          • コンテナの起動時間に対してのみ課金
        • EC2の場合