Go Down

Topic: Fehlersuche (Read 3379 times) previous topic - next topic

combie

Quote
wenn man irgendwo eine Funktion ausgegraben hat, daß man auch versteht, WAS darin passiert und WIE man den Kram anzuwenden hat.
Ich denke, dass man die beiden Dinge trennen muss.

Was darin passiert ist eigentlich egal, für die Nutzung.
OK. evtl. lehrreich, aber in einer Doku findet sich das nicht.

Wie man den Kram anwendet, das sollte dokumentiert sein.


Das betreffende Mantra dazu:
> Programmiere immer gegen die Schnittstelle, nie gegen die Implementierung.



Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.

Tommy56

Das betreffende Mantra dazu:
> Programmiere immer gegen die Schnittstelle, nie gegen die Implementierung.
Unterschreib.
In JAVA hatten wir dazu extra Interfaceklassen, gegen die programmiert wurde. Unter denen lag dann die Implementation. Die konnte man beliebig austauschen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

michael_x

Quote
Unterschreib
Richtig, im Prinzip.

In gewisser Weise hat die .h Datei bei C++ eine ähnliche Funktion wie die Interface-Klasse bei Java.

Quote
Wie man den Kram anwendet, das sollte dokumentiert sein.
Wenn das Ganze aber nicht so funktioniert wie man die Doku (und die Beispiele) versteht, hilft leider nur der Blick in die Implementierung.





gregorss

Wenn das Ganze aber nicht so funktioniert wie man die Doku (und die Beispiele) versteht, hilft leider nur der Blick in die Implementierung.
Das ist ja mal ein starkes Argument dafür, sich genügend Zeit für die Doku zu nehmen und sich je nach Lage professionelle Hilfe zu holen.

Schlechte Doku gibt's ja wohl genug.

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

gregorss

Was darin passiert ist eigentlich egal, für die Nutzung.
Naja. irgendwie sollte schon das passieren, was man benötigt oder erwartet. Eine Funktion, deren Nutzung egal ist, umfasst im Idealfall nur Kommentare :-)

Wie man den Kram anwendet, das sollte dokumentiert sein.
Das sowieso. Wichtig für Wiederholungstäter ist, die „Signatur" der Funktion. Die sollte sich immer bei der Doku befinden.

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

combie

Quote
Naja. irgendwie sollte schon das passieren, was man benötigt oder erwartet. Eine Funktion, deren Nutzung egal ist, umfasst im Idealfall nur Kommentare :-)
Du hast mich nicht verstanden.
Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.

gregorss

Du hast mich nicht verstanden.
Vermutlich, ja.

Was genau meinst Du denn? Und was heißt „gegen die Schnittstelle programmieren"?

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

Tommy56

Das heißt, dass man bei der Programmierung/Nutzung einer Funktion nur den Header (Parameter und Returnwerte) betrachtet und nicht, wie die Funktion intern arbeitet.
Man kann also die interne Bearbeitung völlig ändern und trotzden funktioniert alles weiter (wenn keine anderen Fehler drin sind).

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

gregorss

#53
Jul 12, 2018, 03:23 pm Last Edit: Jul 12, 2018, 03:23 pm by gregorss
Das heißt, dass man bei der Programmierung/Nutzung einer Funktion nur den Header (Parameter und Returnwerte) betrachtet und nicht, wie die Funktion intern arbeitet.
Man kann also die interne Bearbeitung völlig ändern und trotzden funktioniert alles weiter (wenn keine anderen Fehler drin sind).
Danke!

Das passt zu dem, was in dem Buch steht, mit dem ich C++ gelernt habe: Den (anderen) Programmierer hat quasi nur zu interessieren, wie die Signatur (was Du Header nennst) einer Funktion aussieht. Was in einer Funktion passiert, ist verhältnismäßig uninteressant.

Und dass man eine Art „Vertrag" formulieren sollte: Was muss man einer Funktion zur Verfügung stellen und was gibt sie dafür zurück?

Gruß

Gregor
Nicht lange fackeln, lass' Backen wackeln! (Seeed)

Go Up