Hari ini, Salah satu kolega saya dan saya berdebat tentang "Haruskah kita meletakkan dokumen spesifikasi dalam sistem kontrol sumber seperti SVN?". Menurut saya, seharusnya begitu. Segala sesuatu yang berkaitan dengan pengembangan proyek harus dikontrol dengan hati-hati dengan sistem kontrol sumber. Apakah ini konsep yang salah dalam proses pengembangan perangkat lunak?
version-control
specifications
Edison Chuang
sumber
sumber
Dengan ruang hard disk dengan uang per gigabyte per bulan, tidak ada alasan bagus untuk tidak meletakkan dokumen di sistem kontrol sumber, dan ini sepertinya akan bermanfaat. Preferensi pribadi saya adalah menulis dokumen menggunakan inline markup, misalnya Wiki Markup atau DocBook . Ini memungkinkan penggunaan alat yang ampuh untuk perbandingan dan revisi dokumen.
sumber
Pengesahan dokumen spesifikasi jelas merupakan tujuan yang layak.
Namun, apakah spesifikasi dokumen Anda hanya teks dan dalam file teks biasa ? Jika demikian, ini mungkin solusi yang baik.
Jika tidak, kontrol sumber mungkin bukan tempat yang tepat untuk mereka - kontrol sumber buruk untuk file biner .
Biasanya, file teks biasa tidak baik untuk memformat atau untuk melihat cepat, sehingga wiki dengan versi mungkin merupakan ide yang lebih baik.
sumber
Semua dokumen harus dalam bentuk arsip (lebih disukai dengan kontrol revisi).
Sistem kontrol sumber adalah satu solusi. Tetapi biasanya sistem ini dirancang untuk dokumen teks biasa. Jadi hal-hal seperti dokumen Word atau RTF dll tidak cocok dengan baik (terutama ketika Anda mencoba dan membandingkan versi yang berbeda).
Tetapi Ada solusi lain yang dirancang khusus untuk dokumen. SharePoint muncul dalam pikiran, tapi saya yakin ada orang lain.
sumber
Pastinya. Masalah bahwa dokumen disimpan sebagai binari (misalnya dokumen kata) sangat mengganggu. Solusi yang bagus adalah jika Anda menggunakan salah satu alat Tortoise (saya telah mencoba SVN dan Mercurial) Anda dapat memilih "Visual Diff" yang memungkinkan Anda memilih docdiff. Dengan docdiff Anda bisa melihat semua perubahan dengan warna dan barang :-). Kerugian utama adalah bahwa setiap kali Anda melakukan perubahan seluruh dokumen dilakukan lagi (bukan hanya perubahan). Tetapi mengingat bahwa dokumen teks biasanya tidak besar dan ruang itu mungkin bukan masalah utama Anda, ini bukan masalah.
Saya yakin Anda dapat menggunakan docdiff tanpa Tortoise, hanya saja saya belum mencobanya.
sumber
Ada pendekatan alternatif yang harus Anda diskusikan: BDD
Harap pertimbangkan Pengembangan Berbasis Perilaku dengan spesifikasi yang dapat dieksekusi. Spesifikasi Anda dapat disederhanakan menjadi serangkaian serangkaian Pernyataan Diberikan - Kapan - Kemudian yang disimpan dalam file teks. Alat BDD seperti Mentimun atau SpecFlow mengubah file teks tersebut menjadi tes yang dapat dieksekusi, yang dapat dieksekusi oleh alat build Anda.
Mentimun: http://cukes.info/ - BDD untuk Ruby
SpecFlow: http://www.specflow.org/ - BDD untuk .Net
Untuk demo alur kerja yang cepat dengan alat seperti SpecFlow, periksa walk-through SpecFlow karya Rob Conery: http://tekpub.com/view/concepts/5
Sekarang, tidak hanya Anda membuat versi kode Anda, tetapi spesifikasi Anda, dan alat Integrasi Berkelanjutan Anda (pikirkan TeamCity, CruiseControl, Hudson, dll) memberlakukan bahwa semua spesifikasi masih berlaku pada SETIAP bangunan ... Apakah itu berharga bagi Anda?
sumber