• Keine Ergebnisse gefunden

Cut-And-Paste Programming. Golden Hammer

N/A
N/A
Protected

Academic year: 2022

Aktie "Cut-And-Paste Programming. Golden Hammer"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

„Cut-And-Paste Programming“

„Golden Hammer“

Christian Stahl

(2)

Gliederung

1. Einführung 2. Symptome

3. Konsequenzen 4. Ursachen

5. Lösung

(3)

„Cut-And-Paste Programming“

(4)

Einführung

- auch bekannt unter:

- „Clipboard Coding“

- „Software Cloning“

- „Software Propagation“

- Ursache: Faulheit

(5)

Einführung

- Anekdote:

„Ich dachte, du hast den Fehler behoben. Warum ist er wieder aufgetreten?“

„Ihr arbeitet schnell. Über 400.000 Quelltextzeilen in 3 Wochen ist

wirklich eine gute Leistung!“

(6)

Einführung

- Beispiel:

- verkettete Liste, die im Quelltext mehrmals vorkommt

- Speicherrückgabe vergessen

- Fehler wird gefunden, verbessert und per

„Cut-And-Paste“ im Quelltext eingefügt

- Fehler tritt trotzdem noch auf, obwohl das verbesserte Quelltextstück richtig ist

(7)

Einführung

- Wiederverwendung von Quelltext durch Kopieren von Source-Teilen

- leichter Quelltext zu modifizieren als neu zu schreiben

- positive kurzzeitige Konsequenz:

- Quelltextzeilen nehmen zu

- Veränderungen sind leicht einzufügen

(8)

Symptome

- über 10000 Quelltextzeilen pro Woche - viele identische Änderungen, um ein

Problem zu beheben

- derselbe Fehler kommt wieder vor

(9)

Konsequenzen

- viele einmalige Fehlerbehandlungen und Tests für denselben Quelltext

entwickeln

- übermässige Wartungskosten

- Anwachsen der Quelltextzeilen, ohne

die Wartungskosten zu reduzieren

(10)

Ursachen

- kurzfristige Ausgaben wichtiger als die langfristige Investition in

wiederverwendbaren Quelltext

- Inhalt des Moduls nicht geschützt - Entwicklungsgeschwindigkeit

überschattet alle anderen Faktoren - wiederverwendbare Komponenten

sind schlecht dokumentiert und nicht

schnell verfügbar

(11)

Ursachen

- schlechtes Verständnis von

- Vererbung - Komposition

- andere Entwicklungsstrategien

- Unerfahrenheit mit neuer Technologie

- modifizieren eines existierenden, lauffähigen Beispiels

(12)

Lösung

- Black-Box-Wiederverwendung:

- basiert auf Objektkomposition

(Zusammensammeln von Objekten, um komplexeres Verhalten zu erhalten)

- zusammengesetzte Objekte zeigen einander keine internen Details

- gleichen somit Black-Boxes

(13)

Lösung

- Black-Box-Wiederverwendung bei grossen Systemen

- Interface kann vom Klienten nicht verändert werden

- Implementation des Objektes vom

Interface unabhängig machen (z.B. mit Hilfe einer IDL)

(14)

Lösung

- beseitigen des Cut-And-Paste:

- aus Basiscode eine Bibliothek oder

Komponente machen (Black-Box-Prinzip) - Zerlegungsprozess kann schwierig, lang

und teuer sein

1. finden der kopierten Quelltextstücke 2. Standardversion entwickeln

3. zukünftiges Vorkommen verhindern (prüfen des Quelltextes)

(15)

Lösung

- Black-Box-Wiederverwendung reduziert

- Wartungskosten durch gemeinsamen Quelltext - Tests

- Dokumentation

- Verwandte Lösungen: „Spaghetti Code“

- enthält oft mehrere Instanzen des Cut-And- Paste Antipattern

- Cut-And-Paste oft einzige Möglichkeit Teile des

(16)

„Golden Hammer“

(17)

Einführung

- Kompetenz eines Entwicklungsteams im Umgang mit einem Produkt bzw. einer Technologie

- jedes neue Produkt scheint mit dieser

Technologie bestens entwickelt zu werden

- Hammer meistens eine Fehlanpassung

- zu wenig nach alternativen Lösungen gesucht

- Argumentation: zukünftige Erweiterungen des Produktes bei Verwendung des

(18)

Einführung

- auch bekannt unter:

- “Old Yeller”

- “Head-in-the sand“

- Ursache:

- Ignoranz - Stolz

