IlmHamroh
Python kursi/Muhit va vositalar7/9-dars15 daqiqa
Mundarija (24)

2.7-dars: Kerakli kengaytmalar va sozlamalar

2-QISM — MUHIT VA VOSITALAR · 7-dars


1. Kirish va motivatsiya

VS Code o'rnatildi va ishlayapti. Endi savol: yana nima kerak?

Kengaytmalar bozorida o'n minglab kengaytma bor. Boshlovchilar odatda ikki xatoga yo'l qo'yadi:

Birinchi xato — hech narsa o'rnatmaslik. Natijada kod formatlanmagan, xatolar ko'rinmaydi, ish sekin.

Ikkinchi xato — hammasini o'rnatish. Natijada VS Code sekinlashadi, kengaytmalar bir-biriga xalaqit beradi, kod bir xil bo'lmaydi.

Bu darsda oltin o'rtalikni ko'rsatamiz: nima rostdan kerak, nima yaxshi bo'lsa ham majburiy emas, nimadan qochish kerak.

Va eng muhimi: nega kerakligini tushuntiramiz. black nima qiladi va nega u sizni tortishuvlardan qutqaradi? ruff qanday xatolarni topadi? formatOnSave nega odat qilish kerak?

Bu dars oxirida sizda professional sozlangan ish maydoni bo'ladi — kompaniyada ishlaganingizda ham xuddi shunday sozlanadi.


2. Nazariya — chuqur tushuntirish

2.1. Uch xil vosita — farqni tushunish

Bu uch tushuncha ko'pincha aralashtiriladi:

Vosita Nima qiladi Misol
Formatlovchi (formatter) Kod ko'rinishini to'g'rilaydi black, ruff format
Linter Kod muammolarini topadi ruff, pylint, flake8
Tur tekshiruvchi (type checker) Tur xatolarini topadi mypy, Pylance

Formatlovchi mantiqqa tegmaydi. U faqat bo'sh joy, qator uzunligi, tirnoq turini bir xillashtiradi:

python
# Oldin
x={'a':1,'b':2}
def f( a,b ):
    return a+b

# black dan keyin
x = {"a": 1, "b": 2}


def f(a, b):
    return a + b

Linter — "bu ishlaydi, lekin muammo bor" deydi:

python
import os          # ← ishlatilmagan import
x = 1
x = 2              # ← birinchi qiymat ishlatilmadi
if x == None:      # ← "is None" bo'lishi kerak
    pass

Tur tekshiruvchi — 1.3-darsdagi tur xatolarini ishga tushirishdan oldin topadi:

python
def qosh(a: int, b: int) -> int:
    return a + b

qosh("salom", 5)   # ← xato: str kutilmagan

Uchalasi ham kerak. Va zamonaviy yechim ularni birlashtiradi.

2.2. ruff — zamonaviy yechim

Yaqin vaqtgacha Python ekotizimida har ish uchun alohida vosita ishlatilardi:

text
black       formatlash
isort       importlarni tartiblash
flake8      lint
pyupgrade   eski sintaksisni yangilash

To'rtta vosita, to'rtta sozlama, sekin ishlash.

Ruff — 2022-yilda paydo bo'lgan va hammasini bittaga birlashtirgan. U Rust tilida yozilgan va 100 barobargacha tez.

text
ruff check .          # lint
ruff format .         # formatlash
ruff check --fix .    # avtomatik tuzatish

Bu kursda ruff ni tavsiya qilamiz. black ni ham bilib qo'ying — u hali ham keng tarqalgan.

1.7-darsdagi ekotizim mavzusining amaliy davomi: Python ekotizimi tez o'zgaradi. Ruff — so'nggi 5 yildagi eng katta yaxshilanish.

2.3. Majburiy kengaytmalar

Bularsiz ishlash noqulay:

