Ачааллж байна...
Энэ сургалтад тавтай морил. Та “Python — Ахисан түвшин” сургалтыг дуусгасан учраас variable, function, class гэж юу болохыг сайн мэднэ. File-тай ажиллах, JSON хадгалах, venv үүсгээд pip-ээр package суулгахыг ч мэднэ. Олон файлтай төсөл бичиж, түүнийгээ өөрийн компьютер дээр ажиллуулж үзсэн. Энэ бол бодит, жинхэнэ амжилт. Энэ сургалт тэр мэдлэгийг давтахгүй, харин түүн дээр шууд үргэлжилнэ. Өнөөдрийн хичээлд ганц ч command бичихгүй. Энэ сургалт ямар зайг хаах гэж байгаа, яагаад тэр зай чухал вэ, бид цаашид хамтдаа юу хийх вэ гэдгийг тайван ярилцана.
Python мэддэг байх, хөгжүүлэгч шиг ажиллах хоёрын хооронд чимээгүй боловч бодит нэг зай бий. Мэдлэг гэдэг нь юу хийж болохыг мэдэх явдал. Харин дадал гэдэг нь өдөр бүр, бараг бодолгүйгээр хийдэг ажлын хэв маяг. Мэдлэг танд кодоо бичих боломж олгодог. Дадал тэр кодыг аюулгүй хадгалж, итгэлтэйгээр өөрчилж, өөр хүнд харуулж болохуйц болгодог. Олон суралцагч Python-ийг сайн сурсан хэрнээ бодит төсөл дээр ажиллахдаа гацдаг. Үүний шалтгаан ихэнхдээ мэдлэг дутсандаа биш, ажлын хэрэгсэл, дадал дутсандаа байдаг.
Энэ зайг та өөрөө аль хэдийн мэдэрсэн байж магадгүй. Кодоо өөрчилсөн чинь ажиллахаа больсон ч өчигдөр ажиллаж байсан хувилбар нь яг ямар байсныг санахгүй байсан тохиолдол бий юу? Эсвэл фолдер дотроо expense_tracker, expense_tracker_final, expense_tracker_final2, expense_tracker_REAL_final гэх мэт хэд хэдэн хуулбар үүсгэсэн үү? Нэг алдааг засаад хоёр долоо хоногийн дараа өөр нэг хэсэг чимээгүйхэн эвдэрснийг санамсаргүй анзаарсан байж ч болно. Урт traceback гарч ирэхэд кодын хаа сайгүй print() нэмж байж алдаагаа олсон ч байж магадгүй. Эдгээрийн аль нь ч сул дорой байдлын шинж биш, програм бичдэг хүн бүр эдгээрийг туулдаг. Мэргэжлийн хөгжүүлэгчид эдгээр асуудлыг ухаан, азаар бус, тодорхой хэрэгсэл, тогтсон дадлаар шийддэг.
Гэртээ амттай хоол хийдэг хүнийг төсөөлөөд үзээрэй. Тэр хүн хоолоо сайн хийж чадна, гэр бүлийнхэн нь ч дуртай идэнэ. Харин тэр хүн рестораны гал тогоонд орвол хоол хийх ур чадвар нь хэвээрээ ч ажлын хэв маяг нь огт өөр болохыг харна. Тэнд орц бүр шошготой, огноотой байдаг. Хутга, сав бүр тогтсон байрандаа байна. Тогооч таваг гаргахын өмнө заавал амталж үздэг. Жорыг өөр тогооч ч яг адилхан давтаж хийж чадахаар бичсэн байдаг. Хоол нь адилхан хоол ч ажиллах арга нь найдвартай, давтагдахуйц, бусдын итгэж болохуйц байдаг.
Энэ сургалт бол яг тэр рестораны гал тогооны дадал юм. Хоол хийх ур чадвар болох Python танд аль хэдийн бий. Шошготой, огноотой орц бол Git: кодын түүх бүр бүртгэлтэй, хэзээ ч эргэж харж болно. Таваг гаргахын өмнө амталдаг зуршил бол testing: код зөв ажиллаж байгааг автоматаар шалгадаг. Хоол яагаад хэт давсгүй болсныг дэс дараатай хайх нь debugging. Цэвэр, эмх цэгцтэй ажлын талбай бол кодын чанарын хэрэгслүүд. Эдгээрийн аль нь ч таны хоол хийх чадварыг орлохгүй, харин тэр чадварыг мэргэжлийн түвшинд гаргана.
Энэ сургалтын хамгийн онцлог зүйл бол шинэ, зохиомол жишээн дээр бус, таны өмнөх сургалтуудад бичсэн төслүүд дээр ажилладаг явдал. Зарлагын бүртгэл, цаг агаарын программ, номын сангийн систем гэх мэт таны аль хэдийн мэддэг, өөрөө бичсэн кодууд энэ сургалтын үндсэн материал болно. Ялангуяа зарлагын бүртгэлийн программ сургалт даяар дахин дахин гарч ирнэ. Эхлээд бид түүнийг Git-д оруулна, дараа нь GitHub дээр нийтэлнэ, тест нэмнэ, эцэст нь мэргэжлийн хэлбэрт оруулна. Шинэ дадал өөрийн бичсэн, сайн ойлгодог код дээр хэрэгжихэд түүний ач холбогдол шууд мэдрэгддэг. Харийн жишээн дээр дадал зүгээр л дасгал мэт санагддаг бол өөрийн код дээр жинхэнэ хэрэгтэй зүйл болж хувирдаг.
Хэрвээ өмнөх төслийнхөө файлуудыг хадгалаагүй, эсвэл таны хувилбар сургалтынхаас өөр болсон бол санаа зовох хэрэггүй. Төсөл дээр ажилладаг хичээл бүрт ямар код хэрэгтэйг тайлбарлах тул олон файлтай ямар ч жижиг Python төсөл ажиллахад хангалттай. “FastAPI — Вэб API бүтээх” сургалтыг үзсэн бол зарим жишээнд түүнийг дурдах болно. Гэхдээ тэр сургалтыг үзээгүй ч энэ сургалтыг бүрэн дагаж чадна. Ямар ч хичээл FastAPI-ийн мэдлэг шаардахгүй.
Энэ сургалт дөрвөн Түвшин, арван хоёр Бүлэгтэй. Түвшин бүр нэг том дадлыг эзэмшүүлэх бөгөөд таны төсөл дээр хэрэгжүүлсэн удирдлагатай бүтээлээр төгсөнө. Удирдлагатай бүтээл гэдэг нь даалгавар биш, харин бид хамтдаа алхам алхмаар хийдэг ажил юм. Доор Түвшин бүрийг товч танилцуулъя.
Түвшин 1: Git үндэс. Энд та version control гэж юу болохыг сурна. Version control бол кодын өөрчлөлт бүрийг түүх болгон хадгалдаг систем юм. Кодынхоо агшин зуурын зургийг хадгалах, түүхээ унших, алдаагаа аюулгүй буцаахыг сурна. Мөн branch буюу зэрэгцээ салаа зам үүсгэж, туршилтаа үндсэн кодоос тусад нь хийх болно. Энэ Түвшингийн хамгийн чухал хичээл бол conflict буюу хоёр өөрчлөлт зөрчилдөх үеийг тайван, ойлгож шийдвэрлэх хичээл. Түвшин 1 таны зарлагын бүртгэлийг Git-д оруулснаар төгсөнө.
Түвшин 2: GitHub. Энд таны код зөвхөн таны компьютерт бус, үүлэн дэх толь хувилбартаа ч хадгалагдаж эхэлнэ. Кодоо GitHub руу илгээх, тэндээс татаж авах, өөр фолдерт бүрэн хуулбарлахыг сурна. Мөн README бичиж, төслөө бусдад ойлгомжтой, үзэмжтэй болгоно. Багийн ажилд хэрэглэгддэг issue болон pull request-ийг өөрийн төсөл дээрээ ганцаараа туршиж үзнэ. Түвшин 2 таны төслийг бусдад харуулж болохуйц хэлбэрээр нийтэлснээр төгсөнө.
Түвшин 3: Testing. Энд та pytest хэрэгслээр кодоо автоматаар шалгадаг тест бичиж сурна. Тест бол таны кодыг өдөр шөнөгүй сахидаг, хэзээ ч унтдаггүй харуул юм. Тест амжилттай давахыг харах, амжилтгүй болсон тестийн гаралтыг мөр мөрөөр нь ойлгож уншихыг сурна. Мөн олон тестэд нэг бэлтгэлийг хуваалцах, нэг тестийг олон тохиолдлоор ажиллуулах арга барилтай танилцана. Түвшин 3 таны зарлагын бүртгэлд бодит тестүүд нэмснээр төгсөнө.
Түвшин 4: Чанар ба дадал. Энд та VS Code debugger ашиглан кодыг киног удаашруулж үзэх шиг алхам алхмаар ажиллуулж, алдааг хайж сурна. Олон давхар traceback-ийг доороос нь дээш бүрэн уншиж, print-ээс илүү мэргэжлийн logging-ийг хэрэглэж сурна. Мөн black, ruff гэсэн кодын чанарын хэрэгслүүд, ойлгомжтой нэршил, docstring бичих дадлыг эзэмшинэ. Хамгийн сүүлд эдгээр бүх дадлыг өдөр тутмын нэг давталт болгон холбоно. Түвшин 4 жижиг шинэ хэрэгслийг эхнээс нь дуустал, сурсан бүх дадлаа хэрэглэн бүтээснээр төгсөнө.
Шударгаар хэлэхэд энэ сургалтад орохгүй сэдвүүд ч бий. Том багуудын Git-ийн нарийн арга барилууд, тухайлбал rebase, cherry-pick энэ сургалтад орохгүй. CI/CD буюу тестийг автоматаар ажиллуулдаг систем, тестэд хэрэглэдэг mocking ч мөн орохгүй. Эдгээрийг санаатайгаар хассан бөгөөд шаардлагатай газар нь нэрийг нь дурдаж, юу болохыг товч тайлбарлана. Энэ сургалтын зорилго бүгдийг өнгөцхөн хамрах биш, өдөр бүр хэрэглэх суурь дадлуудыг бат бөх тогтоох явдал.
Өмнөх сургалтуудын дүрэм энд ч яг хэвээрээ. Шалгалт, тест, гэрийн даалгавар байхгүй. Гэрчилгээ зөвхөн хичээлүүдээ дуусгаснаар олгогдоно. Та өөрийн хурдаар явна. Долоо хоногт хоёроос гурван хичээл үзвэл сургалт гурван сар орчим үргэлжилнэ. Гэхдээ энэ бол зөвхөн санал бөгөөд удаан ч, хурдан ч явж болно. Зарим хичээлд "туршаад үзээрэй" гэсэн хэсэг гарна. Тэр нь үргэлж сонголт бөгөөд хийгээгүй ч дараагийн хичээлүүд түүнд огт хамаарахгүй.
Энэ сургалт өмнөхүүдээсээ нэг зүйлээрээ ялгаатай: бид маш их цагийг terminal-д өнгөрөөнө. Тиймээс хичээл бүрт нэг тогтсон хэв маягийг баримтална. Эхлээд яг бичих command-ыг үзүүлнэ. Дараа нь тэр command ажиллахад таны дэлгэцэнд гарах гаралтыг яг байгаагаар нь үзүүлнэ. Эцэст нь тэр гаралтыг мөр мөрөөр нь монголоор тайлбарлана. Git болон pytest-ийн гаралт эхэндээ айдас төрүүлэм харагддаг ч яг тэр гаралтыг тайван уншиж сурах нь энэ сургалтын хамгийн үнэ цэнтэй ур чадваруудын нэг.
Бүх command Windows дээрх PowerShell-д ажиллахаар бичигдэнэ. Хэрвээ өөр terminal-д ялгаатай ажилладаг зүйл байвал нэг удаа дурдаад PowerShell-ээрээ үргэлжлүүлнэ. Өмнөх сургалтуудын нэгэн адил техникийн нэр томьёо англиараа үлдэнэ. Repository, commit, branch, test, debugger гэх мэт нэр томьёо анх гарахдаа монголоор бүрэн тайлбарлагдана. Англи нэр томьёог хадгалж байгаагийн учир нь цаашид та англи хэл дээрх баримт бичиг, алдааны мессеж, онлайн хэлэлцүүлгийг саадгүй уншдаг болох ёстой.
Энэ сургалтад шинэ зүйл бараг бэлдэх шаардлагагүй. Танд Windows компьютер, суулгасан Python, VS Code, мөн өмнөх төслүүдийнхээ фолдер л хэрэгтэй. Эдгээр нь өмнөх сургалтаас аль хэдийн бэлэн байх ёстой. Git-ийг одоо суулгах шаардлагагүй, бид энэ Бүлгийн гурав дахь хичээлд хамтдаа алхам алхмаар суулгана. GitHub-ийн бүртгэл ч мөн хожим, Түвшин 2-т хэрэгтэй болно.
Энэ сургалтыг эхлэхэд хэд хэдэн буруу ойлголт саад болох тохиолдол бий, тиймээс тэдгээрийг одоо тодруулъя. Эхнийх нь “Git бол зөвхөн багаар ажилладаг хүмүүст хэрэгтэй” гэсэн бодол. Үнэн хэрэгтээ Git ганцаараа ажилладаг хөгжүүлэгчид ч яг адил хэрэгтэй. Учир нь хамгийн их хамтран ажилладаг хүн тань өнгөрсөн болон ирээдүйн өөрөө тань байдаг. Хоёр дахь нь “Git ашиглавал ямар нэг юм эвдэрчих вий” гэсэн айдас. Харин Git бол яг тэр айдсыг арилгахаар бүтээгдсэн хэрэгсэл. Түүхийг бүрэн хадгалдаг учраас буруу алхам хийсэн ч ихэнх тохиолдолд өмнөх байдал руугаа буцаж чадна.
Гурав дахь буруу ойлголт бол “Testing бол том компаниудын, том төслүүдийн асуудал” гэсэн бодол. Гэтэл хоёр гурван мөр бүхий жижиг тест ч таны жижиг программыг маш олон удаа аварч чадна. Тест бичих дадлыг жижиг төсөл дээр эзэмших нь хамгийн хялбар байдаг. Дөрөв дэх нь "Би хараахан бэлэн биш байна" гэсэн мэдрэмж. Хэрвээ та “Python — Ахисан түвшин” сургалтыг дуусгасан бол бэлэн байна. Энэ сургалт таны одоо байгаа түвшингээс эхэлж, нэг ч алхмыг алгасахгүй.
Хүсвэл өмнөх төслүүдийнхээ фолдерыг нээгээд хэсэг ажиглаарай. Нэг төслийн хэд хэдэн хуулбар, эсвэл “final”, “new”, “old” гэсэн үгтэй файл байна уу? Хэрвээ байвал тэдгээрийн хооронд яг юу өөрчлөгдсөнийг санаж байна уу? Энэ бол зөвхөн ажиглалт, юу ч засах, өөрчлөх шаардлагагүй. Дараагийн хичээлд Git яг энэ асуудлыг хэрхэн бүрмөсөн шийддэгийг харна.
Энэ сургалт таны Python мэдлэг дээр мэргэжлийн хөгжүүлэгчийн дадлуудыг нэмнэ. Тэр дадлууд нь Git ба GitHub, pytest-ээр тестлэх, debugging, кодын чанарын хэрэгслүүд юм. Бид таны өөрийн бичсэн төслүүд, ялангуяа зарлагын бүртгэл дээр ажиллана. Сургалт дөрвөн Түвшинтэй бөгөөд Түвшин бүр удирдлагатай бүтээлээр төгсөнө. Шалгалт, даалгавар байхгүй, та өөрийн хурдаар явна. Command бүрийг гаралттай нь хамт үзүүлж, мөр мөрөөр нь тайлбарлана.
Дараагийн хичээлд бид Git гэж юу болохыг ганц ч command бичилгүйгээр, гэрэл зургийн цомгийн зүйрлэлээр бүрэн ойлгоно. Git кодын агшин зуурын зургуудыг хэрхэн хадгалдаг, “final_v2_REAL” гэх мэт хуулбарын асуудлыг хэрхэн шийддэг, яагаад дэлхийн бараг бүх хөгжүүлэгч түүнийг ашигладаг вэ гэдгийг тэнд үзнэ.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.