Entwicklungsgeschwindigkeit mit verschiedenen Sprachen



  • supertux schrieb:

    Und refactoring, muss ehrlich sagen, sowas habe ich nie gemacht.

    das braucht man auch so gut wie nie. refactoring ist irgendwie in der Java-welt sehr beliebt. in C macht das kaum einer. ich glaube slickedit hat einen C-faktorisierer drin, sonst kenne ich keinen.

    übrigens, von wegen wichtige tools:
    falls ihr mal grosse mengen von code durchforsten wollt, den ihr nicht selber geschrieben habt: http://www.scitools.com/products/understand/cpp/product.php
    das ding ist spitze. heisst zwar ... for C++, aber reinen C-code verarbeitet es genau so gut.
    🙂



  • fricky schrieb:

    supertux schrieb:

    Und refactoring, muss ehrlich sagen, sowas habe ich nie gemacht.

    das braucht man auch so gut wie nie

    🙄

    Entweder bist du der Überguru, bei dem der Code sofort zu 100% genau passt vom "Design" her, oder du hast schlicht und einfach keine Ahnung bzw. noch nie was größeres gemacht.

    Ich tippe auf letzteres.



  • Erkann sich kein Refactoring-Tool leisten, deshalb weiß er davon nichts! Schon allein die Aussage, das nur Slickedit sowas können soll, sagt schon alles.



  • CrazyCat schrieb:

    Schon allein die Aussage, das nur Slickedit sowas können soll, sagt schon alles.

    sagt was?
    zeig mir noch mehr tools, die c-code refaktorisieren können.
    🙂



  • nep schrieb:

    Entweder bist du der Überguru, bei dem der Code sofort zu 100% genau passt vom "Design" her, oder du hast schlicht und einfach keine Ahnung bzw. noch nie was größeres gemacht.

    ich kein Überguru oder sonst was, und was du von mir hälst, ist mir auch Wurscht. Wenn ich mir Wikipedias Erklärung durchlese

    Code refactoring is any change to a computer program's code that improves its readability or simplifies its structure without changing its results.

    dann frage ich mich, warum ich ein extra Tool dafür bräuchte. Ich lass mich eines besseren belehren, zeig mir dann einfach ein Bsp, wo es sich lohnt ein Tool dafür zu haben, bw. was man genau darunter versteht.



  • Damit warst doch nicht du, sondern fricky gemeint.



  • nep schrieb:

    Damit warst doch nicht du, sondern fricky gemeint.

    danke, dass du mich für den überguru hälst. nein, du musst jetzt nicht niederknien,
    🙂



  • Refactoring ist nicht nur in Java beliebt sondern in eigentlich jeder OO-Sprache.

    Interessant ist Dein Schluss, dass Refactoring unwichtig sei, weil es für prozedurale Sprachen wie C keine (kaum) Refactoring-Tools gibt.
    Mein Schluss wäre eher: prozedurale Sprachen sind (in den meisten Anwendungsfällen) unwichtig. Warum sich also die Mühe machen, dafür Refactoring-Tools zu schreiben. Zumal ein Großteil derer, die noch prozedural programmieren, offenbar eh altbacken sind und mit IDEs auf Kriegsfuß stehen. Dieser Thread ist der empirische Beweis für diese These. 🤡



  • nep schrieb:

    Damit warst doch nicht du, sondern fricky gemeint.

    angesprochen habe ich mich trotzdem gefühlt, weil ich (um ehrlich zu sein) bis heute noch nie etwas von refactoring gehört habe. Naja, bin nur ein C Programmierer...



  • Was soll man den bei prozeduralen Sprachen groß refactoren?



  • supertux schrieb:

    dann frage ich mich, warum ich ein extra Tool dafür bräuchte. Ich lass mich eines besseren belehren, zeig mir dann einfach ein Bsp, wo es sich lohnt ein Tool dafür zu haben, bw. was man genau darunter versteht.

    Änderungen von Funktionsnamen, Strukturen und Variablennamen lassen sich damit z.B. schnell und sicher (auch projektübergreifend) erledigen. Man kann sowas zwar auch mit Search & Replace machen, dabei wird aber in der Regel der Kontext nicht beachtet (z.B. wenn ein zufällig gleicher Variablenname an anderer Stelle in der gleichen Datei vorkommt). Ein Refactoring-Tool senkt hier die Fehlerquote erheblich.



  • Nur weil du von dem Begriff an sich noch nichts groß gehört hast, heißt das ja noch lange nicht, dass du noch nie "refactoriert" hast. Das ist ja letztlich auch nur ein abstrakter Sammelbegriff für eine Reihe von Umgestaltungen die du an deinem Sourcecode machen kannst.

    Wenn du z.B. einfach nur schon den Namen einer Funktion änderst, hast du bereits ein Refactoring betrieben. Wenn du eine bestehende große Funktion in mehrere kleine aufteilst hast du ein Refactoring betrieben. Wenn du einen immer wiederkehrenden Code-Teil in eine eigene Funktion auslagerst hast du etwas refactored. IMHO ist es auch als Refactoring anzusehen wenn du z.B. bei einer bestehenden Funktion neue Parameter hinzufügst.
    Auf OO-Ebene gibts natürlich noch weitaus mehr Refactoring-Beispiele, wurde hier ja auch schon was genannt.

    Sowas hast du bestimmt schon gemacht. Und natürlich braucht man für kein Refactoring irgendwelche Tools. Aber Tools erleichtern sowas enorm, wenn es mal um das bloße Ändern von Variablennamen hinausgeht.
    Deswegen auch mein Kommentar zu frickys Kommentar, der ja meint, dass man "Refactorierungen so gut wie nie braucht". Dass es für C da z.B. so gut wie gar keine Tools gibt, ist ja wieder ne ganz andere Geschichte...



  • vorallem bieten mir refactoring tools die sicherheit, dass ich jetzt das interface nur zu 95% kennen muss, da ich die letzten paar % problemlos automatisch refactoren kann.

    ich muss mir zB nicht genau überlegen wie die funktion jetzt heisst, sondern kann sie erstmal implementieren und testen und dann fällt mir der perfekte name schon irgendwann ein. 2 klicks und fertig umbenannt dann. ebenso wenn ich jetzt nicht weiß ob ein vector oder eine list besser ist -> kein problem dank refactoring. ich kann eine gute wahl jetzt treffen und mir die beste für später aufheben (dass ich dennoch keine furchtbar schlechte wahl treffen kann sollte auf der hand liegen).

    es erleichtert das herangehen an code enorm - da ich nur guten code schreiben muss und ihn mehr später "perfekt" refactoren kann.



  • Ich lehne auch immer das unbekannte erstmal grundsätzlich ab. 😃



  • ok, jetzt verstehe ich worüber ihr da redet. Klar, dann hab ich schon mal refactoring gemcht , ole ole :schland: ole ole

    Ich kann schon verstehen, wenn die IDE besser refactoring kann als suche/ersetzen/regexp, vor allem, wenn man Namespaces, Klassen, Templates (und was weiß ich noch) hat und so. Da ist suche/ersetzen/regexp auch nicht ganz geeignet.

    Funktionen/Strukturen Umbenennen musste ich schon öfters. Zum Glück verwende ich eine Namenkonvenion wie bei GTK und damit lässt sich einfache regexp schreiben, so dass mein vim (bzw. sed) die Änderungen für mich vornimmt. Der Vorteil bei mir liegt daran, dass C keine Namespaces hat, die beim Umbenennen von Funktionen betrachtet werden sollen, und durch die Namenskonvention weitgehend eindeutig sind.



  • supertux schrieb:

    Funktionen/Strukturen Umbenennen musste ich schon öfters. Zum Glück verwende ich eine Namenkonvenion wie bei GTK und damit lässt sich einfache regexp schreiben, so dass mein vim (bzw. sed) die Änderungen für mich vornimmt. Der Vorteil bei mir liegt daran, dass C keine Namespaces hat, die beim Umbenennen von Funktionen betrachtet werden sollen, und durch die Namenskonvention weitgehend eindeutig sind.

    nur mit refactoring kann man auch mehr machen: wenn man zB den typen einer variablen von foo auf bar ändert lässt sich das automatisch übernehmen so dass die getter/setter angepasst werden und eben auch der client code - zumindest da wo es möglich ist.



  • Man muss nicht immer Kompromisse eingehen. Wer Vim mag und damit umgehen kann, kann sich z.B. per viemu Vim ins Visual Studio holen. ...



  • Helium schrieb:

    Wer Vim mag und damit umgehen kann, kann sich z.B. per viemu Vim ins Visual Studio holen. ...

    ganz tolle idee. hat man dann wenigstens auch diese ~ unterm text?
    🙂



  • Ich habs gemacht und bin zufrieden mit vimemu. Lustiger Nebeneffekt sind übrigens die Gesichter der Kollegen wenn sie mal was in meinem VS was eintippen wollen :-).



  • Refactoring ist wichtig in jeder Sprache und wenn es nur einen Bezeichner zu aendern gilt.

    Wie gerne haette ich Eclipse als IDE mit 100% Unterstuetzung fuer jede Sprache. C mit Eclipse und dazu die vollen Refactor, Debug-Tools, Codevervollstaendigung usw. wie in Java, dass waere super.

    Ich glaub der wichtigste Grund wieso ich Java gerne nehme, ist es, weil ich Eclipse habe. Auf jeder Plattform die gleiche IDE zu verwenden ist super, die refactoring Faehigkeiten von Eclipse sind auch Top. Codeformatter, -vollstaendigung, die integrierte Dokumentation der API usw usf. 👍


Anmelden zum Antworten