ebSkola

1.4 Failu sistēma un organizācija

Stundas uzdevums: Izprast projektu struktūras nozīmi, strukturēt savus koda failus apakšmapēs un konfigurēt izņēmumus, izmantojot .gitignore failu.

2.4.12. Sagatavo un konfigurē programmēšanas vidi. 2.4.9. Lieto versiju pārvaldības sistēmas (Git).

70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - izveido projekta mapju struktūru · 2. uzdevums (~25 min) - uzraksti .gitignore un pārbaudi, ka faili pazūd · 3. uzdevums (~20 min) - pārbaudi relatīvos ceļus no apakšmapes. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.

Pirms sāc: atver savu klonēto krātuvi programmesana-pamatkurss VS Code - visu šo stundu strādāsi tieši tajā mapē.

Teorija: Kārtība projektā un .gitignore

Profesionālos projektos faili netiek glabāti vienā lielā mapē. Tos organizē loģiskās struktūrās, izmantojot apakšmapes un ceļus (Paths). Lai GitHub mākoni nepiesārņotu ar liekiem failiem, izmanto īpašu sistēmas failu.

  • Projekta sakne (Root directory): Tava projekta galvenā mape (mūsu gadījumā - krātuve programmesana-pamatkurss). Tajā atrodas visas pārējās mapes.
  • Relatīvie ceļi (Relative paths): Norāde uz failu attiecībā pret vietu, kur Tu pašlaik atrodies. Piemēram, uzdevumi/diena1.py nozīmē "diena1.py fails, kas atrodas mapē uzdevumi".
  • .gitignore: Teksta fails, kurā uzskaitīti faili vai mapes, kurus Git sistēmai vajadzētu "ignorēt" (neuzskaitīt un nesūtīt uz GitHub). Tie parasti ir personīgie piezīmju faili, paroles vai programmu ģenerētie pagaidu faili.

Praktiskie uzdevumi

1. uzdevums -

Izveido projekta mapju struktūru

Beigās tavi faili būs sakārtoti mapēs, nevis vienā kaudzē.

  1. Izveido projekta saknē mapi uzdevumi.
  2. Izveido vēl vienu mapi dati.
  3. Pārvelc failu sveiciens.py uz mapi uzdevumi.
  4. Izveido mapē uzdevumi jaunu failu diena1.py.
  5. Ieraksti tajā print("Strādāju no apakšmapes") un saglabā.

Gatavs, kad: VS Code kreisajā kokā redzi divas mapes, un sveiciens.py ir mapē uzdevumi.

2. uzdevums -

Uzraksti .gitignore un pārbaudi, ka faili pazūd

Beigās Git vairs nepiedāvās augšupielādēt tavus personīgos failus.

  1. Izveido projekta saknē failu ar nosaukumu tieši .gitignore - ar punktu sākumā.
  2. Izveido mapē dati failu noslepums.txt un ieraksti tajā jebko.
  3. Pārslēdzies uz GitHub Desktop - noslepums.txt būs sarakstā.
  4. Ieraksti failā .gitignore rindu noslepums.txt un saglabā.
  5. Paskaties vēlreiz GitHub Desktop - fails no saraksta ir pazudis.
  6. Pievieno .gitignore failā arī rindas *.png un __pycache__/.
  7. Veic commit un push ar ziņu Pievieno .gitignore.

Gatavs, kad: GitHub Desktop sarakstā ir .gitignore, bet noslepums.txt tur nav.

3. uzdevums -

Pārbaudi relatīvos ceļus no apakšmapes

Beigās tu sapratīsi, kāpēc programma dažreiz "neatrod" savu failu.

  1. Atver termināli VS Code ar Ctrl+`.
  2. Izpildi komandu python uzdevumi/diena1.py no projekta saknes.
  3. Pieraksti, vai programma palaidās.
  4. Izpildi komandu cd uzdevumi un pēc tam python diena1.py.
  5. Izpildi tagad python uzdevumi/diena1.py vēlreiz un izlasi kļūdu.
  6. Atgriezies saknē ar cd ...
  7. Pieraksti vienu secinājumu: kāpēc viens un tas pats ceļš reizēm strādā, reizēm ne.

Gatavs, kad: tu vari paskaidrot, ka relatīvais ceļš tiek skaitīts no tās mapes, kurā terminālis atrodas.

Papildu uzdevums - Sakārto README pēc struktūras

Ja pamatdarbs ir gatavs, apraksti savu mapju struktūru README failā.

  1. Atver failu README.md.
  2. Uzraksti virsrakstu # Projekta struktūra.
  3. Uzskaiti ar domuzīmēm, kas atrodas mapē uzdevumi un kas mapē dati.
  4. Pieraksti vienu rindu par to, ko dara .gitignore.
  5. Veic commit un push.

Gatavs, kad: GitHub krātuves sākumlapā redzams tavs struktūras apraksts.

Biežākās kļūdas (un kā tās labot):

  • Aizmirsts punkts: Faila nosaukumam jābūt tieši .gitignore. Ja to nosauksi par gitignore.txt vai gitignore, sistēma to neatpazīs kā versiju kontroles noteikumu failu.
  • Nepareiza atrašanās vieta: .gitignore failam ir jāatrodas projekta pašā galvenajā mapē (saknē). Ja ieliksi to apakšmapē, tas darbosies tikai uz to konkrēto mapi.
  • Mēģinājums ignorēt jau nofiksētus failus: .gitignore strādā tikai uz failiem, kas vēl nav tikuši uztaisīti par Commit. Ja fails jau iepriekš tika augšupielādēts, tā pievienošana .gitignore failam viņu automātiski neizdzēsīs no GitHub mākoni.

Koda piemērs: Kā izskatās klasisks .gitignore fails

# Ar tēmturi (#) arī šeit var rakstīt komentārus
# Ignorēt konkrētu failu:
noslepums.txt
paroles.csv

# Ignorēt visus failus ar konkrētu paplašinājumu (piem., attēlus):
*.jpg
*.png

# Ignorēt veselu mapi:
pagaidu_dati/
__pycache__/
Visi faili un mapes, kas atbilst šiem noteikumiem, tiks paslēpti no GitHub Desktop acīm un paliks tikai tavā personīgajā datorā.