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

MedPeerの取り組みで「失敗」した話をしよう

 MedPeerの取り組みで「失敗」した話をしよう

Kaoru Hotate

March 23, 2019
Tweet

More Decks by Kaoru Hotate

Other Decks in Technology

Transcript

  1. MedPeer ͷऔΓ૊ΈͰ
    ʮࣦഊʯͨ͠࿩Λ͠Α͏
    อཱ֜ @purunkaoru

    View Slide

  2. 発表の⽬的
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 2
    .FE1FFS ͷऔΓ૊ΈͰ
    ʮࣦഊʯͨ͠࿩Λ͠Α͏
    失敗事例を集合知にして、
    同じような失敗が起きないようにしたい
    他社の失敗の話とか、
    その改善の話って⾯⽩いですよね

    View Slide

  3. 失敗事例
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 3
    1. 整地部
    2. Rails のバージョンアップ
    3. 懸垂棒の導⼊

    View Slide

  4. 1. 整地部
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 4
    今まで溜まった技術的負債を脱却して⾏く会
    Classiの佐々⽊ 達也さん(@sasata299)の発表を⾒て輸
    ⼊しました
    https://speakerdeck.com/sasata299/20180912-xiao-sanacheng-gong-ti-yan-woji-
    mizhong-netetimutefu-zhai-nili-tixiang-kau-medbeer
    隔週で2時間、有志のメンバーが
    モブプロ形式で解消していく
    負債の脱却だけでなく、メンバーの成⻑に⾮常に役⽴つ

    View Slide

  5. 1. 整地部
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 5

    View Slide

  6. 1. 整地部
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 6

    View Slide

  7. 1. 整地部
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 7
    「Base Notificator事件」
    通知周りを管理するNotificatorクラス
    徐々にサービスが⼤きくなるにつれて負債となる
    修正する範囲が膨⼤。
    現状の仕様を理解するまでで時間がかかる。
    1回の整地部活動では終わらず
    次の整地部まで時間が空くので、
    どこから⼿をつければいいか忘れてしまう。
    振り返りにも時間がかかる
    結局、計4回の整地部を費やして、⼀部分の整地が完了

    View Slide

  8. 1. 整地部
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 8
    1回の活動でPRが出せる単位にしよう。
    PRが出せない場合も、次に何やるかメモしておこう
    整地する前に、「⼗分な」テストコードが
    書けているか確認しよう
    整地した箇所の動作確認に対して、
    誰がボールを持つのかを、しっかり決めよう

    View Slide

  9. 2. Railsのバージョンアップ
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 9
    1ヶ⽉に1回、bundle updateする。
    当番制で、毎回3名くらいでbundle updateの差分⾒る。
    MedPeer のRailsアプリは、
    全て5.2系になってます ( -`ω-)どや!
    ライブラリのアップデートの仕組み化については
    別で発表してます
    「メドピアにおけるライブラリアップデート」
    https://speakerdeck.com/pipopotamasu/metohianiokeruraihurariatuhuteto-medbeer-
    20180912

    View Slide

  10. 2. Railsのバージョンアップ
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 10
    Rails5.1系からRails5.2系へのバージョンアップの際に、
    スマホアプリで、ログイン・ログアウト含め、
    何も出来なくなる事象発⽣。
    Rails5.1.6と5.2.0で暗号化・復号のロジックに修正が
    ⼊っており、互換性を失ってた。
    トークンの復号結果が、バージョンアップ前後で異なり、
    アプリから渡されるトークンの復号ができない。

    View Slide

  11. 2. Railsのバージョンアップ
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 11
    Railsバージョンアップの際は、
    専⽤の検証環境を⽤意しよう
    エンジニアが検証環境を簡単に構築できる仕組みを作成
    特定の⽂字列から始まるブランチにプッシュすると、
    ⾃動で検証環境を⽤意してくれるようになった
    「Rails × ECS でオートスケーリング&検証環境の⾃動構築」
    https://tech.medpeer.co.jp/entry/2018/06/20/080000

    View Slide

  12. 2. Railsのバージョンアップ
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 12
    他にもRailsのコード周りでたくさん反省点ありました
    MedPeer 開発者ブログに書いているので、興味がある⽅
    はご覧ください。
    例)gemのversionが固定されているが、理由を誰も覚え
    てない。
    「MedPeerをrails 5.2へアップデートしてました!」
    https://tech.medpeer.co.jp/entry/2019/01/31/191145

    View Slide

  13. 3. 懸垂棒の導⼊
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 13

    View Slide

  14. Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 14
    懸垂ができる⼈は、限られた⼈間
    僕らは知らない間に、多量の筋⾁を失い
    有り余る脂肪を⾝につけていた
    懸垂できないと、ただただ恥ずかしい
    3. 懸垂棒の導⼊

    View Slide

  15. Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 15
    3. 懸垂棒の導⼊

    View Slide

  16. Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 16
    3. 懸垂棒の導⼊

    View Slide

  17. Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 17
    3. 懸垂棒の導⼊

    View Slide

  18. まとめ
    Copyright(C) 2019 ALL RIGHTS RESERVED, MedPeer, Inc. 18
    筋⾁は裏切らない!
    新しい取り組みをしたら、
    いくつかの失敗は付きもの
    失敗をチームで克服できるか
    それを仕組み化できるかが⼤事
    ⾃慢の取り組み、教えてください!
    We are hiring !!!
    筋⾁は裏切らない!

    View Slide