Kengaytma Muallif Nima uchun
Python Microsoft Asosiy qo'llab-quvvatlash
Pylance Microsoft Aqlli to'ldirish, tur tekshiruvi (Python bilan keladi)
Ruff Astral Formatlash + lint, bitta vositada

Uchtasi yetarli. Rostdan.

O'rnatish:

text
Ctrl+Shift+X → "Ruff" → Astral Software nashriyotidan o'rnating

2.4. Foydali, lekin majburiy emas

Kengaytma Nima qiladi Kimga
Error Lens Xatoni qator yonida ko'rsatadi (kursor kerak emas) Boshlovchiga juda foydali
indent-rainbow Chekinish darajalarini ranglaydi Boshlovchiga
GitLens Git tarixini kod yonida 31-qismdan keyin
Even Better TOML pyproject.toml uchun 19-qismdan keyin
Jupyter Notebook fayllari 24-qism (ma'lumot tahlili)
Rainbow CSV CSV fayllarni ranglash 16-qismdan keyin
Material Icon Theme Chiroyli fayl belgilari Xohishga ko'ra

Error Lens — boshlovchi uchun eng foydalisi. Xato xabari to'g'ridan-to'g'ri qator yonida chiqadi:

python
print("salom"          # ⚠ '(' was never closed

Kursorni olib borish kerak emas. Bu — 2.9-darsdagi xato o'qish ko'nikmasini tezlashtiradi.

2.5. Nimadan qochish kerak

Kengaytma Nega qochish kerak
Code Runner Boshqa Pythonni chaqirishi mumkin — chalkashlik
Bir vaqtda black + autopep8 + yapf Bir-biriga qarshi ishlaydi, kod tinimsiz o'zgaradi
Noma'lum nashriyotdan Python kengaytmalari Xavfsizlik xavfi (1.7-dars)
Ko'p mavzu va belgi to'plamlari Har biri xotira yeydi

Umumiy qoida: kengaytma o'rnatishdan oldin so'rang — "bu muammoni hal qiladimi, yoki shunchaki chiroylimi?"

2.6. Sozlamalar: foydalanuvchi va ish maydoni

VS Code sozlamalari ikki darajada bo'ladi:

Daraja Fayl Kimga ta'sir qiladi
Foydalanuvchi (User) ~/.config/Code/User/settings.json Barcha loyihaga
Ish maydoni (Workspace) <loyiha>/.vscode/settings.json Faqat shu loyihaga

Ish maydoni sozlamalari ustun turadi.

Qaysi birini qachon?

  • Foydalanuvchi: mavzu, shrift, umumiy odatlar
  • Ish maydoni: interpretator, formatlovchi, loyihaga xos qoidalar

Nega ish maydoni muhim? Chunki .vscode/settings.json ni Git'ga qo'shsangiz, jamoadagi hamma bir xil sozlamalar bilan ishlaydi. Kod uslubi bo'yicha tortishuvlar tugaydi.

Ochish:

text
Ctrl/Cmd + ,                        grafik ko'rinish
Ctrl+Shift+P → "Open User Settings (JSON)"
Ctrl+Shift+P → "Open Workspace Settings (JSON)"

2.7. Tavsiya etiladigan sozlamalar

.vscode/settings.json (loyiha uchun):

json
{
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.fixAll.ruff": "explicit",
      "source.organizeImports.ruff": "explicit"
    }
  },
  "python.analysis.typeCheckingMode": "basic",
  "editor.rulers": [88],
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true
}

Har birini tushuntiramiz:

"[python]" — faqat Python fayllariga tegishli sozlamalar. Boshqa tillar o'z formatlovchisini ishlatadi.

editor.formatOnSave: true — eng muhim sozlama. Har saqlashda kod avtomatik formatlanadi.

