Refactoring Erfahrungen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Refactoring Erfahrungen?

    Hallöchen,

    hat jemand schon mal mit Xcode 3.0 etwas erfolgreich refactoriert? Ich wollte gerade mal einer Klasse einen anderen Namen geben und dachte, das ist eine gute Gelegenheit mal das Refactoring auszuprobieren. Nun ja, das Ergebnis war schlicht enttäuschend, weil nicht vorhanden. Ich bin dabei folgendermaßen vorgegangen:
    1. Die Headerdatei der Klasse geöffnet und den Klassennamen ausgewählt.
    2. Im Menü Edit den Punkt Refactor... angeklickt.
    3. Als Aktion Rename gewählt und den neuen Namen der Klasse eingegeben.
    4. Rename related files angehakt.
    5. Auf den Button Preview geklickt.[/list=1] Xcode zeigt dann alle Files, die wie die umzubenennende Klasse heißen an und vor der Headerdatei beginnt ein Progressindicator zu drehen. Dieser dreht dann und dreht und dreht und dreht... Er dreht sich 'nen Wolf und es passiert nichts mehr.

      Bin ich zu blöd oder lohnt es sich einen Bugreport zu schreiben?

      Michael
  • Bei mir hat das -- für genau den Fall -- geklappt, wobei ich genauso vorgegangen bin wie Du.

    Nicht allerdings ohne einen Absturz des IB kurz darauf. Ist eine .0-Release...
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Original von seb2
    Bei mir hat das -- für genau den Fall -- geklappt, wobei ich genauso vorgegangen bin wie Du.

    Wie lange hat das denn gedauert? Vielleicht bin ich ja auch nur zu ungeduldig, aber ich denke in einer viertel Stunde sollte eine nur 18 Zeilen lange Headerdatei bearbeitet werden können, oder?

    Michael
  • Das ging relativ fix, Projekt mit 13 NIBs, 37 .m-Dateien plus entsprechende Header, Implementationsdateien _im Durchschnitt_ vielleicht hundert Zeilen, grob geschätzt eine Minute.
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");
  • Falls mal jemand anders auf das gleiche Problem stößt. Das Geheimnis hinter dem Problem ist, dass ich die Xcode Tools ohne das "UNIX Development Support" Paket installiert hatte. Obwohl das ja nur ein optionales Paket sein soll und selbst Apple nicht daran geglaubt hat, dass es daran liegen könnte, ist dieses Paket wohl doch erforderlich, damit Refactoring auch funktioniert. Na hoffentlich wird das gefixt.

    Michael
  • Ich möchte noch hinzufügen, dass beim Ändern des Namens einzelner Methoden
    die NIB-Files nicht geändert werden. Das bedeutet, wenn man IBAction-Namen
    ändert, muss man die Connections im Interface-Builder von Hand wieder herstellen!

    Das ist leider fehleranfällig und reduziert die Nützlichkeit des "Refactoring".
    Dieser Mangel ist aber so offensichtlich, dass das bestimmt in einer der kommenden
    Versionen geändert wird.

    Ich arbeite an einem Projekt mit, bei dem manche Methodennamen als String benutzt werden (Hintergrund: Daten werden in eine Datei geschrieben, die Methode ist ein Decoder für das spezielle Datenformat, so weiss man immer, wie die Daten gelesen werden können).
    Das wird vom "Refactoring" auch nicht erkannt (hatte ich auch nicht erwartet, eine Warnung wäre aber hilfreich).
    Im Endeffekt mache ich deshalb vorher und nachher immer ein "Find in Project" nach
    dem geänderten Namen und kontrolliere von Hand nach, ob das Refakturieren
    richtig geklappt hat.
  • Na ja, ich hatte – offenkundig in einem anderen Thread oder ist es in der nächsten Auflage? – schon einmal geschrieben, dass das nicht vollständig gehen kann, wenn man etwa an zusammengebaute Setter denkt. Das würde ja eine wirklich Code-Analyse bedingen. Auch deine externe Datei wird wohl nicht in die Analyse einbezogen werden können.

    Die fehlende integrative Unterstürzung ist wirklich insgesamt bedauerlich. Hat es jemand von euch hinbekommen, dass ein Find in Projectr auch im CD-Model findet oder gar im Nib? Bei mir ist das ein Find in Source – was mir wenig hilft.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    Die fehlende integrative Unterstürzung ist wirklich insgesamt bedauerlich.

    Ja, da hast Du wohl recht. Vor allem, wenn Du es mit anderen IDEs vergleichst. Nichtsdestotrotz finde ich Xcode trotzdem übersichtlich im Vergleich zur Konkurrenz.

    Original von Tom9811
    Hat es jemand von euch hinbekommen, dass ein Find in Projectr auch im CD-Model findet oder gar im Nib? Bei mir ist das ein Find in Source – was mir wenig hilft.


    Nein, aber das habe ich auch gar nicht erwartet.

    ciao

    gandhi