Prinsip KERING (Jangan Ulangi Diri Sendiri) menyatakan bahwa "setiap pengetahuan harus memiliki perwakilan tunggal, tidak ambigu, berwibawa dalam suatu sistem." Sebagian besar waktu ini mengacu pada kode, tetapi sering juga diperluas ke dokumentasi.
Dikatakan bahwa setiap sistem perangkat lunak memiliki arsitektur apakah Anda memilihnya atau tidak. Dengan kata lain, perangkat lunak yang Anda buat memiliki struktur dan struktur "seperti yang dibangun" adalah arsitektur perangkat lunak. Karena sistem perangkat lunak yang dibangun dilengkapi dengan arsitektur, apakah membuat deskripsi arsitektur dari sistem itu melanggar Prinsip KERING? Lagi pula, jika Anda perlu tahu arsitekturnya maka Anda selalu bisa hanya melihat kode ...
agile
documentation
architecture
dry
Michael
sumber
sumber
Jawaban:
Apakah menduplikasi pemikiran Anda ke dalam kode melanggar prinsip KERING?
Ya ampun, jika Anda hanya bisa mengetahui arsitektur dengan melihat ke kode, tidak akan ada yang namanya "dokumen deskripsi arsitektur" di tempat pertama. Ini bukan repitisi, ini adalah level deskripsi sistem yang lain , yang tidak dapat disimpulkan secara sepele dari kode, dan sebaliknya. Jadi ia memiliki hak penuh untuk tetap ada bahkan jika Anda merangkul KERING.
sumber
Jangan menganggap KERING sebagai aturan yang keras dan cepat. Ini hal yang baik, tetapi Anda hanya bisa memperkirakannya dalam praktik.
Juga saya pikir itu tidak ditulis dengan baik. "Don't repeat yourself" tampaknya tidak mencakup kasus yang sama pentingnya dengan membuat perubahan semantik atau fungsional Anda harus mengedit teks sumber di banyak tempat, mengatakan hal-hal yang berbeda tetapi terkoordinasi.
Daripada menganggapnya sebagai perintah untuk tidak dilanggar, lebih baik untuk memahami mengapa itu adalah ide yang baik dan membuat pilihan yang masuk akal tentangnya. Alasan mengapa harus melakukan pengeditan yang terkoordinasi di banyak tempat adalah karena Anda, editor, melakukan kesalahan. Anda tidak 100% andal untuk melakukan perubahan tanpa kesalahan. Jika Anda harus membuat 10 perubahan teks sumber yang berbeda, dan Anda hanya memperbaikinya 9, Anda telah memasukkan bug . Itulah sebabnya mengatur teks sumber untuk meminimalkan jumlah perubahan terkoordinasi adalah hal yang baik. Ini meminimalkan bug.
Kami bukan milik agama di mana KERING adalah salah satu perintah. Ini hanya cara yang berguna, meskipun sedikit menyesatkan, untuk merangkum akal sehat.
sumber
Uraian Arsitektur, atau Uraian Desain Perangkat Lunak memang melanggar KERING. Namun, dalam sebuah organisasi besar, di mana proyek-proyek tahun terakhir, pengembang datang dan pergi, dan sistem itu terlalu besar untuk satu orang untuk menyimpan semua detail di kepala mereka, itu adalah dokumen penting. Jumlah "pengulangan" yang diperlukan untuk tetap selaras benar-benar layak untuk upaya yang disimpannya selama pembaruan atau pemeliharaan berikutnya.
sumber
Deskripsi arsitektur tidak melanggar prinsip KERING.
Sistem perangkat lunak Anda hadir dengan arsitektur, tentu saja. Dan itu tersebar di banyak file, di banyak kelas, dengan banyak tambahan dan detail yang tidak perlu untuk ikhtisar.
Dokumen arsitektur Anda harus seperti paragraf pertama dari laporan berita: ini adalah garis besar, ringkasan, peta jalan proyek.
sumber
Jika Anda memberi tanggal pada dokumen, itu kemudian menjelaskan arsitektur pada saat penulisan.
Sedangkan kode mewakili arsitektur saat ini.
Dua hal yang terpisah - bukan pengetahuan yang sama.
Selama Anda menyatakan bahwa dokumen tersebut mewakili architecure pada saat penulisan, Anda tidak menduplikasi pengetahuan IMO karena pengetahuan yang berbeda jika itu tentang sistem di titik lain waktu.
sumber