~/talk

Teach Your Old Code New Tricks: Automating Code Quality in Large Projects

Talkat PyCon Israel 2024 · on Monday, 2024-09-16· [developer-experience, python]
linkedin:dor-schwartz
slides:none on file

Practical roadmap for adding linters and formatters to a large Python monorepo: use pre-commit to create isolated tool environments, run ruff/black/isort and mypy via a shared pyproject config, and avoid noisy churn with a baseline/ignore strategy and git-blame-ignore-revs. Example numbers: a 50-developer codebase with ~1.2M Python lines and ruff has ~800 rules (about 300 worth tuning for the repo). Strategies that work: incremental rollouts by path, check‑only on changed files, and automated fixes for safe rules. Tools and scripts (including a custom audit tool) prove effective at reducing technical debt.

AI-written summary · about

  1. 0:00Introduction to code quality
  2. 1:56What is quality code
  3. 4:46Tools for code quality
  4. 7:38Git hooks and pre-commit
  5. 11:56Adding new tools to old code
  6. 13:44Challenges in large projects
  7. 16:16Incremental adoption strategies
  8. 19:08Team communication and culture
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.