delete [] thread-safe machen



  • 314159265358979 schrieb:

    Dann soll er nicht programmieren, sondern tun, was er kann.

    Der Urheber des Codes hat ne absolut saubere Masterarbeit in 6 Monaten hingelegt. Das der Code stilistisch schei sse und von Speicherlecks durchlöchert ist/war schmälert seine Arbeit nicht. Der Code ist ein proof-of-concept eines speziellen automata lernaers. Für seine Bedürfnisse völlig ausreichend. In seinem Fall hätte ich das Softwareengineering wohl auch ganz hinten angestellt...



  • @curry-king
    Nimm Pi nicht zu ernst, der ist nur glücklich wenn er jmd. bashen kann.



  • So nen Code schreib ich nicht mal bei irgend nem komischen Konzept. Einfach grauenhaft.



  • curry-king schrieb:

    Der Code ist ein proof-of-concept eines speziellen automata lernaers.

    Einen Proof-of-concept wirft man, wenn er funktioniert, weg und refaktorisiert ihn nicht.



  • Die Grenze zwischen refactoring und neu implementieren ist ziemlich schwammig. Ich sehe kein Problem darin, funktionierenden Proof-Of-Concept Code umzubauen.
    Und SO katastrophal ist der Code nicht. Sieht für mich eher so aus, als ob der relativ einfach umzubauen wäre.

    @314159265358979
    Du bist aber auch das komplett andere Extrem wie der der den Code geschrieben hat.
    Du bist C++ Sprachfetischist, dir kommt es mehr auf das "wie" an als darauf dass irgendwas fertig wird.
    Der der den Code geschrieben hat hatte anscheinend kaum C++ Kenntnisse, und wollte das Teil einfach zum Laufen bekommen, alles andere war für ihn vermutlich total nebensächlich.

    Deswegen ist der Code aber nicht total katastrophaler Müll, und muss jetzt geschmäht und weggeworfen werden.



  • Würde den Code mal durch Cppcheck laufen lassen, dann hast du die gröbsten Schnitzer schon mal analysiert, und kannst evtl. memleaks korrigieren.



  • Die Funktionen passen ja auf eine Seite. Das ist ja nicht wirklich schwer zu refactoren.



  • 314159265358979 schrieb:

    So nen Code schreib ich nicht mal bei irgend nem komischen Konzept. Einfach grauenhaft.

    du hast noch nie wirklich schlimmen Code gesehen. Der Code ist lesbar, ja gar verständlich. Die Variablen haben mehr als 1 Zeichen und es wird nix 10 mal wiederverwendet. Ein Traum.

    Da habe ich schon so viel schlimmere Dinge gesehen (allerdings war das schlimmste eine Bibliothek geschrieben von einem template-fetischisten. Da hat beim code-review unsere gesamte Arbeitsgruppe kapituliert)



  • Mag sein, dass ich der "C++ Sprachfetischist" bin, wie hustbaer es gesagt hat, aber der Code ist in jeder Hinsicht schlecht.



  • @314159265358979
    Was otze schreibt ist die Realität.
    Wie willst du beurteilen was Sache ist, wenn du noch nie irgendwo als Programmierer gearbeitet hast?

    Das ist das nervige bei deinen Beiträgen, dass du immer glaubst alles zu wissen und alles einschätzen zu können, und dich immer und überall wichtig machen musst.

    Der Code ist nicht "ist in jeder Hinsicht schlecht", das ist einfach nur Schwachsinn.



  • hustbaer schrieb:

    Der Code ist nicht "ist in jeder Hinsicht schlecht", das ist einfach nur Schwachsinn.

    Pi ist nur frustriert, weil er bereits jetzt (mit 16, siehe Altersthread) offensichtlich wesentlich besser programmieren kann als die meisten berufstätigen Programmierer, er aber keine oder nicht genug Anerkennung dafür bekommt. Der einzige psychologische Ausweg ist also, seine eigenen Fähigkeiten als untere Messlatte anzusetzen, und alle die bedeutend weniger können als er selbst als hoffnungslose Versager zu sehen.

    Mit freundlichen Grüßen
    Ihr Experten-Internet-Hobbypsychologenteam®



  • cooky451 schrieb:

    hustbaer schrieb:

    Der Code ist nicht "ist in jeder Hinsicht schlecht", das ist einfach nur Schwachsinn.

    Pi ist nur frustriert, weil er bereits jetzt (mit 16, siehe Altersthread) offensichtlich wesentlich besser programmieren kann als die meisten berufstätigen Programmierer, er aber keine oder nicht genug Anerkennung dafür bekommt. Der einzige psychologische Ausweg ist also, seine eigenen Fähigkeiten als untere Messlatte anzusetzen, und alle die bedeutend weniger können als er selbst als hoffnungslose Versager zu sehen.

    Mit freundlichen Grüßen
    Ihr Experten-Internet-Hobbypsychologenteam®

    👍



  • 314159265358979 schrieb:

    der Code ist in jeder Hinsicht schlecht.

    Das ist quark. Du kannst völlig problemlos die Struktur des Codes begreifen. Du kannst verstehen, was er macht. Er ist im Grunde gut strukturiert, nur merkt man, dass der Benutzer wenig Ahnung von der Sprache und kaum Programmiererfahrung hat. Ein erfahrener Programmeir geht da einmal drüber, ersetzt die Konstrukte durch die mit besserem C++-Stil und ist fertig.

    Ich zeige dir mal schlechten Code. Der stammt 1:1 aus dem Code eines Papers und ist leider so wichtig, dass wir ihn nicht raus werfen können. Bislang konnte sich niemand aufraffen, sich so tief in den Algorithmus einzuarbeiten, dass er den Algorithmus weg werfen kann.

    http://shark-project.svn.sourceforge.net/viewvc/shark-project/branches/SharkReworkNewInterface/Shark/src/Algorithms/SigmoidFit.cpp?revision=1632&view=markup

    Zeile 90ff (ich bitte den dynamic_cast in der Datei zu ignorieren, der kommt da bald nach langen Diskussionen weg 😉 ).



  • Den Haialarm find ich gut. 😃 👍



  • @Pi und dot

    314159265358979 schrieb:

    Die "default"-Implementierung von delete[] ist doch threadsafe, oder?

    Jain,..
    delete[] hat keine atomare sondern nur eine elementbezogendes LOCK# prefix...



  • otze schrieb:

    Ich zeige dir mal schlechten Code. Der stammt 1:1 aus dem Code eines Papers und ist leider so wichtig, dass wir ihn nicht raus werfen können. Bislang konnte sich niemand aufraffen, sich so tief in den Algorithmus einzuarbeiten, dass er den Algorithmus weg werfen kann.

    http://shark-project.svn.sourceforge.net/viewvc/shark-project/branches/SharkReworkNewInterface/Shark/src/Algorithms/SigmoidFit.cpp?revision=1632&view=markup

    Zeile 90ff (ich bitte den dynamic_cast in der Datei zu ignorieren, der kommt da bald nach langen Diskussionen weg 😉 ).

    Also wenn man "platt's method" kennt, sollte der auch nicht so schwer zu verstehen sein, wenn das die einzige Doku zu platt's method ist, dann wird es schwieriger.



  • otze schrieb:

    http://shark-project.svn.sourceforge.net/viewvc/shark-project/branches/SharkReworkNewInterface/Shark/src/Algorithms/SigmoidFit.cpp?revision=1632&view=markup

    http://www.csie.ntu.edu.tw/~cjlin/papers/plattprob.pdf
    http://de.wikipedia.org/wiki/Logistische_Regression
    http://de.wikipedia.org/wiki/Gradientenverfahren

    Damit sollte das Rätsel gelöst sein.

    Es handelst sich wohl um eine Logistische Regression die
    mittels eines Gradientenabstiegsverfahren durchgeführt wird.

    Aber mal ganz erhlich,... soo hässlich ist der code nun auch wieder nicht...



  • 314159265358979 schrieb:

    aber der Code ist in jeder Hinsicht schlecht.

    Begründung?



  • zeusosc schrieb:

    Es handelst sich wohl um eine Logistische Regression die
    mittels eines Gradientenabstiegsverfahren durchgeführt wird.

    Na, das ist die Methode die bei Zeile 60 beginnt und bei Zeile 70 fertig ist ;).
    Uns ist bewusst, dass die Methode ein Newton-step Liniensuchverfahren ist. Trotzdem möchte da niemand dran rum basteln.

    //edit Die Dokumentationssituation hat sich auch absolut geändert, nachdem jemand auf die Idee kam, das Ding nicht mehr nur SigmoidFit zu nennen, sondern zumindest den Namen des Erfinders der Methode dazu zu schreiben.



  • hustbaer schrieb:

    Wie willst du beurteilen was Sache ist, wenn du noch nie irgendwo als Programmierer gearbeitet hast?

    Hab ich doch schon. Nur nicht als C++-Programmierer, sondern C#.


Anmelden zum Antworten