DRESS CODE TECH BLOGのフィード
https://zenn.dev/p/dress_code
DRESS CODEのProduct & Technologyチームによるテックブログです! プロダクトマネジメントからモデリング、アーキテクチャ、フロントエンド、バックエンド、SRE、セキュリティなどなど様々なテーマで情報を発信しています!
フィード

組織ツリーの一覧表示、深さ優先と幅優先どっちが正解?
2
DRESS CODE TECH BLOGのフィード
はじめにこのブログは Dress Code Advent Calendar 2026/07 の 15 日目の記事です。人事系の SaaS には、組織の並びを見せる画面がだいたい 2 つあります。ひとつは 組織図 で、「営業本部の下に営業1部がある」といった親子のつながりを枝分かれの形で見せます。もうひとつは 部署一覧 で、同じデータを上から下へのシンプルなリストで見せます。元は同じ部署データなのに、この 2 つで並び順がズレていると、ユーザーは「あれ?」と混乱します。「組織図では営業本部の下に営業1部があるのに、一覧では開発本部のあとに営業1部が来る」こういう問い合わせが来たの...
8時間前

DELETE したはずの行が SELECT で返り続ける ときに何を疑うか
42
DRESS CODE TECH BLOGのフィード
この記事は Dress Code Advent Calendar 2026/07 の 12本目の記事です。こんにちは、Dress Code株式会社 でプロダクトエンジニアをやっているなたこんです。データベース周りで個人的にハマったことを紹介します。更新したはずのデータが読み取り時に古いまま返ってきたとき、何をどの順で疑えばよいかを、実際の事例に沿って整理します。 TL;DR「テーブルから DELETE したはずの行が、SELECT で返り続ける」という事象に遭遇した。確認できた状況は次の通り。該当クエリが主キー被覆だったため、実行計画が index-...
5日前

ゼロから作り直さない設計 — GWS監査ログをAccessesの検知基盤に乗せるまで
2
DRESS CODE TECH BLOGのフィード
はじめにこのブログは Dress Code Advent Calendar 2026/07 の 11本目の記事です。こんにちは。蒲生(@gamonges_eng)です。DRESS CODE の「Accesses」は、私用アカウントでの Web サービス利用、いわゆるシャドー IT を可視化するプロダクトです。今回、検知範囲を Google Workspace(GWS)の監査ログまで広げました。新しいリポジトリも、専用の取り込みパイプラインも作らず、既存のシャドー IT 検知基盤にデータソースを追加する形で実装しています。ここでは、アーキテクチャをどう決めたのか、既存基盤へ...
6日前

バラバラだった staleTime を、データの性質で選ぶ4プリセットに集約した
8
DRESS CODE TECH BLOGのフィード
画面ごとにバラバラだった staleTime 設定を、データの性質で選ぶ4プリセットに集約した はじめにこのブログは Dress Code Advent Calendar 2026/07 の 10本目の記事です。こんにちは。ぷーじ(@yug1224)です。約7,500ファイル規模の TypeScript フロントエンドで、新しい画面を作るたびに「この画面の staleTime は何分にするのが正解なんだっけ?」と手が止まっていました。この曖昧さを消したくて、TanStack Query のキャッシュ方針を整理しました。この記事では、QUERY_PRESETS に集約した設計...
7日前

RDB と DynamoDB の二重書き込みで起きる整合性問題と Transactional Outbox
DRESS CODE TECH BLOGのフィード
はじめにこのブログは Dress Code Advent Calendar 2026/07 の 9 日目の記事です。Dress Code 株式会社のかわうそです。今回は、CRUD ベースで動いているサービスを Event Sourcing へ移していく過程で、Transactional Outbox パターンを入れた話をご紹介します。移行前の状態を簡単に整理すると、現在状態は RDB で CRUD 管理している変更履歴は別に「変更前後の全体スナップショットを丸ごと JSON で保存する」履歴テーブルアプリケーションが書き込む監査ログ方式DB ログから変更を捕捉する...
8日前

負荷は「ならす」と「下がる」
DRESS CODE TECH BLOGのフィード
はじめにDressCodeでプロダクトエンジニアをしている@cottpanです。このブログはDress Code Advent Calendar 2026/07の8日目の記事です!私たちは DRESS CODE という、人事労務・情報システム・総務などを横断する Workforce Management プロダクトを開発しており、その中のソフトウェア管理では、外部 SaaS と連携しながらユーザー・ロール・ライセンス・グループなどの情報を可視化できるプロダクトを提供しています。その内部では、外部 SaaS のアカウント一覧を取得できる API を一定時間ごとにコールして同期す...
11日前

