itCNTR wykorzystuje pliki cookies. Korzystając z naszej aplikacji internetowej, wyrażasz zgodę na naszą  politykę prywatności i politykę dotyczącą plików cookies.
Daj znać czego szukasz...
itCNTR
Kacper Skrzypek
98
5.0

Początkujący programiści często popełniają ten błąd! Jak go uniknąć?

2023-07-25
Treść
Osoby, które są na początku swojej drogi w świecie programowania, często popełniają wiele błędów. To naturalne, w końcu jesteśmy przecież tylko ludźmi, szczególnie w IT zdarza się wiele rzeczy, o których nie zawsze musimy mieć pojęcie. Są jednak pewne praktyki, których warto się wystrzegać od samego początku.

O co chodzi?

Załóżmy, że robimy jakiś program. Gdy dopisujemy do niego jakieś nowe funkcje, zazwyczaj robimy sobie kopie tego, co mieliśmy wcześniej, aby móc w razie problemu przywrócić jakąś działającą wersję. Pomysł jest niezły, zapobiegawczość zawsze wskazana, ale wiele osób twierdzi, że dobra kopia programu to po prostu przekopiowanie tego, co zrobiliśmy do oddzielnego folderu. O ile jest to dobre w przypadku dokumentów czy grafiki, o tyle w przypadku programowania to pomysł całkowicie chybiony!
 
Stąd bardzo często takie próby kończą się koszmarkami takimi jak w tym memie:
 
Sami się chyba zgodzicie, że potem trudno jest się połapać, co w jakiej wersji dodaliśmy, usunęliśmy bądź zmieniliśmy. Nie wiadomo też, która z kopii działa poprawnie, a która jest zupełnie popsuta

Dlaczego zatem nie zrobić tego lepiej?

 
I tu z pomocą programistom przychodzą systemy kontroli wersji.
Na czym one polegają? Przenieśmy się na chwilę do... szkoły. Spokojnie, to nie będzie kolejna nudna lekcja ;)
 
Wyobraźmy sobie, że pracujemy nad projektem lub innym dużym zadaniem razem z grupą znajomych. Załóżmy, że projekt ten jest napisany na kartkach papieru. Każdy z was ma swoje egzemplarze, i wszyscy pracujecie nad nim równocześnie. W międzyczasie każdy wnosi swoje zmiany, poprawia błędy lub dodaje nowe pomysły. Jak to potem połączyć? To karkołomne wyzwanie, którego zapewne podjęliby się nieliczni.
 
System kontroli wersji to taka "magiczna skrzynia", która pozwala wam na wygodną i bezkonfliktową współpracę nad projektem. Zamiast kartek papieru, macie specjalny zeszyt do zapisywania zmian w projekcie. Każdy, kto pracuje nad projektem, korzysta z tego samego zeszytu.
 
Zapytacie zapewne:

Co to zmienia?

Otóż naprawdę dużo!
  • Nie mamy już kilku folderów z tym samym programem, lecz tylko jeden — ale w nim mamy zapisane wszystkie rewizje tego, nad czym pracowaliśmy. Dzięki temu bez problemu możemy wrócić do poprawnie funkcjonującego programu bez zabawy w poszukiwanie folderu z tym, co na pewno działało.
  • Jeśli chcielibyśmy pracować nad tym, co tworzymy, z innymi ludźmi, to taki system jest do tego celu idealny. Gdyby coś takiego nie istniało, trzeba byłoby:
    • wysłać wszystkie pliki do naszego kolegi,
    • poprosić go o wprowadzenie odpowiednich zmian,
    • poczekać, aż wyśle on nam te pliki z powrotem...
    Mordęga i marnowanie czasu. Z takim systemem i my, i kolega możemy w tym samym czasie pracować na tych samych plikach, a ewentualne poprawki (po ich wysłaniu przez nas bądź kolegę do repozytorium) da się śledzić na bieżąco.
  • Wiemy, co, kiedy i jak zmienialiśmy. Wszystkie zmiany są rejestrowane, zatem bez problemu możemy zobaczyć historię zmian w repozytorium czy nawet danym pliku (przykład na zrzucie).

  • Jeśli zdarzy się sytuacja, że w tym samym czasie i my, i ktoś inny w naszym projekcie zmieni tę samą linijkę kodu, to system zapobiegnie "nakładaniu" się zmian i zgłosi konflikt, który możemy rozwiązać poprzez implementację jednego bądź drugiego rozwiązania.
  • Zabezpieczamy się przed utratą kodu programu. Gdy tworzymy projekt lokalnie, mamy go tylko my, zatem jeśli nie wykonamy jego kopii, to w przypadku awarii dysku nie zapobiegniemy "zniknięciu" tego, co napisaliśmy.
    W systemach kontroli wersji zazwyczaj istnieje również zdalne repozytorium (a już na pewno w przypadku pracy z innymi osobami), zatem gdy prześlemy pliki projektu na serwer, mamy kopię naszego kodu także na zdalnym serwerze. Dzięki temu nawet gdy sformatujemy nasz komputer, nie stracimy tego, nad czym pracowaliśmy :)
Dlatego już od samego początku tworzenia jakiegokolwiek kodu warto stosować systemy kontroli wersji, a nie brnąć w tworzenie dziesiątej kopii tego samego folderu z prawie takim samym kodem. Zarówno w mniejszych, jak i większych projektach to po prostu niesamowite ułatwienie pracy, stąd w wielu ofertach pracy związanych z programowaniem podstawowa znajomość Gita bądź innego systemu tego typu jest wymieniona jako jedno z wymagań niezbędnych do tego, aby dostać pracę na takim stanowisku.
 

Czy nauczenie się Gita jest trudne? 

Moim zdaniem nie. W sieci istnieje mnóstwo dobrych poradników i kursów dotyczących Gita, w podstawowym zakresie można się go spokojnie nauczyć w bardzo krótkim czasie. Przechodziłem przez to pięć lat temu, pisałem komendy w Terminalu, a dzisiaj do tego samego celu (czyli publikowania i "ściągania" zmian) używam rozszerzenia do Visual Studio Code. Warto jednak poznać obie metody, by nie zagubić się, gdy trzeba będzie użyć tekstowego wiersza poleceń :)
Kategorie
Tagi
Powiązane kursy
Więcej
0
Komentarze
0/500
Avatar