Dzisiaj, jeden z moich współpracowników i ja debatujemy na temat „Czy powinniśmy umieścić dokumenty specyfikacji w systemie kontroli źródła, takim jak SVN?”. Moim zdaniem tak powinno być. Wszystko, co dotyczy opracowywania projektu, powinno być dokładnie kontrolowane za pomocą systemu kontroli źródła. Czy to niewłaściwa koncepcja w procesie tworzenia oprogramowania?
version-control
specifications
Edison Chuang
źródło
źródło
Mając miejsce na dysku twardym za grosze na gigabajt miesięcznie, nie ma dobrego powodu, aby nie umieszczać dokumentów w systemie kontroli źródła i jest to prawdopodobnie przydatne. Moje osobiste preferencje to pisanie dokumentów przy użyciu wbudowanych znaczników, np. Wiki Markup lub DocBook . Pozwala to na użycie potężnych narzędzi do porównywania i weryfikacji dokumentów.
źródło
Dokumentacja specyfikacji wersji jest zdecydowanie godnym celem.
Czy jednak Twoja specyfikacja dokumentuje tylko tekst i jako zwykły plik tekstowy ? Jeśli tak, może to być dobre rozwiązanie.
Jeśli nie, kontrola źródła prawdopodobnie nie jest dla nich właściwym miejscem - kontrola źródła jest zła dla plików binarnych .
Zwykle zwykłe pliki tekstowe nie są tak dobre do formatowania, ani do szybkiego przeglądania, więc wiki z wersjonowaniem jest prawdopodobnie lepszym pomysłem.
źródło
Wszystkie dokumenty powinny być w jakiejś formie archiwum (najlepiej z kontrolą zmian).
Systemy kontroli źródła to jedno rozwiązanie. Ale zwykle systemy te są przeznaczone do dokumentów tekstowych. W związku z tym rzeczy takie jak dokumenty Word lub RTF itp. Nie pasują tak dobrze (szczególnie, gdy próbujesz porównać inną wersję).
Ale istnieją inne rozwiązania zaprojektowane specjalnie dla dokumentów. SharePoint przychodzi mi na myśl, ale jestem pewien, że są jeszcze inne.
źródło
Zdecydowanie. Problem polegający na tym, że dokumenty są przechowywane jako pliki binarne (na przykład dokumenty słowne), jest denerwujący. Dobrym rozwiązaniem jest użycie jednego z narzędzi Tortoise (próbowałem SVN i Mercurial), możesz wybrać „Visual Diff”, który pozwala wybrać docdiff. Dzięki docdiff zobaczysz wszystkie zmiany kolorów i innych rzeczy :-). Główną wadą jest to, że za każdym razem, gdy dokonujesz zmiany, cały dokument jest ponownie zatwierdzany (nie tylko zmiana). Ale biorąc pod uwagę, że dokumenty tekstowe zwykle nie są duże i że przestrzeń prawdopodobnie nie jest twoim głównym problemem, nie stanowi to problemu.
Jestem pewien, że możesz używać docdiff bez Tortoise, po prostu tego nie próbowałem.
źródło
Istnieje alternatywne podejście, które należy omówić: BDD
Proszę rozważyć rozwój oparty na zachowaniu ze specyfikacjami wykonywalnymi. Twoje specyfikacje zostaną uproszczone do serii zestawów podanych - Kiedy - Następnie, które są przechowywane w plikach tekstowych. Narzędzie BDD, takie jak Cucumber lub SpecFlow, konwertuje te pliki tekstowe na testy wykonywalne, które może wykonać narzędzie do budowania.
Ogórek: http://cukes.info/ - BDD dla Ruby
SpecFlow: http://www.specflow.org/ - BDD dla .Net
Aby zapoznać się z szybką prezentacją przepływu pracy za pomocą narzędzia takiego jak SpecFlow, zapoznaj się z instrukcją dla Roba Conery'ego SpecFlow: http://tekpub.com/view/concepts/5
Teraz nie tylko wersjonujesz swój kod, ale twoje specyfikacje, a twoje narzędzie do ciągłej integracji (zdaniem TeamCity, CruiseControl, Hudson itp.) Wymusza, aby wszystkie specyfikacje były nadal aktualne na KAŻDEJ kompilacji ... Czy to dla ciebie cenne?
źródło