Oft vergesse ich Dinge über meine Bewerbung. Ich merke mir weder die Tabellennamen noch die Ergebnisse einer Abfrage und suche nach dem, was ich will. Mein Teamleiter sagte mir, ich solle mir die von mir verwendeten Tabellennamen merken.
Muss sich der Entwickler die Tabellennamen in der Datenbank, die Klassennamen usw. merken? Und wenn die Antwort "Ja, immer" ist, was soll ich tun, um mich an diese Dinge zu erinnern?
Antworten:
Sie sollten sich diese Dinge nicht explizit merken müssen . Damit meine ich, setzen Sie sich und lernen Sie sie wie eine Liste von Wörtern für eine Rechtschreibprüfung. In erster Linie sollten die Namen einprägsam und auffindbar sein , damit Sie sie ohne großen Aufwand wiederfinden können.
Sie sollten auch Zugriff auf Tools haben, die Ihnen bei der automatischen Vervollständigung und dergleichen helfen.
In einem großen System von über 100 Tabellen kann man nicht wirklich erwarten, dass Sie sich an jeden Tabellennamen und jeden Spaltennamen erinnern. Bei einprägsamen, auffindbaren Namen und der regelmäßigen Verwendung sollten Sie sich jedoch an die wichtigsten Details und die Details erinnern, die Sie jeweils verwenden Tag.
quelle
Einstein sagte: "Merke dir niemals, was du nachschlagen kannst [in Büchern]", und ich stimme vollkommen zu.
Verwenden Sie Ihr Gedächtnis für abstrakte Dinge (Entwicklungstechniken und -prinzipien) und nicht für Fakten, die Sie finden können, wenn Sie sie benötigen.
quelle
Peinlich zuzugeben - ich benutze C seit fast 30 Jahren, kann mich aber nicht erinnern, wie man Funktionszeiger deklariert - ich muss immer K & R verlassen, um die Syntax zu überprüfen.
Noch peinlicher ist es, dass ich mir wirklich Gedanken darüber machen muss, wie typedef funktioniert.
oder
Das sind meine persönlichen blinden Flecken. Ich würde mir keine Sorgen machen, wenn Sie ähnliche haben.
quelle
Computer sind gut darin, sich Dinge genau zu merken. Computer sind auch gut darin, Dinge zu finden, an die sie sich zuvor erinnert haben.
Die wichtigste Fähigkeit ist es also, den Computer als Erweiterung Ihres Gedächtnisses zu verwenden. Schreiben Sie sauberen Code, dokumentieren Sie Dokumente, lernen Sie, Suchwerkzeuge effektiv zu verwenden, richten Sie Ihre Entwicklungsumgebung so ein, dass Sie leicht Dinge finden können usw.
Ein netter Nebeneffekt ist, dass Sie es auch anderen leichter machen, Ihren Code zu lesen.
quelle
Gedächtnis ist wichtig
Ein starkes Gedächtnis ist in der Tat eines der besten Talente, die ein Entwickler haben kann. Eigentlich kann das jeder haben. Es ist wirklich etwas Besonderes und ich beneide und bewundere die, die damit gesegnet sind. Es kann definitiv jemandem helfen, ein stärkerer Entwickler, Anwalt, Mechaniker oder (geben Sie hier den Job Ihrer Wahl ein) zu sein.
Wie viel sollte benötigt werden?
Aber ich glaube nicht, dass es eine faire Voraussetzung ist, alles auswendig zu lernen. Ich glaube, dass Sie anfangen werden, Dinge in Erinnerung zu rufen, wenn Sie Dinge tun. Aus diesem Grund ist es nicht dasselbe, ein Buch über eine Sprache zu lesen und in einer Produktionsumgebung zu verwenden. Wenn Sie täglich mit etwas arbeiten (manche würden dies als "Übung" bezeichnen), werden Sie beginnen, einige Dinge zur zweiten Natur zu machen.
Wie auch bei den anderen Postern glaube ich, dass es hilfreich ist, wichtige Teile der Anwendung auswendig zu lernen. Ich bin mir jedoch nicht sicher, ob es sich lohnt, in das Auswendiglernen zu investieren, wenn Sie Funktionen wie Intellisense nutzen können, die in modernen Tools immer häufiger zum Einsatz kommen.
Wie können Sie sich verbessern?
Ich bin kein Experte für das Gedächtnis, aber einige glauben, dass Sie das Gedächtnis tatsächlich durch mentale Übungen wie Gehirnspiele (Kreuzworträtsel, Sudoku, Rätsel usw.) verbessern können. Die Theorie besagt, dass Ihr Gehirn wie ein Muskel ist. Wenn Sie ihn auf unterschiedliche Weise verwenden und trainieren, können Sie ihn stärken.
Es wäre interessant zu sehen, wie sich Dinge wie Gehirnspiele, Programmieren und interaktive Aktivitäten im Laufe der Zeit auf das Gehirn auswirken. Könnten solche Dinge helfen, den beginnenden Gedächtnisverlust zu bekämpfen, der durch Alter oder Demenz hervorgerufen wird?
quelle
Woher ich komme, gibt es ein altes Sprichwort, das auf Englisch ungefähr so lautet: "Ein Narr merkt sich das, ein kluger Mann schreibt es auf". Grundsätzlich, egal wie gut Ihr Gedächtnis ist, werden Sie vergessen . Du bist nur ein Mensch. Infolgedessen ist es unzuverlässig, sich auf das menschliche Gedächtnis zu verlassen. Selbst wenn Sie glauben, dass Sie sich an diese Tabellennamen erinnern, können Sie dann 100% sicher sein? Sie brauchen nur ein paar Sekunden, um nach Tabellennamen zu suchen, aber möglicherweise Stunden oder sogar Tage, um Fehler aufzuspüren, die durch die falsche Schreibweise verursacht wurden.
Nein, es ist eine lächerliche Anforderung, insbesondere bei großen Projekten, die Tausende von Tabellen und Klassen enthalten können.
quelle
Wenn es sich um etwas handelt, an dem Sie gerade arbeiten, und es sich um eine langfristige Aufgabe handelt, sollten Sie auf das Lernen hinarbeiten und in der Lage sein, sich verschiedene Tabellen- und Spaltennamen, Klassen, Variablen und Methoden zu merken. Dies ist etwas, das durch die Zeit kommen wird, wenn Sie mit ihnen arbeiten. Sie werden sie nicht alle über Nacht lernen, aber Sie sollten sich bemühen, so viel über das System zu wissen, an dem Sie arbeiten, wie Sie können. In einem großen System gibt es auch keine Möglichkeit, alles auswendig zu lernen, aber es gibt keinen Grund, nicht so viel zu lernen und sich daran zu erinnern, wie Sie können.
Das ständige Nachschlagen ist nur ein Nachteil für die Produktivität. Wenn Sie an einer Aufgabe arbeiten und alle paar Minuten anhalten und nachschlagen müssen, bedeutet dies eine Konzentrationsunterbrechung. Verwenden Sie geeignete Hilfsmittel, um Sie zu unterstützen und zu lernen, was Sie können. Es wird Ihre Produktivität erheblich verbessern.
quelle
Ist es sinnvoll, sich genaue Klassennamen zu merken? Ich glaube nicht.
Ist es sinnvoll zu wissen, welche Art von Begriffen Ihr Projekt in Klassennamen verwendet, damit Sie schneller danach suchen können? Bestimmt.
quelle
Ich bin nicht einverstanden, dass Sie die Tabellennamen auswendig lernen, aber sie sollten leicht zu erraten sein. Seien Sie konsistent, um das Erraten zu vereinfachen. Auf diese Weise werden Sie sich nicht fragen: "Hmm ... ist die foo-Tabelle Plural oder Singular? Ist die Primärschlüssel-ID oder RID oder FooRID?"
quelle
Ich weiß nicht, wie Sie eine Datenbank jederzeit abfragen können, ohne die wichtigsten Tabellennamen und kritischen Spaltennamen (aber sicherlich nicht alles) kennenzulernen. Ich kenne die Leute, die dieses Zeug kennen, ohne es jedes Mal herausfinden zu müssen. Sie werden für die Organisation wertvoller und die "go to" Leute, wenn andere stecken bleiben.
Ich stelle fest, dass Leute, die diese Dinge nicht lernen, häufig Fehler in Abfragen machen, ohne es zu merken. Fehler, die ich bei Codeüberprüfungen häufig sofort bemerke, weil ich unsere Datenbankstruktur verstehe und weiß, wie die Tabellen zueinander in Beziehung stehen und welche Geschäftsregeln kritisch sind, ohne sie nachschlagen zu müssen.
Persönlich stelle ich fest, dass Leute, die sich nicht die Mühe machen, die Struktur zu lernen, beim Abfragen dieser bestimmten Datenbank häufig auf Anfängerniveau bleiben. Sie neigen auch dazu, Entlassungen nicht zu überleben. Ich denke, Ihr Chef versucht, Ihnen einen Gefallen zu tun, damit Sie mehr Aufmerksamkeit schenken.
quelle
Mehr als das starke Gedächtnis hilft vor allem das domänengetriebene Design, bei dem einfache Konventionen wie Tabellennamen und Klassennamen gleich sind. Wenn Ihr Geschäftsinhaber mit Ihnen über die Anforderung spricht, sollten die von ihm verwendeten domänenspezifischen Begriffe im Code enthalten sein. In diesem Fall müssen wir uns nicht an die Zuordnungen zwischen Geschäftsbegriffen und Namen im Code erinnern. Es dauert eine Weile, bis sich diese Angewohnheit durchsetzt, aber es ist sehr nützlich, da es auch Übersetzungsfehler zwischen den Geschäftsinhabern und Entwicklern verringert.
Wenn die Dauer des Projekts sehr lang ist, hilft es unbewusst, sich über einen bestimmten Zeitraum mit der Codebasis vertraut zu machen.
quelle
domain driven design
?