Nega bu shunchalik muhim?

  • Formatlash haqida umuman o'ylamaysiz — yozasiz, saqlaysiz, tayyor
  • Jamoada kod uslubi bir xil bo'ladi
  • Git'da "faqat bo'sh joy o'zgardi" degan o'zgarishlar yo'qoladi
  • Kod ko'rinishi haqidagi tortishuvlar tugaydi

source.fixAll.ruff — saqlashda avtomatik tuzatiladigan lint muammolari (ishlatilmagan import va h.k.) tuzatiladi.

source.organizeImports.ruff — importlar to'g'ri tartibda joylashtiriladi:

python
# Oldin
import requests
import os
from mymodule import f
import sys

# Keyin
import os
import sys

import requests

from mymodule import f

Tartib: standart kutubxona → tashqi paketlar → o'z kodingiz. Bu — PEP 8 qoidasi (3.14-darsda).

python.analysis.typeCheckingMode: "basic" — Pylance tur xatolarini tekshiradi. Variantlar:

text
"off"      tekshirmaydi
"basic"    aniq xatolarni topadi        ← boshlovchiga tavsiya
"standard" ko'proq tekshiradi
"strict"   juda qattiq — ko'p ogohlantirish

editor.rulers: [88] — 88-belgida vertikal chiziq. Bu — black/ruff ning sukut bo'yicha qator uzunligi. Chiziqdan oshsangiz — qatorni bo'lish vaqti.

files.trimTrailingWhitespace — qator oxiridagi keraksiz bo'sh joylarni olib tashlaydi. Git'da ko'rinmas o'zgarishlarni oldini oladi.

files.insertFinalNewline — fayl oxiriga bo'sh qator qo'yadi. POSIX standarti; ko'p vosita buni kutadi.

2.8. ruff ni loyihaga sozlash

VS Code kengaytmasi ruff ni ishlatadi, lekin qoidalarni loyiha faylida belgilash yaxshi. Loyiha ildizida pyproject.toml:

toml
[tool.ruff]
line-length = 88
target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = []

Qoida to'plamlari:

Kod Nima
E pycodestyle xatolari (PEP 8)
F Pyflakes — ishlatilmagan import, aniqlanmagan nom
I isort — importlar tartibi
UP pyupgrade — eski sintaksisni yangilash
B flake8-bugbear — keng tarqalgan xatoliklar

Boshlovchi uchun bu beshtasi ideal muvozanat: foydali, lekin shovqin qilmaydi.

pyproject.toml nima? Zamonaviy Python loyihasining markaziy sozlama fayli. 19-qismda batafsil o'rganamiz. Hozircha — ruff qoidalari shu yerda deb bilsangiz yetarli.

2.9. Sozlamalarni loyihaga bog'lash

Yangi loyiha boshlaganda quyidagi tuzilma yaxshi odat:

text
loyiha/
├── .vscode/
│   ├── settings.json          # muharrir sozlamalari
│   └── extensions.json        # tavsiya etiladigan kengaytmalar
├── pyproject.toml             # ruff, loyiha metama'lumoti
├── .gitignore                 # Git nimani e'tiborsiz qoldirsin
└── main.py

.vscode/extensions.json:

json
{
  "recommendations": [
    "ms-python.python",
    "ms-python.vscode-pylance",
    "charliermarsh.ruff"
  ]
}

Bu faylni Git'ga qo'shsangiz, loyihani ochgan har bir kishiga VS Code kerakli kengaytmalarni taklif qiladi. Jamoa ishida juda foydali.

2.10. Ko'rinish sozlamalari

Bular ish natijasiga ta'sir qilmaydi, lekin qulaylik uchun muhim:

json
{
  "editor.fontSize": 14,
  "editor.fontFamily": "'JetBrains Mono', 'Fira Code', Consolas, monospace",
  "editor.fontLigatures": true,
  "editor.minimap.enabled": false,
  "editor.wordWrap": "on",
  "editor.bracketPairColorization.enabled": true,
  "workbench.colorTheme": "Default Dark Modern"
}

