Code-Klonen ist sehr häufig, egal welche Programmiersprache verwendet wird, ja, sogar in C, Python und Java.
Menschen tun es, weil es sie auf kurze Sicht effizient macht; Sie machen Code-Wiederverwendung. Es ist wohl schlecht, weil es auf lange Sicht Gruppen-Ineffizienzen verursacht: Klone verwenden Code-Fehler und Annahmen neu, und wenn diese entdeckt werden und repariert werden müssen, müssen alle Code-Klone repariert werden, und der Programmierer, der das Fixieren tut, tut dies nicht weiß, wo die Klone sind, oder auch wenn es welche gibt.
Ich glaube nicht, Klone sind schlecht, wegen der Code-Wiederverwendung-Effekt. Ich denke, was schlecht ist, verwaltet sie nicht.
Um mit dem letzteren Problem zu helfen, baue ich clone detectors (see our CloneDR), die automatisch finden genaue und fast-miss dupliziertem Code, mit der Struktur der Programmiersprache, um die Suche zu führen. CloneDR funktioniert für eine Vielzahl von Programmiersprachen (einschließlich OP-Sets).
In jedem Softwaresystem mit 100K SLOC oder mehr werden mindestens 10% des Codes geklont. (OK, OK, Suns JDK wird von einem außergewöhnlich guten Team gebaut, sie haben nur etwa 9,5%). In älteren konventionellen Anwendungen ist es tendenziell schlechter; Ich vermute, weil die Programmierer mehr Code aus Selbstverteidigung klonen. (Ich habe Anwendungen gesehen, in denen die Klone 50% Code enthalten, ja, diese Programme sind aus vielen Gründen schrecklich, nicht nur Klonen).
Sie können Klonberichte unter dem Link für Anwendungen in mehreren Sprachen sehen, sich die Statistiken anschauen und sehen, wie die Klone aussehen.
vielleicht bin ich dicht, aber ich habe eine harte Zeit herauszufinden, was genau Sie fragen. Könntest Du das erläutern? – chesles
@chesles Danke für deinen Rat und ich habe mich ein bisschen verändert. –