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.
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.pynozī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ē.
- Izveido projekta saknē mapi
uzdevumi. - Izveido vēl vienu mapi
dati. - Pārvelc failu
sveiciens.pyuz mapiuzdevumi. - Izveido mapē
uzdevumijaunu failudiena1.py. - 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.
- Izveido projekta saknē failu ar nosaukumu tieši
.gitignore- ar punktu sākumā. - Izveido mapē
datifailunoslepums.txtun ieraksti tajā jebko. - Pārslēdzies uz GitHub Desktop -
noslepums.txtbūs sarakstā. - Ieraksti failā
.gitignorerindunoslepums.txtun saglabā. - Paskaties vēlreiz GitHub Desktop - fails no saraksta ir pazudis.
- Pievieno
.gitignorefailā arī rindas*.pngun__pycache__/. - 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.
- Atver termināli VS Code ar
Ctrl+`. - Izpildi komandu
python uzdevumi/diena1.pyno projekta saknes. - Pieraksti, vai programma palaidās.
- Izpildi komandu
cd uzdevumiun pēc tampython diena1.py. - Izpildi tagad
python uzdevumi/diena1.pyvēlreiz un izlasi kļūdu. - Atgriezies saknē ar
cd ... - 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ā.
- Atver failu
README.md. - Uzraksti virsrakstu
# Projekta struktūra. - Uzskaiti ar domuzīmēm, kas atrodas mapē
uzdevumiun kas mapēdati. - Pieraksti vienu rindu par to, ko dara
.gitignore. - 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 pargitignore.txtvaigitignore, sistēma to neatpazīs kā versiju kontroles noteikumu failu. - Nepareiza atrašanās vieta:
.gitignorefailam 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:
.gitignorestrā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.gitignorefailam 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__/