コードレビュー なんてしてられるかッ!!

コードレビュー なんてしてられるかッ!!

俺の話を聞け!! LT大会#7
結論markuplintというHTMLのLinter作った

1adcc39bcb4268334437c9c12b84d7a4?s=128

Yusuke Hirao

January 19, 2018
Tweet

Transcript

  1. 2018 Yusuke Hirao, CC BY-ND. ίʔυϨϏϡʔ ͳΜͯͯ͠ΒΕΔ͔ο Զͷ࿩Λฉ͚-5େձ גࣜձࣾσΟʔθϩ ϑϩϯτΤϯυΤϯδχΞ

    ฏඌ༏య
  2. 2018 Yusuke Hirao, CC BY-ND. ݁࿦͔Β

  3. 2018 Yusuke Hirao, CC BY-ND. )5.-ͷ-JOUFS࡞ͬͨ

  4. 2018 Yusuke Hirao, CC BY-ND. ࣗݾ঺հ ฏඌ༏యʢͻΒ͓Ώ͏ͯΜʣ גࣜձࣾσΟʔθϩ ϑϩϯτΤϯυΤϯδχΞ ίϛϡχςΟ׆ಈ

    ෱ԬϑϩϯτΤϯυ༑ͷձ'VLVPLB'SPOUFOE'SPHT ෱ԬϚʔΫΞοϓษڧձ CBTFS$.4Ϣʔβʔձ Yusuke Hirao @cloud10designs
  5. 2018 Yusuke Hirao, CC BY-ND. ࣾ಺ͷ ίʔσΟϯάΨΠυϥΠϯΛ ॻ͍ͨΜͰ͢

  6. 2018 Yusuke Hirao, CC BY-ND.

  7. 2018 Yusuke Hirao, CC BY-ND. ίʔσΟϯάελΠϧ͔Β ΞΫηγϒϧϚʔΫΞοϓɺ $44ઃܭɺ+4ͷςΫχοΫ͔Β ίʔσΟϯάࢥ૝ͳͲ ΤϞ͍ײ͡Ͱςϯί੝Γ

  8. 2018 Yusuke Hirao, CC BY-ND. Ͱɺ ࡞͔ͬͨΒʹ͸ɺ ͪΌΜͱΨΠυϥΠϯʹ Ԋ͍ͬͯΔ͔֬ೝ͍ͨ͠

  9. 2018 Yusuke Hirao, CC BY-ND. Α͠ɺ

  10. 2018 Yusuke Hirao, CC BY-ND. ίʔυϨϏϡʔ͠Α͏

  11. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏

  12. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏

  13. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔

  14. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏
  15. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͢
  16. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ
  17. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ ͓΍ɺෆਖ਼ͳωετؔ܎ʹͳͬ ͯ·͢
  18. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ ͓΍ɺෆਖ਼ͳωετؔ܎ʹͳͬ ͯ·͋͢ɺλά໊͸খจࣈʹ ͍ͯͩ͘͠͞Ͷ
  19. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ ͓΍ɺෆਖ਼ͳωετؔ܎ʹͳͬ ͯ·͋͢ɺλά໊͸খจࣈʹ ͍ͯͩ͘͠͞ͶͱΓ͋͑ͣΠ ϯσϯτ͚ͭͯ΋Β͑·͔͢ʁ
  20. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ ͓΍ɺෆਖ਼ͳωετؔ܎ʹͳͬ ͯ·͋͢ɺλά໊͸খจࣈʹ ͍ͯͩ͘͠͞ͶͱΓ͋͑ͣΠ ϯσϯτ͚ͭͯ΋Β͑·͢ ͔ʁΨΠυϥΠϯಡΈ·͠ ͨʁ
  21. 2018 Yusuke Hirao, CC BY-ND. ͜͜͸+4ͷτϦΨʔʹͳΔ ͷͰBλάΑΓCVUUPOλάͭ ͔͍·͠ΐ͏͜͜͸VMMJͰՕ ৚ॻ͖ʹ͠·͠ΐ͏OBWʹ͸ BSJBMBCFMೖΕ·͠ΐ͏͔ϥ

    ϯυϚʔΫϩʔϧ͚ͭ·͠ΐ ͏͓΍ɺด͡λά͕ൈ͚͍ͯ ·͓͢΍ɺBMU͕ͳ͍Ͱ͢Ͷ ͓΍ɺෆਖ਼ͳωετؔ܎ʹͳͬ ͯ·͋͢ɺλά໊͸খจࣈʹ ͍ͯͩ͘͠͞ͶͱΓ͋͑ͣΠ ϯσϯτ͚ͭͯ΋Β͑·͢ ͔ʁΨΠυϥΠϯಡΈ·͠ ͨʁ ͔͠΋ ਺ઍϖʔδ
  22. 2018 Yusuke Hirao, CC BY-ND. ίʔυϨϏϡʔ͠Α͏

  23. 2018 Yusuke Hirao, CC BY-ND. ίʔυϨϏϡʔ͠Α͏ ͯ͠ΒΕΔ͔ο

  24. 2018 Yusuke Hirao, CC BY-ND. ϨϏϡʔ͸ࠔ೉ΛۃΊͨ ϨϏϡʔͷຊདྷͷ໨త ίϯςΩετͱηϚϯςΟοΫͷ֬ೝ ΞΫηγϏϦςΟνΣοΫ ࣮ࡍʹؾΛऔΒΕͯ͠·ͬͨ͜ͱ

    )5.-7BMJEBUJPO Ϋϥε໋໊نଇͳͲίʔσΟϯάΨΠυϥΠϯ४ڌͷ֬ೝ ඼্࣭໰୊ͳ͍͚ͲϝϯςͷͨΊͷΨΠυϥΠϯϧʔϧ͕ Πϯσϯτ͸ϨϏϡʔͷಡΈ΍͢͞ͷͨΊͳͷʹͦΕΛࢦఠ ෛͷϧʔϓ
  25. 2018 Yusuke Hirao, CC BY-ND. -JOUFSΛಋೖ͠Α͏✅

  26. 2018 Yusuke Hirao, CC BY-ND. -JOUFSͷԸܙ +BWB4DSJQU͸&4-JOUͰɺ$44͸4UZMFMJOUͰಋೖࡁΈ ࣍ͷ͜ͱ͸͍͍ͩͨࣗಈԽͰ͖Δ γϯλοΫενΣοΫ ίʔυελΠϧͷνΣοΫ

    ໋໊نଇͷνΣοΫ ΞϯνύλʔϯͷνΣοΫ ࢦఠ͢Δͷ͸ػցͳͷͰਓ֨൱ఆʹड͚औΒΕʹ͍͘ ʮΤϥʔ͕ग़ͳ͍Α͏ʹίʔσΟϯά͍ͯͩ͘͠͞ʯͰย෇͘
  27. 2018 Yusuke Hirao, CC BY-ND. )5.-)JOUΛ࢖ͬͯΈ͕ͨʜ جຊͷνΣοΫ͸΋ͪΖΜαϙʔτ ϓϥάΠϯ"1*Λ͍࣋ͬͯͨͷͰ࠷ॳ͸ͦΕͰؤுͬͨ ͔͠͠΍͍ͬͯ͘͏ͪʹ໰୊͕ϙϩϙϩ "1*͸͋ͬͯ΋HVMQ΍ΤσΟλ͕ϓϥάΠϯʹରԠͯ͠ͳ͍

    &4-JOUΈ͍ͨʹϑΥϧμ͝ͱͷϧʔϧઃఆ͕Ͱ͖ͳ͍ 47(ͳͲͷ֎དྷཁૉʹରԠ͍ͯ͠ͳ͍ ։ൃࢭ·ͬͯΔ͠
  28. 2018 Yusuke Hirao, CC BY-ND. ͭʔΘ͚Ͱ

  29. 2018 Yusuke Hirao, CC BY-ND. )5.--JOUFS࡞Γ·ͨ͠

  30. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU /PEFKTͰಈ͘)5.--JOUFS ͦͷ͏ͪϒϥ΢β൛΋  ϓϥάΠϯ"1*Λ͍࣋ͬͯΔ

    ਖ਼֬ͳϩέʔγϣϯΛ΋ͭ"45 %0.ϥΠΫͳπϦʔߏ଄͕ѻ͑Δ ཁૉ͝ͱʹϧʔϧΛ࠶ઃఆͰ͖Δ ର৅ͷཁૉ͸ηϨΫλͰߜΓ͜ΊΔ ϑΥϧμ͝ͱʹϧʔϧΛઃఆͰ͖Δ ϧʔϧઃఆ͸ܧঝ͕Ͱ͖Δ )5.--JWJOHTUBOEBSEͷίϯςϯπϞσϧ৘ใΛ΋ͭ ֎དྷཁૉɾΧελϜཁૉɾ7JFXϥΠϒϥϦͷରԠΛݟਾ͑ͨઃܭ Τϥʔ͕೔ຊޠ ϩέʔϧͰ൑ఆ ·੍ͩ࡞த͚ͩͲ
  31. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU ͦͦ͜͜͸ಈ͖·͢

  32. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU 74$PEF֦ுެ։ࡁΈ

  33. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU ॗʑϧʔϧͱ௥Ճத

  34. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU ͕Μ͹ͬͯυΩϡϝϯτॻ͍ͯ·͢

  35. 2018 Yusuke Hirao, CC BY-ND. Ͱɺ࡞ͬͯΈͯͷײ૝

  36. 2018 Yusuke Hirao, CC BY-ND. ௒ָ͍͠

  37. 2018 Yusuke Hirao, CC BY-ND. ͳΜ΍͜Ε։ൃ௒ָ͍͠΍Μ ඞཁʹۦΒΕͯ࡞Γ࢝Ίͨʹͯ͠͸༧૝֎ʹָ͍͠ ΰϦΰϦ)5.-ΛѻͬͯΔͷʹϑϩϯτΤϯυ͡Όͳ͍ෆࢥٞײ ͍ΖΜͳֶͼ͕͋ͬͨ ͱʹ͔͘)5.--JWJOHTUBOEBSEಡΈ·ͬͨ͘

    )5.-ͷߏจ΍ύʔεʹ΍ͨΒৄ͘͠ͳͬͨ $-*ͷԞਂ͞ ඪ४ೖྗग़ྗͱ͔ϑϩϯτΤϯυͰ͸ະ஌ ࠶ؼॲཧͱ͔΋ਅ໘໨ʹऔΓ૊ΜͩͷॳΊ͔ͯ΋͠Εͳ͍ ϒϥ΢βޓ׵Λؾʹ͠ͳ͍ίʔσΟϯάͷշײ ͋ͱɺۙʑ਺ઍϖʔδͷ໾ʹཱͯΔ͜ͱ͕ ͸͖ͬΓ͍ͯ͠Δ఺͸೩͑Δಈػʹͳ͍ͬͯͨ
  38. 2018 Yusuke Hirao, CC BY-ND. ໨తͱָཱ͍͕྆͠Ͱ͖ͦ͏Ͱ͋Δ ϨϏϡʔͷຊདྷͷ໨త ίϯςΩετͱηϚϯςΟοΫͷ֬ೝ ΞΫηγϏϦςΟνΣοΫ ࣮ࡍʹؾΛऔΒΕͯ͠·ͬͨ͜ͱ

    )5.-7BMJEBUJPO Ϋϥε໋໊نଇͳͲίʔσΟϯάΨΠυϥΠϯ४ڌͷ֬ೝ ඼্࣭໰୊ͳ͍͚ͲϝϯςͷͨΊͷΨΠυϥΠϯϧʔϧ͕ Πϯσϯτ͸ϨϏϡʔͷಡΈ΍͢͞ʹͨΊͳͷʹͦΕΛࢦఠ ෛͷϧʔϓ
  39. 2018 Yusuke Hirao, CC BY-ND. ໨తͱָཱ͍͕྆͠Ͱ͖ͦ͏Ͱ͋Δ ϨϏϡʔͷຊདྷͷ໨త ίϯςΩετͱηϚϯςΟοΫͷ֬ೝ ΞΫηγϏϦςΟνΣοΫ ࣮ࡍʹؾΛऔΒΕͯ͠·ͬͨ͜ͱ

    )5.-7BMJEBUJPO Ϋϥε໋໊نଇͳͲίʔσΟϯάΨΠυϥΠϯ४ڌͷ֬ೝ ඼্࣭໰୊ͳ͍͚ͲϝϯςͷͨΊͷΨΠυϥΠϯϧʔϧ͕ Πϯσϯτ͸ϨϏϡʔͷಡΈ΍͢͞ʹͨΊͳͷʹͦΕΛࢦఠ ෛͷϧʔϓ ໨త
  40. 2018 Yusuke Hirao, CC BY-ND. ໨తͱָཱ͍͕྆͠Ͱ͖ͦ͏Ͱ͋Δ ϨϏϡʔͷຊདྷͷ໨త ίϯςΩετͱηϚϯςΟοΫͷ֬ೝ ΞΫηγϏϦςΟνΣοΫ ࣮ࡍʹؾΛऔΒΕͯ͠·ͬͨ͜ͱ

    )5.-7BMJEBUJPO Ϋϥε໋໊نଇͳͲίʔσΟϯάΨΠυϥΠϯ४ڌͷ֬ೝ ඼্࣭໰୊ͳ͍͚ͲϝϯςͷͨΊͷΨΠυϥΠϯϧʔϧ͕ Πϯσϯτ͸ϨϏϡʔͷಡΈ΍͢͞ʹͨΊͳͷʹͦΕΛࢦఠ ෛͷϧʔϓ ໨త ָ͍͠
  41. 2018 Yusuke Hirao, CC BY-ND. ͋͞ɺ

  42. 2018 Yusuke Hirao, CC BY-ND. ίʔυϨϏϡʔ͠Α͏

  43. 2018 Yusuke Hirao, CC BY-ND. 5IBOLZPV

  44. 2018 Yusuke Hirao, CC BY-ND. NBSLVQMJOU IUUQTHJUIVCDPN:VTVLF)JSBPNBSLVQMJOU NBSLVQMJOUQMVHJOUFYUMJOU IUUQTXXXOQNKTDPNQBDLBHFNBSLVQMJOUQMVHJOUFYUMJOU NBSLVQMJOUGPS74$PEF

    IUUQTNBSLFUQMBDFWJTVBMTUVEJPDPNJUFNT JUFN/BNFZVTVLFIJSBPWTDPEFNBSLVQMJOU