Ketika saya memulai proyek baru, saya sering kali segera mulai memikirkan detail implementasi. "Di mana saya akan meletakkan DataBaseHandler? Bagaimana saya harus menggunakannya? Haruskah kelas yang ingin menggunakannya meluas dari beberapa superclass abstrak ..? Haruskah saya menggunakan antarmuka? Tingkat abstraksi apa yang akan saya gunakan di kelas saya yang berisi metode untuk mengirim permintaan dan mem-parsing data? "
Saya akhirnya mengulur waktu yang lama karena saya ingin kode untuk diperpanjang dan dapat digunakan kembali. Tetapi saya merasa hampir tidak mungkin untuk melewati pemikiran tentang bagaimana menerapkan dengan sempurna.
Dan kemudian, jika saya mencoba untuk hanya mengatakan "sekrup, selesaikan saja!", Saya menabrak dinding bata dengan cepat karena kode saya tidak terorganisir, saya mencampur tingkat abstraksi, dll.
Apa beberapa teknik / metode yang Anda miliki untuk meluncurkan ke proyek baru sambil juga menyiapkan struktur logis / modular yang akan skala dengan baik?
- - EDIT - -
Yah, ini sudah jenis pertanyaan yang sulit diterima jawabannya, tetapi ingin mendapatkan umpan balik lagi, lihat apakah ada beberapa konsensus. TDD kedengarannya sangat keren dan, sejujurnya, saya bermaksud meningkatkan kecepatan menggunakan JUnit, dll. Pada saat yang sama, apa yang dipikirkan oleh para penggemar TDD tentang fakta bahwa satu titik yang sah berkaitan dengan TDD menyelesaikan masalah saya masalah khusus, adalah bahwa TDD tampaknya tidak benar-benar menjawab pertanyaan tentang desain. Tentu, saya setuju TDD akan membantu saya mendefinisikan apa yang ingin saya lakukan dan kemudian saya bisa secara bertahap bekerja melalui caranya, tetapi ada banyak pola / struktur desain keseluruhan yang berbeda yang semuanya bisa melewati pengujian unit. Itu hanya itu: ia menguji UNIT tunggal. Saya kira saya agak bingung ... Saya tidak tahu. Mungkin saya'
Terima kasih!