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
470
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
460
Going Multiplatform With Kotlin
supriyasrivatsa
0
540
GIDS18_SupriyaSrivatsa.pdf
supriyasrivatsa
0
420
Mobile, AI and TensorFlow
supriyasrivatsa
0
430
Other Decks in Technology
See All in Technology
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
130
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
260
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
5
530
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
360
Cracking the KubeCon CfP
inductor
2
250
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
350
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
データベース02: データベースの概念
trycycle
0
160
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
120
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
4
15k
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
1
230
Featured
See All Featured
Unsuck your backbone
ammeep
663
57k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
The Invisible Side of Design
smashingmag
294
49k
A better future with KSS
kneath
231
16k
Product Roadmaps are Hard
iamctodd
44
9.7k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Building Adaptive Systems
keathley
31
1.9k
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