voidp


Kanal geosi va tili: O‘zbekiston, O‘zbekcha


Back End Developer at @uicgroup
TTPU 4/4
Python developer who loves System Programming.
Ba'zida shaxsiy fikrlar. Eslatmalar birinchi navbatda o'zim uchun.

Связанные каналы

Kanal geosi va tili
O‘zbekiston, O‘zbekcha
Statistika
Postlar filtri


#db
💣 SQLda GROUP BY qanday ishlaydi?
GROUP BY clause'ni bir so'z bilan tushuntirish qiyin, yoki tushunarsiz bo'ladi - guruhlash. Nimani guruhlash, qanday guruhlash?

Aytaylik bizda film va actor nomli jadvallar hamda ularni birlashtiruvchi film_actor many2many jadvali mavjud. Va biz har bir actor nechtadan filmda qatnashganini bilmoqchimiz. U holda biz film va film_actor jadvallarini join qilib, actorning idsi bo'yicha guruhlashimiz kerak. Agar har bir actor har bir turli reytingdagi filmlarda nechtadan qatnashganini bilmoqchi bo'lsak esa actor idsi hamda rating bo'yicha guruhlaymiz.

Bu bir qarashda secret ko'rinsa ham, aslida db server orqa fonda GROUP BY clauselarini tuple sifatida qabul qilib (masalan (actor_id, rating)), ularni hashlab har bir hashni jadval bo'ylab sanab chiqadi: oddiy hashtable logika! Agar guruhlanayotgan tuple indexlangan bo'lsa, yanada tezroq - bitta yurib chiqishda guruhlashi mumkin.

Indexlar haqida esa tez orada...


@voidplog


ChatGPT hammangizni ishingizni olib qo'yadi deb valaqladi Sam Altman. Deepseek GPTning ishini olib qo'yganini ko'rdik.

Shuning uchun eyay peyay deb hype qilmasdan fundamentallarni bosish kerak. Shu eyayingni tagida ham fundamentallar yotibdi, yana engineerlarga sakraysan. Bir kun shu eyayingni serveri qulasinchi kim yordamga kelarkin. Xitoy 6 mln ga qurgan bo'lsa bizam qura olamiz, muhimi o'zingniki bo'lishi!

@voidplog




Agar ishxonangiz 24/7 ishlasa, kuniga kamida 14 soat ishlashdan sizni nima to'syapti, qirol?

Bahona topmang, 90% dangasalik. Comfortdan chiqishni istamaslik, xavotir va jurʼatsizlik. Lekin if nothing changes, nothing changes.

@voidplog


#db
🎾 Database bilan ishlaganimizda joinlar bizga har qadamda kerak bo'ladi va ko'pincha hatto join qilayotganimizni-da bilmay ORM konstruksiyalari bilan "nimadirlar" qilib tashlaymiz.

❓ Lekin shu orqa fonda turgan Join o'zi qanday ishlaydi? Qanday qilib postgres kabi database serverlar millionlagan qatorlik jadvallar uchun yozilgan querylarga juda qisqa vaqtda efficient javob beradi? Buning uchun u qanday algorithmlar ishlatadi?

🗞 Qisqa postda mazkur mavzuga biroz to'xtaldim. Garchi juda chuqur emas, biroq ishonamanki shuning o'zi ham tasavvurimizni kengaytirib, ish unumdorligimizni oshira oladi. Shuningdek juda chuqur kirish uchun hali ko'p DSA o'rganish kerak ekan :)

👉 Post linki

@voidplog


#db
🧨 SQL practice qilish uchun eng zo'r tayyor database'lardan biri Sakila DB - DVD sotuvchi kompaniya tizimi. Hozirgi kun miqyosida streaming servis deb tasavvur qilish mumkin.

🔗 https://github.com/jOOQ/sakila

PostgreSQL uchun ham bor. Setup qilish uchun:

$ psql -U postgres
postgres=# create database sakila_db;
postgres=# \q

$ psql -U postgres -d sakila_db -f

@voidplog


#book
📚 Books/Docs to Read in upcoming months

Concrete:
🟢 Django official documentation
📙 Fluent Python by Luciano Ramalho
📓 Python Cookbook by D. Beazley
📕 Learning SQL by Alan Beaulieu
📘 SQL Cookbook by Anthony Molinaro
⚡️ FastAPI documentation (again)
📕 DSA in Python by Michael Goldrich

