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

8年目のプロジェクトにRuboCopを導入した話/Introduce RuboCop In 8-year-old project

8年目のプロジェクトにRuboCopを導入した話/Introduce RuboCop In 8-year-old project

8年の歴史があるプロジェクトにRuboCopを導入した話です。

Yuta Kamezezaki

May 30, 2019
Tweet

Other Decks in Technology

Transcript

  1. ©2019 Wantedly, Inc.
    Introduce RuboCop
    In 8-year-old project
    May 30, 2019 - Yuta Kamezaki
    Meguro.rb #27

    View Slide

  2. ©2019 Wantedly, Inc.
    Yuta Kamezaki @ykamez
    About me
    Twitter: @ykamez_
    2
    Wantedly. Inc. / Engineer
    2019೥ೖࣾɻ
    Wantedly VisitͷάϩʔενʔϜॴଐ
    ෼ੳ͔ΒࢪࡦఏҊɺ࣮૷(αʔόʔ)·ͰΛ୲౰ɻ

    View Slide

  3. ©2019 Wantedly, Inc.
    3VCP$PQΛೖΕ͍ͨਓ
    ಛʹɺطଘͷϓϩδΣΫτʹೖΕΔέʔε
    ର৅

    View Slide

  4. ©2019 Wantedly, Inc.
    େมͩͬͨ͜ͱ
    ޻෉ͨ͜͠ͱ
    ࠓ೔࿩͢͜ͱ ࡀͷϓϩδΣΫτʹ3VCP$PQΛಋೖ͢Δ·Ͱ

    View Slide

  5. ©2019 Wantedly, Inc.
    w ͲͷϧʔϧΛ࠾༻͢Δ͔
    w ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    w Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    େมͩͬͨ͜ͱ Ұൠతͳ࿩

    View Slide

  6. ©2019 Wantedly, Inc.
    ྺ࢙͕௕ͯ͘ڊେ ೥ੜ·Ε

    ߦ਺: 166,566
    େมͩͬͨ͜ͱ 8BOUFEMZͳΒͰ͸ͷ໰୊

    View Slide

  7. ©2019 Wantedly, Inc.
    w ೥ؒΈΜͳࣗ༝ͳελΠϧͰॻ͍͖ͯͨ
    w طଘίʔυͷमਖ਼͕େม
    w ؔ܎ऀ͕ଟ͍ˠίϯηϯαε͕औΓͮΒ͍
    w ࠓߋײ ৺ཧతϋʔυϧ

    େมͩͬͨ͜ͱ 8BOUFEMZͳΒͰ͸ͷ໰୊
    ྺ࢙͕௕ͯ͘ڊେ

    View Slide

  8. ©2019 Wantedly, Inc.
    σϑΥϧτͰ૸ΒͤͯΈͨ
    ͲͷϧʔϧΛ࠾༻͢Δ͔

    View Slide

  9. ©2019 Wantedly, Inc.
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    Inspecting 4062 files
    4062 files inspected, 126547 offenses detected
    σϑΥϧτͷϧʔϧͷ৔߹
    126,547 offenses

    View Slide

  10. ©2019 Wantedly, Inc.
    σϑΥϧτͷϧʔϧ͸ݫͦ͠͏
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    ϧʔϧͱݱঢ়ʹେ͖ͳဃ཭͕͋Δ

    View Slide

  11. ©2019 Wantedly, Inc.
    NFPXDPQͷϧʔϧ͕ྑ͍Β͍͠
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    ผνʔϜͰಋೖ͓ͯ͠Γɺධ൑͕ྑ͔ͬͨ

    View Slide

  12. ©2019 Wantedly, Inc.
    3VCP$PQͷDPOpHͷHFN
    https://github.com/sider/meowcop
    ελΠϧͷ໰୊͸ࢦఠ͠ͳ͍
    w ϓϩδΣΫτݻ༗ͷϧʔϧΛແޮԽ
    https://blog-ja.sideci.com/entry/2016/10/03/171816
    NFPXDPQͱ͸
    →طଘProjectʹಋೖ͠΍͍͢

    View Slide

  13. ©2019 Wantedly, Inc.
    4062 files inspected, 12080 offenses detecte
    ͲͷϧʔϧΛ࠾༻͢Δ͔ NFPXDPQͷϧʔϧͷ৔߹

    View Slide

  14. ©2019 Wantedly, Inc.
    4062 files inspected, 12080 offenses detecte
    ͲͷϧʔϧΛ࠾༻͢Δ͔ NFPXDPQͷϧʔϧͷ৔߹
    12,080 offenses

    View Slide

  15. ©2019 Wantedly, Inc.
    4062 files inspected, 12080 offenses detecte
    126,547→12,080
    ͲͷϧʔϧΛ࠾༻͢Δ͔ NFPXDPQͷϧʔϧͷ৔߹
    ݱ࣮తͳဃ཭

    View Slide

  16. ©2019 Wantedly, Inc.
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    w ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    w Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    େมͩͬͨ͜ͱ

    View Slide

  17. ©2019 Wantedly, Inc.
    ୭΋࢖Θͳ͔ͬͨΒҙຯ͕ͳ͍
    ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    ڧ੍ྗ͕ͳ͍΋ͷ͸ܗ֚Խ͕ͪ͠

    View Slide

  18. ©2019 Wantedly, Inc.
    ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    +

    View Slide

  19. ©2019 Wantedly, Inc.
    1. reviewdog
    3VCP$PQͷ݁ՌΛ13ʹίϝϯτͯ͘͠ΕΔ
    IUUQTHJUIVCDPNSFWJFXEPHSFWJFXEPH
    2. Travis CI
    $*αʔϏεͰࣗಈνΣοΫ
    ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    ˠΏΔΊͷӡ༻ࣗಈԽ $*͸མͱ͞ͳ͍

    View Slide

  20. ©2019 Wantedly, Inc.
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    ✅ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    w Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    େมͩͬͨ͜ͱ

    View Slide

  21. ©2019 Wantedly, Inc.
    w طଘͷίʔυͷѻ͍
    w ϧʔϧऔࣺબ୒ͷϓϩηε
    Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠

    View Slide

  22. ©2019 Wantedly, Inc.
    طଘͷίʔυͷѻ͍
    Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    ϧʔϧΛద༻ͨ͠Βɺطଘͷ$PEF΋मਖ਼ɻ
    ϧʔϧͱ$PEFͷဃ཭Λ๷͙ɻ

    View Slide

  23. ©2019 Wantedly, Inc.
    ϧʔϧऔࣺબ୒ͷϓϩηε
    Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    JTTVFͰٞ࿦ˠϧʔϧ֬ఆˠ൓ө
    JTTVFͰΦʔϓϯʹٞ࿦͠ɺೲಘײΛ࣋ͨͤΔɻ

    View Slide

  24. ©2019 Wantedly, Inc.
    ϧʔϧऔࣺબ୒ͷϓϩηε
    Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠

    View Slide

  25. ©2019 Wantedly, Inc.
    JTTVFͰΦʔϓϯʹٞ࿦͠ɺೲಘײΛ࣋ͨͤΔɻ
    ϧʔϧऔࣺબ୒ͷϓϩηε
    Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    JTTVFͰٞ࿦ˠϧʔϧ֬ఆˠ൓ө

    View Slide

  26. ©2019 Wantedly, Inc.
    ͲͷϧʔϧΛ࠾༻͢Δ͔
    ✅ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    ✅Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠FUD
    େมͩͬͨ͜ͱ

    View Slide

  27. ©2019 Wantedly, Inc.
    ՝୊
    େมͩͬͨ͜ͱ޻෉ͨ͜͠ͱ
    ํ๏
    •ؔ܎ऀͷଟ͞
    •ڊେ͞
    •8೥ͷྺ࢙
    •ΏΔ͍ϧʔϧͰελʔτ
    •CIͰࣗಈԽ(ڧ੍͸͠ͳ͍)
    •Φʔϓϯͳٞ࿦
    •ӡ༻ํ਑ͷ໌֬Խ
    • ͲͷϧʔϧΛ࠾༻͢Δ͔
    • ͲͷΑ͏ʹ࢖ͬͯ΋Β͏͔
    • Ͳ͏͍͏ํ਑Ͱӡ༻͍͔ͯ͘͠
    Ұൠతͳ໰୊
    Wantedlyݻ༗ͷ໰୊

    View Slide

  28. ©2019 Wantedly, Inc.
    ແࣄ3VCP$PQಋೖ
    ೥ӽ͠ͷಋೖ

    View Slide

  29. ©2019 Wantedly, Inc.
    ྑ͍఺
    • ϨϏϡʔલʹϛεʹؾ͕͚ͭͨɻ
    ՝୊
    • ϧʔϧͷऔࣺબ୒͕೉͍͠ɻ
    • ϧʔϧΛܾΊΔϓϩηε͕ᐆດɻ
    ൓Ԡ

    View Slide

  30. ©2019 Wantedly, Inc.
    ϧʔϧऔࣺબ୒ͷϓϩηεޮ཰Խ
    • ೲಘײͷ͋ΔϧʔϧΛͲ͏ૉૣܾ͘Ί͍͔ͯ͘
    ͲΕ͘Β͍ݫ͍͠ӡ༻ʹ͢Δ͔
    • CI͸མͱ͢ͷ͔
    ࣾ಺ͷϧʔϧڞ௨Խ ϚΠΫϩαʔϏε

    ࢒Δ՝୊
    ˠ·ͩ·ͩࢼߦࡨޡத

    View Slide

  31. ©2019 Wantedly, Inc.
    ೥໨ͷϓϩδΣΫτͰ΋ಋೖͰ͖Δ
    • ઍཬͷಓ΋Ұา͔Β
    ΏΔ࢝͘ΊͯΈΑ͏
    ·ͱΊ

    View Slide

  32. ©2019 Wantedly, Inc.
    Thank you

    View Slide