React 画面を「コンポーネント情報つきの単一 HTML」に書き出す
DRESS CODE TECH BLOGのフィード
はじめにこんにちは。Dress Code株式会社でデザイナーをしているりっきーです。このブログはDress Code Advent Calendar 2026/07の6日目の記事です。デザインモックを Figma だけでなく、コード(HTML / React)で組んで共有する流れが増えています。生成 AI や既存コンポーネントの組み合わせで、モックを速く作れるようになりました。反面、「なぜそのデザインに落ち着いたのか」「どんな没案を経たのか」という検討のプロセスは残りにくくなりました。Figma なら没案を横に並べておけましたが、コードは上書きされ、試行錯誤は Git ログに埋...
13日前

非同期処理のアーキテクチャに想いを馳せた
DRESS CODE TECH BLOGのフィード
はじめにこんにちは、Dress Code 株式会社 でプロダクトエンジニアをやっている津田です。このブログはDress Code Advent Calendar 2026/07の3日目の記事です。最近はもっぱら共通基盤まわりの開発をしており、非同期処理のアーキテクチャについて検討する機会に恵まれたので備忘も兼ねてブログに残しておきます。非同期処理はおそらくほとんどのプロダクトで実装されていると思っています。ここでいう非同期処理は同一プロセス内でnon-blockingに処理をする話ではなく、プロセスを跨ぐ処理系統・アーキテクチャを指します。基本的にACID特性が求められる...
18日前

slackからX(twitter)APIを使って投稿していたけど、やめた話
DRESS CODE TECH BLOGのフィード
みなさん、こんにちは。Sakutaro(X: @saku_238)です。このブログはDress Code Advent Calendar 2026/07の2日目の記事です!突然ですが、みなさんは公式Xアカウントの投稿していますか?僕はしています。公式Xアカウントの投稿、ワークフロー式に投稿できるようになったら、便利じゃないですか?ということで、X APIが提供されたので、slack ワークフローを活用したX投稿機能を実装したこと、そしてやめたことをこのブログで紹介します。 何を作ったのか作ったのは「Slackから公式Xアカウントに投稿するための、「 下書き→承認→投稿 」...
19日前

遅いのは SQL だと思ったら、別のところにあった
DRESS CODE TECH BLOGのフィード
TL;DR はじめにこんにちは、Dress Code でプロダクトエンジニアをしている ないとー です!Dress Code の技術力・思想・カルチャーを外に発信していくため、この7月にテックブログのアドベントカレンダー Dress Code Advent Calendar 2026/07 を開催します!本記事はその1日目です。PdM とエンジニアメンバーで、日々の設計・開発で得た知見やハマったこと、入社エントリやチームの工夫まで、技術・プロダクト問わず持ち寄っていくので、是非覗いていってください☺️私たちは DRESS CODE という、人事労務・情報システム・総務など...
20日前

チームふりかえりでAIに任せたこと、任せなかったこと
DRESS CODE TECH BLOGのフィード
こんにちは、Dress Code株式会社 でプロダクトエンジニアをやっているなたこんです。みんな定期的にやっているふりかえり、ちょっと楽にしたいよね。でも楽にしすぎると、人が自分で思い出したり、解釈したりする余地まで奪ってしまうかもしれないよね、と思ったことがあった。そのときに考えたことと、実際にやってみたことを書いてみます。あくまでも個人的な見解であり、会社としての意見を代表するものではないことにご留意くださいませ。 TL;DRふりかえりで出来事を思い出す作業をサポートしたくて、チームの活動(GitHub / Slack / Notionなど)を集めてくるだけのスキルを作...
22日前

ViteのresolveIdで特定環境のビルドだけ不要モジュールをstub化してバンドル軽量化
DRESS CODE TECH BLOGのフィード
はじめにこんにちは、Dress Code株式会社でプロダクトエンジニアをしているもず(@mozu1206)です。以前、フロントだけで動くCRUDプロトタイプをDexie.jsで作り、-api層だけ差し替える設計を紹介しました。デモDBの初期化は動的import + モードガードで止めていたつもりだったのですが、ビルド成果物を見るとDexie本体やモックのseedデータがまだ載っていたことを確認しました。特定の環境向けビルドだけ、これらのimportをstubに向け替えたいなと思い、調べてみたらViteプラグインのresolveIdが出てきたので試してみました。本記事では、...
25日前

CSV を顧客に配るのは、想像よりずっと難しい
DRESS CODE TECH BLOGのフィード
TL;DR はじめにこんにちは、Dress Code でプロダクトエンジニアをしている ないとー です!私たちは DRESS CODE という、人事・情報システム・総務・採用・コーポレートなど複数の部門を横断する業務 OS として機能する、グローバル向けのコンパウンドプロダクトを開発しています。扱うドメインが広いと、データを CSV でやり取りする機会が驚くほど多くなります。以前、各国の拠点から アップロードされる CSV を正しく読む話を書きました。https://zenn.dev/dress_code/articles/chardet-high-byte-rati...
1ヶ月前