Approximate:
- Head First Object Oriented Design
- Head First Design Patterns
- FastAPI Cookbook


@voidplog


#django #db
⭐️ SQL ni zo'r o'rganishni bitta ajoyib yo'li bor. Django ORMga imitate qiladigan ORM yasash kerak. Yasaganda ham uning complex querylari, filtering fichalarini 100% implement qilish kerak.

Ko'rimizga oddiy ko'rinadigan Comment.objects.filter(post__name="Post 1") querysi orqa fonda INNER JOIN va WHERE ishlatishini bilmasmiz ehtimol.

@voidplog


2 xil qarash
- O'yinda baribir yutqazsam o'ynab nima zaril? Kel boshidan taslim bo'lib qo'yaqolay! Men yo yutaman yo o'ynamayman.

- O'yinda baribir yutqazar ekanmiz, nima qilibdi bir o'ynab ko'raylik. Baribir yutqazar ekanmiz, yutqazishdan qo'rqmay bemalol harakat qilsak ham bo'ladiku!

Qaysi biri yaxshi?


@voidplog


#python
🦆 Static tillarning yomon tushi - Duck typing!
Nima uchun bizga interfeyslar kerak emas? Nima uchun abc modulining o'zi yetarli?

Pythonda ma'lum objectning data type yoki qaysi classdan kelgani umuman muhim emas, asosiysi u qanday methodlarni implement qilishidir (rasmda).

Ko'rinib turibdiki, funksiya ishlashi uchun object albatta Duckning instanci bo'lishi shart emas, quack qilishni bilsa bo'ldi! (Shu yerda interface esizga tushmadimi? Ayniqsa Gopherlar nimanidir sezdi :))

Xulosa qilsak, o'zim ham static til muxlisi sifatida, bu narsa ulkan flexibility berishi bilan birga runtime overheadga ham olib keladi. Bu esa menga ham yoqmaydi.


@voidplog


#python
🥊 Interfaces vs Abstract Classes
Menda shunday savol paydo bo'lgandi: Interfeyslar implementationi yo'q method e'lon qilsa, abstract class ham xuddi shu kabi abstract method va concrete method ham e'lon qilsa, bu ikkisi nimaga 2 ta? Nimaga bitta emas, qaysi qachon kerak?

Va olgan xulosalarimni bo'lishaman.
📌 Interface bu xuddiki maxsus protokol. Classga nima qilish kerakligini aytadi, lekin qanday qilishni aytmaydi. Bir class bir nechta interface implement qilishi mumkin, lekin unda instance variablelar bo'lmaydi.

📌 Abstract class esa xuddiki bir template. Maqsadi classlar o'rtasida umumiy kodni share qilishdan iborat. Ya'ni, u protokol emas, abstract metodlar bilan birga concrete metodlari ham mavjud va bir necha class uchun umumiy metodlar yozish mumkin. Plus, ularda constructor va instance variablelar bo'ladi.


❓ Python nima uchun ikkita conceptni bitta qilib yuborgan unda?
Keyingi post...

@voidplog


#python
Mustaqil o'z web serverimizni, ORM yoki web frameworkimizni qurish uchun bizga eng ko'p nima kerak bo'ladi?

To'g'ri, OOP. Lekin yana bir narsa bor: Metaprogramming. Metaprogramming haqida RealPython learning pathida o'qish mumkin.

@voidplog


Otabek Kholmirzaev | IT blog dan repost
Want to be a backend architect?

Please learn:

1. Microservices Design
Service decomposition, Bounded contexts, Resilience (Circuit Breaker, Bulkheads)

2. Distributed Systems Fundamentals
CAP Theorem, Event sourcing, CQRS, Data consistency models (ACID vs. BASE)

3. High-Performance Data Management
Database partitioning, Index optimization, NoSQL data modeling

4. Advanced API Design
gRPC, GraphQL, API Gateways, Asynchronous APIs

5. Event-Driven Architecture
Kafka, Message queues, Pub/Sub patterns, Saga pattern

6. Cloud-Native Patterns
Container orchestration (Kubernetes), Serverless, Multi-cloud strategies

7. Observability
Distributed tracing (OpenTelemetry), Centralized logging (ELK), Real-time monitoring

8. Infrastructure as Code
Terraform, Helm, Configuration management best practices

9. Advanced Security
Zero Trust, OAuth2, JWT, Data encryption in transit and at rest

