Check List

Go Check List

March 31, 2022
Go, Golang, Check List

Go Check Sheet # References # Style Guide Effective Go Go Code Review Comments Uber Go Style Guide Knowledge プログラミング言語Go完全入門 よくわかるcontextの使い方 Goでの並行処理を徹底解剖! Goで時刻を扱うチートシート Goにおけるjsonの扱い方を整理・考察してみた ~ データスキーマを添えて Go言語のジェネリクス入門(1) Go言語のジェネリクス入門(2) インスタンス化と型推論 Workspace mode Testing Advanced Testing with Go Goのテーブル駆動テストをわかりやすく書きたい Library multierr testscript Static Analytics goleak errcheck gosec tennvet fieldalignment 設計 # パッケージ管理 # Go Modules (go.mod) 設計 # 分割 パッケージを適切に分割 ファイルを適切に分割 命名 大文字なしの1単語 UpperCamelCase, snake_cake, chain-case は NG 具体性のない命名は NG e.g. common や util などは NG fileutil のように具体性がある命名は許容範囲 標準/準標準パッケージと同じ名前は避けること 気持ちの良い命名は良い設計ができた証拠 冗長な命名は設計がうまくいっていない証拠 適切に型定義すること 多くの引数を引き回さないこと 何でもかんでも構造体にしないこと e. ...

How to downgrade Go version on Mac

March 31, 2022
Go, Golang, Check List

Downgrade Go version on Mac # % brew upgrade % go version go version go1.21.0 darwin/arm64 % brew unlink go % brew search go@1.18 % brew install go@1.18 % brew link --force go@1.18 % echo 'export PATH="/opt/homebrew/opt/go@1.18/bin:$PATH"' >> ~/.zshrc % source ~/.zshrc % go version go version go1.18.10 darwin/arm64

Cron Check List

January 1, 2020
Cron, crontab, Check List

Crontab # 変数の設定 # シェルの種類が記載されていること crontab 実行時のシェルの種類の初期値は /bin/sh e.g. SHELL=/bin/bash エラー発生時のメール送信宛先 MAILTO=foo@bar.com が設定されていること コマンド実行時に必要な変数は key=value フォーマットで上部にまとめて設定されていること 各変数の使用用途と設定値のサンプルがコメントに記載されていること 日時の設定 # 分 時 日 月 曜日 のフォーマットで設定されていること 存在する日時/曜日が設定されていること 日 と 曜日 は同時に設定しないこと 同時に設定されている場合 AND 条件ではなく OR 条件で実行されるため コマンドの設定 # 実行コマンド内の % が \(バックスラッシュ)でエスケープされていること コマンド内にエスケープされていない % がある場合、% が改行文字に置換されそれ以降のコマンドが標準入力として渡されるため ファイルを指定する場合は絶対パスを使用すること crontab のコマンド実行時のカレントディレクトリは ユーザー のホームディレクトリとなるため /usr/bin、/bin 以外の箇所にあるコマンドを実行したい場合は絶対パスを使用すること crontab 実行時のPATH環境変数は /usr/bin:/bin しか指定されていないため ログが /dev/null に捨てられず、書き込み可能な箇所に出力されていること 実行ログを破棄してしまうと障害発生時の調査が難しくなるため Docker 関連の設定 # dockerコンテナを利用したコマンドを実行する際は、rootユーザー権限で実行しないこと dockerコンテナを利用したコマンドを実行する際は、実行対象のコンテナを特定すること