Techouse Developers Blog
https://developers.techouse.com/
テックハウス開発者ブログ|マルチプロダクト型スタートアップ|エンジニアによる技術情報を発信|SaaS、求人プラットフォーム、DX推進
フィード

Kaigi on Rails 2025 - Falconサーバの性能検証をして速さを実感してみた
2
Techouse Developers Blog
FalconとはRack互換のHTTPサーバです。 Fiberという軽量なスレッドでリクエストを処理することで、特にI/Oバウンドなアプリケーションにおいて優れたパフォーマンスを発揮します。本講演では「Falcon」というアプリケーションサーバのビルドやデプロイ、監視周りについての最新情報が共有されました。 本記事では、そもそもFiberとは何なのか?FalconサーバはなぜI/Oバウンドな処理において高速なのか?を説明しつつ、講演で示された内容を基にFalconの性能を検証してみました。
7日前

KaigiOnRails-2025 day1 入門FormObjectの話を聞いてきた
3
Techouse Developers Blog
FormObjectってよく使われているけれど、概念や使いどころをうまく説明できる人って案外少ないんじゃないでしょうか。「なんとなく使っているけど、本当にここで使うべきなの?」 「他の人に説明を求められても、うまく答えられない。」 「Rails Wayとの使い分けがよくわからない。」そんな経験、ありませんか。
7日前

Kaigi on Rails 2025 ActionViewからReActionViewへ - HTML構造を理解するERBエンジン
3
Techouse Developers Blog
ReActionView(Reactive ActionView)は、RailsのActionViewと互換性を保ちながら、現代のフロントエンド開発の要求に応える次世代のERBエンジンです。Marco Roth氏は、2025年を通じてRubyKaigi、RailsConf、Rails Worldと段階的にこのビジョンを発表してきました。Hotwire、Stimulus、Turboなどの登場により、HTMLテンプレートの重要性が再び高まっています。ReActionViewは、従来のActionViewが抱える課題を解決し、Railsのビューレイヤーに新しい可能性をもたらそうとする取り組みです。
8日前

【Kaigi on Rails 2025 Day2】履歴 on Rails : Bitemporal Data Modelで実現する履歴管理
9
Techouse Developers Blog
このセッションでは、引っ越しによる住所変更や所属部署の異動など、時間とともに変化する情報を正確に扱う履歴管理について、Bitemporal Data Modelと呼ばれるデータモデルと、その実装を支える自社開発のOSSであるactiverecord-bitemporalを中心に、実務での試行錯誤を率直に共有してくださいました。本記事では、このセッションの内容を紹介していきます。
8日前

Kaigi on Rails 2025 Webアプリケーションにおける非同期ジョブの設計原則を振り返りつつ実践してみた
Techouse Developers Blog
非同期ジョブとは、Webサーバーのリクエスト処理とは別のプロセスで実行される処理のことです。通常のWebアプリケーションでは、ユーザーからのリクエストを受け取ったWebサーバーがその場で処理を行い、結果を返します(同期処理)。一方、非同期ジョブでは、時間のかかる処理を「ジョブ」としてジョブキュー(実行待ちのジョブが並ぶ待ち行列)に登録(エンキュー)し、Webサーバーとは別のワーカープロセスで処理します。Webサーバーはジョブをキューに登録したらすぐにレスポンスを返すため、ユーザーを待たせずに済みます。
11日前

大量データの重複検出をUnionFindと逆引きインデックスで劇的に高速化した話
Techouse Developers Blog
先日、業務で重複判定を実装する機会がありました。その中でUnionFindと逆引きインデックスという技術を使ったのですが、実際に導入してみると非常に効果的だったので、今回は商品マスタの重複検出を例にこれらの技術を用いて重複検出の課題を解決した話をします。
1ヶ月前

Sidekiq serverを分離してRailsの非同期処理の遅延を解消した話
Techouse Developers Blog
弊社では、ノンデスクワーカーに特化した求人サービスジョブハウスを運営しております。 ジョブハウスではサービスにご登録頂いた求職者の方に求人情報を直接お届けするために、メールマガジン (以降メルマガと呼称します) を配信しています。 メルマガの配信は、Sidekiqを用いてジョブハウスのRailsアプリケーション内で行われています。 しかし、配信数が非常に多く、そのため配信処理負荷が非常に高いため、実行に時間がかかっておりました。 そのため他のジョブの実行が大きく遅延し、最新のデータがサービスに反映されるまでの時間が大幅に増大し、データの鮮度を著しく損なっておりました。
2ヶ月前

