【Rails】オリジナルアプリケーションの技術選定理由

現在、個人開発でプロテインの口コミ共有サービスを開発しています。
今回は、この個人開発サービスで利用した技術を棚卸します。

目的

  • 今後の改修に役立てるため
  • 使用している技術の客観的な位置付けを知るため
  • 新たな技術習得の目標を立てるため

扱う機能

  • ホスティングサービス
  • テストフレームワーク
  • ユーザー認証
  • ページネーション
  • 画像アップロード
  • メーラー
  • 検索
  • CSSフレームワーク
  • データベース

 

使用した技術の理由

基本的に選定理由は下記の通りです。「初心者にも使いやすい」王道の技術を利用しています。

  • 情報が多いため学習コストが低い
  • 実務での利用頻度が高い
  • 費用がかからない

 

使用した技術とその他の技術の比較

ホスティングサービス

  • 利用した技術:Heroku
    • メリット:導入が楽、add-onが豊富
  • そのほかの技術:AWS
    • メリット:実務で利用される機会が多い

参考:【比較してみた】みんなが使っている個人開発向けPaaS・ホスティングサービス

テストフレームワーク

  • 利用した技術:Rspec
    • メリット:仕様書のように書ける
  • そのほかの技術:Minitest
    • メリット:Ruby/Rails標準搭載、シンプル

ユーザー認証

  • 利用した技術:生コード
    • メリット:仕様を理解できる
  • そのほかの技術:gem devise
    • メリット:多機能

ページネーション

  • 利用した技術:gem kaminari
    • メリット:カスタマイズ性に優れる

参考:Railsでページネーションを実装するGemのまとめ

  • そのほかの技術:gem pagy
    • メリット: 高速

参考:Rails:「Pagy」gemでRailsアプリを高速ページネーション(翻訳)

  • そのほかの技術:gem will_paginate
    • メリット: 導入が容易

画像アップロード

  • 利用した技術:gem carriewave
    • メリット:多機能
  • そのほかの技術:Active Strage
    • メリット:シンプル

参考:Rails 5.2でActive Storage を使った画像のアップロードを試す

メーラー

  • 利用した技術:Action Mailer
    • メリット:Rails標準搭載
  • そのほかの技術:heroku add-on SendGrid
    • メリット:オリジナルドメインで運用可能

検索

  • 利用した技術:gem ransack
    • メリット:gem kaminariと組み合わせやすい、多機能
  • そのほかの技術:gem searchcop
    • メリット:シンプル

参考:検索用GemSearchCopの紹介

ホスティングサービス

  • 利用した技術:heroku
    • メリット:導入が楽
  • そのほかの技術:aws
    • メリット:多機能

CSSフレームワーク

  • 利用した技術:Bootstrap
    • メリット:導入が楽
  • そのほかの技術:Materialize
    • メリット:既視感が少ない

ビューファイル

  • 利用した技術:erb
    • メリット:HTMLの感覚で書ける
  • そのほかの技術: slim/haml
    • メリット:可読性が高い、スピーディに書ける

データベース

  • 利用した技術:MySQL(開発環境、テスト環境)、PostgreSQL(本番環境)
    • メリット:導入が楽

※上記のように、開発環境やテスト環境と、本番環境のデータベースを分けているのは、参考にした教材の方法に倣ったのですが、実務では全ての環境でデータベースを揃えるのが常識とのことなので、統一する予定です。

  • Railsでのデータベースはこの二つのみが主流なよう

まとめ

大方の技術が「学習コストが低い」ことを理由に選定していますが、実務での運用を考えると、

  • レスポンスが早い
  • 多機能

な技術を選ぶ必要も大いに出てくることが想定されます。

今後はRailsTutorialやUdemyを通して、上記の技術をキャッチアップしていく必要がありそうですね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です