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
あるチームでの技術選定で考えてること(外部向けに修正版)
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
vividmuimui
May 31, 2025
Programming
14
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
あるチームでの技術選定で考えてること(外部向けに修正版)
vividmuimui
May 31, 2025
More Decks by vividmuimui
See All by vividmuimui
開発組織まわりで最近考えているあれこれ
vividmuimui
0
27
bundle-update.pdf
vividmuimui
0
130
Dependabot vs BundleUpdate+LockDiff
vividmuimui
0
96
あなたの知らないRuboCopの設定
vividmuimui
0
250
最近(2019/02/03)の #Ruby , #Rails , #Bundler 事情
vividmuimui
0
170
Jasperはいいぞ!
vividmuimui
0
54
Danger CI
vividmuimui
0
120
tigとかaliasなし生活を送ってみて改めてgitを覚えてる話
vividmuimui
0
130
lock_diff の紹介
vividmuimui
0
100
Other Decks in Programming
See All in Programming
5分で問診!Composer セキュリティ健康診断
codmoninc
0
590
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
210
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
540
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
230
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
150
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
130
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
320
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
390
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
910
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
Unsuck your backbone
ammeep
672
58k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
380
GraphQLとの向き合い方2022年版
quramy
50
15k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
610
Transcript
あるチームでの技術選定で あるチームでの技術選定で 考えてること( 外部向けに修 考えてること( 外部向けに修 正版) 正版) 2023/12/22 社内エンジニア忘年会LT
@vividmuimui 1
前提 & 目的 前提 & 目的 前提 まだ検討中で変更はあるかも 目的 もしみなさんが知らないGem
があったりして、所属チームに活かせ るものがあれば嬉しい。 「そのGem よりこっちがいいよ」とかあれば教えていただけると嬉 しい 2
TL;DR TL;DR Evil Martians(TechRacho 翻訳) の以下の記事をほとんど参考にしてる その他の参考情報 社内のGemfile などなど Rails:
Evil Martians が使って選び抜いた夢のgem (翻訳) 実践ViewComponent (1 ): 現代的なRails フロントエンド構築の心 得(翻訳) 実践ViewComponent (2 ): コンポーネントを徹底的に強化する(翻 訳) https://www.ruby-toolbox.com/ https://awesome-ruby.com/ 3
Rails new Rails new importmap ではなく jsbundling-rails & esbuild importmap
関連のエコシステムが整うにはもう少し時間がか かりそう たとえば dependabot が importmap-rails のフォーマ ットに package.json をそのまま扱ってpackage を管理できる方が今 は嬉しい気がする sprockets ではなく propshaft propshaft はまだベータ扱いだがいまから作るもので導入す るならまぁ問題ないのではと思ってる。 また、今後 rails のデフォルトが sprockets から propshaft に変わる可能性があるので。 対応してない 4
認証・認可 認証・認可 認証 devise, sorcery, rodash 悩ましい 認可 action_policy が良さそう
参考: pundit, banken の仕組みが良いと思っている。 「Pundit の強化版です。パフォーマンスや開発エクスペリエ ンスを重視する優れた機能を提供します。 」とのこと https://speakerdeck.com/sylph01/build-and-learn-rails- authentication Rails: Evil Martians が使って選び抜いた夢のgem (翻 訳) 5
config config anyway_config が良さそう 参考: 環境変数、yaml, Rails Credentials を扱える ruby
ファイルでメソッドも生やせる FooConfig.to_source_trace で値の読み込み元を確認できる Rails: anyway_config gem でRuby の設定を正しく整理 しよう(翻訳) 6
breadcreams, pagination breadcreams, pagination breadcreams gretel が良さそうかなぁと思っているが、おすすめがあれば教えてく ださい 以前使って体験良かったのと、 config/breadcreams.yml
に 書くので管理しやすい pagination pagy を試して見て問題なければこれにする でかいテーブルをさばこうとしたときのパフォーマンスが良 い この情報2021 年なので、kaminari とか will_pagenate の方 がいいとか改善されてるとかの情報あれば教えてください! https://techracho.bpsinc.jp/hachi8833/2021_07_13/57481 7
その他 その他 検索: ransack protection: rack-protection feature flag: flipper or
feature_toggles 画像管理: active_storage or shrine seed: seed-fu ( これしかない?) test 関連 rspec, factory-bot, faker Zonebie(Timezone をランダムにする) log 系: lograge, audited, rack-user_agent CI 系: danger, review-dog, brakeman database 関連 補助: annotate, bullet 変なSQL 投げないように: database_consitency, isolator, strong_migrations データメンテ: maintenance_tasks 8
ここからがメイン ここからがメイン 9
モジュラモノリス モジュラモノリス packwerk packwerk は Shopify 製のモジュラモノリスのための仕組 み。境界違反の検知とかもできて高機能。 1 つのプロダクトの中に複数のシステムがあるので、モジュラモノリスとして
扱えるのが良い気がしている。 だが、本当に必要かは検討が必要で悩ましい。本当に必要になるまでは単に namespace とかrails engine でもいいのかも。 10
チームやサービスの状況によって違うが、以下のように思っている マルチリポよりモノリポの方がいい マイクロサービスでない限り、モノリポのほうが便利 マイクロサービスでないなら、チームは完全に独立して動か ないし別システムでもないので1 つのシステムで扱っておいた ほうが便利なことが多いと思う。 モノリポの不便さは概ね頑張って解決できるはず。 マイクロサービスよりはモノリスの方がいい チームやサービスが完全に分断しない限りモノリスがいい。
よくいわれるやつ。 11
コンポーネント開発1 コンポーネント開発1 view_component GitHub 製の ruby/rails でのコンポーネント開発のためのも の lookbook view_component
のライブラリ群の1 つで、 storybook のよ うにコンポーネント単独で描画・確認できるもの erb なども描画できるが がある react/storybook/css in js(CSS modules) などのようにコンポーネント開発を 取り入れたい。 コンポーネントごと描画しテストできることで、テストが書きやすい。動作 確認もしやすい。Visual Regression Test もこれに乗っかってできるなら便 利そう。 参考: バグ 実践ViewComponent (1 ) 12
コンポーネント開発2 コンポーネント開発2 コンポーネント(view ファイル) と同階層でcss, js を扱えるようにする CSS は、CSS modules
のようなスコープ化の仕組みも入れる こうすることで開発体験がぐっと良くなるはず。 参考: components/ example/ component.html.erb # 通常のviewファイル component.rb # Example::Componentクラス(view com preview.rb # Example::Previewクラス(lookbook) styles.css # CSSスタイル whatever.png # その他のアセット controller.js # Stimulusのコントローラ 実践ViewComponent (2 ) 13
CSS CSS ① 自前である程度 CSS 書くパターン tailwind デザイントークン周りやpadding/margin/font-size などぐら いに使う。スタイリングはCSS
を普通に書く。 flowbite ( + flowbite-admin ) tailwind つかった(?) headless UI ライブラリ react/vue ではないので選択肢はそこまで多くない data 属性で対象指定するのでわかりやすい ② tailwind 全乗っかり ③ bootstrap 全乗っかり 14
admin framework admin framework scaffold を自前で用意して、素朴にview, controller 書くほうが良さ そうに感じている active_admin
や rails_admin はDSL 強いのでカスタマイズしにくい administrate はカスタマイズできると言っているが、全部上書きで きるわけではない たとえば、ページネーションとかカスタマイズできない。( で きるけど、自前で書くのと何も変わらなくなってくる) 補足: administrate の propshaft 等の対応の が絶賛開発さ れてる それなりに複雑な画面もある想定なのでカスタマイズしやすさは担保してお けると良さそうと思っている PR 15
おわり おわり 16
None