ちょっとだけ、自慢させてください。うちのハイレベルなインターン生。【LTイベントレポート】
Techouse Developers Blog
今、私たちの会社には、優秀で、面白く、そして何より技術が大好きなインターン生たちが集まってくれています。先日、そんな彼らが主役のLT(ライトニングトーク)イベント「Techouse Engineer LT Night」を開催したのですが、その成長ぶりには目を見張るものがありました。今回は、そのイベントの様子をレポートします。
4ヶ月前

AWS Summit Japan 2025 参加レポート
Techouse Developers Blog
2025年6月25日、26日に開催された AWS Summit Japan 2025 に参加してきました!弊社からは、総勢 15 名のエンジニアが参加しました!日々の業務で利用している AWS の最新情報をキャッチアップするとともに、AWS コミュニティの熱気をダイレクトに体感してきました。今回は特に印象に残ったセッションやブースを紹介します。
5ヶ月前

【Flutter】MethodChannelで実装するiOSアプリの漢字→かな自動入力機能
Techouse Developers Blog
今回は、Flutterアプリケーションにおいてユーザーが漢字で姓名を入力した際に、自動的にふりがなを補完する機能を実装した際の技術的な取り組みについてご紹介します。特に、FlutterのMethodChannelを活用してiOSネイティブAPIと連携し、オフラインで動作する漢字→ひらがな変換機能を実現した過程を詳しく解説いたします。
5ヶ月前

RubyKaigi 2025 - Toward Ractor local GC (Day3)
Techouse Developers Blog
かつてシングルコアCPUが主流だった時代は、毎年のようにCPUのクロック周波数の向上やトランジスタ数の増加が続き、ソフトウェアはその性能向上の恩恵を容易に享受できていました。しかし、物理的な限界からCPUのシングルコア性能の向上は頭打ちとなり、代わって複数のコアを搭載するマルチコアCPUが主流となりました。このマルチコアアーキテクチャの恩恵を最大限に引き出すためには、並行・並列処理を実現する必要があります。直列 (Serial) と並行 (Concurrent)、並列 (Parallel) の違いを図に表すと、以下のようになります。
5ヶ月前

RubyKaigi2025 - ZJIT: Building a Next Generation Ruby JIT
Techouse Developers Blog
MaximeさんはShopifyのRuby開発チームのリーダーで、RubyKaigiでも2021年から毎回 JITコンパイラの進化について発表している、いわば常連です。 毎回YJIT に関連する心躍る発表を用意してくださるMaximeさんでしたが、今回はなんと新しいJITコンパイラ「ZJIT」について発表されました。スケジュール一覧の中でも「ZJIT」のキーワードはひときわ目を引き、開催前からとても楽しみにしていました。この記事ではセッションの内容に沿って、RubyにおけるJITコンパイラのこれまでについての振り返りから始め、ZJITの開発背景や技術的詳細、そして今後の期待される展開などを紹介します。
6ヶ月前

RubyKaigi 2025 - Porting PicoRuby to Another Microcontroller ESP32(Day3)
Techouse Developers Blog
PicoRubyとは、組み込み環境でRubyを動かすために開発された、超軽量なRuby実装です。通常のRuby(MRIやCRuby)は、PCやサーバのようなある程度リソースがある環境向けに作られています。一方、PicoRubyはマイコンのような小さな機械でも動作するように設計されています。
6ヶ月前

RubyKaigi 2025 Performance Bugs and Low-level Ruby Observability APIs (Day2)
Techouse Developers Blog
Low-level Ruby Observability API とは、Ruby プログラムを動かす CRuby VM のレイヤーに近い、通常は意識されない詳細に関わる計測を行う API のことです。これらの API を使うことで、アプリケーション内部の動きを可視化できます。アプリケーションの応答結果は正しいが応答時間が長すぎる場合や、検証環境では問題ないのに本番環境でのみ問題が発生する場合の原因として、いくつかの例が挙げられています。
6ヶ月前

