mkdir blog && cd $_

ITエンジニアの雑感

2025-01-01から1年間の記事一覧

効率的なRakeタスクのロギング実装手法

RailsのRakeタスクでログ出力を共通化する方法をメモしておく。 Rakeタスクの賢いロギングを参考に改良してみる。 qiita.com 要件 Rakeタスクの開始と終了がわかるようにログを出力する Rakeタスクが途中でエラーとなったら、終了ログは出力せずに、FATALロ…

Rubyでイミュータブルなオブジェクトの作り方

イミュータブルなオブジェクトをつくる方法のひとつとして、Dataを利用する方法をメモしておく。 class UserEntity < Data.define(:name, :is_deleted) alias deleted? is_deleted end という感じで、Dataを継承する。 利用する方法は、以下のイメージ。 ent…

Sentryのdelayed_job.report_after_job_retriesが想定どおりに動作しなかった

目的 方法 問題 原因 解決方法 結果 目的 DelayedJobのリトライ試行中はSentryからの通知を抑制し、最後までリトライをしてエラーになれば通知するようにしたかった。 方法 Sentryには delayed_job.report_after_job_retries という設定があり、これを true …

carrierwave で webmock を利用する場合

carrierwave が利用されている箇所で、webmockを利用してstub化すると、指定していないIPアドレスへのリクエストをしてしまう。 Failure/Error: ... WebMock::NetConnectNotAllowedError: Real HTTP connections are disabled. Unregistered request: GET ht…

特定のGemのPatchバージョンのみを最新にする方法

Gemのバージョンアップをする場合に、ある特定のGemのPatchのみを最新にしたい場合がある。 よくその方法を忘れるのでメモしておく。 $ bundle update {gem名} --conservative --patch オプションについては以下を参照する。 cf.) bundler.io ランキング参加…

解決策:Ubuntuパッケージのインストール障害への対応

CircleCIで、 ... commands: setup: steps: - run: name: "apt-get install -y" command: | sudo apt update -y sudo apt-get install -y --fix-missing pkg-config imagemagick libmagick++-dev p7zip-full ... を最初に実行してパッケージのインストールを…

Railsのcomposed_ofの使い方

Rails の composed_of の使い方をメモしておく。 巷にはcomposed_ofの説明がたくさんある。 しかし自分が調べてもサクッと分からず、自前で実装して確認したことを残しておく。 railsdoc.com 前提 実装例 利用方法 前提 composed_of にする対象のカラムは js…

Session Managerログインイベントの取得と出力方法

AWS CloudTrailからSession Managerでログインした内容をAWS CLIで取得する方法をメモする。 Session Manager でログインをすると、StartSession というイベントになる。 aws cloudtrail コマンドでStartSessionのイベントを取得して、レスポンスからjqで 時…

組織再編とスクラム開発

組織再編があった。 まだ完全移籍ではなく2ヶ月ほど現チームと新チームの半々の状態で働くことになっている。 新チームにジョインして1週間時点での状況と考えを残しておく。 異動先チームは、様々な事情から2ヶ月ほどメンバー1名で運用保守と開発をしていた…

Git Log Command Reference

Pull Requestのレビュー指摘を修正した後に、コメントで修正したコミットのハッシュを記載している。 コピーするのが手間なので、コマンドでの手順をメモしておく。 前提 環境はMac 手順 直近N件のログをコミットハッシュと件名を出力する:$ git log -N --p…

勉強会でチームスキルの向上を目指す

社内の勉強会で実施したいテーマを考える。どうゆう軸で考えるべきかいつも迷う。 エンジニアチームの生産性の高め方 〜開発効率を向上させて、人を育てる仕組みを作る を読んで、「第6章 エンジニアリングイネーブルメント」の内容に興味を持った。 本書に…

「カオスエンジニアリング」を読んで

カオスエンジニアリング ―回復力のあるシステムの実践 をサラッと読んだので簡単に所感をメモしておく。 「カオスエンジニアリング」という言葉は知っていた。しかし、具体的な内容は認識していなかった。 本書を通じて「カオスエンジニアリング」の理解を深…

React Hook FormのhandleSubmitでEventを利用する方法

React Hook FormのhandleSubmitでEventを活用する方法をメモしておく。 前提 バリデーションにはYup を利用している。 動作 フォームのSubmitをしたらバリデーションをして、独自モーダルを表示する。 モーダルのボタンを押下したらAPIにリクエストをする。 …

PostgreSQLをmacにHomebrewでインストールする手順

macにHomebrewでPostgreSQLをインストールした手順をメモしておく。 前提 事前確認 手順 確認 サービスの起動をする 接続をする データベースを作成して、テーブルを作成する サービスの停止をする 前提 環境は以下になる。 macOS Sequoia $ sw_vers Product…