Effective Development: A Guide to Selecting External Features
Developing software often requires the implementation of a myriad of features, from the simple to the complex. Building each one from scratch to function flawlessly can be a daunting task. Thus, it's often more practical and efficient to incorporate well-tested "wheels" that are likely to perform reliably. However, determining which wheel fits best can be equally challenging. In this guide, we'll explore some key criteria for making that selection:
-
Official Support
The first factor to consider is whether the feature you're looking at is officially supported by your chosen platform or framework. Such features have undergone rigorous testing and optimization by their providers (like Google or Facebook), ensuring their reliability and efficiency. Unless you have specific requirements that these cannot meet, using them is generally a safe choice. For instance, instead of creating sorting algorithms from scratch, using built-in functions like .sort() provided in languages such as Dart, Java or Kotlin can prove much safer and more efficient.
-
User Interest and Maintenance Status
Let's use GitHub as an example here. Metrics like watches, forks and stars can give you an idea of how much interest there is in a project but don't overlook recent updates either. The fast-paced nature of development means trends change frequently; projects that initially gained many stars might not be getting as much attention now.
-
Evaluating Unnecessary Features
When integrating external features not built by you personally, it's rare they'll perfectly match your needs without including some unnecessary elements. However importing large amounts of source code just for a small feature isn't ideal either - so it’s important to evaluate if any unnecessary elements come along with what you need.
In my experience when dealing with areas such as image processing or network communication I find myself frequently leaning on collective intelligence based on these criteria above.
0 개의 댓글:
Post a Comment