Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

自社サービス開発のスタディスト 受託開発のゆめみ どんな話が面白いだろうか

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

インタビュー UIリニューアルについて UIリニューアルは元々フロントエンドの改修だけで、 APIはほとんどv1で済むでしょぐらいの認識だったので、す ぐ終わる見積もりだった プロジェクトを進めるに連れ、ネイティブアプリに特化した貧弱な v1 API じゃ対応ができない箇所が出てきて、そ の都度 v2 API を新規に作る方針にした 気づいたらほぼ全ての API に v2 が生まれてた 新UIが要求するAPIがやたらリッチで、既存資産の流用が全然出来ずに継ぎ足しで新規コードを足していったの で、検証フェーズに入って膨大なバグが出たのが一番大変だった印象

Slide 18

Slide 18 text

作ってみたけど使われなかった機能を捨てることも… そういうこともあります。

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

インフラ周りの更新 2018年 ● CircleCI ● NewRelic, CloudWatch, Stackdriver ● fluentd, Elasticsearch, Kibana ● Ansible + Serverspec + Packer + AWS Code Build ● EC2からECSへ

Slide 22

Slide 22 text

2020年 新規機能のマイクロサービス化 チームメンバーが増えたことで開発速度の低下を懸念して行われたもの

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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