Technical Debt
No Tests
No Automation
No Standards/Best Practices/etc
Developers of different levels
Code Review
Testing
Refactoring
Mentoring
Learn
Practice
Learn
Practice
...
Slow on big codebase
Perl-specific
Local setup
No history
Static analysis not enough
Static Code Analysis
Code Complexity
Test Coverage
Formatting
Duplication Detection
Custom Domain Rules
Consistency
Started as in-house bash/perl/everything script
Personal GitHub projects
Let everybody enjoy it
Incremental Analysis (fast)
Unified way to check all project technologies (Perl, JavaScript, Markdown etc)
Saves progress over time (blame)
Single point of configuration (works on my machine)
Shareable results (blame)
Custom programmable analysis (advanced blame)
1. Repo import
2. Smart defaults (scripts, packages, builds)
3. Rule customizations through profiles
4. History and diffs
PostgreSQL
Moo
PPI/Regex/Hacks for Perl AST
Marpa for other ASTs
Plack/PSGI on top of Gazelle
AnyEvent with Plack::App::EventSource for events
Editors
Command line / Hooks
More profiles and rules
More languages (Perl, JavaScript, C, Bash, Markdown)
More integrations (GitLab, BitBucket...)
Feedback welcome!