Kilka pytań dotyczących wersjonowania kodu

0

Witam wszystkich!

Od jakiegoś czasu napotykam się na termin: Wersjonowanie kodu. Jest mi to zupełnie obce i chętnie bym coś o nim doczytał, wiem tylko, że służy do do obserwacji zmian w projektach (?) bądź wprowadzanie zmian w kodzie przez wielu użytkowników (lub coś w tym stylu...). Wiem też, że istnieją specjalne narzędzia do wersjonowania kodu jak Git, czy SVN, ale nie znam ich konkretnego zastosowania ani żadnych szczegółów.
Liczę więc na to, że ktoś oświeci mnie i prostymi słowami wyjaśni czym to jest, z czym to się je i po co tak naprawdę się to stosuje?
Czy system wersjnowowania kodu różni się dla języków? W czym leżą różnice między najpopularniejszymi narzędziami (i jakie to narzędzia)? Jak najlepiej nauczyć się wersjnowania? Jakie są dobre praktyki? Co trzeba umieć by posługiwać się narzędziami do wersjonowania kodu?

Pozdrawiam :)

0

Jak najlepiej się uczyć ? Zacząć korzystać i eksperymentować, bo samo czytanie wiele Ci nie da.
Tu masz trochę o gicie i o sposobie jego działania: https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control

5

Zdarzyło ci się kiedyś że pisałeś coś nowego do programu i następnie "coś" popsułeś i przestało działać? Tylko że masz tyle zmian w projekcie że nie wiadomo co się popsuło? Albo że chcesz przetestować pewną zmianę programu ale nie jesteś pewien czy będzie sensowna i wykonalna więc chciałbyś móc później przywrócic sobie wersje bez tych zmian? Albo że piszesz kod w kilka osób i chciałbyś żeby twój kolega możliwie szybko mógł korzystać z tego co ty piszesz?

I jak to realizujesz? ZIPujesz projekt i zapisujesz sobie gdzieś na dysku archiwum / wysyłasz koledze mailem? Bo po to właśnie są systemy version control.

Generalnie nie różni sie dla języków - te najpopularniejsze jak git czy svn są niezależne, możesz wersjonować co chcesz.
Różnica między svnem a gitem jest taka że svn to system drugiej a git trzeciej generacji. Git jest po prostu lepszy ;]

0

https://try.github.io/levels/1/challenges/1
można się pobawić "bez obawień i zaszczeżeń" - Wiesław Wszywka

5
Bartosz36 napisał(a):

Od jakiegoś czasu napotykam się na termin: Wersjonowanie kodu. Jest mi to zupełnie obce i chętnie bym coś o nim doczytał, wiem tylko, że służy do do obserwacji zmian w projektach (?) bądź wprowadzanie zmian w kodzie przez wielu użytkowników

To jest bezwzględnie najgorszy mit dotyczący wersjonowania kodu. W wersjonowaniu kodu chodzi o zapisywanie stanu kodu w jakimś momencie czasowym i możliwość łatwego przeskakiwania między takimi stanami (coś jak cofnij/powtórz tylko na całym projekcie i działające po wyłączeniu edytora). Ułatwienie pracy grupowej to tylko efekt uboczny.

Liczę więc na to, że ktoś oświeci mnie i prostymi słowami wyjaśni czym to jest, z czym to się je i po co tak naprawdę się to stosuje?

Po to, żeby zmniejszyć liczbę przekleństw, a zwiększyć produktywność. ;)

Czy system wersjnowowania kodu różni się dla języków?

Generalnie nie, ale nie widziałem jeszcze kodu Javy, Pythona, albo Ruby trzymanego w TFS (produkt Microsoftu).

W czym leżą różnice między najpopularniejszymi narzędziami (i jakie to narzędzia)?

Największe różnice są między systemami scentralizowanymi a rozproszonymi.
Scentralizowane wymagają serwera, na którym wykonuje się wszystkie operacje. Taki serwer zazwyczaj znajduje się gdzieś w sieci, przez co wszystko działa wolno.
Narzędzia rozproszone działają głównie na lokalnym dysku, przez sieć wysyłane i pobierane są tylko zmiany wymieniane z resztą zespołu. Ponieważ większość operacji jest lokalna, to wszystko działa szybko.

Jak najlepiej nauczyć się wersjnowania?

Używając go równocześnie z pisaniem jakiegoś swojego projektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1