Think twice when you ready to add new library in project

You don’t need most of them

You aren’t gonna need it

Libraries are made not for you

Libraries contain more functionality you actually need

Libraries don’t know your wishes

Libraries consume your time

Libraries are unfriendly to your code.

Libraries are unfriendly to each other

Libraries have their own evolution

Libraries have their own diseases

Keep it simple stupid

Libraries still economize your time sometimes

Libraries are mature

Libraries give you needed experience

Libraries standardize solution and thus increase efficiency

Don’t repeat yourself

You don’t need to reinvent the wheel

Make a wise choice

  • Size. Too big libraries can take your time to understand every corner, may contain more possible bugs and diseases and probably will be used not in a 100%, so their choice must be really justified. On a contrary small library, that contains only 1–5 classes, probably not so needed to be built in in project as dependency. In many times it is easier to understand it and add its code to your project adapted for your specific needs. There are libraries like LikeButton, which are very small and not so flexible. It will be better to adapt code for your needs including it in your project.
  • Aim. Remember SRP from SOLID? I think in most cases library should exist only for one purpose. Otherwise it can be pretty messy. Personally I don’t really like libraries like Guava and KTX. They contains interesting util functions, but often you need only tiny part of them. For me much simpler just to include those functions in project utils. Especially if they small.
  • Popularity. Less popular library becomes, less possibility that it will be supported in a long term, less possibility that it is more stable (count of issues and resolved issues) than popular analogues. There are exceptions, I’m sure. Just ask yourself, if you doing big project with great future, do you want really risk and put “small star count” library in your project?
  • Maintainability. When library is not supported any more, or it took months to see new commit, it is not such a good value for adding such library into the project. Good libraries are constantly evolving.

Afterwords

--

--

Love being creative to solve some problems with an simple and elegant ways

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Michael Spitsin

Love being creative to solve some problems with an simple and elegant ways