Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
agemonoにあたった話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
MOK
March 25, 2021
Programming
550
0
Share
agemonoにあたった話
初心者がはじめて出会った業務用アプリを消化しようと試みたときの話。
MOK
March 25, 2021
Other Decks in Programming
See All in Programming
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
500
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
160
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
320
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
320
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
340
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
230
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
440
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.8k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
180
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
1
330
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
510
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
330
A better future with KSS
kneath
240
18k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Fireside Chat
paigeccino
42
3.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
500
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
From π to Pie charts
rasagy
0
160
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
450
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Transcript
agemonoにあたった話 株式会社トリクトラック M. OKawara
自己紹介 ▪ 3年ほど前、東京から福岡に移住し、愛知の会社にフルリモートで就職 - 業務システムを主に開発している会社 - 現在はブロックチェーンを利用した企業システムと学校業務で使用するシステム が主な事業 ▪ 入社時のIT知識、最低限(なんならシステム開発会社と知らなかった)
- お客さんとの調整業務を中心に担当 - ローカルでRailsアプリを立ち上げて動作確認はできるようになりました
Fukuoka.rb・Ruby Kaigi・Rails Girls Fukuoka.rbの100回目LT大会に参加 → ぼちぼち勉強してたらRuby会議が福岡でやるらしいのでお手伝い → Rails Gilrsが福岡でやるから参加 → Fukuoka.rbが200回記念LT大会ということで参加を決めました
大まかな構成 「CapybaraにGherkinを食 わせて、Cucumberじゃなく てTurnipなんだけど…」 え?? 「agemonoでまず動作確認 をしてから各学校に組み込 んで…」 え??? <<
Rails Engine >> UserB画面【natane】 Version1の場合のみマウント << Gem >> 【miso/tare】 Version切替 DB << Rails Engine >>【agemono】 コントローラ JSON API UserA認証・管理者認証 管理機能 << React >> UserA画面Ver1 << React >> UserA画面ver2 Web API << npm plugin >> 画面コンポーネント 【nimono】 React on Rails React on Rails これがさらに他の複数システムと Web APIで連携
なるほど わからない
「agemonoはGemでkoromoをつけて仕上げる」 - 『GemってRubyのGemのこと?』 - なんとなくわかるが、説明を聞いてもしっくりこない、わからない - (でも毎日の業務でなんとなく立ち上げてPRの動作確認してお客さんに説明して いる分には問題ない、とはいえ気になる) → 公式ページのRails Engineのページを読め
- なるほど書いてありました
agemonoの正体(実際の構成) 社内で作ったRails Engine たまにコアとかGemとか呼ばれる - よく見ると最初に渡された図にちゃんと 「Rails Engine」と書いてあった - agemono単体で立ち上げて動作確認をし
て、各学校に組み込んで動作確認をして … を繰り返すうちに、Railsガイドに書いてある ページの意味がわかるようになってきた - でもいつまでもわからない部分がある
『RailsエンジンってGemだから』 - Gemってつまり何? - RubyとかRailsの機能をとりだしてパーツにしたもの - Railsエンジンってつまり何? - 『RailsエンジンってGemだから』 つまり『Railsエンジン==Gem』? → まったくわからない
Railsエンジンって何? - 勉強するにつれどんどんわからなくなるGemとRailsエンジンの違い - それどころかRailsアプリとRailsエンジンの差すらわからない - 公式ページを読んでなるほどと思っても余計にわからない では何がわからなかったか?
つまりRailsエンジンとはこういうこと? Gem Rails エンジン - GemとRailsエンジン、全然イコールじゃなかっ た - 『Gem=小さなRailsアプリ』だという思い込みが 先に発生してしまい、何がRailsエンジンの特殊
性か全然わからなかった - Gemは確かに、機能を取り出してパーツにした ものだったが、モデル・コントローラー・ビューを 普通は提供しなかった
我々のRailsエンジンの使い方 - Agemono(=Railsエンジン)側で機能を追加して、それを各学校のアプリに組 み込めば、学校側のアプリで個別に機能を追加しなくても大丈夫 - 実際の開発工程でも、agemonoを開発してそこで動作確認をしてから、各学校 のアプリに組み込んでもう一度動作確認する工程を踏んでいる - 自分が担当してるのは学校側の要望を聞き取り、エンジニアに伝えつつ、ちょっ とした文言レベルやヘルプの文言などは自分で修正(たまにagemono側での文
言修正もある)
初対面のRailsアプリを『普通』と思い 込み過ぎ何もわからなかった
何がわからないのか - agemonoだけでもデザインとかは簡素だけどとりあえず動いているわけ で、ユーザー画面のデザインはnimonoが担当しているのでは? - 『各学校のアプリはうすいRailsの層』『agemonoは邪悪』…etc 言われている全く意味がわかってなかったが、各学校のアプリには本当に 自分が修正しているちょっとした文言しか存在してなかった
ちなみにagemonoがそれだけで動いた理由 本ガイドでの説明用に作成するエンジンには「 blorgh」(blogのもじり) という名前を付けます。このエン ジンはホストアプリケーションにブログ機能を追加し、記事とコメントを作成できます。 本ガイドでは、最 初にこのエンジンを単体で動作するようにし、次にこのエンジンをアプリケーションにフックします 。 https://railsguides.jp/engines.html 当然のようにあるこの記述の通り、agemonoに最初からテスト
用のアプリが組み込まれているだけだった
書いてあっても理解できてなかった - まだまだ、Railsガイドに書いてある内容に新発見がある日々 - どの追加開発・修正なら個別に対応できるか、全体に影響するのか、最 終的にはエンジニアに確認するのは当然だが、自分にある程度知識が あると多少は難易度がわかるので精神的に楽になる (自分で修正できるか、エンジニアに渡す必要があるか等…) (ただし生兵法が一番怖い) (知らない方が実は気楽なのかもしれない)
補足 - miso/tareはagemonoに吸収、学 校の種類による機能の切替は Feature Togglesで実施 - nataneをGem化する利点は現状 なしという判断 -
今後Agemonoとは別々にnatane (UserB画面の機能)を開発する必 要があるかどうか
Railsアプリって 大変なんだなあ (サンプル数1) 「RubyのGemとは何か」勉強してたつもりでいても、あと「agemonoはコアになるエン ジンです」と言われていても、なんとなくわかってるだけだった 同じ文章を読んで、改めて新しい発見が沢山ある日々(お得) nimonoがなんでnimonoなのかはまだ全然わかってない
最後の要点 何が専門用語で、何が社内用語 かわかるようになりたい でも名前はもう少しわかりやすくても良かったかもしれない
十分に発達したテクノロジーは、 魔法と見分けがつかない - Arthur C. Clarke
本当に大事なことはだいたい 公 式ドキュメントに書いてある 同じ文章も理解の段階で読み取 れる内容も変わってくる
ご清聴ありがとうございました