Entwicklungsgeschwindigkeit mit verschiedenen Sprachen



  • 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. 👍



  • DEvent schrieb:

    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.

    Wie wärs damit http://www.eclipse.org/cdt/ ? 🤡



  • byto schrieb:

    DEvent schrieb:

    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.

    Wie wärs damit http://www.eclipse.org/cdt/ ? 🤡

    Das letzte mal vor 2 Jahren war es nicht das wahre. Vielleicht ist nun besser.

    Aber ich meine wirklich fuer alle Sprachen, Ruby, Python, Php, usw.



  • fricky schrieb:

    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.
    🙂

    http://www.xref-tech.com/xrefactory/main.html



  • rüdiger schrieb:

    http://www.xref-tech.com/xrefactory/main.html

    geht aber nur mit emacs, oder?
    das gibts auch noch: http://www.devexpress.com/products/Net/IDETools/RefactorCPP/
    🙂


Anmelden zum Antworten