SMARTCAMP Engineer Blogのフィード
https://zenn.dev/p/smartcamp
SMARTCAMPに所属するエンジニアの個人記事を集めています。 記事の内容は個人の見解であり、社内でのレビュー等は行っておりません。
フィード

RSpecのtransactionクリーンアップではAUTO_INCREMENTは巻き戻らない
1
SMARTCAMP Engineer Blogのフィード
TL;DRRSpecで「各exampleをトランザクションで包んでROLLBACKする」方式のデータクリーンを使っていても、AUTO_INCREMENTのカウンタは巻き戻らないデータは毎回消えるのに、IDはexampleをまたいで進み続けるこれはInnoDBの仕様で、ROLLBACKで消費済みIDが返却されることはないIDを決め打ちしている処理・テストがあると、実行順やexample数の変化で壊れるので気をつけよう、という話 前提: transaction + rollback によるデータクリーンRSpecでは、各exampleをトランザクションで包み、終了時に...
5日前

Blacksmithお使いのお客様!イメージのキャッシュできていませんよ!
SMARTCAMP Engineer Blogのフィード
!3行まとめBlacksmithランナーは runs-on を差し替えるだけではDockerレイヤーキャッシュが効かず、useblacksmith/setup-docker-builder(と必須の cache-key)の設定が別途必要でしたキャッシュが効いていなくてもジョブは成功するため、ログの警告を見ない限り気づけません。弊社はデプロイ用ビルドで長期間これを見逃していました正しく設定するとDockerビルドは50〜70秒→2〜3秒に短縮。cache-key は環境(dev/stg/prod)ごとに分離するのが安全です はじめに弊社のリポジトリ(Next.jsのフロ...
22日前

A Write Barrier Validating GC for Ruby まとめ
SMARTCAMP Engineer Blogのフィード
!弊社スマートキャンプは、今回RubyKaigiに会社として初めて参加しました!当日の詳細な様子については、弊社開発メンバーが別途レポートを公開していますので、ぜひあわせてご覧ください。▼ RubyKaigi2026 初参加レポートhttps://zenn.dev/smartcamp/articles/fa049e31b5c6faさて、本記事は、私たちがRubyKaigi2026で得た学びや経験をアウトプットしていく「リレー記事」の第5本目となります。RubyKaigi2026 Day3 11:30-12:00 A Write Barrier Validating GC fo...
25日前

社会学の「橋渡し」の理論から考えるプロダクト開発
SMARTCAMP Engineer Blogのフィード
本記事では社会学の理論をヒントに、「作る」よりも「繋げる」という視点で考えてみます。 社会学の二つの理論社会学のネットワーク理論にはこんな考え方があります。 弱い紐帯の強さMark Granovetterが1973年に提唱した理論です。親しい友人より、あまり親しくない知人の方が新しい情報や仕事をもたらすことが多いというもので、同じコミュニティの中だと情報がどうしても重複するから。異なるコミュニティとの接点が新しい情報を運んできます。 構造的空隙Ronald Burtが提唱した理論です。互いに繋がっていないコミュニティ同士を橋渡しする人(Broker)は、情報的優位性や機...
1ヶ月前

TypeScriptの型演算子の優先順位はどこで決まっているのか?
SMARTCAMP Engineer Blogのフィード
TypeScriptの型演算子とはTypeScriptの型システムでは、型を組み合わせたり変換したりするための演算子が用意されています。// ユニオン型 - いずれかの型type A = string | number;// インターセクション型 - すべてを満たす型type B = Foo & Bar;// 型演算子 - 型を修飾する演算子type C = keyof T;type D = typeof obj;type E = readonly T[];type F = T[K]; // Indexed Access// 配列型typ...
1ヶ月前

TypeScriptの型を収集してからコンテキストとしてLLMに与えてみる
SMARTCAMP Engineer Blogのフィード
問題: LLMが推測でコードを修正するTypeScriptのプロジェクトでLLMにコード修正を依頼すると、LLMは型情報を推測して回答することがあります。//極端な例User: "createUserの引数を追加して"LLM: 「nameとemailを受け取っていますね。そこにroleを追加します」// 実際の型は { repo: UserRepository, data: CreateUserRequest } だった…実際は型の書き方が違う、使い方違う、asを使ってしまう等に収まると思いますが。 既存の選択肢TypeScriptのコードを理解する方法として、現在...
1ヶ月前

Rails 8 アップグレードで一番ハマった「テスト DB から RLS が失踪した」話
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは、りゅうです!少し前に、担当しているプロダクトで Rails 7.2 → 8.0 → 8.1 / Ruby 3.3 → 3.4 → 4.0 というメジャーアップグレードを行いました。その時の話を記事にしてみようと思います!特に、Rails のメジャーバージョン変更で詰まってしまった出来事は、条件が揃えば誰にでも起こりうる内容です。同じところでハマる方の役に立てばと思い、書いていきます。gem の引き上げ、非推奨対応、テスト API の移行……と、大小さまざまな作業がありました。ただ、この記事では 特に大変だった部分 を中心に話したいと思います。それが...
1ヶ月前

論理削除とデータ再利用、どう判断する?【慣例に従う前に考えたいこと】
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは、りゅうです!新卒2年目でチームが変わり、主体的に動く必要がある環境では色々と考えることが増えてきました。今日はそのような日々の中で 論理削除とデータ再利用 の設計判断に向き合う機会があったため、この記事を書いてみました!今回の記事では論理削除を主テーマに設計の判断軸を整理しつつ、あわせて 「慣例に従うこと」の是非 についても考えていきたいと思います!最近、プロダクト開発で論理削除の扱いについて立ち止まって考える出来事がありました。担当しているプロダクトでは論理削除を主に使用しているのですが、実装の中で割と思考停止に近い状態で論理削除を適用していて、「既存...
1ヶ月前

インフラをTypeScriptで管理する - はじめてのAWS CDK
SMARTCAMP Engineer Blogのフィード
TsKaigi 2026以下のセッションでAWS CDKをはじめて知りました。https://2026.tskaigi.org/talks/20AWS Cloud Development Kit (AWS CDK) は、コードでクラウドインフラストラクチャを定義し、AWS CloudFormation を通じてプロビジョニングするための、オープンソースのソフトウェア開発フレームワークです。https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html要するにIaCですね。IaCツールとして、自分はTerraformしか知らず、...
1ヶ月前

ゲームボーイアドバンスで、mrubyのバイトコードを実行する
SMARTCAMP Engineer Blogのフィード
はじめにRubyKaigi 2026 で @yhara さんが発表された Ruby on NES - how to make the smallest ruby ever に影響を受け「GBA でも Ruby を動かしたい」と思い立ち、GBA で Ruby を実行してみました。発表ページ: https://rubykaigi.org/2026/presentations/yhara.htmlスライド公開のポスト: https://x.com/yhara/status/2047586239814259034 作ったものリポジトリ: https://github.c...
2ヶ月前

Ruby における Frame(フレーム)と Lightweight Frames
SMARTCAMP Engineer Blogのフィード
!弊社スマートキャンプは、今回RubyKaigiに会社として初めて参加しました!当日の詳細な様子については、別途レポートを公開していますので、ぜひあわせてご覧ください。▼ RubyKaigi2026 初参加レポートhttps://zenn.dev/smartcamp/articles/fa049e31b5c6faさて、本記事は、私たちがRubyKaigi2026で得た学びや経験をアウトプットしていく「リレー記事」の第4本目となります。 RubyのframeとはRuby VM においてFrame(フレーム、制御フレーム)とは、メソッド呼び出しやブロック実行時に VM スタ...
3ヶ月前

形式仕様 × Property-Based Testing で作るAI時代のテストハーネス — RubyKaigi 2026 セッションから
SMARTCAMP Engineer Blogのフィード
!弊社スマートキャンプは、今回RubyKaigiに会社として初めて参加しました!当日の詳細な様子については、別途レポートを公開していますので、ぜひあわせてご覧ください。▼ RubyKaigi2026 初参加レポートhttps://zenn.dev/smartcamp/articles/fa049e31b5c6faさて、本記事は、私たちがRubyKaigi2026で得た学びや経験をアウトプットしていく「リレー記事」の第3本目となります。この記事はRubyKaigi 2026のセッションを聴講し、一度自分なりに理解した上での解釈をアウトプットしているものになります。解釈・理解に間...
3ヶ月前

RubyのパーサーにおけるBindingPower
SMARTCAMP Engineer Blogのフィード
!弊社スマートキャンプは、今回RubyKaigiに会社として初めて参加しました!当日の詳細な様子については、弊社開発メンバーが別途レポートを公開していますので、ぜひあわせてご覧ください。▼ RubyKaigi2026 初参加レポートhttps://zenn.dev/smartcamp/articles/fa049e31b5c6faさて、本記事は、私たちがRubyKaigi2026で得た学びや経験をアウトプットしていく「リレー記事」の第2本目となります。間違っている箇所もあるかもしれませんのでご了承ください。 Binding PowerとはRubyのパーサーにおけるBi...
3ヶ月前

Building the Next-Generation Garbage Collector in Ruby まとめ
SMARTCAMP Engineer Blogのフィード
!弊社スマートキャンプは、今回RubyKaigiに会社として初めて参加しました!当日の詳細な様子については、弊社開発メンバーが別途レポートを公開していますので、ぜひあわせてご覧ください。▼ RubyKaigi2026 初参加レポートhttps://zenn.dev/smartcamp/articles/fa049e31b5c6faさて、本記事は、私たちがRubyKaigi2026で得た学びや経験をアウトプットしていく「リレー記事」の第1本目となります。RubyKaigi2026 Day2 11:30-12:00Building the Next-Generation Gar...
3ヶ月前

.git/info/exclude を symlink で日常使いにする
SMARTCAMP Engineer Blogのフィード
!この記事は SMARTCAMP Engineer Blog のリレー記事企画:「開発環境」のリレー記事、始めます の 4 本目の記事です。.git/info/exclude、みなさんどう付き合ってますか?個人的な感覚だと、そもそも存在を知らない知っているが、毎回 vim .git/info/exclude を打つのが地味に面倒面倒だから使うのを諦めて、git status に差分をキープし続けているの3パターンくらいありそうだなと感じています。自分は長らく3番目で、git status に毎回数行の差分が残ったまま開発していました。ただ、worktree が汚れて ...
3ヶ月前

RubyKaigi2026 初参加レポート
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは!りゅうです!2026年4月22日~24日に行われたRubyKaigi2026に参加させていただきました!その内容を簡単にまとめようと思います!別途一番刺さったセッションについては別記事でより深掘りする予定です。本記事では、以下の内容を書かせていただきます。私が聴講させていただいたセッション・ひとことメモセッションの中で印象に残ったものをいくつか紹介Drink UpやAfter Eventの様子購入した本知らなかった・学んだことここが初参加の人には参考になるかも!今年のRubyKaigiの雰囲気をお伝えして、次に参加しようと考えている...
4ヶ月前

Claude Code の「1.ラーメン」を物理ボタンで殴る
SMARTCAMP Engineer Blogのフィード
!この記事は SMARTCAMP Engineer Blog のリレー記事企画:「開発環境」のリレー記事、始めます の 3 本目の記事です。みなさんこんにちは!今日も元気に Vibe Coding!スマートキャンプ株式会社の ma2Cta です。開発環境リレー記事ということで、私からは一つ小ネタを投稿しようと思います。 Claude Code は承認を求めてくるClaude Code を使ったコーディング、みなさん行なっていますよね。私も、公私共に Claude Code をヘビーユースしています。そんな Claude Code ですが、よく我々人間に承認や確認を求めてきま...
4ヶ月前

Cicaフォントをおすすめする
SMARTCAMP Engineer Blogのフィード
!この記事は SMARTCAMP Engineer Blog のリレー記事企画:「開発環境」のリレー記事、始めます の2本目の記事です。 CicaとはCica(シカ)は、プログラミングでの利用に最適化された日本語等幅フォントです。英数字や記号には「Hack」や「DejaVu Sans Mono」、日本語には「Rounded Mgen+」、絵文字に「Noto Emoji」などが採要された合成フォントです。https://github.com/miiton/Cica等幅フォントは英数字と日本語が交じると端が揃わなかったり、視認性が悪いなどの状態となることがあるため英数字・日本...
4ヶ月前

Claude Teamプランでできること・管理画面まるっと紹介
SMARTCAMP Engineer Blogのフィード
はじめにこんにちは。まるべいじです。皆さんは、日々の業務や私生活でClaudeをどのくらい使い倒していますか?私は、業務では「Claude Team」のPremiumシートを、個人では「Maxプラン」を契約しており、もはやClaudeなしでは生活が成り立たないレベルで依存まくっています。私が所属している開発チームでは、AIを利用した開発を積極的に進めており、CursorやClaude、Devinなどのコーディングエージェントをチーム全体で導入しています。また、3ヶ月周期で「AI活用に関する社内アンケート」を実施し、チーム内のトレンドや細かな要望を吸い上げることで、常に最適な...
4ヶ月前

開発環境現状確認 2026/03
SMARTCAMP Engineer Blogのフィード
!この記事は SMARTCAMP Engineer Blog のリレー記事企画:「開発環境」のリレー記事、始めます の1本目の記事です。最近このタイトルの記事をよく見かけるので自分も便乗することにします。 GUI周り エディタRust製の Zed を使ってます。以前は Cursor を使っていたんですがあまりにも動作が重すぎるため移行しました。起動も早いし動作も軽いしで快適です。テーマは Catppuccin をカスタマイズしてちょっぴり透過したり背景色を揃えたりしてます。ずっとダークモードで使ってましたがなんかライトモードのほうがおしゃれだし目に良さそうなので最...
5ヶ月前