Shriftlar: JetBrains Mono va Fira Code — dasturlash uchun maxsus shriftlar. Bepul. fontLigatures != ni ≠ ko'rinishida chiroyli ko'rsatadi.

minimap.enabled: false — o'ng tomondagi kichik xarita. Ko'pchilik uni ishlatmaydi, joy esa egallaydi.

bracketPairColorization — mos qavslarni bir rangda ko'rsatadi. Chuqur ichma-ich kodda juda foydali.


3. Tez ma'lumotnoma

Majburiy kengaytmalar

text
ms-python.python              Python
ms-python.vscode-pylance      Pylance (bilan keladi)
charliermarsh.ruff            Ruff — format + lint

Boshlovchiga foydali

text
usernamehw.errorlens          Error Lens
oderwat.indent-rainbow        indent-rainbow

Eng muhim sozlama

json
"[python]": {
  "editor.defaultFormatter": "charliermarsh.ruff",
  "editor.formatOnSave": true
}

Ruff buyruqlari

bash
ruff check .            lint
ruff check --fix .      avtomatik tuzatish
ruff format .           formatlash

Sozlama fayllari

text
.vscode/settings.json     loyiha sozlamalari
.vscode/extensions.json   tavsiya etiladigan kengaytmalar
pyproject.toml            ruff qoidalari

4. Batafsil misollar

Misol 1 — formatOnSave ni ishda ko'rish

tartibsiz.py faylini yarating va ataylab yomon formatlang:

python
import sys
import os
x={'ism':'Ali','yosh':25}
def salomlash( ism,yosh ):
    return "Salom, "+ism+"! Siz "+str(yosh)+" yoshdasiz."
print( salomlash(x['ism'],x['yosh']) )

Ctrl+S bosing. Kod darhol o'zgaradi:

python
import os
import sys

x = {"ism": "Ali", "yosh": 25}


def salomlash(ism, yosh):
    return "Salom, " + ism + "! Siz " + str(yosh) + " yoshdasiz."


print(salomlash(x["ism"], x["yosh"]))

Nima o'zgardi:

O'zgarish Sabab
Importlar alifbo tartibida source.organizeImports.ruff
' → " Ruff qo'shtirnoqni afzal ko'radi
Operatorlar atrofida bo'sh joy PEP 8
Funksiya oldida ikki bo'sh qator PEP 8
Ortiqcha bo'sh joylar olib tashlandi PEP 8

Siz hech narsa qilmadingiz. Faqat saqladingiz.

Nima ko'rsatdi: 2.1, 2.7-bo'limlar. Formatlash haqida o'ylashni butunlay to'xtatasiz.

Misol 2 — Linter nimalarni topadi

muammoli.py:

python
import os
import json


def hisobla(sonlar):
    jami = 0
    ortacha = 0
    for son in sonlar:
        jami = jami + son
    return jami


natija = hisobla([1, 2, 3])

if natija == None:
    print("Bo'sh")

Ruff topadigan muammolar:

text
muammoli.py:1:8  F401  `os` imported but unused
muammoli.py:2:8  F401  `json` imported but unused
muammoli.py:7:5   F841  Local variable `ortacha` is assigned to but never used
muammoli.py:15:4  E711  Comparison to `None` should be `cond is None`

Har birini tushuntiramiz:

  • F401 — import qilingan, lekin ishlatilmagan. Keraksiz kod, chalkashlik
  • F841 — o'zgaruvchi yaratilgan, ishlatilmagan. Ehtimol xato: ortacha ni hisoblashni unutdingiz
  • E711 — == None texnik jihatdan ishlaydi, lekin is None to'g'ri. Sababini 11-qismda o'rganamiz

Avtomatik tuzatish:

bash
ruff check --fix muammoli.py

Importlar va == None tuzatiladi. ortacha esa qolmaydi — bu mantiqiy masala, uni siz hal qilishingiz kerak.

