Saya baru saja mulai mengerjakan proyek dan kami menggunakan desain berbasis domain (seperti yang didefinisikan oleh Eric Evans dalam Desain Berbasis Domain: Mengatasi Kompleksitas di Jantung Perangkat Lunak . Saya percaya bahwa proyek kami jelas merupakan kandidat untuk desain ini pola seperti Evans menggambarkannya dalam bukunya.
Saya berjuang dengan ide untuk terus-menerus refactoring.
Saya tahu refactoring adalah suatu keharusan dalam proyek apa pun dan pasti akan terjadi seiring perubahan perangkat lunak. Namun, dalam pengalaman saya, refactoring terjadi ketika kebutuhan tim pengembangan berubah, bukan sebagai pemahaman tentang perubahan domain ("refactoring ke wawasan yang lebih besar" seperti Evans menyebutnya). Saya paling peduli dengan terobosan dalam memahami model domain. Saya mengerti membuat perubahan kecil, tetapi bagaimana jika perubahan besar dalam model diperlukan?
Apa cara efektif meyakinkan diri Anda (dan orang lain) yang harus Anda refactor setelah Anda mendapatkan model domain yang lebih jelas? Lagi pula, refactoring untuk meningkatkan organisasi kode atau kinerja dapat sepenuhnya terpisah dari seberapa ekspresif dalam hal kode bahasa di mana-mana. Terkadang sepertinya tidak ada cukup waktu untuk melakukan refactor.
Untungnya, SCRUM memungkinkannya untuk melakukan refactoring. Sifat berulang dari SCRUM membuatnya mudah untuk membangun potongan kecil dan mengubahnya dan itu. Tetapi seiring waktu potongan itu akan menjadi lebih besar dan bagaimana jika Anda memiliki terobosan setelah potongan itu begitu besar sehingga akan terlalu sulit untuk berubah?
Adakah yang pernah mengerjakan proyek yang menggunakan desain berbasis domain? Jika demikian, akan bagus untuk mendapatkan wawasan tentang hal ini. Saya terutama ingin mendengar beberapa kisah sukses, karena DDD tampaknya sangat sulit untuk diperbaiki.
Terima kasih!