Enviar búsqueda
Cargar
Railsアプリのモジュールはどこに置くべきか問題 (公開版)
•
5 recomendaciones
•
13,889 vistas
Ken Muryoi
Seguir
Railsアプリにおいて、自分でつくったモジュールをどこにおくべきか問題についての自分の認識をかいたもん。
Leer menos
Leer más
Software
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Descargar para leer sin conexión
Recomendados
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
REST API のコツ
REST API のコツ
pospome
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
Recomendados
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
REST API のコツ
REST API のコツ
pospome
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
Recruit Lifestyle Co., Ltd.
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
ServiceとRepository
ServiceとRepository
シオリ ショウノ
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Shinichiro Yoshida
こわくない Git
こわくない Git
Kota Saito
Git Flowを運用するために
Git Flowを運用するために
Shun Tsunoda
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
宜浩 香月
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
そのRails Engine、 本当に必要ですか?
そのRails Engine、 本当に必要ですか?
nixiesan
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
SlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行します
Mamoru Ohashi
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Sinatra Pattern 20130415
Sinatra Pattern 20130415
Naotoshi Seo
DiI/DIコンテナを一から学んでみた
DiI/DIコンテナを一から学んでみた
tak
僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド
Narichika Kajihara
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
buoys gem の紹介
buoys gem の紹介
Ken Muryoi
約一年、XP2nd 読書会に参加して感じたこと
約一年、XP2nd 読書会に参加して感じたこと
Ken Muryoi
Más contenido relacionado
La actualidad más candente
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
ServiceとRepository
ServiceとRepository
シオリ ショウノ
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Shinichiro Yoshida
こわくない Git
こわくない Git
Kota Saito
Git Flowを運用するために
Git Flowを運用するために
Shun Tsunoda
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
宜浩 香月
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
そのRails Engine、 本当に必要ですか?
そのRails Engine、 本当に必要ですか?
nixiesan
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
ester41
SlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行します
Mamoru Ohashi
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
Riverpodでテストを書こう
Riverpodでテストを書こう
Shinnosuke Tokuda
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
Sinatra Pattern 20130415
Sinatra Pattern 20130415
Naotoshi Seo
DiI/DIコンテナを一から学んでみた
DiI/DIコンテナを一から学んでみた
tak
僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド
Narichika Kajihara
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
La actualidad más candente
(20)
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
ServiceとRepository
ServiceとRepository
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
こわくない Git
こわくない Git
Git Flowを運用するために
Git Flowを運用するために
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
ほぼ初心者からのマッチングサービス開発のリアル Feat. 嫁
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
そのRails Engine、 本当に必要ですか?
そのRails Engine、 本当に必要ですか?
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
SlideShareをやめて SpeakerDeckに移行します
SlideShareをやめて SpeakerDeckに移行します
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
Riverpodでテストを書こう
Riverpodでテストを書こう
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Sinatra Pattern 20130415
Sinatra Pattern 20130415
DiI/DIコンテナを一から学んでみた
DiI/DIコンテナを一から学んでみた
僕なりのAtlassianの管理メソッド
僕なりのAtlassianの管理メソッド
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Más de Ken Muryoi
buoys gem の紹介
buoys gem の紹介
Ken Muryoi
約一年、XP2nd 読書会に参加して感じたこと
約一年、XP2nd 読書会に参加して感じたこと
Ken Muryoi
自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」
Ken Muryoi
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
Ken Muryoi
Default scopeの被害報告
Default scopeの被害報告
Ken Muryoi
地域コミュニティのススメ
地域コミュニティのススメ
Ken Muryoi
自分を変えた一冊
自分を変えた一冊
Ken Muryoi
自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
Rubyコミュニティをアピールしませんか?
Rubyコミュニティをアピールしませんか?
Ken Muryoi
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
Ken Muryoi
るびま10周年の告知
るびま10周年の告知
Ken Muryoi
関西Ruby会議方面から来ました
関西Ruby会議方面から来ました
Ken Muryoi
地域Ruby会議にいこうぜ!
地域Ruby会議にいこうぜ!
Ken Muryoi
地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とか
Ken Muryoi
Más de Ken Muryoi
(14)
buoys gem の紹介
buoys gem の紹介
約一年、XP2nd 読書会に参加して感じたこと
約一年、XP2nd 読書会に参加して感じたこと
自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
サーバサイドなおじさんがSPAを趣味で初めて作ってみてわかった n のこと(仮)
Default scopeの被害報告
Default scopeの被害報告
地域コミュニティのススメ
地域コミュニティのススメ
自分を変えた一冊
自分を変えた一冊
自己紹介LT(公開版)
自己紹介LT(公開版)
Rubyコミュニティをアピールしませんか?
Rubyコミュニティをアピールしませんか?
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
るびま10周年の告知
るびま10周年の告知
関西Ruby会議方面から来ました
関西Ruby会議方面から来ました
地域Ruby会議にいこうぜ!
地域Ruby会議にいこうぜ!
地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とか
Railsアプリのモジュールはどこに置くべきか問題 (公開版)
1.
Railsアプリのモジュール はどこに置くべきか問題 ! muryoimpl
2.
題材 http://y-yagi.tumblr.com/post/92386974040/rails-routing-constraints
3.
「迷ったらlib置いとけ」 ってこと?
4.
ちょっと違うのでは…
5.
参考意見その2 https://twitter.com/hanachin_/status/491046610839695361
6.
参考意見その2について • むやみにlibに置くべきではないと思う(理由は後 述) • 個人的には、libってあまりアプリ機能に関する ものっておくべきでないという認識
7.
なぜか?
8.
lib == ライブラリ
9.
アプリ機能の拡張って ライブラリか?
10.
否
11.
参考意見その2 https://twitter.com/hanachin_/status/491046610839695361
12.
参考URL http://blog.lunarlogic.io/2013/declutter-lib-directory/
13.
ざっくり言うと…(1) • libにファイル置く場合のガイドラインみたい のって示されてないよね • アプリのdomainに特化してないものをlibに置く べきってBryan
Helmkampが言ってた • 基本的にアプリに関するものはサブディレクト リ切ってそこに置こう
14.
ざっくり言うと…(2) • Monkey patchesは
lib と config/initializers に分 かれる • lib/ext … 組込Ruby classのStringやArrayの拡張 • lib/hack … 本来あるべきではないけどやらねーと 困るんだってやつを置く(ライブラリのバグ修正的 な) • -> これはgithubでforkして使うが一般的かな?
15.
ざっくり言うと…(3) • libには、(そのアプリに限らず)一般に使いまわせるようなもの を置く • app内ファイルが直接参照しないもの •
Ruby core class や 他のライブラリ、gem の一部のみが アクセスできるもの • global変数/アプリの定数/環境変数に依存しないもの • githubに置いたり、わざわざgemにするほどでもないgem の拡張
16.
ざっくり言うと…(4) • ちょっとしたアプリ特有の設定(API keyのよう なもの) •
libにおいてもいいけど、全体的な風潮は config/initializers だよね(私見)
17.
同意。
18.
だって
19.
ソース追うときって 機能については app の中にあること前提 で探したりしません?
20.
なかったら、gem の 機能かな?って思いません?
21.
app/以下 -> config 以下
-> gem? or lib/以下 muryoimpl.search_path みたいな感じ
22.
なので
23.
まとめ • libには、アプリの拡張は置かない • アプリの拡張はapp/以下の置く •
サブディレクトリ切ったらいいんだよ • app/decorators, app/workers/ みたいな • 読むときに混乱招かないようにするのが大事
24.
以上。
Descargar ahora