M
Habs schon paar mal in anderen Threads geschrieben. Wir arbeiten an einem Projekt mit 6 Mio Zeilen. Ich selber bin jetzt nicht so der fanatische C++ Fanboy, der versucht alles über Templates oder Streams zu lösen. Solche Sachen (und vor allem Alexandrescu) eignen sich eher für Libraries, da geb ich SoundOfHome völlig Recht. Ich seh jetzt auch keinen wahnsinnig großen Unterschied zwischen C++ und Java/C#, was Softwarearchitekturen angeht. Natürlich würde man vieles eher etwas anders lösen, weil die Sprachen und die zur Verfügung stehenden Sprachmittel unterschiedlich sind, aber bei grundlegende Highlevel Konzepte würde ich nicht viel anders machen. Es kommt auch stark drauf an, was man macht. Wenn man mit C++ hauptsächlich irgendwelche wissenschaftlichen Anwendungen wie Physiksimulationen schreibt, wird die Architektur zwangsweise anders ausschauen, als bei einem "Anwendungsprogramm". Was wir schreiben ist eine Art Anwendungsprogramm und da eignen sich durchaus Konzepte wie DDD, MVC usw. Bei so einem großen Projekt gibts aber auch sehr unterschiedlichen Code. Wenns z.B. darum geht, die Anbindung an verschiedene PDM Systeme zu abstrahieren, bieten sich Templates nicht so wirklich an. Aber wir haben auch Code, um CAD Modelle zu generieren, und da haben wir in unseren grundlegenden Libs durchaus viel Templatecode. Das sind aber Implementierungsdetails, die im großen Überblick keine Rolle spielen würden.
Insgesamt muss man meiner Ansicht nach also immer beides im Auge behalten, Architekturkonzepte für das ganze Projekt, und Design Patterns/Idiome für die Implementierungen.