タグ

ブックマーク / qiita.com/sonatard (5)

  • GoのWebアプリケーションのエラー設計 - Qiita

    私がWebアプリケーションを実装するうえのエラー設計をどのようにアーキテクチャの中で実現しているかを紹介します。 以下の方針で設計しています。 アプリケーション層にレベルを付与したエラーを定義する アプリケーション層では、定義したエラーに変換する ミドルウェアは全アプリケーション共通にする 以下、サンプルコードです。 サンプルのため省略していますが、実際にはパッケージ分割やファイル分割をしています。 package main import ( "fmt" "os" "golang.org/x/xerrors" ) var ErrUnknown = &ApplicationError{ code: 100, level: "Error", msg: "unknown", } var ErrUserNotFound = &ApplicationError{ code: 101, level:

    GoのWebアプリケーションのエラー設計 - Qiita
    ymm1x
    ymm1x 2021/10/14
  • git checkoutを禁止してgit switch & git restoreを強制する養成ギブス git-switch-trainer - Qiita

    git checkoutを禁止してgit switch & git restoreを強制する養成ギブス git-switch-trainerGit git-switch-trainerはgit checkoutの使用を禁止して、git switchとgit restoreに慣れるためのコマンドです。 switchとrestoreはcheckoutから分離した機能であり、コマンド名が作業を適切に表現するようになりました。 機能的には大きく変わらないため今まで通りcheckoutを利用しても問題ありません。 既存のユーザよりもこれから学ぶユーザへの学習ハードルを下げるための機能追加と考えると良いと思います。 既存ユーザの方でも新しいコマンドを使いたいという方はcheckoutの癖が抜けきれないと思うので、このツールを使うと矯正することができます。 準備 siwtchやrestoreはGit 2

    git checkoutを禁止してgit switch & git restoreを強制する養成ギブス git-switch-trainer - Qiita
    ymm1x
    ymm1x 2019/10/01
  • Goの新しいerrors パッケージ xerrors - Qiita

    先日 xerrors パッケージがリリースされました。 このパッケージは、Proposal: Go 2 Error Inspection で提案されているものをGo1向けに外部ライブラリとして試験的に実装したものです。 Goの標準ライブラリではありませんが、Go公式がメンテナンスをしています。 このパッケージができた背景は、今まで多くのGoエンジニアは下位層のエラーの情報を伝播させるために pkg/errors パッケージ などの外部ライブラリを利用していました。この手法が開発者の間で普及したため標準ライブラリで正式に検討を始めることとなりました。 2019/9/4更新 Go 1.13では %w でのラップや Is メソッド、 As メソッドは正式に導入されました。 しかし%+w や %+v によるスタックトレースの表示の採用は見送られました。 スタックトレースの表示が必要な場合はxerr

    Goの新しいerrors パッケージ xerrors - Qiita
  • 正しさとGo - Qiita

    はじめに Goの良いところは、最低限の文法を知っていればコードを上から順番に読むことで詳細を容易に理解できることです。 文法の中にシンタックスシュガーや特別な省略が許されていないため多様な表現になることはありません。 そのためGoを書ければGo体と標準ライブラリを読むことができます。 しかし以下の原因により、これらの利点を守ることが難しくなることがあります。 DSL フレームワーク 抽象化 これらは設計として新たな制約を課すことで品質向上や実装を容易にするためのものです。 またこれらを採用する論理立てた 正しい 理由が存在します。 DSL DSLを提供するツールとして、DIのための wire があります。 GoでDIを実現するためには多くの実装を必要とするため、実装量を減らすためにもDIツールが求められてきました。 これは 正しい です。 しかし一方でDSLはコードを読む人間に言語以上

    正しさとGo - Qiita
    ymm1x
    ymm1x 2018/12/21
  • pecoでgit向けの汎用的なフィルターを2つ作成してみた - Qiita

    背景 pecoを導入してからgit向けのフィルターを作成しようと考えていたのですが、gitには多くのコマンドが存在するためにそれぞれのフィルターを作成すると覚えることが大変になったり、ショートカットやグローバルエイリアスをいつぶしてしまうという問題がありました。 そこでこの2つさえあればgitを便利に使うことができる!というフィルターを作成してみました。 コミットやブランチのハッシュをフィルターする gitを使っていると特定のコミットを指定したくなることが多くあります。 git reset,git rebase,git log,git show,git diff,git cherry-pickなどなど このときにHEADやその1つ前ならHEAD~などで対応できますが、多く遡る場合はgit logをしてからハッシュをコピーして貼り付けるという手間がかかることをしていました。 そこでこれを改

    pecoでgit向けの汎用的なフィルターを2つ作成してみた - Qiita
    ymm1x
    ymm1x 2017/06/24
  • 1