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?
@HywelBrombyBoxUK
Copy link

Are there any alternatives? ask the same questions of those

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment