Buch: Large-Scale C++ Software Design
-
Wieso interessiert das keinen mehr, sind SSDs so extrem gut (habe noch keine :()? Mich interessiert das schon und ich versuche Pimpl auch zu nutzen.
-
Ja, wir nutzen pimpl auch ziemlich intensiv in der Arbeit. Brauchst du ein Buch darüber?
Kompilierzeiten sind nicht mehr ein so großer Problem wie vor Jahren. Wenn man mit den Includes etwas aufpasst, kann man auf moderner Hardware auch große Software in paar Minuten durchkompilieren. Da lohnt es sich nicht, sich großartig darüber auszulassen oder Bücher darüber zu lesen. Andere Aspekte sind bei der Softwarearchitektur viel wichtiger.
Aber wie gesagt, ich kenn das Buch nicht.
-
Mechanics schrieb:
Ja, wir nutzen pimpl auch ziemlich intensiv in der Arbeit. Brauchst du ein Buch darüber?
Kompilierzeiten sind nicht mehr ein so großer Problem wie vor Jahren. Wenn man mit den Includes etwas aufpasst, kann man auf moderner Hardware auch große Software in paar Minuten durchkompilieren. Da lohnt es sich nicht, sich großartig darüber auszulassen oder Bücher darüber zu lesen. Andere Aspekte sind bei der Softwarearchitektur viel wichtiger.
Aber wie gesagt, ich kenn das Buch nicht.Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden. Kompilierzeiten sind auch heute noch ein großes Problem.
Aber ich denke, Kompilierzeit ist nicht das wesentliche Kriterium, nach dem man Software designen sollte. Modularisierung ist da wichtiger und dabei kommt als Nebenprodukt eine reduzierte Kompilierzeit heraus.
-
Mechanics:
Na ja, Du hast das Buch auf Kompilierzeit-Lösungen beschränkt.Bin mir immer noch nicht so ganz sicher. Eigentlich kann das kein großer Nachteil sein, so ein Buch kann ich ja auch absetzen. Oder ich schau auch Mal in der Bib.
Edit: In meiner Bib ist das Buch, ich hol mir das glaube Mal in nächster Zeit.
-
Eisflamme schrieb:
Wieso interessiert das keinen mehr, sind SSDs so extrem gut (habe noch keine :()?
Natürlich ist Kompilierzeit noh ein Thema.
Zum Thema SSDs: Ein Kollege darf gerade "Testkaninchen" spielen. Er ist begeistert. Allerdings wirken sich SSDs hauptsächlich beim Linken aus, das Kompilieren selbst ist eher Sache des Prozessors. Aber da wir viele dlls haben und das Linken bei uns dementsprechend auch viel Zeit in Anspruch nimmt, ist die Verbesserung deutlich spürbar.
-
tntnet schrieb:
Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden.
Wieviele LOC hat das Projekt denn?

-
asdqqweqwe schrieb:
tntnet schrieb:
Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden.
Wieviele LOC hat das Projekt denn?

Ach, sowas ist nichts besonderes bei großen Projekten - einige gehen da auch auf 20 oder mehr Stunden.
-
Sone schrieb:
asdqqweqwe schrieb:
tntnet schrieb:
Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden.
Wieviele LOC hat das Projekt denn?

Ach, sowas ist nichts besonderes bei großen Projekten - einige gehen da auch auf 20 oder mehr Stunden.
Wer hat Dich denn gefragt? Du bist Schüler. Hör auf so zu tun als hättest Du von irgendwelchen realen Projekten Ahnung.
-
Nun, ein kompletter Rebuild dauert wohl, aber wer macht denn das. Normalerweise wird das ueber Nacht gemacht, waehrend der Entwicklucng stehen eher incrementelle Builds an. Deswegen kann ich das Argumentation yur Kompilezeit nicht verstehen.
Zu large scale c++: Bei guter Modularisierung haben kleine Aenderungen nur wenig Auswirkungen. Deswegen brauche ich nur wenige Zeilen im Kopf behalten. Da spielt es keine Rolle, ob der Code nun 100.000 Zeilen hat oder 1.000.000.
Thus spake the master programmer:
``A well-written program is its own heaven; a poorly-written program is its own hell.''
-
asdqqweqwe schrieb:
Sone schrieb:
asdqqweqwe schrieb:
tntnet schrieb:
Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden.
Wieviele LOC hat das Projekt denn?

Ach, sowas ist nichts besonderes bei großen Projekten - einige gehen da auch auf 20 oder mehr Stunden.
Wer hat Dich denn gefragt? Du bist Schüler. Hör auf so zu tun als hättest Du von irgendwelchen realen Projekten Ahnung.
Wozu brauch ich Ahnung, wenn ich nur schreiben muss was im Netz schon steht?

-
Sone schrieb:
Wozu brauch ich Ahnung, wenn ich nur schreiben muss was im Netz schon steht?

"im Netz steht" ist eine *sehr* dünne Argumentationsgrundlage.
-
daddy_felix schrieb:
Sone schrieb:
Wozu brauch ich Ahnung, wenn ich nur schreiben muss was im Netz schon steht?

"im Netz steht" ist eine *sehr* dünne Argumentationsgrundlage.
Bevor das jetzt eskaliert, eine Frage: War das was ich nun sagte falsch? Oder korrigierte mich der Unreg einfach aus Prinzip, weil ich von sowas nicht reden sollte (egal ob das was ich dazu sage richtig oder falsch ist)?
-
ich kenne kein Projekt, wo ein kompletter Build 20h dauert.
Prinzipiell vorstellen kann ich es mir aber schon, wenn bspw. externe Libs auf Netzlaufwerken liegen, viele dlls mit vielen abhängigen Libs erstellt werden etc.
Bei einer gut konfigurierten Buildumgebung halte ich 20h für übertrieben. Zumindest für ein einzelnes Projekt.
Wenn eine Softwarefirma alle ihre einzelnen Projekte nacheinander neu bauen will, dann kann das natürlich 20h und länger dauern. Aber darum geht es hier ja nicht.
edit:
Wir haben knapp eine Million LOC C++, dazu etwa 100k Zeilen Erlang. Insgesamt dauert der Buildprozess inklusive Installer ca. 3 Stunden.
-
Sone schrieb:
Ach, sowas ist nichts besonderes bei großen Projekten - einige gehen da auch auf 20 oder mehr Stunden.
War das nicht ein Problem der 90-er Jahre?
-
volkard schrieb:
Sone schrieb:
Ach, sowas ist nichts besonderes bei großen Projekten - einige gehen da auch auf 20 oder mehr Stunden.
War das nicht ein Problem der 90-er Jahre?
Meinst du wegen er Rechenleistung? Klar geht es heute vergleichsmäßig schneller. Aber es ist nun mal wie es ist: Mehr LOC heißt: Längerer Build (also ich meine, komplett!).
-
Mehr LOC heißt: Längerer Build
Den Wahrheitsgehalt kann ich der Aussage nicht nehmen, aber der Informationsgehalt ist gleich null. Ein grosser Berg *Erde* beduetet auch, dass mehr geschaufelt werden. D.h. aber nicht, dass ich die Werkzeuge aus der Steinzeit dazu benutze. Und wenn man von Large Scale C++ spricht und bei Kompilezeiten haengen bleibt, ... hat man wohl das wesentliche verfehlt. Ist genau wie Religion oder Politik: Jeder kann drueber labern. Und genau das ist es: Labern ueber Kompilezeiten.
Aber es ist nun mal wie es ist
Tja, tolle Aussagen ... genau wie: ein Mann muss tun, was ein Mann tun muss ... oder aehnliches. Einfach nur Bullshit.
-
tntnet schrieb:
Mechanics schrieb:
Ja, wir nutzen pimpl auch ziemlich intensiv in der Arbeit. Brauchst du ein Buch darüber?
Kompilierzeiten sind nicht mehr ein so großer Problem wie vor Jahren. Wenn man mit den Includes etwas aufpasst, kann man auf moderner Hardware auch große Software in paar Minuten durchkompilieren. Da lohnt es sich nicht, sich großartig darüber auszulassen oder Bücher darüber zu lesen. Andere Aspekte sind bei der Softwarearchitektur viel wichtiger.
Aber wie gesagt, ich kenn das Buch nicht.Was verstehst Du unter große Software? Bei uns dauert ein kompletter Build ca. 6 Stunden. Kompilierzeiten sind auch heute noch ein großes Problem.
Unsere Software hat grob 6 Mio LoC und ein kompletter Build dauert auch etliche Stunden. Die Software ist teilweise auch entsprechend schlecht aufgebaut, vor allem ältere 3rdparty libs, die wir verwenden müssen und noch nicht austauschen können.
[Edit]Ich meinte, 6 Mio Zeilen eigenen Code. Keine Ahnung, wie groß alle 3rd party Bibliotheken sind und was davon alles gebaut wird. Wir benutzen z.B. Qt und haben das teilweise recht massiv umgebaut, das braucht sicher auch seine Zeit zum Kompilieren.[/Edit]
Es ist alles ärgerlich und nervig, aber es ist jetzt nicht DAS Kriterium bei der Architektur. Wenn es in dem Buch hauütsächlich darum geht, finde ich das uninteressant. Wenn es um andere Aspekte großer Projekte geht, dann würde ich das durchaus interessant finden.
-
Das Projekt bei der letzten Firma lag im Bereich zwischen 5-10 Mio Codezeilen, und jedes Einzelmodul benötigte etwa 5-15min. Gesamtzeit etwa 3 Stunden. Aber der Chef hat auch nur in seine Hardware investiert, die Zeiten hätte man mit neuen Geräten durchaus senken können. Wobei in dem Projekt auch kaum Templates verwendet wurden sind.
Das aktuelle Projekt ist da wesentlich genügsamer. Nach diversen Aufräumaktionen, einer Compilererweiterung die dem C++ Builder Multithreading beim Compilieren gibt, und einem 6Kern-PC sind wir nun (und das in einer VM) bei knapp 2min (ursprünglich waren es eher 5-10min).
-
Die Benutzer tun mir leid die Programme benutzen müssen die so komplex sind das man Millionen von Zeilen braucht.
-
dac schrieb:
Die Benutzer tun mir leid die Programme benutzen müssen die so komplex sind das man Millionen von Zeilen braucht.
Du benutzt keinen Browser, keinen Email Client, kein Betriebssystem?
Die meisten "großen" Programme haben Millionen von Codezeilen.