10. Scaling Strategies
Load balancing, Sharding, Horizontal vs. vertical scaling

Source: link


#python
🐍 Interfaces in Python?
Rasmda Pythonda abstract class va (15 takam) interface implement qilib ko'rdik. Pythonda interface yo'q, abstract class orqali simulyatsiya qilamiz.

Pythonic usullar zo'r bo'lishi bilan birga haqiqiy OOP dan bizni chalg'itadi. Shu sabab o'ngdagi rasmda xuddi shu kod Javadagi implementatsiyasi.

#pychallenge3

@voidplog


🎯 Xo'sh, qayerdan qayerga ketyapmiz?
Fluent Pythonni o'qib ko'rib, collections module bo'yicha practice kerakligini tushundim. Uning classlarini tushunish uchun Design Patternlarni bilish kerak. Design Patternlar uchun avval OOP solid bo'lishi shart. Zanjir reaksiyasi 🔗

1️⃣ Phase 1: OOP and Design Patterns
- OOP basic bilimlarni mustahkamlash, Pythonic usullarda practice qilish;
- Abstract classlar bilan practice qilish. abc moduli bo'yicha ishlash;
- Creational Patterns: Factory, Singleton, Builder
- Structural Patterns: Adapter, Decorator, Facade
- Behavioral Patterns: Observer, Strategy, Command

Keyingi fazalar bosqichma-bosqich, har successful completion paytida chiqib boradi.


#pychallenge3

@voidplog


🏆 Python Challenge 3
3 oy oldin boshlashni aytgan va uzoq kutilgan challenge endi boshlanadigan bo'lmoqda. U paytda hali Odoo'da edik, va o'z navbatida skill issuelarni fix qilishga vaqt biroz tig'iz edi.

🎯 Xullas, endi upcoming bir necha oy uchun focusni narrowlashtiramiz.
❌ C/C++
❌ Rust
✅ Python

📚 Asosiy manbalar:
- 'https://t.me/pyuz_challenge/11/277' rel='nofollow'>Fluent Python
- 'https://t.me/pyuz_challenge/11/49' rel='nofollow'>Python Cookbook
- 'https://t.me/pyuz_challenge/11/290' rel='nofollow'>Data Structures and Algorithms in Python

⌛️ Previous challenges:
- Python Challenge 1
- Python Challenge 2

Shunday qilib kanalda Python postlar ko'payadi. C dan 21 taga ortda qolayotgan Python yana yetib olsa hayron qolmayman.


@voidplog


#p
Kompim 5 yoshlik tug'ilgan kuniga yaqinlashar ekan, tarixda birinchi marta battery capacity (ёмкость) 80% dan pastga tushdi.

Afsus, komplarning umri juda qisqa. Men kabi komplarni sevadigan odam uchun bu o'ziga xos og'ir. Lekin hayot beshavqat, yangi komp uchun harakat boshlash kerak.

@voidplog


Algorithms in C - Sedgewick 1998 (3rd edition).pdf
36.0Mb
#book #c
📗 Algorithms in C

©️ Robert Sedgewick
📆 1998

C turkumidagi kitoblarni davom ettiramiz. Har bir data struktura va algorithmni pure C da implement qilingan bu kitob eng zo'r DSA kitoblardan biri hisoblanadi. Old but gold.

@voidplog


#p
Meningcha haqiqiy erkinlik bu:
- nafsdan mustaqil qaror erkinligi
- boshqalar nima deyishidan mustaqil harakat erkinligi
- o'zlikni tinmay yerga uruvchi perfeksionizmdan mustaqil fikr erkinligi
- ichki qo'rquvni yenggan asl kuch erkinligi

Panda Poning otasi aytganidek,
Sirli masalliqning o'zi yo'q. Hamma gap o'zingda.


@voidplog


Fluent_C_Principles,_Practices,_and_Patterns_Christopher_Preschern.pdf
7.3Mb
#book #c
📕 Fluent C - Principles, Practices and Patterns
©️ Christopher Preschern
📆 2022

C language bo'yicha skillarimizni up qilish uchun zo'r kitob ekan. Unda C ni o'zi emas, uni qanday professional ishlatish, maxsus fichalar va optimizatsiyalar haqida so'z ketadi. Qizig'i, data lifetime and ownership degan mavzu ham bor ekan.

@voidplog

20 ta oxirgi post ko‘rsatilgan.