Nima ko'rsatdi: 2.1 va 2.8-bo'limlar. Linter — kodni o'qiydigan tajribali hamkasb kabi.

Misol 3 — Tur tekshiruvchi nimani topadi

turlar.py:

python
def qosh(a: int, b: int) -> int:
    return a + b


natija = qosh("salom", 5)
print(natija)

a: int — bu tur ishorasi (type hint). U Pythonni majburlamaydi, lekin vositalar uni o'qiydi. 13-qismda batafsil.

Pylance darhol ogohlantiradi:

text
Argument of type "Literal['salom']" cannot be assigned to
parameter "a" of type "int" in function "qosh"

Ishga tushirsangiz:

text
TypeError: can only concatenate str (not "int") to str

Solishtiring:

Qachon topildi
Pylance Yozayotganda — 0 soniya
Python Ishga tushganda — dastur ishlab, xato joyiga yetgach

Katta loyihada bu farq juda katta bo'ladi: xato faqat ma'lum shartlarda yuz beradigan tarmoqda bo'lishi mumkin.

Bu — 1.3-darsdagi "dinamik turlash — tez yozish, lekin xato kech topiladi" muammosining zamonaviy yechimi.

Nima ko'rsatdi: 2.1, 2.7-bo'limlar va 1.3-darsdagi turlash mavzusi.

Misol 4 — To'liq loyiha sozlamasi

Yangi loyiha yaratamiz:

bash
mkdir ~/python-loyiha && cd ~/python-loyiha
mkdir .vscode
code .

.vscode/settings.json:

json
{
  "[python]": {
    "editor.defaultFormatter": "charliermarsh.ruff",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
      "source.fixAll.ruff": "explicit",
      "source.organizeImports.ruff": "explicit"
    }
  },
  "python.analysis.typeCheckingMode": "basic",
  "editor.rulers": [88],
  "files.trimTrailingWhitespace": true,
  "files.insertFinalNewline": true
}

.vscode/extensions.json:

json
{
  "recommendations": [
    "ms-python.python",
    "ms-python.vscode-pylance",
    "charliermarsh.ruff",
    "usernamehw.errorlens"
  ]
}

pyproject.toml:

toml
[tool.ruff]
line-length = 88
target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]

.gitignore:

text
__pycache__/
*.pyc
.venv/
venv/
muhit/
.env

Endi main.py yaratib, 1-misoldagi tartibsiz kodni yozing va saqlang. Hammasi avtomatik ishlaydi.

Bu to'plamni saqlab qo'ying. Har yangi loyihada nusxalasangiz, bir daqiqada tayyor bo'lasiz.

Nima ko'rsatdi: 2.6, 2.7, 2.8, 2.9-bo'limlar. Bu — professional loyihaning boshlanishi.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"Ko'p kengaytma — yaxshi muharrir" Aksincha. Uchtasi yetarli, ortiqchasi sekinlashtiradi
"Formatlovchi kodni buzishi mumkin" Yo'q — u faqat ko'rinishni o'zgartiradi, mantiqqa tegmaydi
"Linter — bezovta qiluvchi" U haqiqiy xatolarni topadi. Shovqin bo'lsa, qoidalarni sozlang
"Tur ishoralari Pythonni sekinlashtiradi" Yo'q — ular ishlash paytida e'tiborsiz qoldiriladi
"black va ruff — raqobatchi" ruff format black bilan deyarli bir xil. Ruff shunchaki tezroq va ko'proq narsa qiladi
"Sozlamalar shaxsiy ish" Loyiha sozlamalari Git'da bo'lsin — jamoa bir xil ishlaydi
"formatOnSave — noqulay" Bir hafta ishlating. Keyin usiz ishlay olmaysiz

6. Keng tarqalgan xatolar va yechimlari

1. formatOnSave ishlamayapti

Sabablar va tekshiruv:

