インゲージ開発者ブログ
https://blog.ingage.jp/
インゲージ開発者ブログ
フィード

PlaywrightMCPで「頭の中のテスト知見」を自然言語化する〜影響範囲や類似箇所のリグレッションテストを自動生成して属人化を解消する〜
インゲージ開発者ブログ
はじめに 長年運用しているプロダクトほど、「影響範囲のテストが誰かの頭の中にしかない」という課題を抱えていませんか? 私たちのチームもまさにその状態でした。 機能追加や修正のたびに、 「この変更って、あの画面にも影響するかも」 「ここを触ったら、こっちの挙動も確認しないと」 といった知見が、特定のメンバーの経験に依存していました その結果、 テスト範囲が属人化する 経験の浅いメンバーへ代替しづらい 知見の承継に時間がかかる といった問題が発生していました そこで今回、PlaywrightMCPを使い、“個人の頭の中にしかないリグレッションテスト” を 自然言語(Gherkin)形式で自動生成し…
10時間前

Web Risk API を活用したフィッシングサイト対策の実践
インゲージ開発者ブログ
1:はじめに 近年、電子メールやSNSを悪用したフィッシング詐欺が急増しています。 本稿では、Google が提供するセキュリティ製品である Web Risk API を利用し、アプリケーションやサービス内で危険な URL を検知する仕組みを構築する方法を解説します。 2:Web Risk APIの概要 Web Risk は、Google が継続的に更新している「安全ではないウェブリソースのリスト」と照合することで、クライアントアプリケーションが URL の安全性を確認できるエンタープライズ向けのセキュリティサービスです。 本 API を用いて、以下の主要な脅威タイプの URL を検出可能です…
8日前

仕様を読むだけじゃ足りない。-テスト設計の進め方-
インゲージ開発者ブログ
こんにちは、bit0です! ここ2ヶ月ほどテスト実行を経てQAエンジニアとして本配属を迎えました。 1ヶ月間はテスト実行、2ヶ月目の終わりからテスト設計を勉強させていただいております。 QAとして働き始めてから一番悩んだのが「テスト設計ってどう書けばいいの?」ということでした。 1ヶ月目ではテスト設計者が作ったテストケースを実行したり、フリーテストとして不具合がないか見て回ったりしました。 私のいるチームは新機能開発や、機能改修、プラン変更など怒涛の開発スピードだったため、既存影響がないか、デグレーションを起こしていないかをフリーテストで検証していました。(工期に余裕がなかったのもありますが)…
14日前

Cursorは私を助けてくれるパートナー
インゲージ開発者ブログ
こんにちは!PMの@gorugo0516です。 最近、Cursorに「この処理って何をしてる?」と聞くようになりました。 背景 他部署から問い合わせがきたときに、「ちょっと自分でも中身を知りたい」と思うことがあります。 でも、自分でプログラムをサクッと確認することができないので、これまではチームのエンジニアに聞いていました。 もちろん、きちんとした調査が必要なときは今でもエンジニアに依頼しています。 ただ、「ここだけ少し知りたい」「このデータを見たいけど、テーブル名が分からない」──そんな場面って、PMならよくありますよね。 前職では、 「このデータはこのテーブルにある」 「この画面の処理はこ…
20日前

問いかけがチームの思考を整える
インゲージ開発者ブログ
こんにちは!24年度新卒エンジニアの ryoaio... もとい、駆け出しのPMとして働いております、ときりょです! 今回は、最近「やってみてよかった」と思った経験を2つご紹介し、その学びを共有したいと思います。 問いかけが思考を整える 今開発しているものの1番の指標は何ですか? 「プロダクトの指標が何であるか」は非常に重要です。 その中でも1番重要な指標は何か?を考えておくことは、あらゆる意思決定をしていくために欠かせない軸となります。 例えばサッカーにおける得点は、チームにとって1番の明確な指標です。 ボールの支配率やシュート数がいかに優れていても、得点が取れていなければ、そこに価値=勝利…
1ヶ月前

