現在、個人開発でプロテインの口コミ共有サービスを開発しています。
今回は、この個人開発サービスで利用した技術を棚卸します。
目的
- 今後の改修に役立てるため
- 使用している技術の客観的な位置付けを知るため
- 新たな技術習得の目標を立てるため
扱う機能
- ホスティングサービス
- テストフレームワーク
- ユーザー認証
- ページネーション
- 画像アップロード
- メーラー
- 検索
- CSSフレームワーク
- データベース
使用した技術の理由
基本的に選定理由は下記の通りです。「初心者にも使いやすい」王道の技術を利用しています。
- 情報が多いため学習コストが低い
- 実務での利用頻度が高い
- 費用がかからない
使用した技術とその他の技術の比較
ホスティングサービス
- 利用した技術:Heroku
- メリット:導入が楽、add-onが豊富
- そのほかの技術:AWS
- メリット:実務で利用される機会が多い
参考:【比較してみた】みんなが使っている個人開発向けPaaS・ホスティングサービス
テストフレームワーク
- 利用した技術:Rspec
- メリット:仕様書のように書ける
- そのほかの技術:Minitest
- メリット:Ruby/Rails標準搭載、シンプル
ユーザー認証
- 利用した技術:生コード
- メリット:仕様を理解できる
- そのほかの技術:gem devise
- メリット:多機能
ページネーション
- 利用した技術:gem kaminari
- メリット:カスタマイズ性に優れる
- そのほかの技術: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
- メリット:シンプル
ホスティングサービス
- 利用した技術:heroku
- メリット:導入が楽
- そのほかの技術:aws
- メリット:多機能
CSSフレームワーク
- 利用した技術:Bootstrap
- メリット:導入が楽
- そのほかの技術:Materialize
- メリット:既視感が少ない
ビューファイル
- 利用した技術:erb
- メリット:HTMLの感覚で書ける
- そのほかの技術: slim/haml
- メリット:可読性が高い、スピーディに書ける
データベース
- 利用した技術:MySQL(開発環境、テスト環境)、PostgreSQL(本番環境)
- メリット:導入が楽
※上記のように、開発環境やテスト環境と、本番環境のデータベースを分けているのは、参考にした教材の方法に倣ったのですが、実務では全ての環境でデータベースを揃えるのが常識とのことなので、統一する予定です。
- Railsでのデータベースはこの二つのみが主流なよう
まとめ
大方の技術が「学習コストが低い」ことを理由に選定していますが、実務での運用を考えると、
- レスポンスが早い
- 多機能
な技術を選ぶ必要も大いに出てくることが想定されます。
今後はRailsTutorialやUdemyを通して、上記の技術をキャッチアップしていく必要がありそうですね。
コメントを残す