Osa V: Arendus ja töövood — täisspikker
Selle osa spikrid on siin koos ühel lehel. Neid saab kasutada kordamiseks, kiireks viitamiseks ja eraldi PDF-ina printimiseks.
Git, GitHub ja töövoog
Edasijõudnu
Eesmärk
Git hoiab muutuste ajalugu; erista tööpuud, stage'i ja commit'i ning vaata diff enne üle.
Põhikujud
git statusvaata seisgit diffmuutused tööpuusgit diff --cachedmuutused stage'isgit add fail.txtpane stage'igit commit -m '...'tee commitgit switch -c parandusloo harugit pull --ff-onlyuuenda puhtaltgit push -u origin parandussaada harugit restore --staged fail.txtvõta stage'ist
Olulisemad lipud, märgid ja kiirnupud
HEADpraegune tippmainpõhiridaoriginkaugrepostagejärgmine commit
Pythoni venv ja eraldatud keskkonnad
Edasijõudnu
Eesmärk
venv hoiab ühe projekti Pythoni paketid eraldi; kõige olulisem on, et terminal, pip ja IDE näeksid sama keskkonda.
Põhikujud
python3 -m venv .venvloo keskkondsource .venv/bin/activateaktiveeri shellispython -m pip install -U pipuuenda pippython -m pip install requestspaigalda pakettpython -m pip listvaata pakkecommand -v pythonkontrolli tõlgenditdeactivatevälju keskkonnast
Olulised märgid
(.venv)aktiivne keskkond.venv/projekti seespython -m pipkindlam kuipipDockerterve keskkond
Dockeri alused
Edasijõudnu
Eesmärk
image on käivitusmall; konteiner on sellest tehtud töötav eksemplar; andmed püsivad ainult hostis, volume'is või Git-repos.
Põhikäsud
docker --versionkontrolli olemasoludocker run --rm alpine echo tereohutu esimene käivitusdocker build -t rakendus .ehita imagedocker run --rm rakenduskäivita imagedocker pstöötavad konteineriddocker logs -f nimijälgi logidocker exec -it nimi shsisene töötavasse konteinerissedocker compose up -dteenused taustaledocker compose downpeata komplekt
Olulisemad lipud, märgid ja kiirnupud
imagekäivitusmallkonteinertöötav eksemplarDockerfileimage'i retseptcompose.yamlmitu teenustvolumepüsiv andmesisuregistryimage'ite hoidla--rmkustuta lühikatse konteiner pärast lõppu-p 8000:8000seo hosti port konteineri pordiga--mount type=bind,src="$PWD",dst=/appjaga praegune kaust konteinerisse-w /appmäära konteineri töökaustdown -vpeatab ja kustutab ka volume'id
IDE-d ja arenduskeskkonnad
Edasijõudnu
Eesmärk
hea arenduskeskkond tähendab, et terminal, Git, interpreter ja vajadusel konteiner osutavad samale projektile, mitte eri maailmadele.
Kontrollid ja valikud
python3 --versionkontrolli Pythonitpython3 -m pip --versionkontrolli pip-igit --versionkontrolli Git-idocker --versionkontrolli Dockeritnode --versionkontrolli Node'inpm --versionkontrolli npm-i
Olulised mõisted
interpretertegelik käivitajasisseehitatud terminalsama projektivaadeRemote SSHtööta kaugmasinasdevcontainerIDE konteineris
Andmeteaduse eelteadmised käsurea vaates
Edasijõudnu
Eesmärk
andmeteaduse stardis ei piisa ühest tööriistast; vaja on korraga failivormingute tunnetust, SQL-i mõtteviisi, programmeerimist ja statistilist mõtlemist.
Põhikujud
fail -> head/less -> column/jq -> sqlite3 -> python3alusta väikese vaatusega- Pythoni `venv`projekti töölaud
- CSV, JSON ja XMLandmete kuju
- SQLite ja Pythonesimene andmebaas
- Teksti teisendamineväiksed filtrid
- Vood ja tabelidkoondamine
Põhiteljed
programmeeriminekorduv töö loogikaksSQLküsi ja seo andmeidvormingudCSV, JSON, XMLstatistikaanna tähendus
CSV, JSON ja XML käsureal
Edasijõudnu
Eesmärk
vormingu tüüp ütleb, milline tööriist mõistab andmeid kõige loomulikumalt: tabelit, puud või märgendistruktuuri.
Põhikujud
head fail.csvvaata CSV algustcolumn -s, -t < fail.csvjoonda lihtne CSVcut -d, -f1 fail.csvvõta üks veergpython3 -m json.tool fail.jsonvorminda JSONjq '.students[].name' fail.jsonvali JSON väljuxmllint --format fail.xmlvorminda XML
Olulised mõisted
CSVlihtne tabelJSONobjektide puuXMLmärgendipuujqJSON filtriks
Andmebaasi algus: sqlite ja Python
Edasijõudnu
Eesmärk
SQLite on sild tekstifailide ja päris andmebaasimõtte vahel: failina lihtne, SQL-i mõttes siiski relatsiooniline andmebaas.
Põhikujud
sqlite3 andmed.dbava või loo failsqlite3 andmed.db '.tables'vaata tabeleidsqlite3 andmed.db '.schema'vaata struktuurisqlite3 andmed.db 'select * from students limit 5;'piilu ridusqlite3 andmed.db 'select city, count(*) from students group by city;'koonda readsqlite3 andmed.db 'select s.name, r.score from results r join students s on s.id = r.student_id;'ühenda tabelidpython3 naide.pykasuta Pythonist
Olulised mõisted
primary keyrea unikaalne idforeign keyviide teise tabelisseJOINseo tabelidGROUP BYkoonda read
Kompileerimine ja käivitamine: shell, Python, C, C++, Go, Rust, Java
Edasijõudnu
Eesmärk
mõni fail käivitatakse tõlgendiga otse; mõni fail kompileeritakse kõigepealt teise vormi; mõni tulemus on päris binaar
Põhikäsud
goGo tööriistcargoRusti tööriistpython3käivita Pythoncckompileeri Cjavackompileeri Javajavakäivita JVM-is
Tüüpilised kujud
chmod +x hello.shõigusedpython3 hello.pykäivita Pythoncc hello.c -o hello-ckompileeri Cgo run hello.goGo tööriistgo build -o hello-go hello.goGo tööriistmkdir -p hello-rustloo puuduv rada
LaTeX käsurealt
Edasijõudnu
Eesmärk
LaTeX-i mõte on lihtne: lähtetekst jääb tekstifailiks, aga buildist sünnib väga täpselt juhitav PDF.
Põhikujud
pdflatex tere.texkompileeri PDFxelatex tere.texparem Unicode tugilatexmk -pdf tere.texkorda vajalikud käigudlatexmk -xelatex tere.texxelatex automaatseltls tere.*vaata abifaileopen tere.pdfava tulemus
Olulised failid
.texlähtefail.pdftulemus.auxristviidete abi.logkompileerimislogi