Jak powinna kod w kontroli wersji przechowywane?

19

Jak powinna kod w kontroli wersji być przechowywane?

Przyjazny deweloper ? tak, że programista może szybko podjąć najnowszy i możliwość uruchomienia ze swego edytora, nie robiąc wiele zmian? (takich jak pliki konfiguracyjne wskazując dev DB..etc)

lub

Powinno to być produkcja przyjazna ? źródło powinno być w sposób łatwy do wdrożenia w środowisku produkcyjnym, a gdy deweloper pobiera najnowsze, powinien dokonywać zmian zgodnie ze swoimi potrzebami programistycznymi.

pavan GR
źródło

Odpowiedzi:

56

Po co wybierać ? Powinno być jedno i drugie.

Środowisko programistyczne powinno być skonfigurowane, aby było tak proste, jak robienie kasy, otwieranie, budowanie, uruchamianie, debugowanie (np .: brak ścieżki bezwzględnej!). Możesz to zrobić z łatwością dzięki dyrektywom kompilacji, iniekcji klasy konfiguracji + iniekcji zależności, a nawet sztuczkom takim jak perso.config w ASP.NET

Twój zautomatyzowany skrypt kompilacji powinny być dostosowane wystarczających dbać o określonej konfiguracji produkcji, czyszczenia, pakowanie itd.


źródło
Co jest perso.config? Szybkie google mi nie pomógł.
Tim Murphy
1
W pliku konfiguracyjnym aplikacji .NET można odwoływać się do innego pliku konfiguracyjnego aplikacji, który po znalezieniu zastąpi określone ustawienia. Więc można utworzyć plik dev.config które zastępują rzeczy jak ciągi połączeń i inne rzeczy, i wyklucza go z repo.
5
+1 - programiści nie powinni myśleć , aby uzyskać właściwe źródło. Również wdrożenie produkcji nie powinno odbywać się bezpośrednio z kontroli źródła, ale z odpowiednio zbudowanymi, przetestowanymi i możliwymi do śledzenia elementami. Proces ten powinien być w pełni zautomatyzowane.
9

Gdy jest to projekt typu open source, w którym ludzie powinni brać udział, z pewnością wybiorę program przyjazny dla programistów.

Najbardziej nie lubię projektów typu open source, ponieważ bardzo rzadko repozytorium zawiera wszystkie zależności potrzebne do zbudowania kodu (czasami ze względów praktycznych lub prawnych), ale kiedy tego nie robią - niektórzy nawet nie zadają sobie trudu, aby powiedzieć, jakie zależności potrzebujesz, a co ważniejsze, jakiej wersji potrzebujesz. (I korzystnie gdzie je zdobyć z)

Czasami możesz poświęcić ponad pół dnia na pobieranie i kompilowanie kilku innych projektów, aby zbudować projekt, którego szukasz.

Oczywiście, jest to bardzo istotne dla rozwoju tylko w systemie Windows.

Mark H.
źródło
1
IT błędy piekło z mnie. Nawet znaleźć go na bardzo dobrze znanym OSS.
Tim Murphy
1
Istnieją systemy, które łagodzą ten problem poprzez automatyczne pobieranie zależności. Np Apache Maven, Bluszcz lub scons.
sleske
4

Zarówno, ale to zależy od tego, jak często zrobić swoją produkcję. Dla wielu niestandardowych aplikacji, wdrożeń są wykonywane ręcznie i lokalnie. Z drugiej strony, programista będzie stale zatwierdzał kod, bez względu na to, jak mały lub duży jest projekt. Moim zdaniem, myślę, że ważniejsze jest, aby upewnić się, że deweloper może korzystać z systemu kontroli wersji prawidłowo, stąd łatwiej uczynić swoje życie tak będą mieli czas, aby skupić się na kodzie zamiast znalezieniu drogę poprzez kontrolę wersji.

tia
źródło
Wdrożenia produkcyjne powinny być nie problem, jeśli używasz ciągłej silnik wdrażania do produkcji.
1

Powinien być przyjazny dla produkcji, w przeciwnym razie utrzymanie automatycznych kompilacji jest problematyczne.

sharptooth
źródło
8
Dlaczego? Zautomatyzowany skrypt build może podjąć wszelkie niezbędne tłumaczenia restrukturyzacji źródło w postaci wdrożyć. Nigdy nie przeszkadza osób z automatyzacji coś można rozwiązać.
Joeri Sebrechts,
1

Jestem za obniżeniem tarcia, aby łatwiej było wykonać zadanie, ale musisz także wziąć pod uwagę tryby awarii.

Jeśli wersja źródłowego repozytorium jest zawsze skonfigurowana do użytku produkcyjnego, jaki jest wynik braku rekonfiguracji programisty przed uruchomieniem systemu? Programista kodu przed produkcją uruchomiony.

Niezależnie od tego, czy istnieją inne przeszkody na drodze programisty do wprowadzania losowych zmian w produkcji, budowanie w trybie awarii, który zachęca do tego, wydaje się niebezpieczne.

Sugeruję, aby wartości domyślne zawarte w zatwierdzonym kodzie zawsze były bezpieczne . Sprawdź pliki konfiguracyjne produkcji do kontroli źródła też, jeśli chcesz - prawie zawsze - ale zachować je gdzieś „nie na żywo”.

Bevan
źródło
0

Staram się dążyć do produkcji w obsłudze. Utrzymuje twoje kompilacje w czystości i zapobiega wprowadzaniu obcych ustawień do produkcji.

Mike Clark
źródło
0

Zdecydowanie przyjazny dla programistów, ze skryptami automatyzującymi zmiany w zakresie kontroli jakości i produkcji.

William Payne
źródło
-1

Dlaczego nie mieć gałęzi (w zależności od używanej kontroli wersji - używam Git) dla kodu do wdrożenia i innych dla wersji gotowej dla programistów? To znacznie lepsze dźwięki i nie jest to trudne do konfiguracji.

Możesz pracować i zatwierdzać zmiany, a następnie scalać je w wersji do wdrożenia.

Ricardo Souza
źródło
Ponieważ długo żyli oddziały są kosztowne w zarządzaniu i wydają się być trudne do scalenia. Trzeba pamiętać, aby wszystkie zmiany na obu oddziałów. Znacznie lepiej, aby obie wersje były takie same i / lub mieć skrypt do generowania artifcat do wdrożenia z kodu gotowego dla programistów.
bdsl