You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/01-srp/README.uz.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,20 +10,20 @@ permalink: /uz/01-srp/
10
10
11
11
# Single Responsibility Principle (SRP)
12
12
13
-
> Har bir class faqat **bitta o'zgarish sababiga** ega bo'lishi kerak.
13
+
> Har bir klass faqat **bitta o'zgarish sababiga** ega bo'lishi kerak.
14
14
15
-
Har bir class yoki modul **bitta vazifani** bajarishi lozim.
16
-
Agar bitta class bir nechta vazifani bajara boshlasa (masalan, biznes-logika, ma'lumotlarni saqlash, formatlash), ulardan birortasi o'zgarganda butun class'ni qayta yozish va test qilish kerak bo'ladi.
15
+
Har bir klass yoki modul **bitta vazifani** bajarishi lozim.
16
+
Agar bitta klass bir nechta vazifani bajara boshlasa (masalan, biznes-logika, ma'lumotlarni saqlash, formatlash), ulardan birortasi o'zgarganda butun klassni qayta yozish va test qilish kerak bo'ladi.
17
17
18
18
## Diagramma
19
19
20
20
<palign="center">
21
-
<imgsrc="{{ site.baseurl }}/assets/01-srp.png"width="700"alt="SRP class diagramma"style="border-radius: 12px;" />
21
+
<imgsrc="{{ site.baseurl }}/assets/01-srp.png"width="700"alt="SRP klass diagrammasi"style="border-radius: 12px;" />
22
22
</p>
23
23
24
24
## Noto'g'ri yondashuv
25
25
26
-
[`violation.py`](violation.py) dagi `Order`class'i uchta turli vazifani bajaradi:
26
+
[`violation.py`](violation.py) dagi `Order`klassi uchta turli vazifani bajaradi:
27
27
28
28
-**Narxni hisoblash** — buyurtma summasini hisoblash
29
29
-**Chegirma** — biznes-qoidalari bo'yicha chegirma qo'llash
@@ -38,13 +38,13 @@ class Order:
38
38
self.save()
39
39
```
40
40
41
-
Chegirma qoidalari, narx formulasi yoki saqlash tizimi o'zgarganda — aynan shu bitta class'ni o'zgartirish kerak bo'ladi.
41
+
Chegirma qoidalari, narx formulasi yoki saqlash tizimi o'zgarganda — aynan shu bitta klassni o'zgartirish kerak bo'ladi.
42
42
43
43
## To'g'ri yondashuv
44
44
45
-
[`correct.py`](correct.py) dagi har bir vazifa alohida class'ga ajratilgan:
45
+
[`correct.py`](correct.py) dagi har bir vazifa alohida klassga ajratilgan:
46
46
47
-
|Class| Vazifasi |
47
+
|Klass| Vazifasi |
48
48
|-------|----------|
49
49
|`Order`| Buyurtma ma'lumotlarini saqlaydi |
50
50
|`PriceCalculator`| Umumiy narxni hisoblaydi |
@@ -63,4 +63,4 @@ class Order:
63
63
OrderRepository.save(self)
64
64
```
65
65
66
-
Endi har bir class'ning**faqat bitta o'zgarish sababi** bor va ularni mustaqil ravishda test qilish, kengaytirish yoki almashtirish mumkin.
66
+
Endi har bir klassning**faqat bitta o'zgarish sababi** bor va ularni mustaqil ravishda test qilish, kengaytirish yoki almashtirish mumkin.
Copy file name to clipboardExpand all lines: docs/03-lsp/README.uz.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,28 +10,28 @@ permalink: /uz/03-lsp/
10
10
11
11
# Liskov Substitution Principle (LSP)
12
12
13
-
> Subtype'lar o'zining base type'lari**o'rnida ishlatilganda** dasturning to'g'ri ishlashiga ta'sir qilmasligi kerak.
13
+
> Quyi turlar (subtype'lar) asosiy turlar (base type'lar)**o'rnida ishlatilganda** dasturning to'g'ri ishlashiga ta'sir qilmasligi kerak.
14
14
15
-
Agar kod base class bilan ishlasa, uning istalgan subclass'i bilan ham to'g'ri ishlashi shart — kutilmagan xatti-harakatlar bo'lmasligi kerak.
15
+
Agar kod asosiy klass bilan ishlasa, uning istalgan subklassi bilan ham to'g'ri ishlashi shart — kutilmagan xatti-harakatlar bo'lmasligi kerak.
16
16
17
17
## Diagramma
18
18
19
19
<palign="center">
20
-
<imgsrc="{{ site.baseurl }}/assets/03-lsp.png"width="700"alt="LSP class diagramma"style="border-radius: 12px;" />
20
+
<imgsrc="{{ site.baseurl }}/assets/03-lsp.png"width="700"alt="LSP klass diagrammasi"style="border-radius: 12px;" />
21
21
</p>
22
22
23
23
## Noto'g'ri yondashuv
24
24
25
-
[`violation.py`](violation.py) dagi `Square`class'i`Rectangle`'dan meros oladi va setter'larni override qiladi — width va height doimo teng bo'lishi uchun. Bu `Rectangle`'ning xatti-harakat shartnomasini buzadi:
25
+
[`violation.py`](violation.py) dagi `Square`klassi`Rectangle`'dan meros oladi va setter'larni override qiladi — width va height doimo teng bo'lishi uchun. Bu `Rectangle`'ning xatti-harakat shartnomasini buzadi:
Copy file name to clipboardExpand all lines: docs/04-isp/README.uz.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,20 +10,20 @@ permalink: /uz/04-isp/
10
10
11
11
# Interface Segregation Principle (ISP)
12
12
13
-
> Klientlar o'zlari **ishlatmaydigan**interface'larga bog'liq bo'lmasligi kerak.
13
+
> Klientlar o'zlari **ishlatmaydigan**interfeyslarga bog'liq bo'lmasligi kerak.
14
14
15
-
Katta, bir butun interface'larni**kichik va aniq**interface'larga ajratish lozim.
16
-
Har bir class faqat o'ziga tegishli metodlarni implement qilishi kerak.
15
+
Katta, bir butun interfeyslarni**kichik va aniq**interfeyslarga ajratish lozim.
16
+
Har bir klass faqat o'ziga tegishli metodlarni implement qilishi kerak.
17
17
18
18
## Diagramma
19
19
20
20
<palign="center">
21
-
<imgsrc="{{ site.baseurl }}/assets/04-isp.png"width="700"alt="ISP class diagramma"style="border-radius: 12px;" />
21
+
<imgsrc="{{ site.baseurl }}/assets/04-isp.png"width="700"alt="ISP klass diagrammasi"style="border-radius: 12px;" />
22
22
</p>
23
23
24
24
## Noto'g'ri yondashuv
25
25
26
-
[`violation.py`](violation.py) dagi bitta katta `Worker`interface'i barcha implementor'larni`work()`, `eat()` va `sleep()` metodlarini yozishga majbur qiladi:
26
+
[`violation.py`](violation.py) dagi bitta katta `Worker`interfeysi uni implement qiluvchi barcha klasslarni`work()`, `eat()` va `sleep()` metodlarini yozishga majbur qiladi:
27
27
28
28
```python
29
29
classWorker(ABC):
@@ -37,7 +37,7 @@ class Worker(ABC):
37
37
defsleep(self) -> str: ...
38
38
```
39
39
40
-
`Robot` ovqatlanmaydi va uxlamaydi, lekin interface uni bu metodlarni yozishga majbur qiladi:
40
+
`Robot` ovqatlanmaydi va uxlamaydi, lekin interfeys uni bu metodlarni yozishga majbur qiladi:
41
41
42
42
```python
43
43
classRobot(Worker):
@@ -50,15 +50,15 @@ class Robot(Worker):
50
50
51
51
## To'g'ri yondashuv
52
52
53
-
[`correct.py`](correct.py) da esa katta interface uchta kichik interface'ga ajratilgan:
53
+
[`correct.py`](correct.py) da esa katta interfeys uchta kichik interfeysga ajratilgan:
54
54
55
-
|Interface| Metod |
55
+
|Interfeys| Metod |
56
56
|-----------|-------|
57
57
|`Workable`|`work()`|
58
58
|`Eatable`|`eat()`|
59
59
|`Sleepable`|`sleep()`|
60
60
61
-
Har bir class**faqat o'ziga kerakli**interface'larni implement qiladi:
61
+
Har bir klass**faqat o'ziga kerakli**interfeyslarni implement qiladi:
62
62
63
63
```python
64
64
classHuman(Workable, Eatable, Sleepable):
@@ -69,4 +69,4 @@ class Robot(Workable): # eat() va sleep() talab qilinmaydi
69
69
returnf"Robot {self.model} is working"
70
70
```
71
71
72
-
Faqat ishchi kerak bo'lgan funksiya `Workable`interface'ini qabul qiladi — keraksiz `eat()` yoki `sleep()` metodlariga bog'liq bo'lmaydi.
72
+
Faqat ishchi kerak bo'lgan funksiya `Workable`interfeysini qabul qiladi — keraksiz `eat()` yoki `sleep()` metodlariga bog'liq bo'lmaydi.
Copy file name to clipboardExpand all lines: docs/index.uz.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,21 +17,21 @@ permalink: /uz/
17
17
SOLID — Robert C. Martin (Uncle Bob) tomonidan taqdim etilgan beshta dizayn tamoyilining qisqartmasi.
18
18
Bu tamoyillar dasturchilarga oson kengaytiriladigan, tushunarli va qo'llab-quvvatlanadigan kod yozishga yordam beradi.
19
19
20
-
Har bir tamoyil **noto'g'ri yondashuv** va **to'g'ri yechim** ko'rinishida, UML class diagramma bilan birga ko'rsatilgan.
20
+
Har bir tamoyil **noto'g'ri yondashuv** va **to'g'ri yechim** ko'rinishida, UML klass diagrammasi bilan birga ko'rsatilgan.
21
21
22
22
## Tamoyillar
23
23
24
24
| # | Tamoyil | Tavsif |
25
25
|---|---------|--------|
26
-
|**S**|[Single Responsibility (SRP)]({{ site.baseurl }}/uz/01-srp/) | Har bir class faqat bitta vazifaga ega bo'lishi kerak |
26
+
|**S**|[Single Responsibility (SRP)]({{ site.baseurl }}/uz/01-srp/) | Har bir klass faqat bitta vazifaga ega bo'lishi kerak |
27
27
|**O**|[Open/Closed (OCP)]({{ site.baseurl }}/uz/02-ocp/) | Kengaytirish uchun ochiq, o'zgartirish uchun yopiq |
28
-
|**L**|[Liskov Substitution (LSP)]({{ site.baseurl }}/uz/03-lsp/) |Subtype'larbase type o'rnida ishlatilishi mumkin bo'lishi kerak |
29
-
|**I**|[Interface Segregation (ISP)]({{ site.baseurl }}/uz/04-isp/) | Klientlar o'zlariga kerak bo'lmagan interface'larga bog'liq bo'lmasligi kerak |
30
-
|**D**|[Dependency Inversion (DIP)]({{ site.baseurl }}/uz/05-dip/) | Konkret class'larga emas, abstraktsiyalarga bog'laning |
28
+
|**L**|[Liskov Substitution (LSP)]({{ site.baseurl }}/uz/03-lsp/) |Quyi turlar (subtype'lar) asosiy turlar (base type'lar) o'rnida ishlatilishi mumkin bo'lishi kerak |
29
+
|**I**|[Interface Segregation (ISP)]({{ site.baseurl }}/uz/04-isp/) | Klientlar o'zlariga kerak bo'lmagan interfeyslarga bog'liq bo'lmasligi kerak |
30
+
|**D**|[Dependency Inversion (DIP)]({{ site.baseurl }}/uz/05-dip/) | Konkret klasslarga emas, abstraktsiyalarga bog'laning |
31
31
32
32
## Misollarni ishga tushirish
33
33
34
-
Har bir fayl mustaqil script hisoblanadi. Istalgan misolni to'g'ridan-to'g'ri ishga tushiring:
34
+
Har bir fayl mustaqil skript hisoblanadi. Istalgan misolni to'g'ridan-to'g'ri ishga tushiring:
0 commit comments