AIに任せる設計、人間に残る設計
DRESS CODE TECH BLOGのフィード
はじめにこんにちは、Dress Code 株式会社 でプロダクトエンジニアをやっている津田です。最近はもっぱら共通基盤まわりの開発をしており、設計について思うことが出てきたのでポエム的に残してみます。以前、openspecをつかった仕様駆動開発に取り組んでいる話をしましたが、その延長線上にある話かもしれません。https://zenn.dev/dress_code/articles/6ff2a65a02d2f7あくまでも個人的な見解であり、会社としての意見を代表するものではないことにご留意いただければと思います。 背景仕様駆動開発をはじめてから、AIと壁打ちをしながら...
1ヶ月前

多言語対応(i18next)で条件型の展開が2億を超えていたので、enableSelector: trueで約90%削減した話
DRESS CODE TECH BLOGのフィード
はじめにi18next の型安全は便利ですが、翻訳規模が大きくなると TypeScript の型計算コストが無視できなくなります。自分たちの環境でも、翻訳リソースの増加に伴って IDE や CI の速度低下が発生し、最終的に enableSelector: true + Selector API ベースへ移行しました。この記事では、発生していた問題と、段階的に移行した方法についてまとめます。 背景これまでの実装では、i18next の CustomTypeOptions.resources に翻訳リソース全体を型として渡していました。declare module "i1...
1ヶ月前

AI 開発合宿で見えたのは普段の開発文化だった
DRESS CODE TECH BLOGのフィード
はじめにこんにちは、Dress Code でプロダクトエンジニアをしている ないとー です!私たちは DRESS CODE という、人事労務・情報システム・総務・採用・プロジェクト・コーポレートガバナンスなど、複数領域を横断する業務 OS(コンパウンドプロダクト)を開発しています。扱う領域が広いぶん、AI を活かせる余地も大きく、プロダクトへの組み込みは以前から構想していました。ただ、日々の開発が回っているからこそ、そこに割く時間はなかなか確保できずにいました。そこで今回、意図的に 2 日間の時間を確保し、AI 開発合宿として集中的に取り組むことにしました。この記事では、合...
1ヶ月前

AI時代に求められるPRレビューのメンタルモデルを考える
DRESS CODE TECH BLOGのフィード
はじめにDress Code 株式会社のかわうそです。最近、Pull Request(PR)をレビューしていてふと「AI時代にApproveという行為には何が求められているのだっけ?」とふと思い、整理しておきたくなったので記事にしてみました。AI が生成したコードをレビューする機会が増えるにつれて、Approve を押す瞬間にちょっとした躊躇や違和感が増えてきたなと感じています。!この記事は個人的な見解を含んだ内容になります。特定のチーム運用を否定するものでもなく、「こういう考え方もあるよね」という整理として読んでもらえると嬉しいです。 TL;DRそもそも Ap...
1ヶ月前

デプロイ速度を約50%高速化した話
DRESS CODE TECH BLOGのフィード
こんにちは。Dress Code株式会社でプロダクトエンジニアをしているぽこひで(@pokohide)です。弊社の提供する「DRESS CODE」のBackend APIのデプロイパイプラインを見直し、デプロイ時間を40~50%ほど高速化した話をご紹介します。この手のパーセントが大きいのは、そもそも既存のデプロイパイプラインが最適化されていないだけなことが往々にしてあるので数字の大きさは釣りと思っていただき、自社でも使えると思った最適化案や考えがあれば参考にしていただくくらいの気持ちで気軽に読んでいただければと思います。今回入れた変更点は主に以下のとおりです。ジョブの並列化D...
2ヶ月前

データ同期バッチを Choreography から Orchestration Saga へ作り直した話
DRESS CODE TECH BLOGのフィード
DressCodeでプロダクトエンジニアをしている@cottpanです。DressCodeでは、外部 SaaS と連携しながらユーザー・ロール・ライセンス・グループなどの情報を可視化できるソフトウェア管理というプロダクトがあります。このプロダクトでは、外部SaaSの情報を定期的に同期する処理を行っています。私たちはこの同期処理を長く Choreography型の非同期パイプラインで運用してきましたが、連携数の増加とともに限界が見えてきたため、Orchestration型へ作り直しました。本記事の「Choreography Saga / Orchestration Saga」は、制...
2ヶ月前

状態を直接編集する台帳UIをやめたら、Event Sourcing的な発想にたどり着いた
DRESS CODE TECH BLOGのフィード
はじめにこんにちは。Dress Code 株式会社でプロダクトエンジニアをしている西銘です。DRESS CODEにはデバイス台帳画面があります。数あるプロダクトの中でも初期から作られ、使われてきただけに業務知識は詰まっている一方で、機能を追加するたびに別の潜在不具合が見つかる状態でした。直しても別の場所で似た問題が出るので、開発側も利用側も消耗しやすくなっていました。最初は「使いづらい UI をどう改善するか」という話だと思っていました。ですが掘っていくと、見た目や操作感よりも、現在の状態を直接編集する前提のデータ設計が実際の業務の流れとズレていることが問題でした。この記事...
2ヶ月前