RubyKaigi 2025 - Making TCPSocket.new Happy!
Techouse Developers Blog
本記事では、RubyKaigi 2025の2日目に行われたMisaki Shioi(@coe401_)さんによるセッション、「Making TCPSocket.new "Happy"!」について紹介させていただきます。が、その前に前提知識として Happy Eyeballs について軽く紹介します。1981年から長く使われてきた IPv4 ではアドレス数の枯渇が問題となっており、その解決策として1990年代から IPv6 の普及が進められています。日本ではユーザー側の回線で IPv6 の普及が進んでおり、報道によれば2024年2月に IPv6 普及率が50%に達したところです。
6ヶ月前

RubyKaigi 2025 - From C extension to pure C: Migrating RBS (Day2)
Techouse Developers Blog
2日目はpicorubyやビルドシステムに関する話を中心に聞きました! その中でも自分が紹介したいのは、Alexander MomchilovさんによるFrom C extension to pure C: Migrating RBSというセッションです。本記事では、その内容をまとめてご紹介します。
6ヶ月前

RubyKaigi 2025 - Ruby Taught Me About Encoding Under the Hood
Techouse Developers Blog
本記事では、1日目の Mari Imaizumi (@ima1zumi)さんによるKeynote セッション、Ruby Taught Me About Encoding Under the Hoodについて紹介させていただきます。今回紹介するセッションの登壇者はハンドルネーム@ima1zumiとして活動し、Stores,inc に在籍されているMari Imaizumi さんです。(以後ブログ内では @ima1zumi さん と呼ばせていただきます)2025年3月にRubyコミッターに就任し、主にIRB・Relineのメンテナンスをなさっています。本セッションでは @ima1zumi さんが実際に出会って対処した issue や Unicodeのアップグレード作業の内容について具体的な事例を交えて紹介します。
6ヶ月前

RubyKaigi 2025 に参加しました
Techouse Developers Blog
2025年4月16日-18日に開催された RubyKaigi 2025 に参加してきました。ということで、RubyKaigi 2025 に3日間参加してきたレポートをお届けします。今年の RubyKaigi 2025 は、愛媛県松山市の愛媛県県民文化会館で開催されました。会場は道後温泉や松山城にもとても近く、Techouse 参加者の全員が夜は毎日温泉に行ってました。
7ヶ月前

RubyKaigi 2025 Automatically generating types by running tests (Day1)
Techouse Developers Blog
Rubyは動的型付け言語であり、型宣言に該当する文法が存在しません。一方で、Rubyで型を扱う手段が一切ないわけではなく、型宣言を記述するための言語であるRBSや、RBSを用いて型検査をするgemであるSteepなどが開発されています。RBS::Traceは、この発表のスピーカーである@sinsokuさんによって開発されているgemで、テストを実行することで型宣言を自動で記述してくれるツールです。
7ヶ月前

RubyKaigi 2025 - Speeding up Class#new (Day2)
Techouse Developers Blog
Rubyではオブジェクト指向プログラミングの基本として、Class#newメソッドを使ってインスタンスを作成します。この基本的かつ頻繁に使用されるメソッドの最適化は、Ruby全体のパフォーマンス向上に直結します。この記事ではRuby 3.5(4.0)にてClass#newがどのようにして高速化されるかについて解説します。
7ヶ月前

RubyKaigi 2025 - On-the-fly Suggestions of Rewriting Method Deprecations (Day3)
Techouse Developers Blog
Masato Ohba(@ohbarye)さんによる「On-the-fly Suggestions of Rewriting Method Deprecations」についてご紹介します。このセッションでは、開発者なら誰もが経験する「メソッド非推奨化」に伴うコード修正を、もっと楽にするためのツールとその仕組みが提案されていました。
7ヶ月前

RubyKaigi 2025 - Improvement of REXML and speed up using StringScanner (Day2)
Techouse Developers Blog
本記事では、RubyKaigi 2025 2 日目の NAITOH Jun さんの講演 Improvement of REXML and speed up using StringScanner の中で触れられていた、REXML が v3.2.7 で遅くなった件について、その原因と解決までの流れを調査した結果をご紹介します。個人のメモのような内容になってしまいますが、同じ疑問を抱いた人の理解の一助になれば幸いです。
7ヶ月前

RubyKaigi 2025 - Ruby's Line Breaks (Day1)
Techouse Developers Blog
本記事では、RubyKaigi 2025 1日目のYuichiro Kaneko (@spikeolaf) さんによるセッション、「Ruby's Line Breaks」について紹介させていただきます。Rubyを書いていると、どこで改行できるのか、迷うことがあると思います。例えば、以下の2つのコードを見てみましょう。
7ヶ月前

