2008-10-24 8 views
14

Connaissez-vous des applications Open Source bien conçues et instructives à analyser? Plus précisément, je m'intéresse au mappage objet-relationnel des applications pratiques dans les programmes basés sur C++, où il existe une bonne séparation entre un modèle de domaine et une fonctionnalité de persistance/sérialisation.Exemples Open Source d'applications bien conçues

+0

Je serais intéressé de voir cela aussi. Je suis à peu près convaincu qu'il est impossible de coder du bon OO en C++ en raison du manque de GC et du poids des nouvelles classes et de la nature des programmeurs C++ pour résister aux allocations/désallocations constantes de la mémoire (nouveaux objets). La plupart des programmeurs OO que je connais sont d'accord. –

+1

@Bill K Non-sens. – JimDaniel

+0

@BillK Je vous suggère de prendre un [bon livre sur C++] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). C++ a RAII et vous n'allouez pas dynamiquement des choses en C++ à moins d'y être obligé. –

Répondre

1

Bien que cela ne corresponde pas à vos besoins spécifiques (ce n'est pas une application métier pour commencer), je pense que OGRE 3D est un excellent exemple d'un projet C++ open source.

3

Si vous incluez bien conçu open source bibliothèques qui sont instructives pour analyser, jeter un oeil à Boost. A propos de la persistance/sérialisation (pas de mappage relationnel), jetez un oeil à Boost Serialization, vous pourriez trouver de bonnes idées!

"... l'un des projets de bibliothèque C++ les plus réputés et les mieux conçus au monde." - Herb Sutter et Andrei Alexandrescu, Normes de codage C++

"Article 55: Familiarisez-vous avec Boost." - Scott Meyers, Effective C++, 3e éd.

« La solution la plus évidente pour la plupart des programmeurs est d'utiliser une bibliothèque qui fournit une plate-forme élégante et efficace indépendante aux services nécessaires exemples sont BOOST .... » - Bjarne Stroustrup, l'abstraction, les bibliothèques et l'efficacité en C++

1

Le moteur javascript V8 est très bien conçu. Google Chrome a également une architecture intéressante et une base de code de haute qualité. http://code.google.com/chromium/

Les deux sont open source, sous licence BSD.