Python inžinieriams - kursas 65 000 rub. iš Slurm, mokymai 3 mėn., Data 2024 m. sausio 15 d.
įvairenybės / / November 27, 2023
Techlead, „Skyeng“ duomenų inžinierius / buvęs „Slurm“, IPT sistema, „Grid Dynamics“.
Sr. Programinės įrangos inžinierius įmonėje Test, Auriga, ex ISPsystem
1: pagrindinė Python sintaksė ir struktūros
Kodėl: išmokti suprasti Python programų logiką, taip pat rašyti paprastas programas – svarbiausia užduotis. „Puiku“, jei nesate susipažinę su Python sintaksė.
- Duomenų tipai ir kintamieji, kintami / nekintantys ir paprasti / sudėtiniai duomenų tipai, derinimo būdai.
- Sąlyginis sakinys – loginiai operatoriai, paprastos sąlygos, įdėtos sąlygos ir jungiklio sakinio pakeitimas.
- Pagrindinės kilpos – while ir for ciklus, iteratoriai, ciklo pertraukimai.
- Funkcijos, eilučių metodai, sąrašai ir žodynai.
- Išimčių generavimas ir tvarkymas.
Praktika: mažų mikroužduočių rinkinys kiekvienai pamokai.
2: patobulintas Python įgūdis: optimizavimas ir OOP
Kodėl: įsisavinkime Python ypatybes – būtent dėl jų jis toks paprastas ir praktiškas. Taip pat atskleisime tų trijų raidžių reikšmę (kalbame apie OOP) be akademinės teorijos ir su aiškiu tikslu
- Išplėstinis darbas su kilpomis – našumo teiginys ir generatoriai, įžvalgos apie Python kilpas, kitas teiginys cikle, supratimo ciklų optimizavimas ir kt.
- Specialūs konstrukcijų tipai: šaldytos, defoltinės ir kt.
- Pagrindinės OOP sąvokos: klasės, klasių egzemplioriai, inkapsuliavimas, paveldėjimas ir polimorfizmas.
- Konteksto tvarkytuvų kūrimas jūsų tipams: su konstrukcija.
Praktika: mažų mikroužduočių rinkinys kiekvienai pamokai.
Išplėstinė praktika: paslaugų naudojimo auditas.
CTO pradėjo įtarti, kad kai kuriomis paslaugomis komandos nebesinaudoja. Problema ta, kad naudojamų paslaugų stebėjimo modulis nebuvo atnaujintas pastaruosius dešimt metų: ne gali įkelti apibendrintus duomenis, o grąžinamų reikšmių formatas neatitinka visuotinai priimtų standartus. Buvote pasirinkti išgauti užfiksuotą metriką, jas apibendrinti pagal tipą ir komandą ir pateikti šią informaciją CTO, kad jis pradėtų įvertinti problemos apimtį.
#3: Tinklo jungtys
Kodėl: beveik kiekviena paslauga turi sąsają, skirtą prisijungti naudojant tam tikrą tinklo protokolą. O be ryšio sąveika neįmanoma. Laimei, Python ekosistema turi klientų modulius beveik bet kokiam protokolui.
- Pip paketas ir trečiųjų šalių modulių diegimas.
- Paramiko modulis komandoms vykdyti per ssh.
- Užklausų modulis HTTP užklausoms pateikti.
- Modulių, skirtų darbui su duomenų bazėmis ir pranešimų tarpininkais, apžvalga.
Praktika. Kūrimo komanda pristato naują metodiką: jei leisite įvykti įspėjimui, gausite užduotį. Analitinė posistemė ieško tik pasirinktų klaidų ir siunčia pranešimus apie jas Kafkos pranešimų brokeriui. Jūsų užduotis yra užbaigti klaidų grąžinimo kūrėjams ciklą: jūsų vartotojas „Trello“ turėtų automatiškai sukurti užduotis su reikiamu aprašymu ir prioritetu.
Nr. 4: Darbas su įvairių formatų tekstu
Kodėl: Prisijungimas prie paslaugos yra tik pusė darbo. Kita pusė – dalijimasis informacija. O informacija dažnai yra tam tikro formato teksto simbolių rinkinys. Moduliai padės jums iššifruoti ir užkoduoti. Nereikia visos informacijos? Reguliarūs posakiai padės išgauti tai, kas svarbu, o likusius atmesti.
- Re modulis ir reguliarios išraiškos.
- Moduliai, skirti dirbti su įvairių formatų duomenimis: atskirtos reikšmės, json, yaml, xml.
- Komandinės eilutės argumentų naudojimas: argparse modulis.
Praktika: paslaugos naudojimo duomenų šaltinio kūrimas.
Naudojimosi paslaugomis audito metu nustatėte verslui svarbią informaciją, susidomėjo net generalinis direktorius. Nuspręsta išanalizuoti prarastus pinigus ir neleisti tokioms situacijoms pasikartoti. Norėdami tai padaryti, analitikams turite suteikti duomenų rinkimo įrankį, kad jie galėtų rengti ataskaitas. Problema ta, kad stebėjimo modulis atskiros užklausos paslaugų limitus grąžina yaml formatu, o paslaugų kainas atsiskaitymo sistema grąžina xml formatu. Būtina sujungti duomenis apie esamą apkrovą su limitais ir kainomis. Analitikos skyrius paprašė sukauptos informacijos JSON formatu su galimybe nurodyti laiko intervalą ir agregavimo veiksmą.
Nr. 5: Sąveika su operacine sistema
Kodėl: sąveikos su operacine sistema svarbos daugiau aiškinti nereikia. Kaip jį sujungti su Python, rasite šioje pamokoje.
- Failų skaitymas ir rašymas.
- os modulis - aplinkos kintamųjų skaitymas, darbas su katalogais ir teisėmis, darbas su procesais.
- Subprocesų modulis, skirtas interaktyviai sąveikai su procesais.
Praktika: automatinis prieigos prie serverių suteikimas.
Nenaudojamų paslaugų atsisakymo kampanijos metu susidarė kuriozinė situacija: bakalėjos serveris komandos užsidarė, tačiau infrastruktūros komanda periodiškai naudojo ją kaip prieglobstį pastatymas. Paaiškėjo, kad produkto komanda jo nenaudojo, nes periodiškai kas nors perrašydavo savo nustatymus savo. Nuspręsta, kad dabar resursas bus priskirtas tik vienos komandos nariams, o klaidų išvengti padės automatika. Jūs, kaip tas, kuris pradėjo šią netvarką, turite parašyti agentą, kuris periodiškai apklaustų teisių valdymo sistemą ir pakeiskite įdiegtų paslaugų teisių konfigūraciją ir, jei reikia, duokite paslaugoms komandą perskaityti iš naujo konfigūracijos.
Nr. 6: K8S operatorius Python (tiesioginio kodavimo srautas)
Spalio 13 d., 19:00 val
Kodėl: išplėskime K8S galimybes, kad jos atitiktų jūsų užduotis.
Nr. 7: savo Ansible modulio rašymas
Kodėl: Ansible yra galinga konfigūracijos valdymo sistema, kurią netgi galima išplėsti atskirais moduliais. Koks sutapimas, kad jis pats ir dauguma modulių parašyti Python.
- Savo Ansible modulių rašymas.
Praktika: teisių valdymo modulio rašymas.
Seniai, tolimoje galaktikoje, jūs jau parašėte agentą, kuris išduoda teises į tam tikras paslaugas. Atėjo laikas pakeisti trauką į stūmimą ir Ansible padės tai padaryti. Viskas, ko jums reikia, yra tik modulis.
Nr. 8: API kūrimas ir naudojimo atvejai
Kodėl: Kodo paruošimas diegimui yra viena iš svarbiausių užduočių. Mūsų pačių sukurti scenarijų vamzdynų scenarijai padeda padaryti šį procesą lankstesnį ir patogesnį.
- REST API sukūrimas „Flask“.
- Sukurkite savo „Prometheus“ eksportuotoją naudodami „Prometheus Python Client“ ir „Flask“.
Praktika: duomenų įkėlimas į trečiosios šalies stebėjimo sistemą.
Nenaudojamos įrangos kaina viršijo net pesimistines prognozes. Dabar inžinierių komandai tenka kita atsakomybė – nepanaudotų paslaugų stebėjimas. Norėdami tai padaryti, turite periodiškai apklausti atsiskaitymo sistemą naudodami savo scenarijų ir perduoti duomenis „Prometheus“. Gautų duomenų formatas vis dar netinkamas. Turite įdiegti jungtį. Ir tuo pačiu parašykite galinį tašką, kad analizės skyrius visada turėtų naujausią informaciją JSON formatu.
AMA sesija + NEFORMALUS susitikimas su kurso pranešėjais
Spalio 28 d., 19:00 val
Susitinkame aptarti kurso dalyvių rūpesčių.
9: programos API testavimas
Kodėl: kartais geriau neturėti kodo nei kodo, kuris yra nestabilus. Kad nebijotum sulaužyti savo kodą, reikia rašyti testus.
- Testų tipai: vienetinis, integracinis ir nuo galo iki galo.
- Pyhamcrest modulio ir jo atitikmenų apžvalga.
- Pytest architektūra ir galimybės.
- pytest ir pyhamcrest naudojimas vienetiniams testams rašyti.
Praktika: savo API testų rašymas naudojant pytest ir pyhamcrest.
Nr. 10: Sąveika su CVS ir DevOps sistemomis
- Naudojant trečiųjų šalių modulius, naudojant integravimo į Gitlab vamzdynus pavyzdį.
- Pygit naudojimas norint gauti informacijos apie kodo pakeitimus.
Praktika: pakeitimų žurnalo generavimas iš įsipareigojimų.
Inžinierių komandai jūsų sprendimai taip patiko, kad juos įkvėpė ir jie pradėjo rašyti savo. Tačiau žmonės visada pamiršta parašyti leidimų aprašymus. Kad tai pasiektų, komanda nusprendė įgyvendinti įsipareigojimo konvencijas ir generuoti pakeitimų žurnalus tiesiai iš įsipareigojimų kada sujungiant kūrimo šaką su leidimo šaka ir jei įsipareigojimo pavadinimas neatitinka įsipareigojimo taisyklių, neleisti sujungimo-užklausos iki sujungti.
# 11: pokalbiai su Errbot Python
Kodėl: pagrindinės verslo problemos yra netinkamas programos veikimas arba net klaidos, atsirandančios kode. Rimčiausios problemos kyla tuomet, kai darbuotojų bendravimas yra neefektyvus. Chatops yra vienas iš būdų išspręsti šią problemą.
- Chatops koncepcija: kokias problemas išsprendžia Chatops?
- „Errbot“ sistema: diegimas, pagrindinio papildinio šablono sukūrimas, konfigūracija ir paleidimas.
- Errbot framework: sukurkite savo Chatops papildinį su įvairiomis pranešimų apdorojimo parinktimis.
Baigiamasis projektas
Termino peržiūra ir suinteresuotųjų apsauga
Po kurso turėsite projektą Git: galėsite automatizuoti savo darbo užduotį arba atlikti vieną iš siūlomų variantų.
Baigtas projektas gali būti naudojamas kaip portfelio atvejis ir rodomas kreipiantis dėl darbo.