- Engstirnigkeit

(19)

Einführung

- Beispiel:

- Call-Center-System

- MS Access als Dauerlösung für Client/Server-Anwendung

- Benutzeroberfläche auf Access aufgesetzt - durch diese schlechte Architektur war das

System von Access abhängig

(20)

Einführung

- Anekdoten:

„Ich habe einen Hammer und alles andere ist ein Nagel.“

„Unsere Datenbank ist unsere Architektur.“

„Vielleicht hätten wir doch nicht Excel-

Makros verwenden sollen.“

(21)

Symptome

- identische Technologie für konzeptuell verschiedene Probleme

- Anforderungen auf das zugeschnitten, was die Technologie gut kann

- Entwickler isoliert, mangelndes

Wissen und Erfahrung mit Alternativen

(22)

Konsequenzen

- Lösungen haben minderwertige

Leistung, Skalierbarkeit im Vergleich zu anderen Lösungen in der Industrie - neue Entwicklung hängt stark von

spezifischem Produkt oder Technologie ab

- System-Architektur durch Hammer

beschrieben

(23)

Ursachen

- Entwicklungsteam ist mit einer Technologie hochprofitabel

- verschiedene Erfolge mit der Technologie - Technologie und Sammeln von Erfahrung

damit war grosse Investition

- Entwicklungsteam kommt mit der Industrie bzw. anderen Firmen nicht in Berührung

- Abhängigkeit von patentierten

Produktmerkmalen, die bei anderen

(24)

Bekannte Ausnahmen

- Produkt ist Teil einer Produktgruppe - Hammer ist strategische

Langzeitlösung (Oracle DB)

(25)

Lösung

- Firma muss die Erforschung neuer Technologien festlegen

- professionelle Schulung von Mitarbeitern

- Forschungstreffen - Buchstudiengruppen - Konferenzen

- Schulungen

- Gratifikationen

(26)

Lösung

- Einstellen von Mitarbeitern mit unterschiedlichen Kenntnissen

- definierte Schnittstellen, um den Austausch von Subsystemen zu vereinfachen

! Austausch der Implementation, ohne Einfluss auf die anderen Komponenten - Standardschnittstellen implementieren

(CORBA, TCP/IP)

(27)

Lösung

- Verwandte Lösungen:

- „Lava Flow“

- Entfernen von „totem“ Quelltext

- Quelltext von alten Versionen des Hammers werden ungern modifiziert

- „Vendor Lock-In“

- Entwickler werden vom Hersteller unterstützt den Hammer anzuwenden

- Software Projekt soll von einem Hersteller

(28)

Vielen Dank für die Aufmerksamkeit!

Fragen?

Referenzen

ÄHNLICHE DOKUMENTE

Nebst dem Wissen, wie sich beispielsweise künstliche Intelligenz einsetzen lässt, um Mitarbeitende so zu entlasten, dass sie mehr Zeit für komplexere Aufgabenfelder haben und

DIE AUSWANDERER (VOX) MEIN LOKAL, DEIN LOKAL (Kabel eins) - Headcutter SCHÄTZE UNTERM HAMMER (Kabel eins) - Headcutter DER TRÖDELTRUPP (RTLZWEI)..

Für das Auto mit dem Baujahr 1959 und dem 6,4 Liter großen Achtzylinder veranschlagt Coys lediglich 30 000 bis 40 000 Euro, was für den Inbegriff des amerikanischen

Gebruik in overeenstemming met de bestemming Het product dient uitsluitend voor het voegloos laten aansluiten van laminaat en parket, en vervangt hamer, tikhout en trekijzer.. Het

Hat eine Schule Hinweise darauf, dass Schülerinnen und Schüler oder andere Personen aus dem schulischen Umfeld diese Bedingungen nicht erfüllen, sind sie umgehend nach Hause

Der ist für dich tabu.« Er zog sich seine Jacke über, schlüpfte in die Schuhe und raffte sein kleines Handgepäck zusammen, in das er das Nötigste für zwei, drei Tage gepackt

82 HEINRICH -HAMMER-INSTITUT // Fortbildungsakademie der Zahnärztekammer S-H // PROGR AMM 1.2022 Studium der Zahn- Mund- und Kieferheilkunde an der Universität Witten/Herdecke;

»Welleneffekt«, von dem er sich selbst betroffen fühlt: »Ich kann nicht leugnen, dass es für mich einen ganz persönlichen Wert hat, dieses Buch über den Tod zu schreiben.. Ich