text
1. Ruff kengaytmasi o'rnatilganmi?  → Ctrl+Shift+X
2. defaultFormatter to'g'rimi?      → "charliermarsh.ruff"
3. Sozlama [python] ichidami?       → tashqarida bo'lsa boshqa tilga tegishli
4. Chiqishda xato bormi?            → Output panel → "Ruff"

2. Ikki formatlovchi urishyapti — kod tinimsiz o'zgaradi

Sabab: black, autopep8, ruff — bir nechtasi yoqilgan.

Yechim: bittasini qoldiring. Qolganini o'chiring yoki defaultFormatter ni aniq belgilang.

3. Ruff juda ko'p ogohlantirish beryapti

Sabab: qoidalar to'plami keng.

Yechim: pyproject.toml da select ni cheklang:

toml
select = ["E", "F", "I"]        # eng zaruri

4. Pylance hamma joyda qizil chiziq chizyapti

Sabab: typeCheckingMode: "strict".

Yechim: "basic" ga o'tkazing. strict — tajribali dasturchi va katta loyiha uchun.

5. Sozlamalar ta'sir qilmayapti

Sabablar:

  • JSON'da vergul yetishmayapti yoki ortiqcha
  • Ish maydoni sozlamasi foydalanuvchi sozlamasini ustidan yozyapti
  • Oynani qayta yuklash kerak

Yechim: Ctrl+Shift+P → "Developer: Reload Window". JSON sintaksisini tekshiring — VS Code xatoni qizil bilan ko'rsatadi.

6. .vscode/ papkasini Git'ga qo'shishim kerakmi?

Javob: settings.json va extensions.json — ha. Bular jamoaga foydali.

launch.json (nosozlik sozlamalari) — odatda ha.

Shaxsiy narsalar (mavzu, shrift) — foydalanuvchi sozlamalarida bo'lsin, loyihada emas.

7. Ruff pyproject.toml ni ko'rmayapti

Sabab: fayl loyiha ildizida emas yoki VS Code boshqa papkani ochgan.

Yechim: 2.6-darsdagi qoida — papkani oching va pyproject.toml uning ildizida bo'lsin.


7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 2.9-dars: Error Lens xato xabarlarini o'qishni osonlashtiradi
  • 3.14-dars: PEP 8 — formatlovchi aynan shu qoidalarni qo'llaydi
  • 18-qism: nosozlik izlash — launch.json sozlamalari
  • 13-qism: tur ishoralari — Pylance to'liq kuchga kiradi
  • 19-qism: pyproject.toml to'liq — loyiha metama'lumoti, bog'liqliklar
  • 18-qism: pre-commit — commit oldidan avtomatik tekshiruv
  • 31-qism: .gitignore va jamoa sozlamalari
  • 28-qism: CI — server ham ruff check ni ishga tushiradi

8. Eng yaxshi amaliyotlar

  1. Uchta kengaytma yetarli: Python, Pylance, Ruff. Boshqasini ehtiyoj tug'ilganda qo'shing.

  2. formatOnSave ni birinchi kundan yoqing. Bu — eng yuqori foyda beradigan bitta sozlama.

  3. Loyiha sozlamalarini Git'ga qo'shing. Jamoa bir xil ishlaydi, tortishuv bo'lmaydi.

  4. typeCheckingMode: "basic" dan boshlang. Tajriba orttirgach "standard" ga o'ting.

  5. Linter ogohlantirishini o'qing, o'chirmang. Agar shovqin qilsa — qoidani sozlang, butun linterni emas.

  6. Boshlovchi bo'lsangiz Error Lens o'rnating. Xatolarni tezroq ko'rasiz va tezroq o'rganasiz.

  7. Sozlama to'plamini saqlab qo'ying. Har yangi loyihada nusxalang.


9. Amaliy topshiriq

Vazifa 1: Kengaytmalarni o'rnatish

