Hashfunktion - Feedback

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Hashfunktion - Feedback

Beitrag von Bebu » Mo Jul 18, 2011 7:26 pm

Bemerkung am Rande: fileinfo.cpp zeile 28: Das "==" sollte vlt gegen ein "=" ausgetauscht werden. Ebenso in zeile 39
Danke für den Hinweis, den Fehler hätte ich vermutlich ewig gesucht^^ Ist seit Revision 181 gefixt.
Es müssen nicht mehrere Leute gleichzeitig an einer Sache arbeiten. Das geht, aber das muss organisiert sein.

Es muss aber möglich sein, dass mehrere Leute zu unterschiedlichen Zeiten an einer Sache arbeiten können.
Jeder muss aber in der Lage sein, den vorhandenen Code zu überarbeiten, ohne ihn neu zu schreiben zu müssen. Daher muss jeder Code so gehalten sein, dass ein anderer ihn modifizieren kann.
Ich teile diesen Standpunkt. Code der in Trunk liegt, darf von allen Entwicklern, die Repozugang haben angepasst und verbessert werden. Kleine Fehlerkorrekturen verändern nicht die grundlegende Funktionalität, oder die eigentliche Arbeitsweise. Wenn man dagegen plant, das Interface eines anderen zu verändern, dann sollte man das nicht still und heimlich tun. Die Branches anderer sollten aber tatsächlich tabu sein, außer man hat die Ausdrückliche Erlaubnis
Und hier sind wir wider bei der Projektplanung: Ich baute eine Generische Klasse ohne weitere nicht-Standard Abhängigkeiten und dem Ziel, das die Klasse nur Daten hashte und sonst nix. Und dann hat man mich gebeten, einen Teil der Funktionalität, die egt nicht in der Hashklasse liegen sollte, eben dort zu Implementieren: Das Abarbeiten eines FileInfo-Streams. Nun muss ich in einer "generischen" in einer egt "statischen" Memberfunktion mich mit dem Laden und Auswerten von Daten herumschlagen und das ist meiner Meinung nach schwachsinnig, auch weil bebu das Interface zwischenzeitlich wieder geändert hat...
Hier muss ich entgegenhalten, das es zu diesem Zeitpunkt nur ein einziges Interface gab und das hat Xin als Schnittstelle zu den GUIs konzipiert. Irgendwann hieß es: "Fangt mal an, aber rechnet nicht damit, das es so bleibt, wie ihr es euch gedacht habt." Dann hatten wir eine Menge Code, der in verschiedenen Branches herumgeflogen ist. Da von anderer Seite nicht viel kam, habe ich halt angefangen Klassen zu schreiben und Interfaces zu definieren. Dabei entstand die Idee zu FileInfo, um ein Fixes Austauschobjekt zwischen allen Teilmodulen zu schaffen. Ich sah aber keinen Sinn darin, in einem Informationsobjekt eine Hashklasse zu halten, wenn der Hashwert alleine ausreicht. Auf dieser Uberlegung aufbauend, bin ich bei dem Konzept gelandet, das ich aktuell verfolge.

Was die Interfaces betrifft, unterliegen diese natürlich einem ständigen Wandel, solange die Grundfunktionalitäten noch nicht stehen. Bei Beginn der Arbeiten an der Datenhaltung ist mir aufgefallen, das FileInfo zu überladen ist und viel Leichtgewichtiger ausfallen kann. Ich hatte einfach Sachen eingebaut, die vielleicht irgendwann mal gebraucht werden könnten. Vieles davon ist wieder herausgeflogen. Dann ist mir aufgefallen, das sich meine Sachen in allen möglichen Namespaces verlieren und man Dinge die man ständig braucht kaum auf Anhieb findet. Das werde ich als nächstes Verbessern und vereinfachen. Aber solche Dinge werden ständig auftreten. Wenn man darüber spricht, hat auch jeder ausreichend Zeit sich darauf einzustellen und seine Funktionen an das neue Interface anzupassen. Da ich aber über einen langen Zeitraum nur Konflikte in meinem eigenen Code lösen musste, ist die Kommunikation an der Stelle etwas kurz geraten.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Hashfunktion - Feedback

Beitrag von Xin » Mo Jul 18, 2011 8:38 pm

Bebu hat geschrieben:
Und hier sind wir wider bei der Projektplanung: Ich baute eine Generische Klasse
Hier muss ich entgegenhalten, das es zu diesem Zeitpunkt
Das Buch "Die Psychologie des Programmierers" ist aus den 50ern Jahren. Es berichtet davon, wie Projekte scheitern. Unter anderem, weil sich Programmierer mit Fragen aufhalten, die das Projekt nicht weiterbringen. Eine Lösung bietet es in dem Sinne nicht an, aber es vermittelt den Standpunkt, dass das "Egofreie Programmieren" hilfreich sein kann.

Der Hintergedanke dabei ist, dass "Ich baute" und "Ich halte entgegen" nicht wichtig ist. Wir können jetzt die Schuldfrage detailliert klären, zum einen kostet sie Zeit, zum anderen hilft sie nicht den Code zu verbessern. Abschließend führt es vermutlich dazu, dass hier nach bestem Wissen und gearbeitet haben und davon überzeugt sind, recht zu haben, ergo der andere ein Arsch ist, dass er das nicht einsieht. Hilft dem Projekt auch nicht.

Ich für meinen Teil arbeite situationsbedingt, nicht nur beim Programmieren. Die Situation ist, dass sich Konzens darüber gebildet hat, dass mancher Code im Repository schöner sein könnte. Was wäre hilfreich, um die Situation zu verbessern? Arbeiten wir alle nach besten Wissen und Gewissen und tauschen wir uns darüber aus, wie wir das Projekt unabhängig wie wir die Vergangenheit bewerten verbessern werden.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Hashfunktion - Feedback

Beitrag von Bebu » Mo Jul 18, 2011 9:18 pm

Ich für meinen Teil gebe dir Recht. Lassen wir die Schuldzuweisungen und arbeiten wir zusammen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Hashfunktion - Feedback

Beitrag von cloidnerux » Di Jul 19, 2011 12:05 am

Große Diskussion, kleine Lösung.

Template ist nun Implementiert, kompiliert auch und wartet aufs Testen.
Werde es demnächst in den branch hochladen, muss mich aber noch mit bebu absprechen.

MfG cloidnerux

p.S: Kommentare fehlen immer noch, iwas fehlt doch da immer^^
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Hashfunktion - Feedback

Beitrag von Xin » Di Jul 19, 2011 9:14 am

cloidnerux hat geschrieben:p.S: Kommentare fehlen immer noch, iwas fehlt doch da immer^^
Kommentare einfügen, testen und bitte in den Trunk schicken.

Branches sind prinzipiell gut, doch momentan werden die Branches zuviel genutzt, um unabhängig vom anderen Code zu arbeiten. Das muss aber zusammenpassen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten