はじめに スムーズスクロール対応のため、html要素にscroll-behavior: smooth;のclass(以下、TailwindCSSのscroll-smooth )を付与したい時があります。ただ、scroll-behavior: auto;を使いたいページを要求されたらどうするか心配になるものです。 ...
背景 Vitest でテストを書く際、公式ドキュメントを見るとモックに関するユーティリティが多数存在し、最初はどれを使うべきか悩んでしまいます。 この記事では、テストができれば良いという状態から、テストの目的に合わせたモックユーティリティの使い分けができるような状態へのステップアップを目指します。 ゴール vi....
ちょっとした作業を効率化するためにシェルスクリプトや簡単なコードを作って楽をすることはエンジニアではよくあることかと思います。 その一環としてChromeの拡張機能を作るのも意外と便利だよ、というお話です。 作りたいもの 今回作るのはGitHubのプルリクエストに対する拡張です。プルリクエストが大きくなると、全て...
はじめに 今回は AWS ECS において、アプリケーションの通常ログとは別に特定のログファイルを別の CloudWatch Logs グループ に出力する「サイドカー構成」について紹介します。 ログの分離出力は、開発・運用時のトラブルシューティングやログ保守・可視化の観点で非常に有用です。今回は、Railsで外...
はじめに Railsアプリケーションでは、大量のデータを処理する必要があるケースが多くあります。例えば、データの移行、レポートの生成、バッチ更新などが該当します。しかし、何も考えずに処理を実装すると、メモリ不足や処理の遅延、データ整合性の問題が発生する可能性があります。実際の業務でもそうでした。 背景 多くのRa...
はじめに 今回は、RailsアプリケーションにSwaggerを用いてAPIドキュメントを導入する方法について解説します。 私自身はGraphQLで開発する機会が多く、これまでSwaggerを使うことがほとんどありませんでした。 そのため、今回初めてSwaggerを使ってみた経験を備忘録として残しておこうと思い、本...
はじめに 最近遅ればせながらドメイン駆動設計を本格的に勉強しようと思い立ちました。 「ドメイン駆動設計」エンジニアの皆さんならば一度は聞いたことがあると思います。 ただ、あまりに抽象的で難解な言葉が多く、そのメリットを享受できずに途中であきらめた人も多い(自分も含む)のも事実です。 アプリケーションを実装する際に...
前回は、GitHub Actionsを使ってAndroidアプリのバージョン番号(versionName と versionCode)を自動で更新し、プルリクエストを作成するワークフローについて解説しました。 ▼ 前回の記事(まだの方はこちらからどうぞ!) 2025.02.07【Android】GitHub Ac...
Android Roomのパフォーマンス改善をしよう Androidアプリ開発でデータを扱う際に、SQLiteを手軽に利用できるRoomはとても便利なライブラリですよね。 便利な反面、アプリの利用が進みデータ量が増加すると、次のような状況に直面することがあります。 「アプリの動作が少し遅く感じることがある…」 「...
はじめに Railsで開発を進めていてると、最初は快適だったのに機能が増えるに連れてテストが書きづらくなり、修正が怖くなるようなことはないでしょうか? この記事では、「テストしやすいRailsコード」とは何かを考えつつ、テストファーストの視点から設計を見直すためのヒントを紹介します。 なぜ「テストしやすさ」が重要...
こんにちは! 普段データ関連のお仕事をしています。 現在所属しているチームではデータマートの作成の際にdbtを使用しており、コスト削減のために差分更新の対応中です。 差分更新処理を書いていると「あれ?どんな挙動になるんだっけ?」ということが多いので、そんな自分に向けて増分更新の詳しい挙動を確認して、備忘録がてらブ...
はじめに 今回は、Unityにおけるボタンの連打・同時押し対策についてまとめました。 業務でゲーム開発を進める中で、これらの対策を初めて実装する機会があり、多くの学びがあったので、これからUnityでゲームを開発される方の参考になれば幸いです! 前提として、アーキテクチャにはMVPを採用し、ライブラリにはUniT...
はじめに Androidの非同期処理でKoltin Coroutinesを用いた実装を数年続けてきたことで 非同期処理を最適化するために withContext を積極的に使うことを意識して実装するようになりました。 withContextによるスレッドの切り替えは オーバーヘッドも少なく、気軽に使うことができる...
概要 Pythonのパッケージ管理ツールuv を使ってみたので、使い心地をざっくり書いてみます。 記事の要約 趣味プロジェクトのパッケージ管理ツールをuvへ移行させた 使ってみたらとても便利だったので、普段の開発ユースケースでどう運用するのが良さそうか整理したい uvはいいぞ 環境 Python: 3.13.2...
はじめに Google Apps Script (GAS) を使った自動化は非常に便利だが、タイムアウトエラーに直面したことはないだろうか? GASのスクリプトが連続して実行できる時間が無料版で最大6分、有料のGoogle Workspaceプランでも30分に設定されているために発生する。 スプレッドシートに書き...
はじめに React Native のアプリ開発で状態管理に Redux を使用しています。 今回は、Redux の導入と基本的な使い方について備忘録としてまとめました。 Redux とは Redux は、グローバルな状態管理のための JavaScript ライブラリです。 主に React と ReactNat...
はじめに こんにちは武田です。 最近Next.jsに触れる機会があり色々調べていると、「Parallel Routes」という機能があり、面白いなと感じたので書かせていただきます。 Parallell Routesとは Next.js(App Router)のルーティング機能の1つで、フォルダ名に「@」を付けるこ...