Upgrade to Pro — share decks privately, control downloads, hide ads and more …

とある自社開発の苦楽の軌跡/Trajectory of a Certain In-house Development Effort

とある自社開発の苦楽の軌跡/Trajectory of a Certain In-house Development Effort

株式会社スタディストのTeachme Bizがたどってきた歴史をほってみた

69b4dadef85efe143ac825b62d36ed7c?s=128

果物リン

May 19, 2021
Tweet

Transcript

  1. とある自社開発の苦楽の軌跡 リポジトリ考古学 株式会社スタディスト 果物リン@FruitRiin

  2. 自己紹介@FruitRiin • Vueが好きでVueとRails書いてる • スタディストの中でHansoku Cloudというサービスの開発中 • 個人開発もする ◦ TLのないTwitterクライアント

    ◦ オンラインイベント用のサービス
  3. 自社サービス開発のスタディスト 受託開発のゆめみ どんな話が面白いだろうか

  4. 自社サービスならではの 出来事とか?

  5. リポジトリ考古学 してみよう! PR8684個+コミットログいっぱいみました

  6. 引用元 スタディスト会社案内

  7. 引用元 スタディスト会社案内

  8. 引用元 スタディスト会社案内 本日はこちら

  9. 2011年~2012年 Teachmeは始まった Teachme Bizじゃなかった

  10. 最初のコミットが2012年1月 どうもある程度動きそうな気配のある Railsのコードがまるごとコミットされる

  11. 初期のDBは(おそらく) SQLite3 でもS3もつかってた。 こっちはモダン!

  12. Heroku GitとGitHubが並行してたっぽい

  13. 2014年4月 本番・StagingDBがMySQLに移行 EC2移行も2012年~2016年の間に行われたらしいのでこの時期?

  14. 2016年9月頃からGitHubのPRが使われ始める

  15. 2017年11月 UIリニューアル開始! Vue 2.5でSPAアプリケーションに!

  16. 2018年11月 UIリニューアルのMaster反映 ここでAPIがV1とV2分かれる

  17. インタビュー UIリニューアルについて UIリニューアルは元々フロントエンドの改修だけで、 APIはほとんどv1で済むでしょぐらいの認識だったので、す ぐ終わる見積もりだった プロジェクトを進めるに連れ、ネイティブアプリに特化した貧弱な v1 API じゃ対応ができない箇所が出てきて、そ の都度 v2

    API を新規に作る方針にした 気づいたらほぼ全ての API に v2 が生まれてた 新UIが要求するAPIがやたらリッチで、既存資産の流用が全然出来ずに継ぎ足しで新規コードを足していったの で、検証フェーズに入って膨大なバグが出たのが一番大変だった印象
  18. 作ってみたけど使われなかった機能を捨てることも… そういうこともあります。

  19. フロントエンドのツールチェイン更新 2020年 • E2Eテストのはじまり • Prettierを既存コードに少しずつ適用する • Storybook 6以降 2021年

    • TS化
  20. インタビュー フロントエンドのツールチェイン 元々こだわりがあったわけでなく、その領域をリードしてた人が退職してしまい、組織内でそこが手つかずの状態 になってしまっていたのがきっかけ 「誰かがやらなきゃならない」っていうオーナーシップと、「ここ頑張れば周りと差別化できる」っていう生存戦略が 半々ぐらい 開発環境、CI/CD周りはステークホルダ(プロダクトや会社) の方針に左右されずに自分のペースで無限に改善 できるとこが好きで今も続けてる

  21. インフラ周りの更新 2018年 • CircleCI • NewRelic, CloudWatch, Stackdriver • fluentd,

    Elasticsearch, Kibana • Ansible + Serverspec + Packer + AWS Code Build • EC2からECSへ
  22. 2020年 新規機能のマイクロサービス化 チームメンバーが増えたことで開発速度の低下を懸念して行われたもの

  23. 2020年末Kubernetes移行 開発環境と本番環境が同じコンテナを使うので OSライブラリのパッケージ差分が生まれづらい!

  24. インタビュー  今はモダンになったインフラや運用のことを教えて Deploy自動化されている インフラもほぼコード化されていて、 PRベースで仕事が進められる コンテナで、開発環境〜本番環境での OSライブラリのパッケージ差分が生まれづらい チームでInfraをさわれる とかでしょうか! (マイクロサービス含めて)本番環境フルサーバーレスなのはすごく珍しいかもしれないです。

  25. 今ではめちゃくちゃモダンに!

  26. 自社開発は泥臭く始まっても ちゃんとなんとかなる

  27. 必要なときに必要なものを 身に付けていくのが大事…なのかな?