Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#41

AW: Adressbuch mit Stringgrid.

  Alt 7. Aug 2015, 15:37
Ich weiß nicht was dein Problem ist @Perlsau
Mein lieber Groz, ich habe kein Problem im Zusammenhang mit deinen Anfängerfragen. Mir erscheint viel eher deine Haltung etwas problematisch zu sein. Wie p80286 bereits deutlich gemacht hat, geht es mir nicht darum, dich in irgend einer Weise herunterzumachen oder dir den Spaß zu verderben, sondern um das Aufzeigen von falschen Ansätzen, die man sich schneller an- als abgewöhnt. Du verteidigst deine Speicherung der Daten im Stringgrid bereits derart vehement, wie ich das auch von einigen meiner Kunden – ebenfalls Entwickler – kenne, die mich um Hilfe bitten, weil sie sich in ihrem eigenen Code nicht mehr auskennen. Da hat z.B. einer ziemlich langsame, unidirektionale Datenbank-Komponenten (UIB) und bittet mich, die Geschwindigkeit des Datenbankzugriffs durch irgendwelche Stored Procedures zu erhöhen. Am Nadelöhr der langsamen DB-Komponenten möcht er jedoch nichts geändert haben, obwohl seine IDE bereits hochmoderne Komponenten mitbringt. In die müßte er sich aber erst einarbeiten, was er scheut, diese Angst aber nicht eingesteht und daher lieber das macht, was man in der Psychologie rationalisieren nennt: Er sucht Argumente, die in seinen Ohren stichhaltig klingen, um sich nicht damit befassen zu müssen, was eigentlich notwendig wäre. "Ich hab diese Komponenten gekauft, die werden auch gepflegt und weiterentwickelt, und ich krieg da immer schnellen Support," heißt es dann statt: "Ich traue mir nicht zu, jetzt bei einer Million Quellzeilen nochmal alles zu ändern, ich weiß ja größtenteils nicht mal, was da alles wie zusammenhängt, und hinterher läuft das Programm vielleicht nicht mehr richtig." Es funktioniert soweit, das ist ihm die Hauptsache. Inzwischen sind ihm alle Mitarbeiter davongelaufen und er bezahlt nicht mal mehr meine Dienste, so daß ich ihn demnächst wohl verklagen muß.

ich wette das jeder mal klein angefangen hat
Was glaubst du wohl, wie ich meine Erfahrung über die falschen Ansätze gewonnen habe? Sicher nicht im Lotto! Ich und viele andere haben selbst mit zahlreichen falschen Ansätzen begonnen und stießen später auf enorme Schwierigkeiten mit dem Umdenken. So wie du stand ich vor Jahren auch mal hier und mußte mir sagen lassen, daß ich da vollkommen falsch rangehe. Und ich war nicht mehr jung, verfügte nicht mehr über das dynamische Gehirn der Jugend, die leichter lernt als das Alter, und hatte zudem schon recht lange mit diesen falschen Ansätzen gelernt, bis ich in Sackgassen geriet, die mich nicht mal mehr rückwärts rausfahren ließen.


das ist mein 4. Programm und mein 2. was überhaupt einen sinn hat!
Ja und? Als ich mit 15 Jahren bei Schlaile einen Gitarrenkurs besuchte, hatte ich bereits ein Jahr lang mit völlig falschen Grifftechniken gespielt und kam fast nicht hinterher, auf die richtigen Grifftechniken umzulernen, weil hier quasi die Hände – in wirklichkeit die Neuronen, die für Hände und Finger zuständig sind – Widerstand leisteten. Ohne die richtigen Grifftechniken war es aber nicht möglich, kompliziertere Griffe schnell und "übergangslos" zu wechseln oder überhaupt zu spielen. Ich stand mir mit meinen falschen Ansätzen selbst ziemlich im Weg.

Niemand erwartet von mir nen perfekten Quellcode hinzulegen
Jetzt noch nicht, und wenn später doch, wirst du Schwierigkeiten haben, das umzusetzen. Programmieren ist eine ziemlich strenge Disziplin, wenn man damit Erfolg haben und davon leben möchte. Als Hobbyprogrammierer, der nur für sich selbst programmiert, interessiert das keinen, als Kunde, der deine Programme anwenden muß, weil er sie für gutes Geld aufgrund wirkungsvoller Werbung gekauft hat, sieht das aber ganz anders aus.

wichtig ist das ich Delphi anfange zu verstehen.
Wichtig ist aber auch, daß du nicht gleich am Anfang Delphi falsch verstehst.

Ich weiß das es 100 vllt sogar 1000 bessere Methoden gibt Adressen zu speichern.
Darum geht es nicht, sondern um grundsätzliche Konzepte, die man, wenn man sie schon umsonst angeboten bekommt, auch gleich mitnehmen kann. Sonst kommst du früher oder später in die oben beschriebene Sackgasse ...

