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
静的解析の話
Search
gaopin
November 20, 2017
Technology
0
180
静的解析の話
Swift愛好会 Vol.24
gaopin
November 20, 2017
Tweet
Share
More Decks by gaopin
See All by gaopin
draft for devsummi
gaopin1534
0
150
XCTestを目的別で分けるすすめ
gaopin1534
0
3.5k
The swifter way of A/B testing implementation
gaopin1534
2
1.6k
RxSwiftってどうなってるの?
gaopin1534
1
310
Drag'n'Drop'n'iPhone
gaopin1534
0
140
OBJ-C戦線異常なし@DevLOVE 199
gaopin1534
1
140
Other Decks in Technology
See All in Technology
チームメンバー迷わないIaC設計
hayama17
5
3.5k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
17
6.9k
Snowflake Night #2 LT
taromatsui_cccmkhd
0
310
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
380
類似画像検索モデルの開発ノウハウ
lycorptech_jp
PRO
0
200
Serverless Agent Architecture on Azure / serverless-agent-on-azure
miyake
1
120
型を書かないRuby開発への挑戦
riseshia
0
120
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
130
AWS Bedrock Guardrails / 機密情報の入力・出力をブロックする — Blocking Sensitive Information Input/Output
kazuhitonakayama
2
190
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
4
570
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
0
810
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
65
Skip the Path - Find Your Career Trail
mkilby
1
71
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
The Limits of Empathy - UXLibs8
cassininazir
1
240
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
130
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
220
Statistics for Hackers
jakevdp
799
230k
Being A Developer After 40
akosma
91
590k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Transcript
੩తղੳͷ͓ @gaopin1534
ࣗݾհ • ߴদฏ(gaopin1534) • ਓࡐܥاۀۈ • iOSྺ1ڧ • ͱPHPͱ͔Rubyͱ͔ͱྑ͠ •
githubͱ͔twitter→@gaopin1534
੩తղੳʁ
੩తղੳͬͯͳ͋ʹʁ • ίʔυΛ࣮ߦͤͣʹߦ͏ݕূ • Lintͱ͔ • ఆྔతʹίʔυͷ࣭ΛଌΔ͜ͱ͕Ͱ͖Δ
Why ੩తղੳʁ
ࣄͷى͜Γࠓ಄
ԶࢯผϓϩμΫτʹδϣΠϯ
ർฐͨ͠ίʔυϕʔε by fltmech98
ੵΈ্͕ΔObj-Cͷࢁ by Kristina D.C. Hoeppner
ԶSwift͕ॻ͖͍ͨ
͜ͷίʔυ͍͔ΜͰ͢ 4XJGUͰॻ͖͑·͠ΐ ࣌4XJGUͩΑ4XJGU #044 ͔͚ۚͯ·ͰΔඞཁ͋Γ·ͯ͠ʁ Մಡੑ͕ͻͲ͍ όά͕༙͖·͢Α͜Ε #044 ແअؾͳײͰۚಈ͔ΜͷͩΑ
https://goo.gl/HSLSZn
ͳΒఆྔతͳΤϏσϯεΛ Ϊϟβʔ͢Εྑ͍ΜͰ͠ΐʁ
※swiftͷެࣜplugin༗ྉ(OSS൛༗ΔΒ͍͚͠Ͳͬͨ͜ͱແ͍)
॥తෳࡶ Cyclomatic Complexity
M=E-N+2P M = ॥తෳࡶ E = άϥϑͷΤοδ N = άϥϑͷϊʔυ
P = ࿈݁͞Εͨίϯϙʔωϯτͷ
॥తෳࡶ • ifจforจ͕ແ͍ίʔυͰ1 • ϑϩʔάϥϑ্औΓ͏Δܦ࿏ͷԼݶ • શͳذཏΛୡ͢ΔͨΊʹඞཁͳς ετέʔεͷͷ্ݶ • ߴ͍΄Ͳڽूੑ͕͍ͱߟ͑ΒΕΔ
͜Μͳͱ͖ʁ ϝιουฏۉ͍͍ײ͡ͳͷʹΫϥεฏۉ͕ߴ͍ → Ϋϥεͷׂ͕దͰͳ͍ ϝιουฏۉͷ࣌Ͱ͢Ͱʹѱ͍ → ϝιουͷ໊͚ɺΛݟ͖͢Ͱʁ ϝιουฏۉ͍͍ײ͡ͳͷʹϑΝΠϧฏۉ͕ߴ͍ → ϑΝΠϧ͚ͳͲΛݟ͔͢ɺ͋Δఔڐ༰
॥తෳࡶ ෳࡶ͞ͷঢ়ଶ όάࠞೖ ҎԼ ඇৗʹྑ͍ߏ Ҏ্ ߏతͳϦεΫ͋Γ Ҏ্
ςετෆՄೳ Ҏ্ ͍͔ͳΔมߋޡ मਖ਼ΛੜΉ http://szk-takanori.hatenablog.com/entry/20111219/p1
ίʔυͷष͍ Code Smell
ίʔυͷष͍ • ͍ΘΏΔʮष͏ʯՕॴͷ • Ұൠతʹʮष͏ʯͱݴΘΕΔύλʔϯ͕ݱΕ ͍ͯΔՕॴΛूܭͯ͘͠ΕΔ • ࢀߟఔʹ͢Δͷ͕ྑ͍͔ͳʔͱ
ॏෳ Duplications
ॏෳ • ίʔυͰॏෳ͍ͯ͠Δߦͷׂ߹ • વɺมߋ࣌ʹҙਤͤ͵Өڹ͕ݱΕΔ֬ʹ ؔͯ͘͠Δ • 0%ʹ͢Δ͜ͱෆՄೳͳͷͰɺҰఆҎԼΛ ࢦ͢ͱྑ͍
ͦͷଞ • Reliablity Rating • ϧʔϧΛͪΌΜͱܾΊͳ͚Εɺࢦ͍ͨ࢟͠ʹܴ͑ͳ͍ɻಋೖίετ͕ߴ ͍ҹ • LOC •
ίʔυྔɻίʔυྔͱόά૬͕ؔ͋ΔͷͰɺଟগؾʹ͢Δͷ٢ɻͨͩɺ ϓϩμΫτͷεέʔϧͱίʔυͷεέʔϧΛൺֱɺѲ͢Δ΄͏͕େࣄ͔ͳͱ • ίϝϯτൺ • ίϝϯτӡ༻ͷϧʔϧ͕͋ΔͳΒ͏ʁతʹ͋·Γ͍Βͳ͍ͱࢥͬͯ·͢ɻ
ͨͩ͠
ղੳ͋͘·Ͱ҆
૬ରతͳӡ༻
ఆੑͱͷֻ͚߹Θͤ
੩తղੳͯ͠ ͰԥΕ͓K
Fin.