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
580
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
560
Going Multiplatform With Kotlin
supriyasrivatsa
0
650
GIDS18_SupriyaSrivatsa.pdf
supriyasrivatsa
0
520
Mobile, AI and TensorFlow
supriyasrivatsa
0
540
Other Decks in Technology
See All in Technology
AWS 怖い話 WAF編 @fillz_noh #AWSStartup #AWSStartup_Kansai
fillznoh
0
130
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
19
7.7k
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
1.1k
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
240
三視点LLMによる複数観点レビュー
mhlyc
0
240
振り返りTransit Gateway ~VPCをいい感じでつなげるために~
masakiokuda
4
210
Semantic Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
1
210
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
290
ロールが細分化された組織でSREは何をするか?
tgidgd
1
440
組織内、組織間の資産保護に必要なアイデンティティ基盤と関連技術の最新動向
fujie
0
310
(HackFes)米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
5
430
ソフトウェアQAがハードウェアの人になったの
mineo_matsuya
3
220
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
4 Signs Your Business is Dying
shpigford
184
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Building an army of robots
kneath
306
45k
Docker and Python
trallard
45
3.5k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
Agile that works and the tools we love
rasmusluckow
329
21k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
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