ume

検索機能を実装するためにransackというgemを使用しました。

選定理由3つ.

①やりたいことができる.
②長期的にgemの動作が安定している.
③最速で実装できる

選定理由に対する根拠(思考プロセス)

他のユーザーを特定するといった検索機能を実装したいと思いました。 そこで下記の有名な3つのgemがあることを知り、3つどれを使っても検索機能が実装できることを知りました.

  1. Ransack

  2. Thinking Sphinx

  3. pg_search

3つの中から選定するにあたり以下の3つの要件定義に一番合致しているものを選ぼうと考えました。

  1. アプリを中~長期的に運営する

  2. 1日でもアプリをリリースしたい

  3. ライセンスがある

①~③に関して それぞれのgemのgithubを参照しました。

①アプリを中長期運用する上でgemが安定して動作し続けるかが大事だと思いました。中長期的にこれからもデバックし続けてくれそうかを更新日が一番古いもの(例2017年8月)と最新の更新日(例2023年8月)のように年単位で過去に更新歴があるかどうかで判断しました。またコミット数やgithubスター数でデバックの頻度や信頼性を確認しました

②最短で実装するために同様の挙動になるなら学習難易度の低いgemを選ぼうと考えました。学習難易度が低いとは⇨gemの概要と使い方がわかりやすいもの.
学習難易度が低いものを判断するためにrubygemsのダウンロード数が多い、要は使われているgemかどうかで判断しました。ユーザーの数が増えると情報数が増え、zennなどのブログ記事が増え、gemの概要と使い方が容易に把握でき最短で実装できると思いました。

結論

ransackは学習難易度が低くいのでアプリリリースまで最短かつ更新歴が多岐にわたっており今後も安定して動作しそうなのでransackを私は選びました