LoginSignup
6
7

More than 3 years have passed since last update.

多分これが一番早いと思います~個人的最速開発環境~

Last updated at Posted at 2020-07-22

結論

  • Heroku × Ruby on Rails × jQuery × Tailwind CSS + 既存のSaaS
  • 仕様自体を上記の技術に寄せる。

強み

Heroku

  • インフラの構築→デプロイの設定が数分で終わる
  • サーバーのことをほとんど意識しなくてよくなる
  • アドオンがそこそこ豊富(パフォーマンス監視、バグ管理、etc)
  • Heroku Flowが手軽かつ強力

Heroku Flowをざっくりまとめる - Qiita

Ruby on Rails

  • 設定より規約(デフォルトの設定でいい感じになることが多い)
  • Active Recordが強力
  • 情報が多い(遭遇したエラーは大体誰かがすでに遭遇してる)
  • gem(ライブラリ)が豊富

jQuery

Railsをモノリスで使う場合、VueやReact、Angularはしんどい。
Stimulusは情報が少なく、ライブラリも少ない。
極めればStimulusが一番かもしれないが、今の自分には厳しい。
消去法でjQuery

Tailwind CSS

  • クラス名を決める必要がない
  • クラス名の衝突がなくなり、BEMやCSS設計から開放される
  • デザインの修正により不要になったCSSが残ってしまうことがない
  • どの要素にどんなスタイルが当たっているかがすぐにわかる
  • カラーコードやフォントサイズ、ブレイクポイント等の統一性を保ちやすい
  • ネット上に転がっているサンプルコードを気軽に取り入れやすい(他の人が書いたコードでもカスタマイズが楽)
  • スタイルの修正のたびにapp/assets/stylesheets/任意のフォルダ/任意のファイルを開く必要がなくなる

Tailwind on Rails - Qiita

既存のSaaS

メール: SendGrid
決済: Stripe
認証: Auth0
etc...

外部サービスを活用して楽に実装できる場合は積極的に活用します。

弱み+それをカバーする方法

パフォーマンス(スピード)が不安

  • CDNを使う
  • クエリ最適化
  • パーシャルを使いすぎないように注意する
  • HTMLをgzip圧縮
  • 画像を圧縮
  • ブラウザにキャッシュさせる期間を伸ばす
  • 重い処理があればバックグラウンドに回す
  • (金を積む)

この辺りの基本的なことをしっかりやって、Herokuの月25ドル以上のプランを使っていれば普通はそこそこのスピードがでます。

実はHerokuで充分なのでは問題|こんぴゅ|note

Tailwind CSS単体では実装が難しいデザインがある

Tailwind CSSで実装しやすいデザインにする。

クロスプラットフォーム対応する場合、APIが使いまわせない

webアプリだけ作る場合は問題なし。

jQueryを使うとコードがカオスになる

  • なるべくjQueryを使わなくて良いような仕様にする
  • js.erbremote: trueを使っていい感じに書く
  • 開発に関わる人数を極力減らす

ここが一番の肝だと思います。

JavaScript SPA 周りの議論で出た私なりの答え - ボクココ
Railsで remote: true と js.erbを使って簡単にAjax(非同期通信)を実装しよう!(いいね機能のデモ付) - Qiita

機能するケース、しないケース

特に機能するケース

  • 個人開発
  • MVP作り
  • 小~中規模の受託開発

エンジニアが仕様決めから関われる新規開発案件で、かつ小規模なチームであれば、8割以上のケースでいけると思います。

機能しないケース

  • 上記の技術スタックでは実装できない機能があるケース
  • 技術力でブランディングをしたいケース
  • エンジニアが仕様に口を出せないケース
  • 大規模チーム
    • 「このサービスを作るには◯人必要だな」ではなく「このメンバーで開発するならこの技術」という順番で技術選定するケース

エンジニアが仕様に口を出せない現場とか、大規模チームだとたぶんきついです。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7