ジュニアエンジニアが知るべき5つの原則 (自戒を込めて)
インゲージ開発者ブログ
24年度新卒のJinYangです。 プログラマとして成長し、価値のある貢献を続けるためにみなさんはどんなことを学び、何を実践しているのでしょうか。 ヒントを得るために、最近読んでいる本『プログラマが知るべき97のこと』 www.oreilly.co.jp をご紹介させていただきます。 『プログラマが知るべき97のこと』には、73人のプログラマによる97本のエッセイに加え、日本人プログラマ8人による書き下ろし10本、合計107本のエッセイが収録されています。これらのエッセイは、コーディング、テスト、プロ意識、チームワークなど、多岐にわたるテーマを扱っており、経験豊かなプログラマたちの知恵が詰まっ…
1ヶ月前

目に優しいテーマ探しの旅
インゲージ開発者ブログ
こんにちは、kk8511です。 最近、業務で使用しているMacBookを乗り換える機会がありました。ついでに開発環境も少しでも効率的にしたいと思い、Cursorのテーマを物色してみました。 理想とするテーマの条件 目が疲れないこと この一点に尽きますが、具体的には以下の条件で探しました。 背景が真っ白や真っ黒なものは目が疲れるので避ける 色数が多いと目がチカチカするので色数は少なめ コメントがはっきり見える 薄く表示されるものが多い気がしている (一般的に重要度が低い認識なのか?) 予約語が目立ちすぎない 区別がつくのは良いがさほど役に立たない気がしている 選んだテーマ 色々試してみましたが、…
1ヶ月前

