Upload
rachel-davies
View
249
Download
1
Embed Size (px)
DESCRIPTION
Lightning Talk I gave at work on Software Archaeology conference #ticosa summarising some interesting conference themes.
Citation preview
TICOSA!The International Conference Of
Software Archaeology ticosa.org #ticosa
Turbulence
https://github.com/michaelfeathers/delta-‐flora https://github.com/chad/turbulence @mfeathers
Changes per time of day
Visualising Code History
https://github.com/dkandalov/code-‐history-‐mining @dmitrykandalov
Files Changed in Same Commit
https://github.com/dkandalov/code-‐history-‐mining @dmitrykandalov
Shotgun Surgery
set of classes that get modified at same time
Closure & Active Working Set
• Open-‐Closed Principle (OCP) in action – code that doesn’t change that often
• Bringing to closure reduces active set of classes
• Evidence of Shotgun Surgery –set of classes that get modified at same time
Relation of Complexity to Tests
• Complexity is the lower bound of number of tests to write.
For a codebase with 5:1 of lines of code to complexity. Every 5 lines is a conditional, every 5 lines demands another test.
TDD and Cyclomatic Complexity
Inferences
Where α is distribution of complexity per method • Highest α: TDD • Higher α: automated tests • Lower α: no tests • Where does the complexity go?
– Interactions between classes becomes more complex – Classes may be more tightly coupled
http://www.infoq.com/presentations/measure-‐for-‐measure http://cumulative-‐hypotheses.org/tag/complexity/
@keithb_b
WILT • Whitespace Integrated over Lines of Text
@robsmallshire
Refactoring Analogy
% Time spent refactoring Cucumber
@mattwynne https://github.com/cucumber/cucumber-‐ruby-‐core
Visualising