Was war euer "schwerstes" Project?



  • eines meiner programme hat gerade mal 160 zeilen c und wird taeglich von mir verwendet. es ist ein kleines schnelles tool mit ziemlich simpler, schoener und maechtiger logik.
    dann hab ich noch einen crond clon fuer windows geschrieben, der auf 500 zeilen kommt.

    eigentlich sind alle meine konsolenprogramme weniger als 1000 zeilen gross.
    nur die ganzen GUI programme in delphi/pascal sind manchmal bis zu 3500 zeilen lang. aber dazu muss ich sagen, dass die durch die borland-eigene GUI logik und durch die sehr verbose und unausdrucksstarke sprache so aufgeblaeht sind.

    ich moechte es noch einmal ausdruecklich erwaehnen:
    produktivitaet an codezeilen zu messen, verfuehrt zu code bloat und "quantitaet statt qualitaet".
    klassen fuehren auch zu code bloat, wenn man alles in klassen packen will, ohne eigentlich auf das zu gucken, was man "wirklich geschafft" hat.

    manche programme werden einfach gross aber auf codezeilen zu achten, macht bestenfalls bei assemblerprogrammierung sinn.



  • c.rackwitz schrieb:

    ich moechte es noch einmal ausdruecklich erwaehnen:
    produktivitaet an codezeilen zu messen, verfuehrt zu code bloat und "quantitaet statt qualitaet".
    klassen fuehren auch zu code bloat, wenn man alles in klassen packen will, ohne eigentlich auf das zu gucken, was man "wirklich geschafft" hat.

    manche programme werden einfach gross aber auf codezeilen zu achten, macht bestenfalls bei assemblerprogrammierung sinn.

    Die Frage ist da doch eher, wie komplex das Projekt sein darf, so dass man es immer noch beherrscht. Wenn einer ein Programm mit 100.000 Zeilen Code beherrscht und weiter sinnvoll warten und erweitern kann, dann sagt das auch einiges über die Qualität des Codes und die Erfahrung des Programmierers aus. Das kann man nämlich nicht, wenn man bezüglich des Designs des Projekts zu viele Fehler macht. Und wenn man darüber reden möchte, dann muss man das auch irgendwie quantifizieren. Und da liegt es IMHO nahe, Zeilen oder etwas ähnliches anzugeben. Wenn du eine Idee für eine bessere Metrik hast, dann bin ich dafür aber auch offen.

    Das ist hier also IMHO keine Frage der Produktivität, sondern eine Frage der Beherrschbarkeit: Mit einem guten Design und gutem Code kannst du mehr "Zeilen" beherrschen als mit einem schlechten Design und schlechtem Code. Die Frage ist, wie man komplexere Projekte beherrschen kann und die einfachste und wahrscheinlich auch richtigste Antwort darauf ist: Durch Erfahrung. Da muss jeder seine eigenen Erfahrungen machen (die natürlich nicht völlig separiert von Ideen anderer liegen sollte). Es gibt da kein "Tutorial zur Beherrschung großer Projekte" oder so.



  • qualitaet oder produktivitaet am eigentlichen code zu messen, find ich sinnlos.
    codezeilen sind da das schlechteste.
    eine datei an ihrer bytegroesse messen kommt schon eher hin, weil manche alles in eine zeile packen und andere einen einzigen call ueber 10 zeilen ziehen. dann schreiben aber manche laengere bezeichner und manche nehmen nur einzelne buchstaben.
    vielleicht sollte man die knoten in einem optimierten parserbaum zaehlen. dann machen aber manche tausend klassen und sehen nur deswegen noch durch, weil die logik im programm klein ist und nur die umsetzung so wortreich ist.
    an der groesse des am ende compilierten optimierten codes zu messen, ist vielleicht auch noch sinnvoll. damit meine ich nicht, dass man verwendete libraries oder resourcen mitzaehlen muss, sondern nur das, was man auch selber verzapft hat.
    nicht zu vergessen, ein anfaenger schreibt sich gerne irgendwas komplett neu, auch wenns das schon in verwendbarer form gibt. damit gewinnt man erfahrung aber das programm wird noch komplexer (mehr wartungsarbeit und suche beim debuggen).

    alles subjektiv. code kann man nicht objektiv messen und so bald man messen will, kanns passieren, dass die programmierer sich dem kriterium anpassen und die werte verfaelschen.

    Mit einem guten Design und gutem Code kannst du mehr "Zeilen" beherrschen als mit einem schlechten Design und schlechtem Code.

    wenn das design so gut ist, dann muessen es auch nicht mehr so viele zeilen sein.
    ein beherrschbarer code kann von der logik her dichter sein, also hat er auch weniger zeilen. und weil er beherrschbar ist, kann auch mehr logik=mehr zeilen rein.
    ein schlechter code beschreibt die gleiche logik mit mehr zeilen. da mehr zeilen auch mehr lesebarbeit bedeutet, wird er damit schlechter wartbar.

    meine ueberlegung ist, dass ein code ab einer gewissen zeilenzahl (oder woran man auch immer die verstaendlichkeit misst) einfach immer unwartbarer wird. dann gehts nur noch um gutes design -> mehr logik im gleichen codevolumen.



  • c.rackwitz schrieb:

    meine ueberlegung ist, dass ein code ab einer gewissen zeilenzahl (oder woran man auch immer die verstaendlichkeit misst) einfach immer unwartbarer wird. dann gehts nur noch um gutes design -> mehr logik im gleichen codevolumen.

    Ich stimme mit dir überein, dass gutes Design bei einem größer werdenden Projekt immer wichtiger wird. Allerdings muss gutes Design nicht immer mit "weniger Code für die gleiche Funktionalität" übereinstimmen. Code, der zu kompakt ist, ist auch schlecht wartbar.



  • vorausgesetzt "kompakt", "nicht kompakt" und "schlechtes design/amateurhafter code" sind nicht das gleiche 🙂



  • c.rackwitz schrieb:

    qualitaet oder produktivitaet am eigentlichen code zu messen, find ich sinnlos.
    codezeilen sind da das schlechteste.

    Es geht auch deshalb nicht, weil die Arbeit, die hinter dem Code steckt hoechst unterschiedlich ist. Ein nerviger Parser fuer merkwuerdiges Text-Daten-Format kann schnell ein paar hundert Zeilen haben (besonders wiederlich das CIFF-Format). Wenn man das Konzept einmal hat, sind diese schnell herunterschrieben. Im Gegenzug hatte ich einmal ein wiederliches Problem Kraefte in Seile zu berechnen. Das Ergebnis waren schliesslich 30 Zeilen Code, diese haben mich jedoch fuenf Arbeitstage gekostet - nicht so sehr das Coding, da war schnell erledigt, sondern mir einen Algorhythmus zu erarbeiten, der das ueberhaupt konnte.



  • SideWinder schrieb:

    @BF_31: Veröffentliche das doch bei Gelegenheit mal, ich hab auch mal ein privates Forum begonnen und kann Anregungen gebrauchen.

    MfG SideWinder

    Ich werde vielleicht in 1 Woche hier mal die Adresse bekannt geben. Jetzt ist es noch zu früh, wegen Sicherheitsmängeln. Nicht das so ein Troll kommt und durch Falschangaben mir das ganze Board zerschießt.
    Kannst dich aber per eMail an mich wenden, dann gebe ich dir die Adresse mal.



  • sarfuan schrieb:

    Nach jedem 😃
    Ist doch ganz klar, man nimmt sich etwas vor, malt es sich in Gedanken schon aus und ... übertrifft sich selbst. Ist doch wunderbar 🙂
    (Man muss nur beim Träumen realistisch bleiben, sich und seine Grenzen kennen ;))

    Wa! Holt doch nicht so alte Threads aus der Versenkung. Vor allem nicht, wenn ich nicht merk, dass sie so alt sind, etwas von mir lese und dann kurz erschrecke "wie, was sarfuan? aber das bin doch ich?!" ...



  • Hm... Hello world - extended edition

    include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[]) {
        char* name;
        if(argv[1]) name=argv[1];
        else name="world";
    
        cout << "Hello " << name << "!" << endl; } // Hardcore!
    

    Nene, nehmt mich bitte nicht erst 😉



  • include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[]) {
        char* name;
        if(argv[1]) name=argv[1];
        else name="world";
    
        cout << "Hello " << name << "!" << endl; } // Hardcore!
    

    Einbisschen umständlich ....
    Also was ich bei euch "viel" sreibern nicht verstehe ist wie ihr den überblick behaltet....
    siedwinder: ich hab auf das snake spiel nicht wahnsinnig lust drauf, immerhin werde ich es doch sowieso nicht verwenden, ausserdem sieht das in der Konsole nicht so toll aus ( dan mach ich das lieber mit directX). PS: Ich würde lieber in den software bereich gehen. Hat jemand sonst vorschläge (was ich auch gebrauchen kann - 300 -500 zeilen) ???



  • wie sieht es den aus mit einem broser ??



  • Ein Webbrowser? Hm... Wieviel Zeilen haben Konqueror / Mozilla / FF so in etwa? 😉



  • Nur mi einer adresszeile und villeicht mit "back" und "home"schaltflächen und wen das immernochnicht passt noch eine integrirte suchmaschine (mit´n zugriff auf google.de)



  • Ich hatte mal einen Webbrowser angefangen, aber habe relativ schnell aufgegeben. Ist halt kein Projekt das eine Person mal schnell in den Rechner hackt.

    Dafür hab ich mal ein Programm geschrieben das Webseiten optimiert, und das hat super geklappt 🕶



  • gack schrieb:

    wie sieht es den aus mit einem broser ??

    Ich habe mal einen WAP-Browser geschrieben. Der kam mit einfachen Seiten zurecht, aber irgendwann war mir der Code zu häßlich um weiter zu machen.



  • ej leute ihr habt alle tausende programme geschrieben, aber wo sind sie alle 😕 ?? Ich hab jetzt mein snake fertig, aber da ich ja so sein (werden) will wie ihr verstecke ich es ihrgendwo auf meiner festplatte (mit einem 128 bit -verschlüsselungssystem), damit die welt dafon nicht erfährt!!!



  • mein schwerstes Project ist bisher der XML-parser gewesen...da steckt doch ne Menge hirnschmalz hinter...aber das schlimmste an der ganzen sache ist definitiv die doku!(beim schreiben dieser merkt man nämlich erst, wie krum man an manchen stellen gedacht hat...)



  • parser

    👍



  • gack schrieb:

    ej leute ihr habt alle tausende programme geschrieben, aber wo sind sie alle 😕 ?? Ich hab jetzt mein snake fertig, aber da ich ja so sein (werden) will wie ihr verstecke ich es ihrgendwo auf meiner festplatte (mit einem 128 bit -verschlüsselungssystem), damit die welt dafon nicht erfährt!!!

    Ich veröffentliche meine Programme aus dem Grund nicht das sie eigentlich nie ausgereift sind. Ich programmiere hauptsächlich für mich selbst, oder einfach um zu lernen. Und 95% meiner Programme würden eh niemanden interessieren.

    Ist zwar schade das soviele kreative Ideen und sicherlich auch sehr viel Programmiertechnik (von uns allen) umsonst waren, aber so ist halt das Leben eines Hobby-Programmierers.



  • man könnte ja daran etwas ändern...

    ganz spontan schwebt mir da eine plattform vor, bei der hobby programmierer in open source manier ihre (halb)fertigen programme oder bibliotheken veröffentlichn, und andere interessierte sie weiterentwickeln und verbessern...natürlich können die verbesserer ebenfalls sachen ins netz stellen, an denen dann andere rumwerkeln...und alle zusammen entwickeln ihr können weiter...


Anmelden zum Antworten