where to start refactoring?
TRANSCRIPT
Where to start refactoring?
Agenda1. Identify biggest files
2. Identify most complex files
3. Identify most changed files
4. Crossing our findings
$ git clone https://github.com/jquery/jquery.git
$ cd jquery
$ git checkout 3.1.0
Biggest files
$ find src -type f | xargs wc -l | sort | tail
$ find src -type f | xargs wc -l | sort | tail
234 src/callbacks.js
237 src/selector-native.js
389 src/deferred.js
424 src/css.js
481 src/core.js
486 src/manipulation.js
688 src/effects.js
726 src/event.js
855 src/ajax.js
9026 total
$ brew install cloc
$ find src -type f | xargs cloc βby-file | head -n 20
$ find src -type f | xargs cloc βby-file | head -n 20
β¦ omitted output β¦
File blank comment code
-----------------------------------------------------------------------------------------
src/effects.js 101 56 531
src/ajax.js 168 179 508
src/event.js 125 94 507
src/manipulation.js 93 44 349
src/core.js 104 78 299
src/css.js 81 65 278
src/deferred.js 66 86 237
src/selector-native.js 38 47 152
src/offset.js 42 38 152
β¦ omitted output β¦
Most complex files
$ npm install -g jscomplexity
$ cd src
$ jscomplexity
$ jscomplexity
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββ
β File β Complexity β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
β ./selector-native.js β 44 β
β ./event/trigger.js β 38 β
β¦ omitted output β¦
Most changed files
$ git log --pretty=format: --name-only -- src |\ sort | uniq -c | sort -rg | head
$ git log --pretty=format: --name-only -- src | sort | uniq -c |\ sort -rg | head
4115
601 src/core.js
560 src/event.js
379 src/ajax.js
346 src/manipulation.js
343 src/jquery/jquery.js
239 src/attributes.js
236 src/css.js
222 src/sizzle
201 src/effects.js
$ git log --pretty=format: --name-only \ --after="1 year ago" -- src | sort | uniq -c |\ sort -rg | head
$ git log --pretty=format: --name-only --after="1 year ago" -- src | sort |\ uniq -c | sort -rg | head
137
22 src/event.js
17 src/core.js
14 src/ajax.js
13 src/manipulation.js
11 src/deferred.js
11 src/css.js
10 src/css/showHide.js
9 src/offset.js
9 src/effects.js
$ shopt -s globstar # if you are on bash (4+)
$ git effort --above 8 src/**/*.js -- --after="1 year ago"
$ git effort --above 8 src/**/*.js -- --after="1 year agoβ
path commits active days
src/event.js................................. 22 21
src/core.js.................................. 17 16
src/ajax.js.................................. 14 14
src/manipulation.js.......................... 13 11
src/deferred.js.............................. 11 11
src/css.js................................... 11 11
src/css/showHide.js.......................... 10 10
src/offset.js................................ 9 8
src/effects.js............................... 9 8
Crossing our findings
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
File code
---------------------------
src/effects.js 531
src/ajax.js 508
src/event.js 507
src/manipulation.js 349
src/core.js 299
src/css.js 278
β File β Cmp β
βββββββββββββββββββββΌββββββ€
β ./ajax.js β 123 β
β ./event.js β 120 β
β ./effects.js β 108 β
β ./manipulation.js β 77 β
β ./css.js β 73 β
β ./core.js β 54 β
path commits
src/event.js............ 22
src/core.js............. 17
src/ajax.js............. 14
src/manipulation.js..... 13
src/deferred.js......... 11
src/css.js.............. 11
src/css/showHide.js..... 10
src/offset.js........... 9
src/effects.js.......... 9
Biggest Most complex Most changed
Thank you ;D@thiagoalessio
github.com/thiagoalessio