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
Forgotten Histories
Search
Supriya Srivatsa
February 22, 2020
Technology
0
540
Forgotten Histories
Supriya Srivatsa
February 22, 2020
Tweet
Share
More Decks by Supriya Srivatsa
See All by Supriya Srivatsa
The Story of Villagers, Marbles and Oh, A Blockchain!
supriyasrivatsa
0
520
Going Multiplatform With Kotlin
supriyasrivatsa
0
620
GIDS18_SupriyaSrivatsa.pdf
supriyasrivatsa
0
490
Mobile, AI and TensorFlow
supriyasrivatsa
0
500
Other Decks in Technology
See All in Technology
Fintech SREの挑戦 PCI DSS対応をスマートにこなすインフラ戦略/Fintech SRE’s Challenge: Smart Infrastructure Strategies for PCI DSS Compliance
maaaato
0
390
20250208_OpenAIDeepResearchがやばいという話
doradora09
PRO
0
150
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
yukiogawa
0
110
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
3.9k
Autify Company Deck
autifyhq
2
41k
Classmethod AI Talks(CATs) #15 司会進行スライド(2025.02.06) / classmethod-ai-talks-aka-cats_moderator-slides_vol15_2025-02-06
shinyaa31
0
130
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
180
AIエージェントについてまとめてみた
pharma_x_tech
20
13k
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
5
620
開発者が自律的に AWS Security Hub findings に 対応する仕組みと AWS re:Invent 2024 登壇体験談 / Developers autonomously report AWS Security Hub findings Corresponding mechanism and AWS re:Invent 2024 presentation experience
kaminashi
0
140
NOSTR, réseau social et espace de liberté décentralisé
rlifchitz
0
170
クラウドネイティブ時代を乗り越えるためのオブザーバビリティ(可観測性)ことはじめ_CloudNative-Observability
tkhresk
0
110
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
29
2.2k
Documentation Writing (for coders)
carmenintech
67
4.6k
Rails Girls Zürich Keynote
gr2m
94
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
9
1.3k
How STYLIGHT went responsive
nonsquared
98
5.3k
Transcript
SUPRIYA SRIVATSA | SOFTWARE ENGINEER | @SUPRIYASRIVATSA Forgotten Histories Hidden
Insights Lying Within Your Git Repository
Codebase should be viewed not as the ultimate truth
Codebase should be viewed not as the ultimate truth, but
as a story of evolutions.
None
None
There is more to code than code.
There is more to code than code. What
When There is more to code than code. Who What
When A time dimension Who A social/organisational dimension There is
more to code than code.
Tech debt is not just technical.
Behavioural Code Analysis
None
None
None
None
None
BRING OUT YOUR CODEBASE!
BRING OUT YOUR CODEBASE!
BRING OUT YOUR CODEBASE!
http://adamtornhill.com/code/maatdistro.htm GET CODE MAAT
GIT LOGS $ git log --all --numstat --date=short --pretty=format:'--%h-- %ad--%aN'
--no-renames --after=YYYY-MM-DD > log.log
CHANGE FREQUENCY $ java -jar code-maat-1.0-standalone.jar -c git2 -l log.log
-a revisions -r 50 > <filename>.csv git log --format=format: --name-only --after=2019-12-01 | sort | uniq -c | sort -r | head -50
None
Halstead Complexity Measuring Complexity Cyclomatic Complexity
Halstead Complexity Measuring Complexity Lines of code, Indentation based complexity
Cyclomatic Complexity
Most active parts of code are often most complex parts
of code.
- Low cohesion Most active parts of code are often
most complex parts of code.
- Low cohesion - Developer congestion Most active parts of
code are often most complex parts of code.
- Low cohesion - Developer congestion REFACTOR HOTSPOT Most active
parts of code are often most complex parts of code.
HOTSPOT A complicated piece of code you have to work
with often
Change Coupling Files that change together
CHANGE COUPLING - The files change together in at least
X commits. - The files change together in at least Y% of the total commits to each file.
CHANGE COUPLING $ java -jar code-maat-1.0-standalone.jar -c git2 -l log.log
-a coupling -r 30 > <filename>.csv
Refactor Hotspots Change Coupling
Refactor Hotspots Change Coupling Code Age
Refactor Hotspots Change Coupling Code Age Knowledge Maps
None
None
None
None
None
None
Software Design X-Rays Adam Tornhill
Supriya Srivatsa @SupriyaSrivatsa