Ultimate Guide to Codebase Review and Dependency Management Workflow

Table of Contents

Background

When working with new codebases there's a fairly reasonable workflow to follow to determine

Checklist

  • [ ] environment setup
  • [ ] application startup
  • [ ] command review
  • [ ] application server: configuration review
  • [ ] database: commands review
  • [ ] database: connectivity (confirm access minimally to a staging environment and can list databases and dump)

Example

When running a build the goal is to determine which of the dependencies is called in order and secondly by usage volume.

Structure

Determine the size of the project:

tree | wc -l

Determine the dependencies required for the application from setup to provide service.

Process Dependencies

  • Version Control: git + github
  • Workflow: n/a
  • Chat:

System Dependencies

  • Dependencies: chef (vs. vagrant, docker, puppet)

Development Dependencies

Provide a summary of what the client has elected to use for their application:

  • Logging: bunyan (loggly, windston)
  • Dependencies: bower (vs. npm, browserify, webpack, or client)
  • Language: es6+babel (vs. typescript, es5, coffeescript, clojurescript)
  • Build: requirejs
  • Packaging: webpack
  • Linting: n/a
  • Documentation: n/a
  • Tests: mocha + karma (vs. nightwatch, jasmine, chai, sinon, qunit)
  • Mock:
  • Utilities: jq
  • Watchers: nodemon

Application Dependencies

  • DB: redis
  • Storage: mongo (vs., sqlite, mysql, postgres)
  • Application: express
  • FE framework: angular
  • Template: lodash
  • Promises: when (vs. bluebird)
  • CSS: stylus (vs. less, sass, scss)
  • CSS: bootstrap
  • Utility: lodash, jquery
  • State: n/a (vs. redux, atom)

Deployment

  • Deployment: Chef
  • Versioning: Chef (identified in GitHub but without npm )

Operation

  • Applications:
  • Logging: Papertrail
  • Escalation: n/a
  • Dashboard: New Relic

Reading and Review

For any of the applications where there's no familiarity at least 10 minutes should be spent on the command line testing the library. For example:

  • jq: core is filter with
  • chef: ensure that a quick scan has been done

Create a client-specific artifact listing expected reading:

Author: Jason Walsh

j@wal.sh

Last Updated: 2025-07-30 13:45:27

build: 2025-12-23 09:13 | sha: e32f33e