タグ

2020年2月14日のブックマーク (2件)

  • npm install する時のnpmのバージョンを固定する方法 - Carpe Diem

    概要 npmのバージョンを上げた(v6.x.x)ところ、以下のissueと同じケースに当たってCircleCIのキャッシュが効かない問題が起きました。 github.com 具体的には 開発ではMacを使用している 開発用MacCircleCIのNode.js、npmバージョンは同一である CircleCIでpackage-lock.jsonを元にnpm installすると、package-lock.jsonが修正される package-lock.jsonのハッシュ値が変わりキャッシュが使えない という現象です。同一バージョンなのになんでやねん、という状況。 旧バージョン(v5.6.0)のnpmであれば上記の現象は起きなかったため自分の環境をそれにすればいいわけですが、他のメンバーが加わった時に同じ問題が起きうるのでnpmのバージョンを固定する方法を探してみました。 方法 1. pac

    npm install する時のnpmのバージョンを固定する方法 - Carpe Diem
    nori0620
    nori0620 2020/02/14
  • Goの実プロジェクトでのエラーハンドリングの悩みどころと解決案 - Carpe Diem

    概要 Go言語に限らずではありますが レイヤ間のエラー伝搬 外部APIを叩いた時のエラーコードハンドリング HTTPやgRPCとしてレスポンスを返す時のエラーハンドリング で悩むことは多いと思います。 今回はそれの1つの方針を紹介します。 課題 レイヤ間のエラー伝搬 Goのエラーは基的に例外を扱わず、常にハンドリングする前提です。なので user, err := findUser(id) if err != nil { return User{}, err } みたいなコードが大量に生まれます。 一方でその関数を呼び出した側ではそれがどんな種類のエラーなのか分かりません。 NotFoundだったりDB自体のエラーだったりしますが、それを外層のレイヤ(HTTPレスポンスを返すハンドラなど)でハンドリングするのは辛いです。 レイヤ毎のエラー内容を知る必要が出てくるため余計な依存が生まれてしま

    Goの実プロジェクトでのエラーハンドリングの悩みどころと解決案 - Carpe Diem
    nori0620
    nori0620 2020/02/14