lines of "first party" JavaScript
years of history, changes and developers contributing
deploys into Chrome Canary
TypeScript compiler
Does the codebase compile?
ESLint
Are the changes consistent with our style?
Unit tests
Does the functionality work?
End to end tests
Are any of the user journeys affected?
CONFLICT: Merge conflict in network.js
CONFLICT: Merge conflict in network.js
ESLint built-in rules
Is the code consistent?
ESLint custom rules
Does each file have the right license header?
Presubmit Checks
Are all the i18n generated strings up to date?
Change list (Pull request) checks
Does this CL have a bug associated with it?
"I would prefer this to be indented by three spaces, not two"
"What's the reason for calling event.preventDefault() there? I'm finding this code hard to follow so it might be worth exploring alternatives.
💻 code is formatted consistently
💻 all unit/end-to-end tests pass
💻 all the files have the correct license headers
💻 this change hasn't impacted code coverage negatively
💻 the files in this change follow our naming convention
👨💻 is this architecture going to cause problems in the future?
Upgrading DevTools' architecture to the modern web
youtu.be/BHogHiiyuQk
PLANNING
DOING
"The networking module uses a different backend communication system so we need to revisit our migration plan"
"Turns out the elements panel doesn't use that buggy method so the impact isn't as bad as we feared"
People
Teams
Features
Bugs
Lines of code
Risk
Thank You
fishandscripts.com
@fishandscripts
jackf.io/blog
@jack_franklin
Slides: jackf.io/talks/large-codebases