"Keeping it Fresh" with Bilal Hankins and Anna Dorigo
Description
In Office Hours Episode 6, SmartLogic Developers Anna Dorigo and Bilal Hankins join Elixir Wizards Sundi and Dan to discuss their experiences maintaining a decade-old Ruby on Rails codebase.
They delve into the critical importance of deeply understanding the codebase, keeping dependencies current, and adapting to the original application's evolving priorities and design choices.
The conversation spans a range of topics, including accessibility, testing, monitoring, and the challenges of deploying database migrations in production environments. The guests share effective strategies for sustaining and enhancing older codebases, such as employing automated tools, performing code audits, and adhering to clean coding principles.
Key topics discussed in this episode:
- Grasping the legacy codebase and its historical context
- Overcoming accessibility issues in older applications
- Safe dependency management and upgrades
- The effects of application scaling on database performance
- The critical role of comprehensive test suites in legacy systems
- Using tools like Sentry for error tracking and performance monitoring
- The benefits of automated security and dependency scans
- Juggling client needs with budget constraints
- Local simulation techniques for large datasets
- The value of iterative code reviews and maintaining clean code
- Utilizing git history for contextual understanding
- Onboarding strategies for legacy projects
- Removing obsolete code and avoiding "magic numbers"
- Importance of descriptive naming for better code clarity
- Leveraging a rich repository of example code for learning and reference
- Proactive code audits to anticipate issues
- Managing pull request sizes for smoother reviews
- Communicating effectively about upgrades and potential impacts
- Strategies for handling large databases efficiently
- Ensuring thorough test coverage
- Keeping open lines of communication with clients regarding ongoing maintenance
Links mentioned:
COBOL programming language https://developer.ibm.com/languages/cobol/
Ruby on Rails https://rubyonrails.org/
ARIA Rules (Accessible Rich Internet Applications) https://www.w3.org/TR/using-aria/
Shawn Vo on Elixir as a Competitive Advantage https://smartlogic.io/podcast/elixir-wizards/s5e5-vo/
Bundler Audit Ruby Gem https://rubygems.org/gems/bundler-audit/
Sentry application monitoring and error tracking software https://sentry.io/
Dependabot Github automated dependency updates
Mix hex.audit https://hexdocs.pm/hex/Mx.Tasks.Hex.Audit.html
Git Blame https://git-scm.com/docs/git-blame
Cow hoof trimming videos - The Hoof GP on YouTube (TW graphic imagery)
Special Guests: Anna Dorigo and Bilal Hankins.