ペットプロジェクトのすゝめ
こんにちは、taskeyの田代です。
弊社サービス
21年始まってしまいましたが、20年でやったことで書いていないことがあったので、書き残していくチェレンジvol 2です。
今回はペットプロジェクトに関してご紹介させて頂けましたらと思います。
ペットプロジェクトってなに?
ざっくり説明すると下記通りです。
- 個人 or 少人数で取り組む余暇プロジェクトの事
- 最新 or 興味のある技術を実験的に取り込むことが安易である
- もしかしたら収入のチャンスを増やせるかもしれない(起業にも繋がる?)
- プロジェクトの対象は単に好きなものや興味がある持続可能なテーマが好ましい
※ 参考
「最新 or 興味のある技術を実験的に取り込むことが安易である」, 「もしかしたら収入のチャンスを増やせるかもしれない」
この辺りは自身の市場価値を高めるためにも、とても助けになりますね。
始めましょうペットプロジェクト。
詳しくはこちらの記事を読んでみてください。
[※ 参考]
ペットプロジェクト機能紹介
参考までに僕のペットプロジェクト「gigphil」を紹介させて頂こうと思います。
gigphilはざっくり言うと、ライブハウス用のプラットフォームです。
【機能一覧】
- 配信ライブまとめ
- インディーズwiki
- ライブ検索
- タイムテーブルジェネレータ
【配信ライブまとめ】
- withコロナ時代の為の配信ライブ用のまとめ機能
- 口コミ機能等は未実装
- ログインユーザのみ投稿可能
【インディーズwiki】
- インディーズバンドのまとめ機能
- エリア、タグ付けやMV投稿も可能なので検索がインディーズバンドをdigる or 応援するのに適している
- ログインユーザのみ投稿可能
- 口コミ機能、音源登録機能等は未実装
【ライブ検索】
- 東京の登録済みライブハウスのスケジュールを一括で検索することが出来る
- 都内18箇所のライブハウスを登録済み
- バンド名からの検索も可能
- お気に入り追加等は未実装
【タイムテーブルジェネレータ】
- 学祭や、ライブイベント、勉強会で使うようなタイムテーブルの生成機能
- ログイン必須
- 時間の自動計算やシェア、PDF、テキストでの出力が可能
- ライブハウスで働いていた経験から作成
技術紹介
ざっくりまとめるとReact on Rails on HerokuServer on RDS Postgresです。
【フロントエンド】
- react
- react-rails
- view
- styled-components
- bootstrap
※ キメラ感強いです
※ 必要に応じてSSRとReactでのレンダリングを切り替えています
※ 部品に関してはbootstrap、レイアウトに関してはstyled-componentsで手描きみたいなことをしています
【バックエンド】
- Rails
- fast_jsonapi
※ 特に凝ったことはしてません
※ 今後Railsの新機能を試すのに使って行きたいです
※ fast_jsonapiは早いSerializerがあるとのことで試してみました
【インフラ、その他】
- heroku
- AWS RDS Postgres
- S3
- google analytics
※ アプリケーション層はherokuで動かしてDBはRDSという節約術です。RDSのリージョンはUSにしてあります。
※ google analyticsは何気に初めてで感動しました
今回実験的に使用した技術
【react-rails】
Railsのviewからreactのコンポーネントを呼び出せる、なんとも奇妙な代物でしたが、フロントとバックエンドを完全分離させる必要のない現場ではありかなぁと思いました。
ルーティング等もRailsに任せらせるのでCMS等のフロントエンドの人数が足りない場面では力を発揮しそうです。
ただ、RailsのAPIがGETはSSR用でその他がJsonを返却する形になるので、統一性は無いかなとも思いますが、RailsのViewが多い現場だと全然ありえる設計だとも思います。
【fast_jsonapi】
こちらはNetflix製のSerializerです。
APIの速度チューニングはいつでも身近なので、選択肢の幅を増やすために使ってみました。
ActiveModelSerializerを主に使っているのですが、fast_jsonapiは25倍早いようです。
使ってみた感じActiveModelSerializerのような細かいoptionは無いのですが、全然使えそうです。
どちらも入れておいて、チューニングの選択肢として選べる状態にしておくのはありだと思います。
※ 現在「Fast JSON API — ⚠️ This project is no longer maintained!!!! ⚠️」の状態ですので、本番導入の判断はくれぐれも慎重に行ってください。
終わりに
ペットプロジェクト作りたくなってきましたか?
普段とは違う分野をサクッと試したり、最新技術を実験したりという、エンジニアにとってのウレシイ部分をペットプロジェクトは提供してくれます。
ペットプロジェクトといえど、実際に動かすサービスの一つです。なので、ほどよい緊張感もあり、経験値としては十分なはずです。
また、ユーザ数を増やす方法や、マネタイズ方法も自然と考える事になるので、ビジネス視点に追いても成長が見込めます。
gigphilに関しても少数ですがユーザがついてくれましたし、広告の大切さも身に沁みました。
みなさんも是非、いつかのタイミングでペットプロジェクトにチャレンジしてみてください。
SpecialThanks
gigphilは一部友達にお手伝いして頂きながら作りました!!!
ありがとう〜!😢またコロナあけて需要増えて来たら相談させていただくかもしれません😢
- たまいちゃん Backend engineer
- よだかちゃん Backend engineer
- 太陽さん Designer
募集
弊社正直、エンジニアが足りてません!!!
Serverエンジニアに関して、下記現状です!!!
ご興味有る方是非ご連絡くださいー!!!
アピールポイント
・ Spec整備済み
・ OpenAPI 整備済み
・ 機能開発毎にエンジニアで設計や命名を話し合う風習あり
・ データマート(BigQuery)整備済み
・ Deployフロー整備済み
・ 負債に対しての定期的なMTGと、それを解像度高く分解して実行できる環境
・ ECS on Fargate、Aurora Auto Scaling とモダンなインフラを採用
・ データ分析、SRE、フロントエンド(React)、リコメンドエンジン等の幅の広いスキルの拡張が可能
現状の課題
・ 現状がRails5系、Ruby2.5系と、最新のバージョンへの追従が遅れている
=> 直近でVersionUP予定あり
・ APIで返却するJSONが最適化されていない
=> JSON整備予定あり
・ JSONResponse返却のGetRequestに対してのCDN整備が整っていない
=> 長期的観点でCDN導入予定
・施策速度優先とエンジニア不足により技術的負債を解消し切れていない => DX、開発効率を上げていくためにも必須