Skip to content

Instantly share code, notes, and snippets.

@jenkoian
Last active September 3, 2019 15:34
Show Gist options
  • Save jenkoian/9c34b67f9ae30de2cc73ea16621e4dc2 to your computer and use it in GitHub Desktop.
Save jenkoian/9c34b67f9ae30de2cc73ea16621e4dc2 to your computer and use it in GitHub Desktop.
So you want to use a third party dependency eh?

Questions to ask before deciding on a third party dependency

  • Is it popular? (is it known by the community, does it have a large number of stars on github, large number of downloads etc.)
  • Is it of sufficient quality? (is it well tested etc.)
  • Is it well documented?
  • Are there multiple active maintainers?
  • How will you manage the dependency should it fall in to abandonment?
  • Can you easily write a wrapper for the dependency? (ports and adapters and all that jazz)
  • Is it quicker to write the functionality than it would be to write a wrapper? (if so, consider rolling your own?)
  • Does it have a small footprint? (i.e. doesn't bring in loads of other dependencies itself)
  • How can you handle any bugs you find in the dependency?
  • Are they open to contributions? (will they merge a bug fix for example)
  • Does it have a permissive license so you can patch it yourself if you need to?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment