2024-01-01から1年間の記事一覧
これは何? 業務でデッドロックが発生。そもそもデッドロックはどのような場合に発生して、どのような対応が適切なのか?について理解が曖昧だと感じたので改めて調べてまとめた。 前提 MySQL: 8系 InnoDB 以下における説明はすべてInnoDBを前提とします。 T…
これは何? Railsアプリ→ MySQLのTIME STAMPの保存でハマったのでメモ 前提 Ruby on Rails: 7.0.2 MySQL: 8系 Tips 事象 以下のようにscheduled_atをTime.zoneで更新をかけたところ、保存されている値が scheduled_at= '2024-04-03 03:00:00 とUTC時刻で保存…
これは何? AWS CodeBuildを使用して、Reactのソースコードをビルドしていた。エラーが発生したため、その対処方法のメモ。 前提 ランタイム Node.js: 18 Tips error [Container] 2024/04/17 01:24:29.689519 Running command n 18 && rm -rf /tmp/* install…
これは何? preload, eager_load, includesを見かけるたびに、あれ、これってどういう挙動をするんだっけ?と調べているのでメモ。 前提 Ruby 3.03 Rails 7.04 Tips 結論 eager_load 1対1あるいはN対1のアソシエーションをJOINする場合に使う preload 多対多…
これは何? AntD Reactの実装中にImageコンポーネントを使った。 その際に、srcのフォーマットについて調べてみた。 Tips base64に変換されたPDFファイルの場合、Imageコンポーネントのsrcプロパティには、以下のような値を渡す必要がある。 data:applicatio…
これは何? ReactQueryのフェッチタイミングの制御とかを触った。毎回調べている感じがするので、メモ。 前提 React: 18系 TypeScript: 4系 TanStack Query: 4系 Tips const { data } = usePlaylistAutoProgram(playlist?.playlistUid) useEffect(() => { if…
これは何? コードのリファクタリングの際に、パフォーマンスの計測まで行ってみたら結構な差が出てきたので、メモ。 前提 Ruby 3.2 Rails 7.0.4 Tips mapを使っていた箇所をpluckを使ってリファクタリングしてみた before user_ids =Pls.where(pl_id: pl.id…
これは何? STG/PRD環境で、AWSアカウントを共有している時、AWS SESの通知ステータスを環境別に振り分ける場合の対処法の一つをメモ 前提 Ruby 3.2 AWS SES, SNS, SQS, Lambda Tips 要件 STG/PRD環境で、AWSアカウントを共有している SESで配信されたメール…
これは何? Lambdaのレイヤーを使用したので、操作手順などの備忘録 前提 ランタイム: Ruby3.2 アーキテクチャ:x86_64 Tips Lambdaレイヤーはどんなときに使う? デプロイパッケージのサイズを小さくするため。関数の依存関係を関数から切り離せるので。 …
これは何? RSpecを書くときの小技メモ。 前提 RSpec 3.12.0 Tips RSpecで特定のメソッドをMockする Mockするメソッドはテストの中で流用されている 引数などの条件によって返り値を変えたい どうする? A: receiveメソッドにはブロックが渡せるので、ブロ…
これは何? 条件によってHashにプロパティを追加したい場合に、一行一行追加する記述が冗長だったので、もう少しRubyっぽく書けないか施工錯誤したメモ。 結論はtapを使うといい感じだった。(サンプルの例がダサいコードの方がスッキリ見えてしまい申し訳な…
これは何? AWS ECSのタスクがデプロイ時に正常に更新されなかった場合のデバッグ方法のメモ 前提 AWS Pipeline, CodeBuild, ECSを使用していること Tips Pipeline・CodeBuildともにステータスに異常はない ECSのタスクを確認すると、タスクが更新されていな…
これは何? カスタムフックの処理が実行される前に、useEffectの処理を先に行いたいケースが出てきた。その際にすぐに解決方法がわからなかったので備忘録として書く。 前提 React18 TypeScript: 4.7.4 ReactQuery ReactHookForm Tips ケース 画面遷移時にus…
これは何? AWS Lamdaを触ることになった。とりあえず、なんとなくの雰囲気で実装してみたところ、かなり初歩の段階でエラーが発生した。 この機会なので、学習を兼ねて、まずはちゃんとドキュメントを読んでからエラーの解消にあたって行こうと思い書いてま…
これは何? インラインポリシーの設定方法を忘れてしまった AND 検索してもすぐに見つからなかったので備忘録として 設定方法 任意のロールを作成する 任意のロールを選択する 許可タグの許可ポリシーから、インラインポリシーを作成を選択 任意のポリシーを…
これは何? AWS SNSって何? A2Aメッセージング A2P(aplication-to-person)通知 標準および FIFO トピック メッセージの耐久性 デッドレターキュー メッセージのアーカイブ、リプレイ、および分析 メッセージ属性 メッセージのフィルター処理 メッセージセキ…
前提 Cypress: 13.0.2 以下のコードの違いは何でしょうか? cy.get('tr:contains(User 1)') cy.contains('tr', 'User 1') こんな違いがある cy.get()は一つ以上のDOM Elementを取得する cy.contians()は一つのDOM Elementを取得する つまり、以下のようにな…