Python BackendHub
7.37K subscribers
306 photos
46 videos
11 files
427 links
Learning python & Backend Engineering, with Mani!

Youtube: https://www.youtube.com/@GitOverHere
Github: https://github.com/ManiMozaffar
Linkedin: https://www.linkedin.com/in/manimozaffar

تبلیغات نداریم

Admin: @Mani_nikou
Download Telegram
Forwarded from ‌BenDev
برای مصاحبه های behavioral بسیار بسیار مهمه که شما بتونید با استفاده از تکنیک STAR پاسخ بدین
لینک زیر رو مطالعه کنید:
https://www.indeed.com/career-advice/interviewing/how-to-prepare-for-a-behavioral-interview

@BenDevelop
👍6👌1
این پلی لیست محشره

https://www.youtube.com/playlist?list=PLC0nd42SBTaNuP4iB4L6SJlMaHE71FG6N

Software Design in Python by ArjanCodes

@ManiFoldsPython
3
این سایت رو جدیدا پیدا کردم برای هندل todolist و کار هام
https://habitica.com

خیلی سایت جالبیه 😅 حتما یک سر بهش بندازین.
برای daily repetitive task و habit هم میتونید برنامه درست کنید.
@ManiFoldsPython
👍6
Forwarded from Django Expert (Boby Cloud)
درود خدمت دوستان عزیز، طی چند هفته گذشته روی ریپوهای DjangoEx کار میکردیم و آپدیتی که قولش رو داده بودیم آماده شده. در زیر ریپوهارو به ترتیب معرفی میکنیم.

ریپازیتوری Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورس‌های مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources

ریپازیتوری Awesome Python Roadmaps: مجموعه از رودمپ‌های مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps

ریپازیتوری Awesome Python Podcast: مجموعه‌ای از پادکست های حوزه مهندسی نرم‌افزار/پایتون برای آپدیت بودن راجع به رویدادهای کامیونیتی پایتون و اپیزودهای تکنیکالی که با پادکست میتونید یاد بگیرید:
https://github.com/DjangoEx/awesome-python-podcasts

ریپازیتوری Awesome Python Project Ideas: مجموعه‌ای از ایده‌ها برای پیاده سازی پروژه با پایتون به منظور تمرین یا کمک به رزومه، در سطوح Beginner، Intermediate و Advanced و به همراه User Stories, Project Overview, Bonus Features و ...
https://github.com/DjangoEx/awesome-python-project-ideas

ریپازیتوری Awesome Python Resources Persian: مجموعه‌ای از منابع آموزشی در زمینه پایتون به زبان فارسی
https://github.com/DjangoEx/awesome-python-resources-persian

ریپازیتوری DjangoEx Bot: احتمالا تا حالا کاربر Backend Senior Developer رو توی گروه دیدین که به سوالات پاسخ میده، این کاربر یک نوع هوش مصنوعی مبتنی بر GPT هست و توسط یکی از ادمین‌های کانال توسعه داده شده که میتونین به سورس کدش از طریق ریپازیتوری زیر دسترسی داشته باشین:
https://github.com/DjangoEx/django-expert-bot

تمام ریپازیتوری‌ها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx

💡 لطفا اگر شما هم ایده‌هایی برای ریپازیتوری‌ها دارید، با ایجاد Issue و Pull Request به کامل‌تر شدن این ریپازیتوری‌ها کمک کنید، ما از هرگونه مشارکت عام المنفعه استقبال میکنیم.
✔️ باتشکر از همراهی همه شما عزیزانی که تا الان کانتربیوت کردید (+۵۰ نفر) و به این ریپازیتوری‌ها استار دادید و حمایت کردید به اشتراک گذاشتید. لطفا اگر این پست رو هم مفید میبینید به اشتراک بزارید.

#DjangoEx #Python #Github

© @DjangoEx
👍7
احتمالا تاحالا شنیدین که مثلا رو یک issue یک مبلغی گذاشتن تا یکی برطرفش کنه و اون مبلغ پرداخت شه.
حالا تو این سایت شما میتونید issue bounty hunter شید
https://app.bountysource.com/?order=created_at&direction=desc

پرداخت با کریپتو هم داره و حتی issue های چند هزار دلاری هم هست مثل این 😁:
https://app.bountysource.com/issues/31778112-add-support-for-gnome-in-dom0-gui-domain

@ManiFoldsPython
👍6
برای دوستانی که میخواین شغل پیدا کنن تو خارج از کشور و دارن اپلای میکنن. یک پروژه جذاب اوپن سورس دارم که آگهی هارو به صورت real time از لینکدین میگیره و پردازش میکنه.

لینک گیت هاب | کانال تلگرام | ربات تلگرام | Dev map

تو این پروژه شما میتونید شغل پرفکت خودتون رو بدون هیچ effort ای پیدا کنید. کافیه جوین تلگرام و ربات بشین, و یک query مینویسید. query که مینویسید logıcal python expresion هست مثلا برای پیدا کردن شغل بک اند پایتون یا فرانت اند جاوااسکریپت اینطوری باید بنویسین
(python and backend) or (javascript and frontend)
یک or france هم مثلا بهش اضافه کنید فقط شغل های فرانسه رو براتون لحاظ میکنه. هروقت که شغلا تو کانال اضافه شدن ریل تایم فراوارد میکنه براتون.

