Engineering Notes
2.46K subscribers
137 photos
5 files
208 links
Kanalda asosan backend engineeringga oid postlar yozib boriladi.

Ba'zi postlarda xatoliklar bor.
Postlar foydali bo’lgan bo’lsa adminni duo qilib qo’ying. Rahmat.

Contact: @Bobosher_Musurmonov
LinkedIn: https://www.linkedin.com/in/bobosher-musurmonov
Download Telegram
Forwarded from Programmer Humor
👍2
Netflixning backend arxitekturasini ko'rgandim, juda aqlli ishlab chiqilgan.
Hozir esa frontend qismini ko'rib yana bir marta qoyil qoldim.
Inshaalloh, bir kun kelib Netflixda ishlashni niyat qildim.

Ko'rib chiqishni tavsiya qilaman:
https://youtu.be/MxFt3YsjyQg
👍13
Forwarded from Programmer Humor
[Meme] No Title needed...
https://redd.it/swtznj

by @programmer_humor
Manetta "kotta bollani" o'yini boshlanayapti. Kuzatamiz.

P.S. O'zbekiston ham CIS davlatlariga kiradi.
#savol

database_sync_to_async(Profile.objects.get)(user=user)
Nega user=user ni get dan tashqarida yozildi?
Engineering Notes
#savol database_sync_to_async(Profile.objects.get)(user=user) Nega user=user ni get dan tashqarida yozildi?
#javob

Sababi, bu argumentni get() methodining ichiga yozsangiz get() methodi ishga tushadi va database_sync_to_async() bu funksiyadan qaytgan return valuega qarab ishlaydi.

Argumentlarni get() methodidan tashqarida bersangiz esa database_sync_to_async() funksiyasi mana shu methodni parameter sidatida oladi(sababi, u hali ishlamadi, funksiya holida turibdi) va async functionga o'tkazib beradi. Hosil bo'lgan yangi funksiyaga esa parameterlar beriladi.

Bu xuddi decoratorga o'xshash, aniqrog'i, decorator.
👍6
#savol #pycache
Assalomu alaykum, _pycache_ fayllar nega kerak, vazifasi nima?
#javob

Python interpreted language bo'lsa-da, unda ham compilingga o'xshash jarayon bo'ladi.
Avval to'liq source code bytecode deb ataluvchi instruksiyalar ketma-ketligiga o'tkazib chiqiladi.
Bu instruksiyalarni esa Python virtual machine (biz bilgan python interpreter) olib, uni execute qiladi.

Odatda, bytecode __pycache__ folderining ichidagi .pyc fayllarga yozib qo'yiladi. Xuddi shu dastur keyingi safar run qilinganda esa Python kodni yana bytecodega o'tkazib chiqmasdan, tayyor turgan bytecodeni ishlatadi. Natijada tezlik oshadi. Har safar fayllardan o'zgarish bo'lganda ular yana qaytadan bytecodega o'tkaziladi. Lekin bu ba'zida sodir bo'lmasligi mumkin va natijada kodni o'zgartirsangiz ham, eski kod run bo'laveradi.
👍6
#savol
Can anybody explain in simple words to me
What does INCLUDE does in CREATE INDEX?
#javob

It includes non-index column values to the actual index (b-tree).

Let's say you have a table named "users" with id, name and a bunch of other columns.
If you include name column in the index on id field:
CREATE INDEX
idx_user_id_include_name
ON users(id)
INCLUDE name;

Each time you query that uses this index and only asks for the columns on the index:
SELECT id, name 
FROM users
WHERE id = 1;
PostgreSQL doesn't necessarily go to the actual table after finding the required row, since it can find both id and name field on the index. This is called index-only scan.

