Niezależnie ile lat doświadczenia mamy i w ilu już projektach byliśmy. Stare nawyki Die Hard. Jeżeli nie wyrobimy sobie należytego podejścia do projektu teraz, to później będzie tylko gorzej. Wiem to na własnej skórze. Ostatnio doświadczyłem tego wczoraj. Tak……. Wczoraj. Mimo, że wiem, że od początku zrobiłem źle to i TAK dalej to robiłem. To już też jest kolejny raz, kiedy się na tym przejechałem. I nie tylko pewnie ja.

Przy rozpoczynaniu projektu myślimy o wielu rzeczach – jakie frameworki, jaka architektura, jakie języki. Czy wymagania są już zebrane czy trzeba będzie je zebrać. Czy projekt jest dla kogoś zewnątrz czy jest on wewnętrzny. Jakie standardy obowiązują……. i tak dalej. Pewne rzeczy za pewne są już odgórnie ustalone i nie trzeba nad nimi myśleć, niektóre są uzależnione od projektu. Ale w tych wszystkich przemyśleniach brakuje jednego. Zakładamy odgórnie, że to istnieje. I przeważnie w projektach zespołowych tak. Chodzi o repozytorium kodu.

Jednak w projektach jednoosobowych, to jest uzależnione od wielu rzeczy i bardzo często tego repo po prostu nie ma. Są za to zipy, i jakiś format wersjonowania: A_01 czy B_01. W końcu to miesięczny projekt po co się w ogóle bawić w repozytorium czy w jakąś inną kontrolę wersji niż zip?

Powiem Ci po co, po to byś nie miał nagle miłej niespodzianki sprowadzając projekt i nie znajdując w nim plików czy też sprawdzając zip i nie znajdując tam żadnych plików które przecież były. A mi się takie coś przydarzyło. Na dysku plików nie ma, w zip plików nie ma. Co mam robić? Właśnie straciłem swoją robotę od ostatniego zipa. Czy ten przedostatni ma wszystko co trzeba? Na pewno ma wszystkie pliki?

Czy to jest warte stresu? Czy naprawdę to jest warte stresu?

Nie, nie jest.

Więc jak zaczynacie nowy projekt, to pierwszą rzeczą jaką robicie to:

mkdir proj-name
cd proj-name
git init
touch .gitignore
git add .gitignore
git commit -m "initalizing proj-name with empty rep to be filled with beautiful code and amazing ideas"
git remote add origin URL
git push -u origin -all

Ten fragment powinien być wyryty na pamięć. Jak nie to należy stworzyć z tego skrypt. Zanim rozpoczniemy jakikolwiek projekt stwórzmy dla niego miejsce, w którym będzie on przechowywany i trzymajmy tam wszystkie dane o nim. Lepiej być zapobiegliwym niż potem nadrabiać zaległości, bo się SKASOWAŁO jak debil (palce skierowane w moją stronę) swój kod.

Inną opcją jest trzymanie kodu na dropbox czy też onedrive. Oba serwisy działają bardzo dobrze i zawierają historię pliku jak i możliwość przywrócenia skasowanych danych. Opcji, której mi teraz bardzo, ale to bardzo brakowało.

Nie życzę wam skasowania własnego kodu, ale jeżeli to wam się przydarzy i nie macie kopii, to jest to tylko i wyłącznie wasza wina. Tak jak i wczoraj była to tylko i wyłącznie moja wina.

Ale jeżeli wam się to przytrafi to pamiętajcie:

14 KOMENTARZE

  1. Ja tylko dodam, że wersjonowanie dokumentów czy kodu w taki sposób jak opisałeś, plus praca na plikach przesyłanych pocztą powinna być zakazana. W szczególności w dobie wszystkich Git-cośtam, Drop-cośtam i One-cośtam.

    Osobiście staram się to wyrugować i zwaracam uwagę za każdym razem na to a w firmie w szczególności – polityka “nie wysyłamy sobie załączników”.

    Co do samego meritum jeszcze to ja stosuję to też, do każdego dokumentu, który piszę. Jak tylko pojawia się tam zawartość to na dysk w sieci z kontrolą wersji!

  2. Jeśli w dzisiejszych czasach programista pracuje nad projektem bez git’a czy mercuriala to raczej powinien popełnić rytualne seppuku.

  3. Artykuł ważny, też kiedyś się przejechałem i od tej pory zawsze zaczynam od ‘git init’ ;)

    Drobne błędy w artykule, który pewnie był pisany pod wpływem emocji:
    “Nie zależnie ile lat doświadczenia mamy, i w ilu już projektach byliśmy.” -> powinno być “Niezależnie” i bez przecinka przed “i”
    “Ostatnio doświadczyłem to wczoraj” -> “tego” zamiast “to”
    ” i nie macie kopi” -> “kopii”

  4. @Szymon Przedwojski: te drobne literówki są częścią brandu Gutka. Jakby przestał je robić to czułbym się nieswojo, czytając jego teksty ;)
    Ja z reguły nad projektami pracuję sam, ale na kilku maszynach więc, na szczęście, stosowanie gita mam przez to wymuszone. Całe szczęście, bo kto wie czy inaczej nie szedłbym czasem na skróty ;) Parafrazując znane powiedzenie: programiści dzielą się na tych, którzy stosują gita i tych, którzy go BĘDĄ stosować .

ZOSTAW KOMENTARZ

Please enter your comment!
Please enter your name here