Quels sont les projets que vous passer au crible? Ces projets professionnels ou quelque chose d'aléatoire?
Une des choses que j'ai remarqué, c'est que beaucoup de type legacy code (j'ai travaillé sur une base de code qui pré-date du C++98) évite le C++ de la bibliothèque standard en raison de la performance de soucis de la mise en œuvre à l'époque, ou tout simplement parce que les bibliothèques n'existait pas à l'époque. Bien sûr, certains environnements (systèmes embarqués, des jeux, de la défense, etc.) peuvent avoir d'autres exigences qui s'opposent à l'utilisation de C++ de la bibliothèque standard dans de nombreux cas, comme un collègue de la mine a travaillé dans la défense et ne pouvait pas utiliser la STL choses à tous, en raison des exigences du client de ne pas l'utiliser.
En général, si il y a un choix de l'utilisation de la bibliothèque standard vs inventer votre propre roue vs l'aide de quelqu'un d'autre de la bibliothèque, puis en général je choisirais le premier choix de la première. Le code est testé par des milliers, des centaines de milliers de personnes, soumises à davantage de tests et de contrôle, que la plupart des choses que vous mettriez-vous.
Un tiers de la bibliothèque (prenons un exemple comme Boost) si il y a des choses que vous avez besoin. Une bibliothèque comme Boost est bien respecté, a la réputation d'être d'une qualité exceptionnelle de code, et est utilisé/testé/maintenu par un grand nombre de personnes.
Le choix final est une invention de votre propre code, je pense que cela tombe vraiment dans quelques catégories:
- Auto-apprentissage du code d'écriture tout juste de l'apprendre, mais cela veut dire qu'il n'y a pas d'attente, vous êtes d'expédition comme le code de production.
- Vous avez des exigences particulières qui ne sont pas respectées par tout ce qui peut être acquis ou s'il doit être adapté à partir de quelque chose d'autre. Il y a beaucoup de cela, vous pourriez avoir besoin d'écrire vos propres algorithmes spécifiques pour ce que vous faites.
Mais n'oubliez pas que si vous implémentez votre propre, réfléchir pour savoir si ou non de la bibliothèque standard a déjà, sinon vous pourriez rencontrer un problème d'entretien si quelque chose est très ancrée dans votre code. Ma dernière société a mis en œuvre leurs propres classes de conteneurs, et bien sûr le code de base a augmenté de millions de lignes de code (à travers des tonnes de produits) et tout le monde a utilisé ces développés à l'interne les classes conteneur. Bugs dans ces conteneurs coût d'importantes quantités de développeur de temps et d'argent pour réparer parce qu'il y avait fondamentaux de bugs dans les classes (listes chaînées, les vecteurs, les tableaux associatifs, rien que la norme C++ n'est pas de fournir). Tandis que le nouveau code de la bibliothèque standard, la société n'a tout simplement pas les ressources nécessaires pour démarrer refactoring tous les vieux code.
Si vous pouvez décharger que vous inquiétez pas à d'autres développeurs qui ont de l'expérience avec ce type de code, ET d'obtenir le test de milliers de personnes? C'est une grande victoire!