僕らが本屋の未来を変えるまで

リトルスタッフ開発や日々の取り組みについての記録

Webフレームワークの選定

今回は具体的な開発の話です。
開発者が後から参加した時に、「何でxxを使っているのか?」という素朴な疑問は浮かびやすいので残しておきます。

MVP(必要最小限の機能)

  • 検索およびページング
  • ユーザー認証
  • 管理画面(本屋)
    • id/pass発行
    • 画像のアップロード
    • 最初は手動の可能性あり

現時点ではシンプルだけど仮説/検証で何回も仕様変更が想定されるので、それなりにフルスタックの方が助かりそう。

Rails

  • Pros
    • ネットの情報量は多い
      • 知人にもLaravelよりRails使いの方が多いので、いざという時に質問できる
    • 分かってくればサクッと作れるのは間違いない
    • gemが豊富で便利なので、仕様変更にも柔軟に対応できそう
    • rails consoleが便利
      • Heroku + PostgreSQLで進めるので、PostgreSQLに慣れていない僕にはrails consoleが大事
      • HerokuのMySQL Addonを使うという選択肢もあるが
    • Heroku + Railsは何回か触ったことがある
    • rails consoleがホント便利
    • 開発者の確保はしやすそう
  • Cons
    • Railsちょっと好きじゃない
    • Rails + RSpecの遅さがちょっとストレス
      • Spring使っても遅い
    • あまりRailsおよび周辺gemに詳しくない
      • ハマった時に1人でRailsのコードを読んで理解できるか不安
    • バージョンアップ対応が大変らしい(未経験)
      • メンテコストは極力下げたい

Laravel

  • Pros
    • Railsより慣れているし好き
    • Laravel本体のコードが読みやすいので、ハマった時にRailsより安心
    • 単体テストの実行が早いのでTDDのストレスがない
    • PHPという点では開発者の確保はしやすそう
  • Cons
    • PHP
    • 入門やコピペ以外の日本語情報が少ない
      • 英語読めば済むけど、日本語があるなら越したことはない
    • rails consoleに比べるとartisanがイマイチ
    • メジャーバージョンアップの互換性が全然ないらしい(例: 4系->5系)
      • Railsより大変そう。イメージだけど
      • メンテコストは極力下げたい
    • Heroku + PHPを試したことがない
    • PHP

Amon2 / Mojolicious

  • Pros
    • 使いやすかった
  • Cons
    • Perlをもう1年以上書いていない
    • 僕の経験値ではRailsやLaravelに比べて選択するメリットがない
    • Perlなので後任を探すのが大変

Django

  • Pros
  • Cons
    • Django知らない
    • Python含めて業務経験がほとんどない

何かしらのマイクロフレームワーク

仕様変更の度に必要なライブラリを入れる可能性があるので、だったら最初からフルスタックでいい。

その他の候補

選定結果

「便利で運用しやすいけどハマった時に大変そうなRails」か「開発は慣れているけど運用面で不安が残るLaravel」か。
現状および将来的にも恐らく複雑なものは作らないので、「開発でハマる可能性」は少ないのではないか。
その点ではRailsである。

またLaravelよりもRailsの方が技術者の平均スキルは高い気がする。イメージでしかないが。
あとあと開発者を増やす時に採用面で有利というポイントもすごい重要で、その点からしてもRailsかなという気がしている。

以上のことから、Railsで進める。
理想スケジュールとしては初期は僕が頑張って書くけど、売上が立ったら開発者を募集して任せたい。

追記

やっぱりRailsつらかったのでLaravelで進めることにした。
開発スピードを優先したい今、いちいち調べながら実装するRailsを採用するのは無理でした。

日記

進捗です。

f:id:kanno_kanno:20170917102223p:plain:w600

背景画像とか一切ないのは僕のデザイン力に依存していますが、シンプルなのは好きだし、今は「簡単に投げ銭できること」が最重要なので応答速度的にも好都合かな。
TOPページもアイキャッチとか一切ないんですが、カッコつけて重くなるのは嫌だし、カッコつけるような機能もなければワクワクさせるUXも重要ではないのでいいかな。

ずっと見てると気に入ってきた。

宣伝

このブログの更新情報は公式Twitterにて確認できます。