این پروژه رو تمرینی زده بودم برای خودم ولی محبوب شد و حتی اسپانسرم براش پیدا شده. پرفومنس مارکینگ و آنالیز آگهیشو قوی ترم میکنم وقتی مبلغی که دونیت کردن به حسابم اضافه شه. چون فکر نمیکردم محبوب شه کد بیسش یک چیز شلخته و یکهویی بود که نیاز خودمو کاور کنه ولی الان دارم ریفکتورش میکنم که اصولی باشه. کد crawlerشو دیشب تموم کردم و تو نسخه جدید تو 12 ساعت 6 هزار آگهی کراول زد 😁

ممنون میشم حمایت کنید از پروژه, با فروارد این متن یا ستاره دادن یا contribute کردن به پروژه.

@ManiFoldsPython
👍93👎1
سعی کنید به جای TypedDict از Pydantic استفاده کنید. هم ولیدیشن داره هم felixable تره هم آپشن های خوبی داره و هم خیلی راحت میتونید تبدیلش کنید به json و dictionary و ..

@ManiFoldsPython
👍11👎1
Python BackendHub
@ManiFoldsPython
یکی از کار هایی که میتونید با gpt انجام بدین و خوب انجام میده اینه که شما یک پروتکل از class تون همراه با داک استرینگ بنویسید و بعدش به gpt بدین تا سریع طبق اون تکمیل کنه کدتون رو اینطوری تو وقت صرفه جویی کردین. اون موقع میتونید فقط بپردازین به تست نویسی و دیباگ کدی که gpt نوشته و برطرف کردن ایراد های کلیش.

یک همچین پرومتی من استفاده میکنم در اینجور مواقع:
PROMPT:

1. follow best practices of coding according to fluent python. Explain yourself how did you follow fluent python guideline.
2. Use modern syntax, for instance list comprehension instead of for loop and append in a list. Explain yourself if you used this.
3. Write the code algorithm friendly, make the base problem to be as efficient as possible, with a good time complexity pattern, Explain yourself if you used this approach.
4. Respect SOLID, DRY, KIS, Explain yourself how you did this.
5. Respect clean code practices according to Robert Cecil Martin book, Explain yourself how you respected.
6. Respect type annotation and pay attention to the output annotation of each method. I want it SAME as protocol.
7. Keep docstring with the code. Improve it if you can.
8. your prompts ...

@ManiFoldsPython
👍6
لینک چت من با gpt راجب همین کد با همین پرومت
https://chat.openai.com/share/a92bc14f-d8e9-49f4-bd28-020d543c57f5

خیلی مهمه که هیچوقت نذارین AI راجب base و دیزاین کدتون تصمیم بگیره. اینکه مشورت بگیرین خوبه ولی نذارین کار به تصمیم گیری برسه. مثلا میتونید همین پرومت رو یکم دست کاریش کنید و ازش بخواین که ایراداتتون رو بهتون بگه و معمولا هم ایرادات خوبی پیدا میکنه.

وقتی prompt میدین همیشه ازش بخواین که توضیح بده که چطور به اون prompt ای که دادین عمل کرده. هرچقدر توضیح بیشتری AI بده پاسخش دقیقتره چون مجبور میشه بیشتر پردازش انجام بده.

@ManiFoldsPython
👍7
یک کد کم حجم زدم برای تمیز کردن فایل HTML به کمک xpath و pydantic با type annotation

خود کد اینجاست:
https://github.com/pydantic/pydantic/issues/5984

اگه دوست داشتین استفاده کنید. nested هم کاملا پوشش میده طبق سمپل کدی که تو عکس گذاشتم.
امیدوارم maintainer های pydantic با این ایده موافق باشن که PR بزنم.

@ManiFoldsPython
👍5
یک سوالی برام مطرح شده که چند درصد برنامه نویسا کراول زدن، پس ممنون میشم بگین، تاحالا کراول زدین؟ (کراول = داده کاوی از یک سایت)
Anonymous Poll
30%
بله، با فریم ورکی مثل scrapy
35%
بله ولی فقط با pure python مثلا bs
23%
نه
13%
کراول چیه؟
Python BackendHub
بنچ مارک با نسخه 1.1 پایدانتیک Adaptix time: 0.1495994 Pydantic time: 0.2624557999999999 بنچ مارک با نسخه 2 پایدانتیک Adaptix time: 0.15963560000000004 Pydantic time: 0.07577920000000005 @ManiFoldsPython
این بنچ مارک یک جاییش ایراد داره، اگه گفتین کجا؟ 😀

چند تا ایراد ساختاریم داره، اونا هم اگه میتونید اشاره کنید.
@ManiFoldsPython
یک چیز خیلی جالب متوجه شدم. درواقع وقتی تو پایتون میگیم Optional یعنی required 😅😅 اما None هم میگیره.

پایدنتیکمو آپدیت کردم پروژم به ارور میخورد
کدم اینطوری بود
class LinkedinData(BaseModel):
ads_id: Optional[str]


obj = LinkedinData() # Error
obj = LinkedinData(ads_id=None) # No Error

خود maintainer پایدانتیک گفت

ads_id: Optional[str] is equivalent to ads_id: str | None, which means it can be either str or None, while still being required. So it does match your None parameter (last line). Optional is probably the most confusing thing introduced in Python typing 😅

خلاصه جالبه, آپشنال required هست ولی میتونه none باشه. پس آپشنالی که درواقع باید آپشنال باشه آپشنال نیست 😂😂
@ManiFoldsPython
😁10👍1🤣1