Davronbek SWE 🪐
936 subscribers
578 photos
113 videos
66 files
446 links
- Loyihalardagi xatoliklar va ularni xal qilishdagi ba'zi tavsiyalarni ulashib boraman.

Don't be shy, say hi 👋 | @firdavs_dev | davronbekdev.uz
Download Telegram
EPAM kabi companylarda interview jarayonida suralish ehtimoli mavjud bo’lgan mavzular (sinior akalar tavsiyasi 😉)

VCS - git merge vs git rebase
Docker, Conterinization - Image, Container, Volume
WEB - REST API, Django architecture
DataBase - Index , Inner Join
CI/CD
Python Types and Operations - Dictionaries, is vs ==, mutable vs immutable, copy vs deepcopy
Algorithms - Complexity
Functions in Python
Memory managemen - Ref counting
Multitasking - GIL, Thread vs process
OOP in Python - Encapsulation, Data hiding


1. Dictionaries in depth. Hash, hash function and its properties. Hashing vs. encrypting. Good reference material on how dictionaries work:https://stackoverflow.com/questions/327311/how-are-pythons-built-in-dictionaries-implemented
2. Decorators in depth. To see into what is decorator is and how it works. How to decorate function without using '@'. The same for parametrized decorators.(https://realpython.com/primer-on-python-decorators/)
3. Figure out how does inheritance in Python work. What is diamond problem. What is MRO. Difference between New Style Classes and Old Style Classes. C3 algorithm. Be able to calculate MRO of large inheritance tree on blackboard or paper(https://blog.pilosus.org/posts/2019/05/02/python-mro/).
4. reference counting (https://towardsdatascience.com/understanding-reference-counting-in-python-3894b71b5611)
5. Garbage collecting in python (https://pythoninternal.wordpress.com/2014/08/04/the-garbage-collector/)
6. Figure out what is scope and how LEGB rule works. (https://python-scripts.com/scope )
7. Algorithms complexity - https://introprogramming.info/english-intro-csharp-book/read-online/chapter-19-data-structures-and-algorithm-complexity/
8. Data hiding - https://www.upgrad.com/blog/data-hiding-in-python/#:~:text=Data%20hiding%20in%20Python%20is,and%20hides%20them%20from%20users.
9. Python GIL (http://www.dabeaz.com/GIL/)

I can suggest to take a look at this books:

* "Clean Code: A Handbook of Agile Software Craftsmanship" (Robert C. Martin )
* "Clean Architecture: A Craftsman's Guide to Software Structure and Design" (Robert C. Martin )
* "Clean Coder, The: A Code of Conduct for Professional Programmers " (Robert C. Martin )
Python:
* Programming Python ( Mark Lutz )
* "Learning Python" by Mark Lutz
* "Python Cookbook" by Brian Jones, David Beazley
* "Fluent Python" by Luciano Ramalho
More complex books:
* "Python Tricks: The Book A Buffet of Awesome Python Features" (Den Baden)
* "Clean Code in Python: Refactor your legacy code base" (by Mariano Anaya)
* "CPython Internals" (Anthony Shaw)

linkedin courses:
* https://www.linkedin.com/learning/effective-serialization-with-python/serialization-with-python
* https://www.linkedin.com/learning/python-parallel-and-concurrent-programming-part-1/learn-parallel-programming-basics
*https://www.linkedin.com/learning/python-parallel-and-concurrent-programming-part-2/learn-parallel-programming-basics?u=2113185
*https://www.linkedin.com/learning/python-code-challenges/put-your-python-skills-to-the-test?u=2113185»


@davron_dev
MALUMOTLAR_BAZASINI_LOYIHALASH (1).pdf
333.3 KB
SQLda uzb contentda biroz izlanish qilayotgan edim. 📕

Shu yerda turib tursin arxiv bulib kerak buladi.

P/s uzizda bor DBga oid uzb content bulsa comentda qoldirishingiz mumkin 👇
Optimize Django response time.

Erta tongdan miya qabul qilish darajasi yuqori buladi deyishar edi. 🤓 📈

More: https://youtu.be/vYWPnzhDpTo

* https://youtu.be/qDyxmgWkjvI
* https://youtu.be/a-sfr6y_hY8
* https://youtu.be/XXG-ESzB9Q8
* https://youtu.be/7CEsc-GgLyg
#useful_tip (2016)

Things You Must Know About Django Admin As Your App Gets Bigger

p/s Eski article bulishi mumkin lekin ko'p narsalar uncha o'zgarishlar yo'q hozirgi versiyalarda

More: https://hakibenita.com/things-you-must-know-about-django-admin-as-your-app-gets-bigger
Forwarded from JR TwitGram 🥂
Dasturlash bo'yicha savol-javob kodeksi.pdf
11.1 MB
Mohirdevdagilar Dasturlash bo’yicha savol javob kodeksini ishlab chiqishgan ekan. Ayniqsa endi o’rganayotganlar uchun foydali
“Happy Eid” 🌙🎉

Assalomu alaykum
Ramazon hayiti muborak bo'lsin do’stlar! Qilgan duolarizni, tutgan ro’zalaringizni alloh qabul qilsin. 🤲

Dam olish kunlardan unumli foydalangan holda yangi texnalogiyalar o’rganib ular ustida amaliyot qilshda davom etamiz
📚

#happy_eid
Python + Kafka video 🔥

Kafka orqali uz loyhalarizga producer va consumerlar yaratish orqali performance sezilarli darajada tasir o’tkazishingiz mumkin bo’ladi 🤓

More: https://youtu.be/qi7uR3ItaOY
Redis caching(keshlash)ni loyiha optimizatsiya qilishda o’rni beqiyos. Redis to’g’ri sozlansa, foydalanuvchi so’rov yuborganda, so’ralgan ma’lumotni nechadir soniyalarda emas, millisoniyalarda taqdim etsa bo’ladi. Ammo doimgidek to’g’ri sozlashni ham bilish kerak.

Caching (keshlash) ishlatayotganda juda ehtiyotkor bo’lib ishlating. Avvalo u sizga qanchalik zarur va dasturning aynan qaysi qismlariga ishlatmoqchisiz, shuni aniqlab oling. Cachingni har bir foydalanuvchiga alohida ma’lumot yuboruvchi endpointlarga qo’llash unchalik ham to’g’ri ish emas, agar to’g’ri sozlay olmasangiz foydalanuvchi so’ragan ma’lumotni emas, boshqa ma’lumotni jo’natib qo’yishingiz ham mumkin.

Barchaga umumiy bo’lgan ma’lumotlar uchun, bir muncha vaqt oladigan murakkab hisob kitobni talab qiladigan sahifalar va sekinroq javob qaytadigan tashqi API larga bog’langan qismlarga Caching ishlatish ish unumdorligini oshirib, javob qaytish vaqtini karrasiga kamaytirib beradi.

Cache Invalidation ni to’g’ri sozlang. Bu eski ma’lumotlarni keshdan o’chirib tashlash jarayoni. Caching ishlatganda, qanchadir muddatdan so’ng keshlangan ma’lumot o’chib ketishini ta’minlash uchun expiration time (yaroqlilik muddatini) belgilang. Aks holda eski ma’lumotni foydalanuvchiga yuborishingiz mumkin va eski keshlangan ma’lumotlar yig’ilib, xotiradan unumli foydalanishingizga to’sqinlik qiladi.

Expiration time ham eng ideal yechim emas, misol uchun siz har 25 daqiqada keshlangan ma’lumotni o’chirib tashlaydigan qilgansiz, lekin ma’lumotlar bazasida siz cachingda ishlatgan Model(DB table) yangilandi yoki biror bir ma’lumot o’chirib tashlandi va tabiiyki sizning kesh xotirangiz bu aks etmaydi. Buni oldini olish uchun esa Django signal dan foydalanishni tavsiya qilaman. Post_save va post_delete signallari orqali kerakli modellarni ulab, ular o’zgargan vaqtda redis cachingni o’chirib tashlaydigan funksiya yozsangiz bo’ladi.

@receiver([post_save, post_delete], sender=Products)
def
product_invalidate_cache(sender, instance, **kwargs):
cache_key = {'
product_key’: str(instance.id)}
cache_key_str = json.dumps(cache_key)
redis.delete(cache_key_str)


Caching ni to’g’ri sozlay olsangiz, sizga judayam katta foydasi tegishi aniq
Handling a Million Tasks in Django: Efficient Prioritization with Celery, Redis, and Flower

More:
https://medium.com/@srinivasaravind5/handling-a-million-tasks-in-django-efficient-prioritization-with-celery-redis-and-flower-b06fc8957d5
Medium ilovasidan foydalanishingiz maslahat berar edim, juda ko’plab ajoyib maqolalarni topishingiz mumkin. 📚

Mediumda ‘Reading List’da uzimga o’qigan va o’qiyotgan barcha maqolalarni jamlamoqdaman: ⬇️

https://medium.com/@davrondev/list/predefined:f5289fbfd4e8:READING_LIST 🔗
Forwarded from PyNotes
#Django_ORM #filters
Subquery

Django allows using SQL subqueries. Let’s start with something simple, We have a UserParent model which has OnetoOne relation with auth user. We will find all the UserParent which have a UserParent.

from
django.db.models import Subquery
users = User.objects.all()
UserParent.objects.filter(user_id__in=Subquery(users.values('id')))

#source
https://books.agiliq.com/projects/django-orm-cookbook/en/latest/subquery.html
Forwarded from Malikov | Blog | Notes
Software Engineering at Google.pdf
7.5 MB
Software Engineering at Google

@malikovdev
Resume tayorlashingizda oneapp.ly va linkedin.com saytidagi classic template mode #recommendation qilgan bular edim :)

More: https://old.mohirdev.uz/yaxshi-resume/ 🇺🇿

#resume
Docker Container Backup/Restore Guide

p/s Bugungi kundagi "Stellar job" bu databse qayta tiklash buldi 🥶.

Loyhalarda DataBase muhum hisoblaniladi shu bois undan buckuplar olib turish kerak (avto)

More: https://simplebackups.com/blog/docker-container-backup-restore-guide/
* Dockerdan loyhalarimizda build time kamaytirish maqsadida cache management ishlatar edik va 100GB serverimizda No Space error bulib qolgan edi🚀

*
docker system df
- commandasi orqali build cache 80GB bulib ketgani kurgan edik🥶

💡 Bu algorithmlar qoidasi kabi: Tezlik ko'proq memory talab qiladi, Kamroq memory esa ko'proq vaqt

Build cache tozalash uchun:
docker builder prune

commandasi (volumelada backup olib quyganiz ham maqul) 🧹

p/s CI/CD buyicha serverda faqat docker-compose.yml file turishi kerak u imagelarni dockerHubdan tortib image uzini qayta up qilishi kerak holos

None image larni tozalash uchun:

docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")


More: https://medium.com/@iceburn/remove-docker-build-cache-3eca3d44dbb3

https://docs.docker.com/build/cache/

https://lipanski.com/posts/speed-up-your-docker-builds-with-cache-from 🔥 (optimize )
Xa bugun shanba dam olish - (lazy day) ammo serverda kutilmagan error tufayli tasklar girdobida qoldik 😐

p/s Maslahatim 1haftalik yangi featurelarni juma kuniga production ga deploy qilmang 🥲
LINKS TO LEARN DEVOPS


1) Linux :
Basic Linux commands are necessary before jumping into shell scripting.

* https://lnkd.in/dBTsJbhz
* https://lnkd.in/dHQTiHBB
* https://lnkd.in/dA9pAmHa

2. Shell Scripting:

* https://lnkd.in/da_wHgQH
* https://lnkd.in/d5CFPgga

3. Python: This will help you in automation

* https://lnkd.in/dFtNz_9D
* https://lnkd.in/d6cRpFrY
* https://lnkd.in/d-EhshQz

4. Networking

* https://lnkd.in/dEmZ8zhY
* https://lnkd.in/dqTx6jmN
* https://lnkd.in/dRqCzbkn

5. Git & Github

* https://lnkd.in/d9gw-9Ds
* https://lnkd.in/dEp3KrTJ

6. YAML
https://lnkd.in/duvmhd5X
https://lnkd.in/dNqrXjmV

7. Containers — Docker:

* https://lnkd.in/dcKuY4j5
* https://lnkd.in/dY2ZswMZ
* https://lnkd.in/d_EySpbh
* https://lnkd.in/dPddbJTf

8. Continuous Integration & Continuous Deployment (CI/CD):

* https://lnkd.in/dMHv9T8U

9. Container Orchestration — Kubernetes:
* https://lnkd.in/duGZwHYX

10. Monitoring:

* https://lnkd.in/dpXhmVqs
* https://lnkd.in/dStQbpRX
* https://lnkd.in/de4H5QVz
* https://lnkd.in/dEtTSsbB

11. Infrastructure Provisioning & Configuration Management (IaC): Terraform, Ansible, Pulumi

* https://lnkd.in/dvpzNT5M
* https://lnkd.in/dNugwtVW
* https://lnkd.in/dn5m2NKQ
* https://lnkd.in/dhknHJXp
* https://lnkd.in/ddNxd8vU

12. CI/CD Tools: Jenkins, GitHub Actions, GitLab CI, Travis CI, AWS CodePipeline + AWS CodeBuild, Azure DevOps, etc

* https://lnkd.in/dTmSXNzv
* https://lnkd.in/dAnxpVTe
* https://lnkd.in/daMFG3Hq
* https://lnkd.in/dqf-zzrx
* https://lnkd.in/diWP7Tm7
* https://lnkd.in/dYDCSiiC

13. AWS:

* https://lnkd.in/dmi-TMv9
* https://lnkd.in/de3-dAB6
* https://lnkd.in/dh2zXZAB
* https://lnkd.in/dQMyCBWy


14. Learn how to SSH
SSH using mobaxterm:

* https://lnkd.in/gx-T_FU8

15. SSH using Putty :

* https://lnkd.in/gGgW7Ns9


HAPPY LEARNING 📌

From: Source

@saidamins_blog🏴
Djangoda powerful ORM and query capabilities built-in:

❇️ Case...
When

Qachon
: Book degan databasedagi faqat “categoriyasi Romance bulganlarga 20% chigirma bulsin, Historical categorysidagi kitoblarga 35% chegirma elon qilinayotganda ishlatishingiz mumkin (example)

Qanday? 😐
from django.db.models import F, Q, Value, When, Case
from decimal import Decimal
books = Book.objects.annotate(discounted_price=Case(
When(category="Romance", then=F("price") * Decimal(0.95)),
When(category="Historical fiction", then=F("price") * Decimal(0.8)),
default=None
))

Nega
:🤔
For
gets filtered data from database quickly 🚀


More: https://juhanajauhiainen.com/posts/advanced-django-queries