If you query some other columns (let's say age), PostgreSQL first finds the required row id from the index and go to that row on the table to get age value, since it's not presented on the index. Searching on the index and fetching from the actual table. This is called index scan.
👍2
#savol
Djangoda fayllarni to'g'ridan-to'g'ri DBda saqlash mumkinmi?
Buning qanday kamchiliklari bor?
*qisqartirildi
Engineering Notes
#savol Djangoda fayllarni to'g'ridan-to'g'ri DBda saqlash mumkinmi? Buning qanday kamchiliklari bor? *qisqartirildi
#javob

Django default holatda fileni DBga yuklamaydi. Bu uchun alohida file system ishlatadi. Ya'ni mediafilelar serverda(yoki cloudda) ko'rsatilgan biror directoryda saqlanadi va DBda faqat o'sha files olib boradigan path saqlanadi. Client fileni so'raganda esa DB fileni bermasdan, uning turgan joyini ko'rsatib, "faylni o'sha yerdan topasan" deydi. File aytilgan joydan topilmasa, DB aybni bo'yniga olmaydi ))

Siz so'rayotgan narsa esa BLOB deyiladi, ya'ni katta fileni to'g'ridan to'g'ri DBda saqlash(aslini olganda, bunda ham file tableda saqlanmaydi).
BinaryField orqali djangoda ham BLOB sifatida ishlatishingiz mumkin.

BLOBning men biladigan kamchiliklari:
— Nisbatan sekin. File "cherez baza" uzatiladi.
— Katta filelarni backup qilish qiyin.
— Cache qilish qiyin.

Lekin masalan, softwareni boshqa serverga migrate qilayotganda juda qo'l keladi.
👍5
#savol

Shu error nimadan kelib chiqvoti?

psycopg2.InterfaceError: connection already closed
Engineering Notes
Photo
#javob

Connectionni MainDB objectni initialize qilayotganda ochmang.
Hozir siz MainDBdan object olganda connection ochayapsiz.
Bir method orqali query yuborganda with context manager orqali connectiondan foydalanib, keyin uni yopib chiqib ketayapsiz.
Keyingi safar query yubormoqchi bo'lganingizda connection yopilgani sabab error berayapti.

Yoki har bitta query uchun alohida connection ishlating, yoki (agar bitta connectionni doim ishlatmoqchi bo'lsangiz) with ishlatmang, sababi u kod execute bo'lganidan keyin connectionni yopadi.
👍5
Ajoyib mantiqiy savol o'qib qoldim, siz ham yechishga harakat qilib ko'ring:

Sizda ikkita bir xil bo'lmagan arqon bor va har biri to'liq yonishi uchun aynan bir soat vaqt talab qiladi. Lekin arqonning zichligi hamma joyida bir xil emas. Arqonni teng ikkiga bo'lsak, birinchi yarmi 20 minutda, ikkinchi yarmi 40 minutda yonishi ham mumkin.

Savol: shu ikki arqondan foydalanib, qanday qilib aynan 15 daqiqa vaqtni o'lchash mumkin?
Forwarded from Uz Python Meetup (Hojarbu)
'Hello World!'

Siz dasturchimisiz? Python tilida kod yozasizmi?
Unda bu post aniq siz uchun! 🤩

Aprel oyining 17-sanasida Uzdjango developers community tomonidan navbatdagi "Python MeetUp" tashkillashtirilmoqda.

👉 @UzPythonMeetup

MeetUp davomida Siz:
⚡️Pythonda yaratilgan applarni deploy qilish uchun platformalar va instrumentlar;
⚡️Memory Management in Python;
⚡️Python testing tools;
⚡️Sun’iy intellekt yordamida ovozni tanish texnologiyalari;
⚡️Pythonda GIL va konkurrensiya va boshqa qiymatli ma'lumotlarga ega bo'lasiz.

Ha aytgancha, boshqa hamkasb dasturchilar va ish beruvchi kompaniyalar bilan tanishishga ham tayyor bo'ling!

Ro'yxatdan o'tish va manzilni bilish uchun navbatdagi e'lonlarimizni kuzatib boring!

Uzoq kutilgan MeetUpda ko'rishguncha! 😉