RSpecでオブジェクトの差分を見やすくする super_diff
インゲージ開発者ブログ
こんにちは、tsuka05です。 RSpecでexpectedとactualが異なっていたとき、ちょっと複雑なオブジェクトだと差分がわかりにくいことってありますよね。 そんなときに便利なGemがsuper_diffです。 Diff: @@ -1,2 +1,2 @@ -:customer => {person: #<data Person name="Marty McFly", age=17>, shipping_address: {city: "Hill Valley", line_1: "123 Main St.", state: "CA", zip: "90382"}}, -:items …
2ヶ月前

CloudFront Saas Managerで実現するSaasアプリケーションのマルチテナント
インゲージ開発者ブログ
こんにちは、株式会社インゲージでSREを担当しているanecho108と申します。 2025年4月28日に CloudFront のマルチディストリビューションがリリースされました。呼び方としては、CloudFront SaaS Manager が全体を指し、その中の機能のひとつが CloudFront マルチディストリビューションという位置づけになりそうですね。 Amazon CloudFront 向け SaaS Manager の発表 aws.amazon.com AWSコンソールのCloudFront画面でいうと、下記の箇所です。 Amazon CloudFront 向け SaaS Ma…
2ヶ月前

【Vue】slotは共通基盤をシンプルに保ちつつ、親コンポーネントに柔軟性を委ねる設計を可能にする仕組み
インゲージ開発者ブログ
導入 株式会社インゲージにてPD部に所属しております、fujimmm331です。 最近また卓球熱が再燃してきています。 そんなことはさておき。 UIコンポーネントを設計する際、再利用性と柔軟性のバランスを取ることは非常に重要ですよね。 例えば、サイト全体で統一されたモーダルやカードコンポーネントを作成したい場合、デザインの共通部分(ヘッダー、フッター、背景など)は再利用しつつ、 その内部に表示するコンテンツは個々のケースに合わせて変えたい、というニーズが頻繁に発生するのではないでしょうか。 ここで活躍するのがslotです。 slotは、コンポーネントの内部に外部から任意のコンテンツを挿入するた…
2ヶ月前

【SQL】ウィンドウ関数で移動平均を簡単に計算する
インゲージ開発者ブログ
データ分析をしていると、「移動平均」を計算する場面がよくあります。たとえば、売上データのトレンドを把握したり、ノイズを減らしてスムーズなデータ傾向を見たいときに便利です。この記事では、SQLのウィンドウ関数を使って移動平均を計算する方法を、初心者にもわかりやすく解説します。
2ヶ月前

AIコーディングを活用したフロントエンドテスト推進の取り組み
インゲージ開発者ブログ
こんにちは、フロントエンドエンジニアの raraya です。 こちらの記事 でも触れておりますが、弊社では AIコーディング を活用しながら開発を進めています。 今回はその実践例として、フロントエンド領域におけるテストコード整備をAIで効率的に推進する取り組み をご紹介します。 補足:本記事では考え方・方針を中心に紹介します。 AIコーディングのプロンプトや、Vitest / ESLint / SonarJS の細かい設定方法など、具体的な手順には触れていません。 これらの詳細は公式ドキュメントや各種記事をご参照ください。 背景 これまで弊社では、開発者による STG 環境での検証やドッグフー…
2ヶ月前

本「科学的根拠に基づく最高の勉強法(安川康介)」
インゲージ開発者ブログ
id:kizashi1122 です。 お久しぶりです。 だいぶ前に牛尾剛さんの以下の記事を読みました。 note.com この記事を読んでああ僕も読まないとなと思いつつ、頭の片隅にそのことがひっかかりながらも月日が過ぎ去っていきました。 最近、子どもの勉強方法についても考えないとなあと思っていたところこの本を思い出しました。 読んでみるか。 著者の安川さんはアメリカで臨床医をされています。高校・慶應義塾大学でも好成績で卒業されて、日本の医師国家試験・アメリカの医師国家試験にも合格されているという大変優秀な方です。 この本では、その安川さんが当時ご自身が勉強していた方法と比べたりしながら、実際に…
3ヶ月前

Android - Audio Focus とは何か
インゲージ開発者ブログ
こんにちは、masm11 です。 私のスマホは Android です。これを使ってアプリを作ることもあります。 今回は Android で音楽アプリを作ろうと思ったらきっと避けては通れない "Audio Focus" について説明したいと思います。 Audio Focus とは どのアプリが音を鳴らしているかを、アプリたちの助けを借りながら、Android OS が管理する仕組みです。 例えば、音楽アプリを2つ起動して、両方のアプリで音楽を再生してもあまり嬉しくありませんね。 後から再生したら、前再生していたアプリが止まってくれると嬉しいです。 例えば、アプリがちょっとの間音を鳴らしたい時、音…
3ヶ月前

strip関数にご用心
インゲージ開発者ブログ
皆様こんにちはwasatingです。 今回はpythonのstrip関数を使った結果事故ったので共有していきたいと思います。 ご存じの方も多いかと思いますが、strip関数は以下のような動きをします。 sent = """ 技術ブログ記述中… """ print(sent) # # 技術ブログ記述中… # # print(sent.strip()) # 技術ブログ記述中… sent2 = "Now writing..." print(sent2.strip("N")) # ow writing... つまり、 引数なしの場合、元の文字列の前後から空白、改行、タブ等を削除 引数が含まれる場合、元…
3ヶ月前

フィードバックの質を変えるヒント
インゲージ開発者ブログ
こんにちは!UI/UXデザイナーのYOROです! 最近社内でレビューやフィードバックについて色々と悩みを相談したところ、『みんなではじめるデザイン批評』という本をおすすめしてもらいました✨ まだ最初の章を読んだだけですが、チームで共有したくなるような大切な気づきがいくつもあったので、ブログにまとめてみました! フィードバックは、ただの「リアクション」? フィードバックには3つのタイプがある 1️⃣ 反応型 2️⃣ 指示型 3️⃣ 批判的思考型 フィードバックがうまくいかない本当の原因 これから意識していきたいこと おわりに みんなではじめるデザイン批評―目的達成のためのコラボレーション&コミュ…
4ヶ月前

【SQL】NOT IN 句と NULL の注意点
インゲージ開発者ブログ
The moment you doubt whether you can fly, you cease for ever to be able to do it. (拙訳: 飛べるか否かを疑った瞬間に、永遠に飛べなくなってしまう) ジェームス・マシュー・バリー「ピーター・パンとウェンディ」より こんにちは!休みという概念がないくらい忙しい hikaru-kimi です! 弊社のような自社サービスを運営する会社で避けられないのがエラーや不具合の調査です。 調査の際は、ソースコードはもちろんのことデータベースの調査も不可欠である場合が往々にしてあります。 SQL を書く際、NOT IN 句を使って…
4ヶ月前

初めてRubyカンファレンスに参加しました!
インゲージ開発者ブログ
こんにちは!25卒のエンジニアLeeと申します!今回は初投稿です。 Ingageのブース出展を行いながら、関西Ruby会議08を参加しました。非常に充実な経験でした。 ブース内容の準備 Ruby会議当日 セッション After Party! 終わりに ブース内容の準備
4ヶ月前

関西Ruby会議08 ブース展示&参加レポート!
インゲージ開発者ブログ
はじめまして!25新卒のbit0です! 2025年6月28日に行われた関西Ruby会議08にイベントスポンサーとしてブース展示を行いましたので、その様子とカンファレンスに参加した感想をレポートします! ブース準備編 時は遡り5月初め、部内会議にて「そういえば関西Ruby会議スポンサー出展するからなんか考えて!」と渡されたのが始まりでした。 企画 先輩・同期と3人4脚で企画。 たくさんのRubyistが集まるイベント!これを活かさぬ機会はないと、弊社の技術顧問であるRubyの生みの親Matzさんを全面に押し出してインゲージを覚えてもらおう!となり、頭を捻りに捻ってでた案が「Matzさんをアスキー…
4ヶ月前

Cursorから始まったAIコーディング体験とClaude Codeとの使い分けで見えたコンテキストスイッチの最適化
インゲージ開発者ブログ
こんにちは。毎日10km走っても痩せなくなり、最近は遂に太り始めたymd2です。 概要 4月からCursorを業務で使い始めて、先週からClaude Codeの利用を開始しました。両方を併用してみて分かった、それぞれの特徴と効果的な使い分けについて書いてみます。 ざっくり結論としては、CursorとClaude Codeは/ideで連携もできるため、どちらか一方を選ぶよりも、適材適所で使い分けることで開発効率を最大化できると感じています。 Cursorでの4ヶ月間の体験 最初の感動と日常化 VS Codeライクな操作感で導入しやすかった リアルタイムコード補完がとても快適! Chat機能による…
4ヶ月前

どんな評価基準で、どこまで満たせばよいのか?を考える第一歩
インゲージ開発者ブログ
はじめに ソフトウェア開発において品質に関する議論を始めると、必ず話題になるのがこの問いです。 どんな評価基準で、どこまで満たせばよいのか? 品質を担保するうえで必ずあがるこの問いに、明確な答えを出すにはさまざまな要素を加味して検討する必要があります。 ビジネス戦略との整合性 製品のコンセプト 利用者の特性 実際の利用シーン 競合との差別化ポイント ステークホルダーからの期待 開発体制や技術的制約 など、検討事項が多岐にわたるため手間と時間がかかるのが現実です。 結果として定義されないまま、あいまいな状態になってしまっている開発現場も少なくありません。 そこで今回は、最初の第一歩として評価基準…
5ヶ月前

メタ思考はスキルであり、習慣だった
インゲージ開発者ブログ
はじめに こんにちは!インゲージに入社して、もうすぐ1年が経とうとしているPMのgorugo0516です。 今回は、最近読んだとても面白い本について感想を書いていこうと思います。 この本を読むきっかけ 先日、外部のPMコーチの方との1on1の機会がありました。 そこで私は、「自分が目指したいPM像」と「現在感じている悩み」について率直に相談しました。 私が目指しているPMは、ユーザー自身もまだ気づいていない課題を見つけ出し、それを“使いたい”と思える形で提示・解決できるPMです。 また、仮説を自ら立て、検証・学習・改善のサイクルを主体的に回せるようになりたいと考えています。 一方で、現状は顧客…
5ヶ月前

AWSのイベント「Coding Agent at Loft」に登壇してきました!
インゲージ開発者ブログ
どうも、さまざまなAIサービスのサブスクのおかげで財布が薄くなっている @hansprocs です!😇 毎日のように新しいAIサービスやモデルの新バージョンが出たりして、いったいどんなサービスをどう使いこなせばいいんだろ、という疑問が止まりません。 費用はかかるものの、ちゃんと使いこなさないとオモチャに過ぎないものになってしまいがちですよね。 参加したイベント この度はAWS ジャパン合同会社主催のCoding Agent at Loftに参加してきました! aws.amazon.com 生成AIツール3大将(と私が思っている)の一つであるClineと、AWSのAIサービスの主力であるBedr…
5ヶ月前

Rubyで楽しくアートコードを作ろう
インゲージ開発者ブログ
こんにちは。24年度新卒の ryoaio です。 1年が経ち、最近は興味のあったPdMとしても活動し始めております。 挑戦できる環境に感謝し、日々成長します🔥 弊社は 関西Ruby会議08 スポンサーです!! 今年6/28(土)開催される関西Ruby会議08。 弊社ingageも協賛し、今年はブースも開きます!🙌 regional.rubykaigi.org 今年の関西Ruby会議のテーマは「Rubyと作ろう」 さて、ブースはどんな内容にしようかな。 せっかくエンジニアが集まるカンファレンス。エンジニアの方に興味を持っていただけるようにしたい。 ...ここで松山Ruby会議で魅了されたTRIC…
5ヶ月前

PostgreSQLでベクトル検索を極める:pgvectorの実力検証しながら、pgvectorscaleも気になるから見てみた件について
インゲージ開発者ブログ
こんにちは!2024年新卒入社のJinyangです。 時の流れは本当に早いもので、気づけば株式会社インゲージに入社してから一年が経ちました。今回でこのブログも三度目の投稿となります。 さて、今回のテーマは何にしようかと悩んでいたのですが、やはり「RAG(Retrieval-Augmented Generation)」について書くことにしました。 RAGといえば一時期大きな注目を集めましたが、最近では当たり前の技術として定着しつつありますね。特に今回注目したいのは、RAGの「Retrieve」部分、つまりナレッジベースからの効率的なドキュメント取得です。 現在、ベクトル検索(文章の意味や文脈の類…
5ヶ月前

RuboCop に興味が出たので Ast を眺めてみた
インゲージ開発者ブログ
こんにちは kk8511 です。 最近ふとRuboCopに興味が出たのでCopの実装方法を調べていました。 Development :: RuboCop Docs Ast を眺めただけで力尽きましたが備忘録として記載します。 AST RuboCop では Abstract Syntax Tree (AST) が利用されるので、まずruby-parseコマンドでサクッと AST を確認してみました。 値 値には型がつく。 % ruby-parse -e '1' (int 1) % ruby-parse -e '"hello"' (str "hello") % ruby-parse -e '[1,…
5ヶ月前

ワンライナーでよく使うコマンドラインオプション
インゲージ開発者ブログ
こんにちは、tsuka05です。ワンライナー書いていますか? 今日はRubyでワンライナーを書くときによく使うコマンドラインオプションをいくつかご紹介します。 -e コマンドラインで直接スクリプトを指定します ruby -e 'puts "Hello, World."' Hello, World. -n ファイルや標準入力から1行ずつ読み込んで、与えられたスクリプトをループします。 読み込まれた内容は $_ に格納されます。 ruby -n -e 'puts $_' *.txt マッチしたファイルの内容を出力します -p -nに加えて、各ループの最後に $_ の内容を出力します。 ruby -…
6ヶ月前

未経験SRE大募集しています!!
インゲージ開発者ブログ
こんにちは、株式会社インゲージでSREを担当しているanecho108と申します。 この記事のタイトルだけを見ると信頼性に欠けるように感じるかもしれませんが、真面目に募集しています。 募集の背景 当社では、Re:lationというSaaSサービスのプロダクトを開発・運用しています。ありがたいことに、事業は順調に成長しており、それに伴ってインフラの複雑性や求められる品質も高まっています。これらのニーズに応えるため、SREチームの体制強化が急務となっています。 ingage.jp 将来的な拡張性や安定性を見据えた体制づくりの一環として、新たな仲間を募集しています。SRE未経験でも問題ありません。A…
6ヶ月前

星つきのメソッド?JavaScriptのGeneratorについて
インゲージ開発者ブログ
はじめに 普段はあまり見かけないですがたまにオープンソースのJavaScriptコードを読んでいると、以下のように*がついているものを見かけることがあります。 function *gen() { yield 1; yield 2; yield 3; } しかし、JSでは変数名に$と_以外の特殊文字は使用できません。 これは何をするものなのでしょう? Generatorとは 直訳すると「生成機」になるGeneratorは、メソッドを 途中で止めることができる という特性を持っています。 一般的にJSでのメソッドは一度実行されるとreturnするまでにはすべての処理が動きます。 しかし、Gener…
6ヶ月前

集計データで日付の抜けを埋めるSQLテクニック
インゲージ開発者ブログ
SQLで日別のイベントデータを集計するときに、もとのレコード自体がなかった日が出力結果から抜けてしまってわかりにくいときありますよね。そんなときに、抜けた日付を埋めて出力するテクニックをご紹介。
6ヶ月前