Consolidate app/queries/ and app/queriers/ into a single query-objects folder
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 84/100
調査の方向性
まず Admin::WorkshopConcerns とエントリポイントである Admin::WorkshopsController#show を読み、次に app/queriers/ 配下の AdminWorkshopAttendeeFlags を見つけます。呼び出し元を変更せずに app/queries/ へ移動し、Admin::WorkshopsController#show と dashboard の spec を実行します。app/queriers/ がなくなり、クラスが app/queries/ から解決され、指定した両方のテスト領域がパスすれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
The repo has two folders for the same concept, with three different class shapes between them:
| Folder | Class | Shape | Used by |
|---|---|---|---|
app/queries/ |
DashboardQuery |
class-level methods (upcoming_events, total_upcoming_events_count) |
DashboardController |
app/queries/ |
SponsorsSearch |
ActiveModel::Model object with attr_accessor :name, :chapter |
Admin::SponsorsController |
app/queriers/ |
AdminWorkshopAttendeeFlags |
self.for_members(member_ids) → instance #to_h |
Admin::WorkshopConcerns |
queriers is not a name Rails developers recognise as an autoload convention (app/queries is), and the split isn't semantic — AdminWorkshopAttendeeFlags is the same kind of code as DashboardQuery: batched aggregate queries for controllers.
Proposed change
- Move
AdminWorkshopAttendeeFlagsfromapp/queriers/toapp/queries/and deleteapp/queriers/. - Leave the three existing call shapes alone for now — normalising
DashboardQuery/SponsorsSearchinterfaces is out of scope and needs its own discussion.
Acceptance
app/queriers/no longer exists;AdminWorkshopAttendeeFlagsresolves fromapp/queries/.- Callers unchanged (
Admin::WorkshopConcernsreferences the same class name). Admin::WorkshopsController#showand the dashboard specs pass.
- 主要言語
- Ruby
- スター
- 104
- フォーク
- 205
- 平均マージ
- 1日 2時間
- マージ済み PR(30日)
- 81
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
codebar/planner のほかの issue
-
performance
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
good first issue tech debt
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
good first issue tech debt
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
Chapter show pages allocate ~21k+ objects per render for large chapters (18% of app allocations)オープンperformance
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
メンテナーはふだん 1 日以内に返信
codebar/planner の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
rubocop/ruby-style-guide#984 ·
-
internal product:dev-portal release-docs
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Kong/developer.konghq.com#7393 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
fastlane/fastlane#30286 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
TheOdinProject/curriculum#31432 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area/web interface
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信