Frage

Vor ein paar Jahren mussten wir eine C ++ Bibliothek IPC zur Herstellung Funktion über TCP aufruft. Wir entschieden uns für ein und verwendet es in unserer Anwendung. Nach einer Weile wurde es klar, dass es nicht alle Funktionen lieferten wir brauchten. In der nächsten Version unserer Software, warfen wir die Dritte IPC-Bibliothek aus und ersetzt es durch ein schrieben wir sie . Von da an, bezweifle ich manchmal, ob dies eine gute Entscheidung war, weil es ziemlich viel Arbeit erwiesen hat und es fühlte sich offensichtlich wie das Rad neu erfinden . Also meine Frage ist: Gibt es Nachteile die Wiederverwendung von Code, der diese Neuerfindung rechtfertigen?

War es hilfreich?

Lösung

Der größte Nachteil (Sie erwähnen es sich) von Drittanbieter-Bibliotheken wiederverwenden, ist, dass Sie stark gekoppelt und abhängig, wie die Bibliothek funktioniert und wie es soll verwendet werden, wenn Sie eine mittlere Zwischenschicht zu schaffen verwalten können kümmern sich um sie.

Aber es ist schwer, eine generische Schnittstelle, da Ersetzen einer bestehenden Bibliothek mit einem anderen zu schaffen, mehr oder weniger erfordert, dass die neue Funktionalität auf ähnliche Weise funktioniert. Sie können jedoch immer neu schreiben den Code es verwenden, aber das könnte sehr schwierig sein und lange dauern.

Ein weiterer Aspekt ist, dass, wenn Sie das Rad neu erfinden, Sie haben die vollständige Kontrolle über das, was passiert, und Sie können Änderungen tun, wie Sie sehen, passen. Dies kann völlig unmöglich sein, wenn Sie auf einem dritten Teil Bibliothek abhängig ist lebendig und Sie ständig mit Updates und Bugfixes bietet. Auf der anderen Seite, Wiederverwendung von Code auf diese Weise ermöglicht es Ihnen, sich auf andere Dinge in Ihrer Software zu konzentrieren, die manchmal vielleicht das Richtige zu tun.

Es gibt immer einen Kompromiss.

Andere Tipps

Ich kann ein paar vorschlagen

  1. Die Fehler erhalten repliziert - Wenn Sie einen fehlerhaften Code wiederverwenden:)

  2. Manchmal kann es einen zusätzlichen Aufwand hinzufügen. Als Beispiel, wenn Sie benötigen nur eine einfache Sache zu tun, ist es nicht ratsam ist, eine komplexe BIG-Bibliothek zu verwenden, die die erforderliche Funktion implementiert.

  3. Sie könnten mit einigen Lizenz Bedenken gegenüber.

  4. Sie müssen möglicherweise einige Zeit verbringen \ konfigurieren, dass die externe Bibliothek zu lernen. Dies kann nicht effektiv sein, wenn die Wieder Entwicklung eine viel geringere Zeit in Anspruch nimmt.

  5. eine schlecht dokumentierte Bibliothek wiederverwenden kann mehr Zeit bekommen als erwartet / geschätzte

P. S. Die Gründe für unsere eigene Bibliothek zu schreiben waren:

  • externe Bibliotheken Auswertung ist oft sehr schwierig und es braucht viel Zeit. Auch einige Probleme erst sichtbar, nach einer gründlichen Auswertung.
  • Es machte es möglich, einige Funktionen einzuführen, die für unser Projekt spezifisch sind.
  • Es ist einfacher Wartung zu tun und Erweiterungen zu schreiben, wie Sie die Bibliothek durch und durch kennen.

Es ist so ziemlich immer von Fall zu Fall. Sie haben an der Eignung und Qualität zu sehen, was Sie wieder zu verwenden versuchen.

Die Nummer eins Frage ist: Sie können nur erfolgreich Code wiederverwenden können, wenn dieser Code GOOD-Code ist. Wenn es schlecht konzipiert wurde, hat Fehler, oder ist sehr zerbrechlich, dann werden Sie in die gleichen Probleme laufen bereits Sie in lief -. Sie müssen gehen, um es selbst tun sowieso, weil es so schwer ist, den vorhandenen Code zu ändern

Wenn es jedoch ein Dritter ist Bibliothek , die Sie verwenden bedenkt, dass Sie nicht den Quellcode verfügen, ist es ein wenig anders aus. Sie können versuchen, die Quelle, wenn es diese Art von Bibliothek ist. Einige kommerzielle Bibliothek Anbieter sind offen für Anregungen und Feature-Anfragen.

Die goldene Weisheit :: Es hat verwendbar zu sein, bevor es wieder verwendbar sein kann.

Wenn Ihr Code auf externe Ressourcen angewiesen und diejenigen, gehen sie weg, können Sie lähmenden Teile vieler Anwendungen sein.

Da die meisten wiederverwendet Code aus dem Internet kommt, laufen Sie in allen Fragen mit der Badezimmer Wall of-Code Atwood spricht. Sie können mit unsicheren oder unzuverlässigen geliehenen Code in Probleme laufen, und je mehr schwarz eingerahmt ist, desto schlechter ist.

Die Nachteile der Wiederverwendung von Code:

  • Debuggen nimmt eine ganze Menge mehr, da es nicht, Ihr Code und es ist wahrscheinlich, dass es etwas aufgeblähter Code.
  • wird Alle spezifischen Anforderungen nehmen auch mehr Arbeit, da Sie durch den Code eingeschränkt werden Sie wiederverwenden und müssen arbeiten, um es Einschränkungen ist.
  • Konstante Wiederverwendung von Code wird auf lange Sicht in einem aufgeblähten und desorganisiert Anwendungen mit harten führen Bugs zu jagen -. Hölle Programmierung
  • Die Wiederverwendung von Code kann (abhängig von dem Fall), um die Herausforderung und Zufriedenheit Faktor für den Programmierer reduzieren und auch die Gelegenheit verschwenden, um neue Fähigkeiten zu entwickeln.

Es hängt von dem Fall, der Sprache und der Code, den Sie wiederverwenden wollen oder neu zu schreiben. Generell glaube ich, dass die auf höherer Ebene die Sprache ist, neigen dazu, je mehr ich auf die Wiederverwendung von Code. Bugs in höherer Ebene Sprache kann einen größeren Einfluss haben, und sie sind leichter zu umschreiben. High Level-Code muss bleiben lesbar, ordentlich und flexibel. Natürlich ist das alles Code gesagt werden konnte, aber irgendwie eine C-Bibliothek Umschreiben klingt weniger eine gute Idee, als Umschreiben (oder besser gesagt wieder Factoring) PHP Modellcode.

Wie auch immer, das sind einige der Argumente, die ich zu fördern verwenden würde, „das Rad neu erfinden“.

Manchmal ist es einfach schneller, mehr Spaß, und besser auf lange Sicht von Grund auf neu zu schreiben, als mit Bugs und Begrenzung eines aktuellen Code-Basis arbeiten um.

Sie fragen sich, was Sie diese Bibliothek zu halten verwenden Sie neu erfunden?

  1. Anfangszeit für erstellen eine wiederverwendbare Code ist teurer und Zeitkosten
  2. Wenn Master-Zweig hat ein Update Sie es synchronisieren müssen und bereitstellen wieder
  3. Die Fehler erhalten repliziert - Wenn Sie einen fehlerhaften Code
  4. Wiederverwendung
  5. einen schlecht dokumentierte Code wiederverwenden kann mehr Zeit bekommen als erwartet / geschätzte
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top