Wenn ich ein neues Projekt beginne, denke ich oft sofort über die Details der Implementierung nach. "Wo soll ich den DataBaseHandler ablegen? Wie soll ich ihn verwenden? Sollten Klassen, die ihn verwenden möchten, von einer abstrakten Superklasse ausgehen? Soll ich eine Schnittstelle verwenden? Welche Abstraktionsebene soll ich in meiner Klasse verwenden, die enthält? Methoden zum Senden von Anfragen und zum Parsen von Daten? "
Ich bleibe lange stehen, weil ich aus Gründen der Erweiterbarkeit und Wiederverwendbarkeit programmieren möchte. Aber ich finde es fast unmöglich, darüber nachzudenken, wie man es perfekt umsetzt.
Und wenn ich dann versuche, nur zu sagen "Schrauben Sie es, machen Sie es einfach!", Stoße ich ziemlich schnell auf eine Mauer, weil mein Code nicht organisiert ist, ich Abstraktionsebenen gemischt habe usw.
Mit welchen Techniken / Methoden können Sie ein neues Projekt starten und gleichzeitig eine logische / modulare Struktur aufbauen, die sich gut skalieren lässt?
- - BEARBEITEN - -
Nun, dies ist bereits die Art von Frage, auf die es schwierig ist, eine Antwort zu akzeptieren, die aber noch mehr Rückmeldungen erfordert, um festzustellen, ob es einen Konsens gibt. TDD klingt wirklich cool und ehrlich gesagt wollte ich mich mit JUnit usw. vertraut machen. Was denken die TDD-Fans darüber, dass ein legitimer Punkt in Bezug auf TDD meine Probleme löst? Ein besonderes Problem ist, dass TDD die Frage des Designs nicht wirklich zu beantworten scheint. Sicher, ich bin damit einverstanden, dass TDD mir dabei helfen wird, zu definieren, was ich tun möchte, und dann kann ich nach und nach das Wie durcharbeiten, aber es gibt viele verschiedene allgemeine Entwurfsmuster / -strukturen, die alle Unit-Tests bestehen könnten. Das war's auch schon: Es testet einzelne UNITS. Ich glaube, ich bin ein bisschen verwirrt ... ich weiß nicht. Vielleicht habe ich
Vielen Dank!