Ich habe gelesen und versuchte mit einigen einschließlich Active Record, Repository, Datenübertragungsobjekte. Welches das Beste ist?Was ist das beste Datenbankzugriffsmuster für die Testbarkeit?
Antwort
Repository ist wahrscheinlich das beste Muster für die Testbarkeit, da es Ihnen ermöglicht, ein Repository durch einen Schein zu ersetzen, wenn Sie testen müssen. ActiveRecord bindet Ihre Modelle an die Datenbank (manchmal bequem, aber in der Regel schwieriger zu testen).
"Beste" Fragen sind nicht wirklich gültig. Die Welt ist voller Kombinationen und Variationen. Sie sollten mit der Frage beginnen, die Sie beantworten müssen: Welches Problem versuchen Sie zu lösen? Nachdem Sie das beantwortet haben, sehen Sie sich die Tools an, die am besten mit dem Problem funktionieren.
Während ich stimme "beste" Fragen sind nicht die größte Form (da sie so willkürlich sind), sie sind auch nicht völlig irrelevant.
In der Welt hier bei S.O. Wo Entwickler darüber abstimmen, was "am besten" ist, warum haben Sie nicht die besten Fragen? "Beste Fragen" führen zu Diskussionen und unterschiedlichen Meinungen.
Schließlich, wenn jemand "Datenzugriffsmuster" googelt, sollten sie auf diese Seite kommen und eine plethora der Antworten dann sehen, oder?
Es hängt wirklich von Ihrer Aufgabe ab. Zumindest sollten Sie wissen und verstehen alle Datenbankzugriffsmuster, um eine für das aktuelle Problem am besten geeignet zu wählen.
Ich denke, wenn ich alle Datenbankzugriffsmuster kennen und verstehen würde, würde ich nicht die Frage stellen. :) – Jim
Dies ist eine gute Frage, die einige Gedanken hervorrufen sollte.
Der Datenbankzugriff unterliegt oft keinen strengen Tests - insbesondere keine automatisierten Tests, und ich würde sicherlich die Anzahl der Tests in meiner Datenbank erhöhen.
Ich verwende das MbUnit-Testframework, das innerhalb von Visual Studio ausgeführt wird, um einige Tests durchzuführen.
Unsere Anwendung verwendet gespeicherte Prozeduren, wo immer es möglich ist, und die Tests, die ich geschrieben habe, richten die Datenbank zum Testen ein, rufen eine gespeicherte Prozedur auf und überprüfen die Ergebnisse.
Für eine Sammlung von verwandten gespeicherten Prozeduren haben wir eine C# -Datei mit Tests für diese gespeicherten Procs. (Unsere Abdeckung ist jedoch wahrscheinlich bis jetzt etwa 1%!).
Aktiver Datensatz ist eine attraktive Option, da Ruby einen Schwerpunkt auf automatisiertes Testen legt. Wenn ich neu anfangen würde, wäre das ein Punkt für die Verwendung von Active Record.
- 1. Objektgraph für bessere Testbarkeit
- 2. Was ist das beste Zahlungsgateway für ActiveMerchant?
- 3. Was ist das beste Datenzugriffsparadigma für Skalierbarkeit?
- 4. Was ist das beste ORM für DDD?
- 5. Was ist das beste Dateiformat für die Konfigurationsdatei?
- 6. Was ist das beste .NET-Framework für die Spieleentwicklung?
- 7. Entwerfen von Konstruktoren für die Testbarkeit
- 8. Was ist die beste Textverarbeitungskomponente für .NET
- 9. Was ist die beste Speichermethode für UITableView?
- 10. Was ist die beste Alternative für QueryString
- 11. Was ist die beste Bereitstellungsstrategie für ASP.NET?
- 12. Was ist die beste Programmiersprache für Selen?
- 13. Refactor Perl Sub für Testbarkeit
- 14. Was ist das beste Dojo Lernmaterial?
- 15. Was ist das beste .NET-Webentwicklungsframework?
- 16. Was ist die beste Umbenennungsmethode?
- 17. Was ist das beste Workflow-Tool
- 18. Was ist die beste Websprache/das beste Framework für eine REST-API und JSON?
- 19. geschachtelt ifelse() ist das Schlimmste; Was ist das Beste?
- 20. Was ist die beste Vorgehensweise für die Durchführung eines Passwortvergleichs?
- 21. Was ist das beste Design für diese Datenbanktabellen?
- 22. Was ist das beste Tabellenformat für eine hohe Einfügung?
- 23. Was ist das beste Mock Framework für VB.NET?
- 24. Was ist die beste Problemumgehung für das Zeitlimit für die ASP.NET-Formularauthentifizierung beim Verwenden der Platzhalterzuordnung?
- 25. Was ist das beste SQL-Schema für dieses Projekt?
- 26. Was ist das beste Windows-Äquivalent für/tmp?
- 27. Was ist das beste Werkzeug für Scrum in TFS
- 28. Was ist das beste Referenzmaterial für WPF benutzerdefinierte Steuerelemente
- 29. Was ist das beste CouchDB-Backend für Django?
- 30. Was ist das beste Linux-Dateisystem für MySQL (InnoDB)?
Aber es gibt keinen Einblick in ein bestimmtes Problem, das versucht wird, zu lösen. Ich denke, Wikipedia ist besser, um Listen von Tools zu finden, als SO wäre. –
Ich verstehe völlig, was Sie sagen, aber nicht jede Frage ist "besonders". Wenn Sie am Abgrund eines neuen Projekts stehen, möchten Sie vielleicht Einblick in eine Reihe konkurrierender Technologien. "Best" kann eine Abkürzung für eine bestimmte Pros-Cons-Liste aus dem Publikum in gewisser Weise sein. Wikipedia? So! –
Ich habe wirklich nichts gegen die Diskussion, aber die Leute neigen dazu, sich an das Wort "am besten" zu klammern, so wie sie das Wort "Unternehmen" machen. –