RubyKaigi 2025 - コード懇親会 に参加しました
Techouse Developers Blog
コード懇親会 はアンドパッド様とクリアコード様が主催する、通常の懇親会とは一味違ったコンセプトのイベントです。一般的な懇親会では参加者同士が飲食しながら会話を楽しむ形式が多いですが、コード懇親会はその名の通り「コード」を軸にした交流の場となっています。
7ヶ月前

RubyKaigi 2025 - Make Parsers Compatible Using Automata Learning (Day1)
Techouse Developers Blog
Rubyには、parse.yからパーサージェネレータを使って生成したパーサーと、手書きパーサーであるPrismの2種類のパーサーが存在します。 本セッションでは、「オートマトン学習」という技術を用いてこれら2つのパーサーの間の互換性の問題を発見したことについて述べられました。 また、オートマトン学習のアルゴリズムの1つであるAngluinのL*や、その背景知識となるオートマトン理論の基礎についてもわかりやすく解説されました。
7ヶ月前

RubyKaigi 2025 - How to make the Groovebox (Day2)
Techouse Developers Blog
RubyKaigi 2025 DAY2 の @asonas さんによる "How to make the Groovebox" というセッションについて紹介させていただきます。私自身は音楽制作をしたことがない初心者です。専門用語や理論について誤った解釈がある可能性があります。ご理解をお願いします。Groovebox は、asonas さんにより開発された Ruby で電子音楽を作ることができるCLIアプリケーションです。シンセサイザー、ステップシーケンサー、エフェクターなどを組み合わせて音楽制作するためのツールで、すべてが Ruby で実装されています。
7ヶ月前

RubyKaigi 2025 - The Implementations of Advanced LR Parser Algorithm (Day2)
Techouse Developers Blog
今回は RubyKaigi 2025 の二日目のセッション、junk0612 さんの「The Implementations of Advanced LR Parser Algorithm」について内容を紹介させていただきたいと思います。junk0612 さんは Ruby で実装された parser generator である Lrama のコミッターであり、主に parser を生成するアルゴリズムを実装されている方であると認識しております。昨年も RubyKaigi 2024 にて「From LALR to IELR: A Lrama's Next Step」というタイトルでお話をされていました。昨年の発表の内容は、parser の生成アルゴリズムを LALR から IELR への移行することを主題とし、IELR のコンセプトや実装の概要についてお話されていました。当時はその PullRequest は Draft の状態でしたが、一年の間にその PR がマージされ、IELR アルゴリズムを利用して parser を生成できるようになりました。以下のように lr.type オプションを ielr に指定することで、LALR ではなく IELR を利用して parser を生成することができます。
7ヶ月前

RubyKaigi 2025 - TRICK に参加しました
Techouse Developers Blog
今回は、RubyKaigi 2025 で開催された「TRICK」というイベントに参加した経験と、自分の作品について紹介させていただきます。TRICK (Transcendental Ruby Imbroglio Contest for rubyKaigi) は、Ruby の言語特性を活かした技巧的なプログラミングを競うコンテストです。参加者はRubyの特徴を活かした驚きや面白さを感じさせるコードを投稿し、数名の審査員が評価を行うという内容です。今年のRubyKaigi で開催された TRICK 2025 は作品のレベルが非常に高い回だったようで、私の作品は入賞には至りませんでしたが、佳作という形で紹介いただきました。
7ヶ月前

新卒OSS体験記
Techouse Developers Blog
2024年04月18日、弊社ではOSS Gate ワークショップというイベントを開催しました。このイベントは新卒向けの内容であり、講師として株式会社クリアコード様をお招きし、OSSにIssueを立てて実際にPull Requestを作成するまでを伴走していただく内容でした。詳細なイベント内容については弊社の過去ブログをぜひご参照ください。
7ヶ月前

「この求人を見た人は他にもこんな求人を見ています」をABテストしてみた
Techouse Developers Blog
ジョブハウスは、工場やドライバーなどの仕事を探すことができる求人メディアです。今日は、「この求人を見た人は他にもこんな求人を見ています」というレコメンド施策を例に、ABテスト基盤の実装やABテストを利用した結果ついて紹介します。
8ヶ月前