text
1. Ruff (Astral Software)
2. Error Lens (usernamehw)

Har birini o'rnatgach VS Code'ni qayta yuklang.

Vazifa 2: Sozlamalarni qo'llash

4-misoldagi .vscode/settings.json ni loyihangizga qo'shing.

Vazifa 3: formatOnSave ni sinash

1-misoldagi tartibsiz.py ni yarating. Saqlang. Nima o'zgardi? Kamida to'rtta o'zgarishni yozing.

Vazifa 4: Linter bilan tanishuv

2-misoldagi muammoli.py ni yarating.

  1. Ruff nechta muammo topdi?
  2. ruff check --fix muammoli.py nechtasini tuzatdi?
  3. Qolganini nega tuzatmadi?
Javoblar
  1. To'rtta: ikkita F401, bitta F841, bitta E711
  2. Uchtasi: ikki import va == None → is None
  3. ortacha o'zgaruvchisi qolmaydi, chunki uni o'chirish mantiqni o'zgartirishi mumkin. Ehtimol siz uni hisoblashni unutgansiz. Linter buni hal qila olmaydi — bu sizning qaroringiz

Vazifa 5: Tur tekshiruvchini sinash

3-misoldagi turlar.py ni yarating.

  1. Pylance xatoni topdimi?
  2. Endi "basic" ni "off" ga o'zgartiring. Xato yo'qoldimi?
  3. Dasturni ishga tushiring. Nima bo'ldi?

Bu tajriba nimani ko'rsatdi?

Javob

"off" da Pylance ogohlantirmaydi, lekin xato baribir bor — u faqat ishga tushganda chiqadi.

Tur tekshiruvchi xatoni yaratmaydi, u faqat oldindan ko'rsatadi. O'chirish muammoni yashiradi, hal qilmaydi.

Bu — 1.3-darsdagi dinamik turlash mavzusining amaliy tasdiqi.

Vazifa 6: To'liq loyiha yaratish

4-misoldagi to'liq tuzilmani yarating: .vscode/, pyproject.toml, .gitignore. Keyin main.py yozib, hammasi ishlashini tekshiring.

Vazifa 7: O'ylash

Nega formatOnSave jamoa ishida shunchalik muhim? Uchta sabab o'ylab toping.

Mumkin bo'lgan javoblar
  1. Git tarixi toza bo'ladi — "faqat bo'sh joy o'zgardi" degan o'zgarishlar yo'qoladi va kod ko'rib chiqish osonlashadi
  2. Tortishuv tugaydi — "tirnoq qanday bo'lsin", "qator qancha uzun bo'lsin" degan bahslar avtomatik hal bo'ladi
  3. Kod o'qish oson — barcha fayl bir xil uslubda, miya formatga emas mantiqqa e'tibor beradi
  4. Yangi a'zo tez qo'shiladi — uslub qo'llanmasini o'qish shart emas, vosita o'zi to'g'rilaydi

Nimani mustahkamlaydi: 2.1, 2.2, 2.3, 2.7, 2.8, 2.9-bo'limlar.


Xulosa

Bu darsda VS Code'ni professional darajada sozladik.

Eng muhim uch fikr:

  1. Uchta kengaytma yetarli: Python, Pylance, Ruff. Ko'proq — sekinlik va chalkashlik.

  2. formatOnSave — eng yuqori foyda beradigan sozlama. Formatlash haqida o'ylashni butunlay to'xtatasiz va jamoada kod bir xil bo'ladi.

  3. Uch xil vosita, uch xil ish: formatlovchi ko'rinishni, linter muammolarni, tur tekshiruvchi tur xatolarini topadi. Uchalasi ham kerak, ruff + Pylance ularni qoplaydi.

Keyingi darsda nihoyat birinchi haqiqiy .py faylimizni yozamiz va uni turli usullarda ishga tushiramiz. Barcha tayyorgarlik shu daqiqa uchun edi.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!