---
# System prepended metadata

title: Code Review Checklist

---

# Code Review Checklist

* Variables
    * [ ] Meaningful, pronounceable.
    * [ ] Same vocabulary for the same type.
    * [ ] Searchable, avoid magic strings.
    * [ ] Explanatory.
    * [ ] Avoid mental mapping.
    * [ ] Avoid unneeded context.
    * [ ] (Optional) Use default parameters.
  
* Functions
    * [ ] (Negotiable) Total arguments <=2. Avoid more than that.
    * [ ] (Negotiable) Max LOC length <= 100 (https://wiki.xtremax.com/display/GEEK/Coding+Convention+-+ASP+.NET#CodingConventionASP.NET-CodingFileSize).
    * [ ] Should only do one thing.
    * [ ] Name should say what they do.
    * [ ] Should only be one level of abstraction.
    * [ ] Remove duplicate code.
    * [ ] (Negotiable) Set default objects with Object.assign.
    * [ ] Don't use flags as function parameters.
    * [ ] Centralize shared functions/ classes to a particular service or module.
    * [ ] (Optional) Functional over imperative.
    * [ ] Encapsulate conditionals.
    * [ ] (Optional) Avoid negative conditionals.
    * [ ] (Optional) Avoid or reduce conditionals.
    * [ ] (Optional) Avoid type-checking (e.g. instanceof).
    * [ ] Remove dead code.

* Module
    * [ ] (Negotiable) Max LOC length <= 500 (https://wiki.xtremax.com/display/GEEK/Coding+Convention+-+ASP+.NET#CodingConventionASP.NET-CodingFileSize).

* Testing
    * [ ] Single concept per test.
    
* Concurrency
    * [ ] Prefer async/await to Promises/ callbacks.

* Error Handling
    * [ ] Don't ignore caught errors.
    * [ ] Don't ignore rejected promises.

* Formatting
    * [ ] Consistent capitalization.

* Comments
    * [ ] Only comment things that have business logic complexity.
    * [ ] (Negotiable) Delete commented out code.
    * [ ] Avoid positional markers.

* Logging
    * [ ] Use logging framework (except in lambda layer).
    * [ ] (Negotiable) Minimal use. Only in preferred areas (https://wiki.xtremax.com/display/GEEK/Coding+Convention+-+ASP+.NET#CodingConventionASP.NET-Logging) 

* API/ GraphQL schema
    * [ ] Follow standard ( https://wiki.xtremax.com/display/XFR/XBase+2.0+-+Best+Practice+-+API+Naming+Convention+-+API%27s+Standard)




General Reference: 
https://github.com/ryanmcdermott/clean-code-javascript
https://linearb.io/blog/code-review-checklist/