Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ESLintとCyclomatic complexityの話
Search
Kenya Hoshi
July 13, 2019
Programming
0
960
ESLintとCyclomatic complexityの話
ESLintを使って、JavaScriptのコード内でCyclomatic complexity(循環的複雑度)が高い箇所を特定するお話です。
Kenya Hoshi
July 13, 2019
Tweet
Share
More Decks by Kenya Hoshi
See All by Kenya Hoshi
Nice to meet you, Deno!
yahooshiken
0
120
コンポーネント管理の失敗とこれからのやっていき💪
yahooshiken
2
890
2019/07/11_POLを支えるProduct teamとmonday.com
yahooshiken
1
91
採用活動は究極のオンボーディングである
yahooshiken
1
1k
エンジニアインターンが考えるマネジメントキャリアパス
yahooshiken
1
1.8k
Other Decks in Programming
See All in Programming
Atomics APIを知る / Understanding Atomics API
ssssota
1
130
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
150
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
280
CSC509 Lecture 11
javiergs
PRO
0
310
ビルドプロセスをデバッグしよう!
yt8492
0
300
Swift Concurrency 年表クイズ
omochi
3
230
詳細の決定を遅らせつつ実装を早くする
shimabox
1
1k
Register is more than clipboard
satorunooshie
1
460
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
550
オンデバイスAIとXcode
ryodeveloper
0
450
Module Harmony
petamoriken
1
160
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Bash Introduction
62gerente
615
210k
KATA
mclloyd
PRO
32
15k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
660
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Unsuck your backbone
ammeep
671
58k
Designing for humans not robots
tammielis
254
26k
YesSQL, Process and Tooling at Scale
rocio
174
15k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Transcript
&4-JOUͱ $ZDMPNBUJDDPNQMFYJUZͷ !ZBIPPTIJLFO 4VTUBJOBCMF'SPOUFOE
ࣗݾհ w ໂᜌ݈)PTIJNVSF,FOZB w !ZBIPPTIJLFO w পߴઐˠେࡕେֶجૅֶ෦ٳֶத w גࣜձࣾ10-ΤϯδχΞ w
Likes:8FC'SPOUFOE 3FBDU 5ZQF4DSJQU &MN )3 4BB4 .BOBHFNFOU
ʮྑ͍ʯίʔυͱʁ ಥવͰ͕͢ʜ
8IBU`Tl$MFBO$PEFz ࢲɺࣗͷίʔυ͕ΤϨΨϯτͰޮྑ͍͜ͱΛΈ·͢ɻ ϩδοΫόά͕ೖΓࠐΈʹ͍͘Α͏ʹ୯७Ͱ͋Δ͖Ͱɺ ґଘੑอक͕༻ҙͱͳΔΑ͏ʹ࠷খݶʹ͖͢Ͱ͋Γɺ ΤϥʔॲཧҰ࿈ͷઓུʹଇͬͯશͰͳ͚ΕͳΒͣɺ ޙʑɺଞͷਓ͕ཧʹཪଧͪ͞Ε͍ͯͳ͍࠷దԽΛߦ͏ ༠ʹ͔ΒΕͯɺίʔυ͕͙ͪΌ͙ͪΌʹͳͬͯ͠·Θͳ͍Α͏ɺ ࣮ߦޮ࠷ߴʹ͍ۙͷͰͳ͚ΕͳΓ·ͤΜɻ ΫϦʔϯίʔυͱͭͷ͜ͱΛ্ख͘Δ͜ͱͰ͢ɻ #KBSOF4USPVTUSVQ
։ൃऀʹͱͬͯʮྑ͍ʯίʔυ Մಡੑ͕ߴ͍ʢSFBEBCMFʣ อकੑ͕ߴ͍ʢNBJOUBJOBCMFʣ ϘΫ͕ࢥ͏
ͦΜͳ؆୯ʹʮྑ͍ʯίʔυ ॻ͚ͳ͍ ͱ͍͑ɺ
ͳ͔ͥʁ
None
͜͜Ͱڥ൜ࡑֶͷΛ ࣏͕҆ѱԽ͢Δ·Ͱʹ࣍ͷܦաΛͨͲΔɻ ݐͷ૭͕յΕ͍ͯΔͷΛ์ஔ͢ΔͱɺͦΕ͕ʮ୭֘۠ʹ ରؔ͠৺Λ͍ͬͯͳ͍ʯͱ͍͏αΠϯͱͳΓɺ൜ࡑΛى͜͢͠ ͍ڥΛ࡞Γग़͢ɻ ΰϛͷϙΠࣺͯͳͲͷܰ൜ࡑ͕ى͖Δɻ ॅຽͷϞϥϧ͕Լͯ͠ɺҬͷৼڵɺ҆શ֬อʹڠྗ͠ͳ͘ͳ ΔɻͦΕ͕͞ΒʹڥΛѱԽͤ͞Δɻ ڟѱ൜ࡑΛؚΊͨ൜ࡑ͕ଟൃ͢ΔΑ͏ʹͳΔɻ
ιϑτΣΞ։ൃͷݱͰ ࣅͨΑ͏ͳޫܠ͋Γ·ͤΜ͔ʁ
#SPLFO8JOEPX5IFPSZ ࣏҆Λճ෮ͤ͞Δʹ ɾҰݟແͰ͋ͬͨΓɺܰඍͳடংҧߦҝͰऔΓక·Δ ʢ͝Έ͖ͪΜͱผࣺͯͯ͠ΔͳͲʣ ɾܯ৬һʹΑΔύτϩʔϧަ௨ҧͷऔΓక·ΓΛڧԽ͢Δ ɾҬࣾձܯ৬һʹڠྗ͠ɺடংͷҡ࣋ʹྗ͢Δ
ׂΕͨ૭Λ์ஔ͓͔ͯ͠ͳ͍ #PZ4DPVU3VMF ɾѱ͍ઃܭɺؒҧͬͨҙࢥܾఆɺ࣭ͷѱ͍ίʔ υɺൃݟͱಉ࣌ʹશͯम෮͢Δ ɾ͠ਖ਼͘͠म෮͢Δ͚ͩͷ͕࣌ؒͳ͚Ε ɺͦͷࢫΛΘ͔Γ͘͢ίϝϯτͳͲͰ໌ ࣔ͢Δ
-FBWFUIJTXPSMEBMJUUMF CFUUFSUIBOZPVGPVOEJU ͕ࣗ࠷ॳʹݟͨ࣌ΑΓɺੈքΛ͍͍ॴʹ͘͢ྗ͠Α͏ 3PCFSU#BEFO1PXFMM
Ͳ͏ͬͯιʔείʔυͷ Λૣظൃݟ͢Δ͔ʁ ͡Ό͋ɺ
ͦ͜Ͱ
&4-JOUΛ͏ϝϦοτ ຊ࣭తͰͳ͍ϨϏϡʔ͕ݮΔ ੩తղੳʹΑΔෆ۩߹ͷൃݟ
&4-JOUΛ͏ϝϦοτ ຊ࣭తͰͳ͍ϨϏϡʔ͕ݮΔ ੩తղੳʹΑΔෆ۩߹ͷൃݟ
ຊ࣭తͰͳ͍ϨϏϡʔ const person = { name: “Steve Jobs”, age: 45
}; ɾ0CKFDUͷ࠷ޙͷϓϩύςΟʹίϯϚ͚ͭͯཉ ͍͠ͳɻHJUͷ͕ࠩΑΓΘ͔Γ͍͔͢ΒͶɻ ɾϘΫμϒϧΫΥʔτΑΓγϯάϧΫΥʔτͷ ํ͕͖ͳΜͩɻ4IJGUΛԡͣ͞ʹೖྗͰ͖Δ͔Β Ͷɻ
ୀ۶ͳ͜ͱ&4-JOUʹΒͤΑ͏ ɾਓ͕ؒϓϩάϥϜͷॻ͖ํͷҧ ͍Λࢦఠ͢Δ͜ͱɺ݂Ͱ݂Λચ ͏ऴΘΓͷͳ͍૪͍ΛੜΈग़͢ ɾਓؒؔͷѱԽΛڪΕͯɺࢦఠ Λ͠ͳ͍ͷιϑτΣΞͷʮׂ Εͨ૭ʯΛ์ஔ͢Δ͜ͱ ɾຊདྷɺਓ͕ؒΔ͖αʔϏε ϩδοΫ༷ͷϨϏϡʔʹूத ͠Α͏
&4-JOUΛ͏ϝϦοτ ຊ࣭తͰͳ͍ϨϏϡʔ͕ݮΔ ੩తղੳʹΑΔෆ۩߹ͷൃݟ
੩తղੳͱʁ ίʔυΛ࣮ߦͤͣʹߦ͏ݕূ ɾίʔυͷՄಡੑʹؔ͢Δ ɹɹΠϯσϯτͳͲͷॻࣜҧ ɹɹ໋໊نҧ ɾίʔυͷෳࡶ͞ͳͲʹؔ͢Δݕূ ɹɹΫϥεɺϝιουͷॲཧͷෳࡶ͞ ɹɹΫϥεؒͷґଘؔ
ࠓͷຊ ͬͱ
$ZDMPNBUJDDPNQMFYJUZ ॥తෳࡶ
ʮ॥తෳࡶʯͱʁʁʁ ɾ5IPNBT.D$BCF͕։ൃͨ͠ ιϑτΣΞଌఆ๏ͷҰछ ɾϓϩάϥϜͷ੍ޚϑϩʔΛάϥϑͱͯ͠ දݱ͠ɺܭࢉ͞ΕΔɻ ɾJG FMTF GPS TXJUDI͕ଟ͍ذύλʔϯ ͕ଟ͍΄Ͳෳࡶ͕ߴ͍
ɾ॥తෳࡶ͕ߴ͍΄Ͳɺόάͷࠞೖ͕ ߴ͍ͱݴΘΕ͍ͯΔɻ
&4-JOUͰ $ZDMPNBUJDDPNQMFYJUZ { "complexity": ["error", 10] } Λɺ͋ͳͨͷFTMJOUSDʹՃ͢Δ͚ͩʂ؆୯ʂ
ෳࡶΛଌΔπʔϧͰ ͜Μͳͷ͋Γ·ͨ͠ ͦͷଞʹ
FTBOBMZTJTQMBUP +BWB4DSJQUͷίʔυΛղੳͯ͠ɺίʔυߦ ෳࡶεςοϓͳͲΛՄࢹԽͯ͘͠ΕΔ OQNύοέʔδ IUUQTXXXOQNKTDPNQBDLBHFQMBUP
࣮ࡍͷγεςϜͰݕূͯ͠Έͨ
ࠓճͷݕূରγεςϜ ɾ݄pSTUDPNNJUͷ3FBDUϓϩδΣΫτ ɾॳظϑϩϯτΤϯυઐΤϯδχΞਓ ɾۀҕୗͱΠϯλʔϯੜͷͱྦͷ݁থ ɾνʔϜϝϯόʔʮෛ࠴ͦ͏ʜʯ
QMBUPͰͷݕূ݁Ռ ສߦʂ ͼͬ͘Γʂ ͓ʁ ҙ֎ͱେৎʁ
&4-JOUͰͷݕূ݁Ռ ສߦͷதͰFSSPSʂࢥͬͯΑΓগͳ͍ʜ☺
॥తෳࡶͱόάࠞೖͷؔ ࢀߟɿIUUQTXXXJOGPRDPNOFXTDZDMPNBUJDDPNQMFYJUZ ॥తෳࡶ όάࠞೖ֬
·ͱΊ ɾϦϑΝΫλϦϯάΛͲ͔͜ΒखΛ͚Δ͔ͷ ํΛܾΊΔஅࡐྉ͕ू·ͬͨʂ ɹϦϑΝΫλલޙͰ͕Ͳ͏ͳΔָ͔͠Έ ɾνʔϜϝϯόʔͷίʔυʹରͯ͠ͷةػҙࣝ ͕ߴ·ͬͨ ɹΞʔΩςΫνϟ৽ϓϩδΣΫτ࢝ಈʂ
5IBOLT