Aber ich würde hier nicht um Hilfe bitten würde ich es wissen.
Du möchtest aber nur das wissen, was deinem unzureichenden Konzept entspricht. Du bist dem Irrtum erlegen, man solle Daten in darstellenden Komponenten vorhalten. Wenn man dir als Wasserträger-Anfänger erklären würde, du könntest das Wasser auch erstmal mit einem Sieb schöpfen und später, wenn du das Wasser kennengelernt hast, könntest du dann auch einen Eimer nehmen – würdest du das akzeptieren? Natürlich würdest du auch mit einem Sieb etwas Wasser transportieren können, unbestritten, das würde funktionieren. Deine Datenhaltung im Stringgrid hat aber genauso Grenzen wie das Sieb und birgt die Gefahr, Daten zu verlieren. Was machst du, wenn du die Daten nach Nachnamen sortieren mußt? Ein zweites Stringgrid verwenden? Oder wenn du einen Datensatz einschieben oder löschen mußt? Das ist mit einem Stringgrid nur sehr aufwendig zu realisieren und birgt eine hohe Fehlergefahr, ist zudem vollkommen umständlich und unübersichtlich. Dagegen ist eine Variable vom Typ eines Records, der genau deinen Anforderungen entspricht, viel leichter zu handeln. Zudem stellt ein Record bereits das Tabellen-Prinzip dar, wie es in Datenbanken Verwendung findet.

Man konnte hier und in den anderen Foren mit schöner Regelmäßigkeit beobachten, wie falsche Konzepte, auf denen der jeweilge Anfänger beharrt hatte, zu zunehmender, aber völlig unnötiger Komplexität eines Anfängerprogramms führten. Am Ende wollte niemand mehr antworten, weil schon der Ansatz falsch war und die Probleme dadurch überhaupt erst entstanden waren.

Aber ich denke ich brauch noch nicht alles perfekt zu beherrschen.
Das verlangt doch auch keiner von dir. Zudem gibt es kein perfektes Programm, oder anders ausgedrückt: Jedes Programm ist verbesserungsfähig, ausnahmslos. Ich und andere wollen dich doch nur davor bewahren, in Fallen zu tappen, in denen wir selbst uns einst verhedert hatten, der eine mehr, der andere weniger. Mit anderen Worten: Es lohnt sich nicht, das Programmieren mit falschen Konzepten weiter zu betreiben. Du möchtest jetzt dein Stringgrid-Programm weiter ausbauen und wirst damit eher früher oder später an unüberwindliche Grenzen stoßen, was dich zwangsläufig frustrieren wird, denn dann müßtest du ja noch einmal ganz von vorne anfangen mit deinem Adressprogramm. Du kannst mit diesem Modell, wie du es begonnen hast, nicht weiterlernen, zumindest nicht sinnvoll.

Mir reicht es zum Anfang das ich Speichern und laden kann. Somit hat mein Adressbuch die Grundfunktion die es haben soll bereits erreicht.
Und, was ist daran so besonders? Bist du jetzt der Programmierheld? Mangelt es dir an Ehrgeiz? Erkennst du die Falle noch nicht?

Mir ist wichtig das ich verstehe was ich da mache und das krieg ich nunmal am besten durch Learning by doing.
Genau das machst du auch mit einem Tutorial: Lerning by doing. Ich lerne so auch am besten, obwohl mir häufig nichts anderes übrig bleibt, als trockene, oft englischsprachige und nicht selten unvollständige Dokumentationen durchzuarbeiten. Aber ich will's wissen, das motiviert mich und deshalb stehe ich das auch durch ... meistens jedenfalls.

Das jeder anders lernt ist klar.
Niemand hat von dir verlangt, dein Lernverhalten zu ändern. Es geht doch nicht darum, wie du lernst, sondern was du lernst. Wenn ich und andere hier sehen, daß du dir Falsches aneignest und dieses Falsche mit den Worten "es funktioniert doch, das ist die Hauptsache" verteidigst, erinnern wir uns zwangsläufig an unsere eigenen entsprechenden Situationen und versuchen, dir die daraus gewonnene Erfahrung zu vermitteln.

Bloß ich hab nach 10 Jahren festgestellt das ich mir Formeln, Befehle, Rechnungen usw. besser durch Anwendung lerne als wenn ich den ganzen Tag nen 1198 Seiten Buch lese um vllt nen Bruchteil zu verstehen von dem was da drin steht.
Kannst du mir bitte einmal zeigen, wo man dich hier dazu aufgefordert hat, erst mal das eine oder andere Buch zu lesen? Du selbst hast doch freiwillig deine drei Delphi-Bücher durchgearbeitet, wie du weiter oben berichtest.

Dadurch das ich gleich kleine Programme entwickle kann ich mir das besser vorstellen und weiß was ich tue (auch wenn es bei weitem nicht perfekt ist)
Und genau das bietet ein Tutorial: Lerning by doing anhand eines überschaubaren Beispiels. Das ist es, was Tutorials ausmacht. Doch offenbar löst allein schon die Bezeichnung bei dir gewisse Unlustgefühle und Abwehrreaktionen aus.

Sogesehen kann ich auch die Adressen in ner Datenbank speichern
Nein, das kannst du noch nicht.

aber damit hab ich mich noch nicht befasst also nehme ich ein Stringgrid.
Niemand hat von dir verlangt, gleich in die Datenbank-Entwicklung einzusteigen. Offensichtlich neigst du stark zu Übertreibungen und Polarisierungen, um deine Sicht- und Handlungsweise zu rechtfertigen.

Ich meine so falsch kann es ja nicht sein es funktioniert ja.
Genau, dann mach einfach weiter so und wundere dich nicht, wenn du eher früher als später keine Antworten mehr auf die zunehmende Unsinnigkeit deiner Fragen erhältst.
  Mit Zitat antworten Zitat