Things I wish I knew before building Libraries.

Libraries

One of the major reasons for using these libraries is to expedite the development process, i.e., develop an amazing application without any unnecessary or additional efforts.

These libraries provide developers with basic pre-written codes and other important elements that can be used instantly rather than performing these tasks from scratch.

Lets, see some of the guidelines/best practices to be followed

  • Firstly, there is no defined set of standards or hard and fast rule available for this. However if you follow a structure it could make things easier and clearer.
  • Always stick to the goal as to why you initially started creating this library.
  • Keep it simple and straight.
  • Do some research and find if there is already an existing library available you just reinvent the wheel, you can actually avoid this.
  • It is not always necessary to create libraries, fixing a feature in a existing library is contributing and giving back to the community.
  • High quality dependencies
  • Permissive license, including (but not limited to) Apache, Artistic, BSD, CC BY, MIT, MS-PL and W3C
  • Github Version Tag so you can see exactly what source is in the package.
  • Support for the latest stable version
  • General usability when it comes to the overview, docs, sample/example code, and API quality.
  • Good runtime behavior in terms of CPU and memory usage
  • Integration as well as unit test coverage.

Before creating libraries, I would suggest you go through some of the best readily available libraries and see the structure or pattern common in these libraries.

Below are some of the top libraries.

The end goal of every library is to simplify abstract complexities of code and package the code for others to reuse in their projects.

If you have any details to be shared or steps to follow while working with libraries then feel free to share it in the comments below.

--

--

Application Library Engineering Group
Application-Library-Engineering-Group

World’s Innovative open collaborate Platform, build reusable application components to reduce effort and fast track application development on multiplatform.