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
600
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
580
Going Multiplatform With Kotlin
supriyasrivatsa
0
680
GIDS18_SupriyaSrivatsa.pdf
supriyasrivatsa
0
540
Mobile, AI and TensorFlow
supriyasrivatsa
0
560
Other Decks in Technology
See All in Technology
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
570
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
360
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
130
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
240
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
220
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
160
Reflections of AI: A Trilogy in Four Parts (GOTO; Copenhagen 2025)
ondfisk
0
110
能登半島地震において デジタルができたこと・できなかったこと
ditccsugii
0
150
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
7
3.3k
HR Force における DWH の併用事例 ~ サービス基盤としての BigQuery / 分析基盤としての Snowflake ~@Cross Data Platforms Meetup #2「BigQueryと愉快な仲間たち」
ryo_suzuki
0
120
OCI Network Firewall 概要
oracle4engineer
PRO
2
7.9k
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
2
600
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Code Reviewing Like a Champion
maltzj
526
40k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Rails Girls Zürich Keynote
gr2m
95
14k
Building Applications with DynamoDB
mza
96
6.7k
Designing for Performance
lara
610
69k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Language of Interfaces
destraynor
162
25k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Designing for humans not robots
tammielis
254
26k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
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