facebook / componentkit
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 17% duplication:
    • 37,569 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,459 duplicated lines
  • 2,457 duplicates
system17% (6,459 lines)
Duplication per Extension
mm21% (6,072 lines)
h3% (283 lines)
swift9% (104 lines)
Duplication per Component (primary)
ComponentKitTests30% (3,780 lines)
ComponentKitApplicationTests50% (1,610 lines)
ComponentKit4% (648 lines)
ComponentTextKitApplicationTests25% (124 lines)
CKSwift10% (104 lines)
ComponentTextKit3% (68 lines)
RenderCore1% (44 lines)
ComponentKitPerfTests14% (34 lines)
ComponentKitTestHelpers3% (25 lines)
ComponentSnapshotTestCase23% (22 lines)
CKSwiftTests0% (0 lines)
ComponentKitApplicationTestsHost0% (0 lines)
CKTextSwift0% (0 lines)

Duplication Between Components (50+ lines)

G ComponentKit ComponentKit ComponentKitTests ComponentKitTests ComponentKit--ComponentKitTests 94 ComponentKitApplicationTests ComponentKitApplicationTests ComponentKitApplicationTests--ComponentKitTests 54

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 2,457 duplicates...
Size#FoldersFilesLinesCode
35 x 2 ComponentKit/Transaction...Sources/Common/Internal
ComponentKit/Transaction...Sources/Common/Internal
165:209 (13%)
155:200 (7%)
view
28 x 2 ComponentKitTests
ComponentKitTests
143:181 (13%)
187:225 (13%)
view
24 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
1177:1202 (2%)
1238:1263 (2%)
view
22 x 2 ComponentKitTests
ComponentKitTests
255:281 (3%)
354:382 (3%)
view
22 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
365:388 (<1%)
437:460 (<1%)
view
22 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
365:388 (<1%)
403:426 (<1%)
view
22 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
403:426 (<1%)
437:460 (<1%)
view
22 x 2 ComponentKit/Transaction...Sources/Common/Internal
ComponentKit/Transaction...Sources/Common/Internal
61:86 (38%)
72:98 (32%)
view
22 x 2 ComponentKitTests/StatefulViews
ComponentKitTests/StatefulViews
384:410 (5%)
424:450 (5%)
view
21 x 2 ComponentKit/Transaction...Sources/Common/Internal
ComponentKit/Transaction...Sources/Common/Internal
78:108 (36%)
92:122 (30%)
view
21 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
1664:1689 (<1%)
1706:1731 (<1%)
view
21 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
1622:1647 (<1%)
1706:1731 (<1%)
view
21 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
1622:1647 (<1%)
1664:1689 (<1%)
view
21 x 2 ComponentKitTests/StatefulViews
ComponentKitTests/StatefulViews
308:331 (5%)
354:377 (5%)
view
19 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
547:566 (3%)
604:623 (3%)
view
19 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
529:547 (1%)
556:574 (1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
604:626 (<1%)
683:705 (<1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
580:602 (<1%)
659:681 (<1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
525:547 (<1%)
604:626 (<1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
447:464 (1%)
529:546 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
447:464 (1%)
556:573 (1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
525:547 (<1%)
683:705 (<1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
422:439 (1%)
447:464 (1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
501:523 (<1%)
659:681 (<1%)
view
18 x 2 ComponentKitTests
ComponentKitTests
434:455 (3%)
467:488 (3%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
397:414 (1%)
556:573 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
397:414 (1%)
529:546 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
372:389 (1%)
529:546 (1%)
view
18 x 2 ComponentKitApplicationTests
ComponentKitApplicationTests
501:523 (<1%)
580:602 (<1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
372:389 (1%)
556:573 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
422:439 (1%)
529:546 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
422:439 (1%)
556:573 (1%)
view
18 x 2 ComponentKit/Transaction...Sources/Common/Internal
ComponentKit/Transaction...Sources/Common/Internal
123:142 (6%)
122:141 (4%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
372:389 (1%)
397:414 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
529:546 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
372:389 (1%)
422:439 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
556:573 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
372:389 (1%)
447:464 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
397:414 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
397:414 (1%)
447:464 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
422:439 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
397:414 (1%)
422:439 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
447:464 (1%)
view
18 x 2 ComponentKitTests/TransactionalDataSource
ComponentKitTests/TransactionalDataSource
347:364 (1%)
372:389 (1%)
view
17 x 2 ComponentKitTests
ComponentKitTests
255:276 (2%)
399:422 (2%)
view
17 x 2 ComponentKitTests
ComponentKitTests
410:429 (4%)
458:478 (4%)
view
17 x 2 ComponentKitTests
ComponentKitTests
354:377 (2%)
399:422 (2%)
view
16 x 2 ComponentKitTests/Scope
ComponentKitTests/Scope
683:703 (3%)
709:729 (3%)
view
16 x 2 ComponentKitTests/Scope
ComponentKitTests/Scope
502:522 (3%)
528:548 (3%)
view
15 x 2 ComponentKitTests
ComponentKitTests
434:450 (3%)
458:475 (3%)
view