Skip to content

Instantly share code, notes, and snippets.

@fewlinesofcode
Last active July 17, 2019 06:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fewlinesofcode/a9565749bde6d69aa105e40f779e3080 to your computer and use it in GitHub Desktop.
Save fewlinesofcode/a9565749bde6d69aa105e40f779e3080 to your computer and use it in GitHub Desktop.
Code review checklist

Code review checklist

Basic

  • No conflicts
  • No warnings
  • Builds

Tests

  • Tests passing

High level overview

  • No crashes
  • No visible ui flaws
  • No performance glitches

Architecture

  • Conforms to selected architecture
  • SOLID is followed
  • Shared mutable state avoided

Functionality

  • Code resolves the issue
  • Corner cases are handled

Security

  • Configurations are not exposed
  • Persistent data is saved to appropriate place
  • No passwords/credentials in the source code
  • Debug information and logs are hidden

Code quality

Safety

  • Proper threading
  • No livelocks
  • No deadlocks
  • UI is accessed from main thread only
  • Observer deregistered
  • No reference cycles
  • No heavy operations on the main thread
  • No force unwrap
  • No unnecessary swizzling
  • final attribute where inheritance is not intended
  • Backward compatible

Maintainability

  • Reference semantics only where necessary
  • Correct access modifiers everywhere
  • Mutable values only where necessary
  • Functions are referentially transparent
  • DRY is followed (DRY = Do not repeat yourself)
  • Common functionality is extracted
  • Proper formatting
  • Proper api design/naming
  • No magic values
  • No or proper hardcodes
  • No unnecessary coupling
  • Code is testable

Can it be ...?

  • More efficient?
  • Better formatted?
  • More concise?
  • Reused?
  • Better named?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment