Python BackendHub – Telegram
Python BackendHub
7.5K subscribers
314 photos
46 videos
11 files
432 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
یک decorator قشنگ برای لاگ گرفتن که خودم استفاده میکردم موقع دیباگ کد های سمیم 😍

میتونید حتی args و kwargs هم چک کنید که دقیقا همون تایپ هستند یا نه. 👍 اونش با شما 😁

شب خواب کد های قشنگ ببینید :))
پی نوشت: -> None فراموش نشه. 👍 حتی اگه چیزی برنمیگرده. یا حتی return None
@ManiFoldsPython
👌6👏1
بهترین و تمیز ترین boilerplate ای که دیدم از FastAPI
https://github.com/iam-abbas/FastAPI-Production-Boilerplate

واقعا معنی SOLID رو تازه درک کردم.. چقدر محشره و تمیزه واقعا هرچی بگم کم گفتم. خود کداش هم عالیه. فیوچر هم خیلی خوبه.


همین موضوع باعث شد که کلا fastapi integration خودمو تو گیتهاب بخوام از صفر ریفکتور کنم که فقط ORM ترجمه شده خودمو بهش اضافه کنم با SQLAdmin
البته رو اضافه کردن SQLAdmin هم خیلی دو دل هستم, چون واقعا SOLID نیست. اگه maintainerاش همکاری کنه تو این boilerplate از صفر طبق SOLID مینویسیمش. جالبه خود author ریپو SQLAdmin هم ایرانیه 😁

@ManiFoldsPython
🔥2👍1
Python BackendHub
بهترین و تمیز ترین boilerplate ای که دیدم از FastAPI https://github.com/iam-abbas/FastAPI-Production-Boilerplate واقعا معنی SOLID رو تازه درک کردم.. چقدر محشره و تمیزه واقعا هرچی بگم کم گفتم. خود کداش هم عالیه. فیوچر هم خیلی خوبه. همین موضوع باعث شد که…
همونطور که قولشو داده بودم منم ریپو خودمو آداپت کردم به این Boilerplate
https://github.com/ManiMozaffar/fastapi-integration



چند تا چیز اضافه کردم:

1. Translated Django ORM
یک او ار ام ترجمه شده از sqlalchemy مثل جنگو. هنوز تکمیل نشده ولی برای استفاده بیسیک کافیه. جوین هم خودش خودکار هندل میکنه :)


2. Database check-up
یک اسکریپت چک آپ, که چک کنه دیتابیس بالا هست یا نه.


3. Database connection handler
اگه اکسپشنی سمت دیتابیس رخ داد تو ریسپانس مشخص کنه که اپلیکیشن ارور 500 نده.

4. CRUD
خود crud رو حرفه ای تر کردم. البته هنوز کار داره. که پیجینشن هم هندل کنه 👍

بازم مونده, دوستان اگه تمایل داشتن PR بزنن و شرکت کنند 😁
قدم بعدی ایشالا admin panel هست به صورت solid که دیگه وابسته به خود app و database نباشه که مستقیم این دو آگاه باشن از حضور ادمین پنل.


@ManiFoldsPython
🔥2
میخوام محتوی ویدیویی به زودی راجب همین معماری بذارم و توضیحش بدم یکم، بنابراین ممنون میشم به دو سوال زیر پاسخ بدین
👍3
به چه زبونی باشه؟
Anonymous Poll
60%
فارسی
40%
انگلیسی با زیرنویس‌ فارسی
👍1
Forwarded from Sadra Codes
پروفایل کردن کد مبحث جالب و مهمیه. بهتون نشون میده کدوم بخش از کدبیس، ران تایم بیشتری داره و یه سیستم مانیتورینگ کدبیسه بطور خلاصه. توی پایتون از profile و cProfile استفاده میشه.

مقاله جدیدم که جدیدا توی تورینگ پابلیش شده درباره همین موضوع هست. قراره یه مقدمه از cProfile داشته باشیم در پایتون.

امیدوارم لذت ببرید. :) ❤️

https://www.turing.com/kb/python-code-with-cprofile
2
اوایل که مصاحبه میرفتم همون اولین مصاحبه رد میشدم,
اما الان تقریبا هروقت مصاحبه میگیرم میرسم به coding challenge یا technical interview
تکنیک هایی که این مدت به کار بردم و جواب داده رو خواستم تو این پست بنویسم تا استفاده کنید:


اولین چیزی که مطرح میشه اینه که شما خودتونو معرفی کنید, تو این مرحله یک summary خلاصه از خودتون بگین و فعلا وارد جزییات نشین.

مهم ترین موضوع اینه که شما به اون شرکت علاقه نشون بدید. این موضوع به قدری مهمه که حتی اگه ممکنه کاندید بهتر از شما باشه ولی شما رو انتخاب کنند چون باعث میشه که فکر کنند شما متعهد تر هستین به اون شرکت تا اون فرد. این علاقه نشون دادن با سوال تخصصی تو اون فیلد میشه نشون داد. بهترین کار هم اینه که سایت شرکت رو دربیارین, اطلاعاتش رو بخونید و بعدش به chatgpt اون اطلاعات رو بدین و بهش بگین که چند تا سوال براتون طراحی کنه که هم یکم چالشی باشه و هم نشون بده که کاملا interested بودین.

اما کی باید این سوالات رو بپرسین؟ معمولا interviewer از شما میخواد که اول به حرفاش گوش بدین و معمولا یک introduction ای از شرکت خودشون و چالش هاش به شما میگه. بعد از شما میپرسه که آیا سوالی دارین یا نه, و بدترین جواب اینه که بگین نه ندارم. همینجاست که سوالاتی که حاضر کرده بودین, باید بپرسین و سعی کنید هم چند سوال راجب توضیحاتی که خودش داده اول بپرسین, حتی اگه کامل فهمیده بودین!


طرفی که باهاش مصاحبه میکنید رو بسنجید و سعی کنید که درجه صحبتتون بر اساس سطح technical اون آدم منطبق کنید. مثلا تو یک مصاحبه خود HR سابقه کد زنی داشت و من تونستم خیلی فنی تر حرف بزنم که تجربه خیلی خوبی برای جفتمون بود. اما اگه همینکارو با HR کنم که old fashion تره, قطعا یک red flag خواهد بود. سطح فنی اش رو از توضیحاتی که راجب شرکتشون میده میتونید ارزیابی کنید.

حالا نیمی از interview گذشته و فقط راجب شرکت حرف زده شده, احتمالا interview از شما بخواد که بک گراند بیشتری راجب خودتون بدین. حالا شما باید به نحوی مهارتتون رو بفروشید, مثلا به هر نحوی شده سعی کنید پروداکت هایی که تا امروز روش کار کردین به پروداکت این شرکت لینک کنید. حتی اگه دروغ بگین یا بزرگ نمایی کنید ایرادی نداره, فقط دروغ فنی نگین یا بزرگ نمایی از خودتون نکنید. مثلا ممکنه تو یک business domain ای اصلا کار نکرده باشین, مثل B2B. ولی اگه شب قبل حسابی راجبش بخونید میتونید ادعا کنید که اره فلان جای پروداکتمون B2B بود و من کمی درگیرش شدم. سعی کنید اگه تو این موارد دروغ میگین, خیلی خوب و متواضعانه دروغ بگین!

تو قسمت آخر هم خیلی خلاصه از یک پروژه خوبی که کار کردین و پیچیدگی بالایی داره یا impressive هست میتونید صحبت کنید, سعی کنید خیلی کشش ندین چون این پارت برای اینه که شما یک تاثیری بذارین رو فرد مصاحبه کننده, نه اینکه خستش کنید.


سعی کنید متواضع باشین, اینکه بگین من همه چی رو بلدم خوب نیست. حتی به یک نقطه ضعفتون هم اشاره کنید بد نیست و بگین که مثلا روش کار میکنید, و حتما نقطه ضعفی که انتخاب میکنید برای اون شرکت critical نباشه و فقط این وایب رو به اون مصاحبه کننده بده که این ادم تمام تلاششو میکنه تا خودشو بالاتر میکشه از اینی که هست.


@ManiFoldsPython
18👍6
Forwarded from Sajad
This media is not supported in your browser
VIEW IN TELEGRAM
یه نکته خوب در مورد اپلای و استخدام شدن تو شرکت های خفن دنیا!💎🔥


youtube.com/@Tabaghe16
🔥5👎1
یکم بریم بحث فنی, چیزی که امروز ذهنمو مشغول کرده بود تو خوندن داک جنگو,
نظرتون چیه؟
بنظرتون جنگو MVC هست یا MVT 🤔

ایا میشه core خود جنگو رو controller دونست یا نه؟ یا view رو میشه controller دونست؟ اگه اره, میشه فریم ورکی که به کنترلر دسترسی نمیده رو MVC دونست؟

@ManiFoldsPython
اگه اکانت پرمیوم دارین, برای فعال سازی نسخه browsering چت جی پی تی, اول سه نقطه کنار اسمتون رو بزنید سمت چپ پایین صفحه, بعدش برین رو setting, بعد beta features و بعد تیک این دو رو بزنید.

بعدش برای مدل GPT4 قابلیت browsering فعال میشه و باعث میشه قبل از جواب دادن به شما بتونه crawl کنه. این فقط برای دوستانی قابل استفاده هست که اکانتشون پرمیومه.


@ManiFoldsPython
فیچر باحال ترش اون پایینیه هست, که plugin هست. ظاهرا میتونید پلاگین اضافه کنید و هر پلاگینی یک کاری انجام میدن :)

خیلی خوبه این واقعا, نایس 👍 مثلا پرفومنس gpt4 تو ریاضی پیشرفته افتضاح بود ولی با اون پلاگین قاعدتا باید بهتر شه. (wolfram)
فقط نکته عجیب اینجاست که تو هیچ کدوم از 3 صفحه قابلیت سرچ پلاگین نذاشتن 😂😂 همینجوری باید تو صفحات بگردین دنبال پلاگین.
@ManiFoldsPython
👏2
Python BackendHub
اوایل که مصاحبه میرفتم همون اولین مصاحبه رد میشدم, اما الان تقریبا هروقت مصاحبه میگیرم میرسم به coding challenge یا technical interview تکنیک هایی که این مدت به کار بردم و جواب داده رو خواستم تو این پست بنویسم تا استفاده کنید: اولین چیزی که مطرح میشه اینه…
پارت دو
این پستو بیشتر کشش میدم چون بازخورد خوبی داشت, و بیشتر میشه راجبش حرف زد.

اولا پارت یک رو اصلاحی کنم, اولا این متن راجبه پاس شدن از مصاحبه اول به دومه, این یادداشت منه, تکلیف و سرلوحه نیست. پس خواهشا اشتباه نگیرین هدف من رو. اول اینکه بتونید یک پروداکتی رو لینک کنید به اون شرکت, روند جلو رفتنتون خیلی بهتر پیش میره. ولی اینکه در آینده ممکنه دردسر ساز شه یا نه رو نمیدونم چون تجربه ندارم که بخوام بهتون بگم, صرفا کار هایی هست که خودم کردم و نتیجه داده, مثلا هیچ علاقه ای به شیمی من ندارم(متنفرم) ولی 3 ترم متالورژی خوندم, یک مصاحبه ای بود راجب یک شرکت که یک سولوشن AI داشتن راجب کم کردن تاثیرات CO2, حالا من اومدم گفتم که تو اون 3 ترم متالورژی ام مثلا فلان قضیه رو پیگیر شدم و فلان کار رو کردم و .., در صورتی که اجبار پشتش بود نه علاقه, اما به دروغ گفتم از روی علاقه همچین کاری کردم, اگه حقیقت رو میگفتم بهتر بود که اصلا بهش اشاره نکنم چون خودش red flag بزرگیه که از کانسپتی که شرکت توش کار میکنه بخوام متنفر باشم. ولی نه اینکه من هیچی راجب شیمی و ... ندونم ولی بگم بلدم! پس امیدوارم منظورم رو از دروغ گفتن متوجه شده باشین.

چرا میخوای بیای ..., هدفت از relocate چیه؟
خیلی سوال چالشی هست, باید جوابی بدین که به همون هدف نتونید اون شهر رو ترک کنید. مثلا اگه از شهر کوچیک دارین میرین کرج و بگین دوست دارم تو شهر بزرگ زندگی کنم, خود HR با خودش میگه خب پس فردا این کرجو ول میکنه میره تهران.
یک سری خصوصیات فرهنگی, اجتماعی و جغرافیایی باید اسم ببرین که اون فرد قانع شه شما فردا اون شهر رو ترک نمیکنید. حواستون باشه به موضوعات شخصی و race اصلا نپردازین, شخصا فیدبک خوبی نگرفتم از این قضیه. حتی اگه حق باهاتون باشه یا حتی اگه کاملا دلیلتون منطقی باشه.

چرا دوست داری تو شرکت ما کار کنی؟
اینم سوال چالشی هست, که به نظرم دیدن ویدیویی که به اشتراک گذاشتم میتونه ذهنتون رو باز تر کنه. من خودم شخصا برای اینکه جواب کلیشه ای ندم همیشه تو پاسخ به این سوال گفتم که اره فلان stack پروژتون برای من جالبه و business logic پروژتون هم برام جالبه و بعدش با اشاره به چند تا از point هایی که اون شرکت برای کارمنداش ارزش قائل میشه پاسخ رو میبندم.

چطور لباس بپوشم؟
بنظرم مهمه که تو مصاحبه اول با HR حتی اگه آنلاین هست لباستون کاملا فرمال باشه و مرتب باشین, مثلا پیراهن بپوشین. با t-shirt اومدن سره مصاحبه اول میتونه پوینت منفی باشه براتون.

انتظار حقوقت چقدره؟
خب خیلی مهمه عددی که میگین پرت و پلا نباشه, نه خیلی بالا باشه نه خیلی پایین اگه قصد دارین که استخدام شید. میتونید تحقیق کنید که تو اون پوزیشن چه حقوقی معقوله. اگه شرکت خارجی دارین اپلای میکنید که از glassdoor و payscale استفاده کنید. ولی سعی کنید به جای عدد, رنج بدید. خیلی بهتره. با یک HR صحبت میکردم میگفت ما خیلی رو ریجکت میکنیم چون دستمزد پایینی میگن و نشون میده که یا اعتماد به نفس ندارن یا روی تخصصشون مطمئن نیستن, که در هر 2 صورت گزینه خوبی برای ما نیستن.

یک نکته ای هم وجود داره اینه که این مصاحبه فقط بخاطر این نیست که شرکت با شما آشنا شه, بلکه بخاطر اینه که شمام با شرکت آشنا شین, پس گفتن رنج و اینکه ببینید این شرکت چه عددی از اون رنج رو انتخاب میکنه کمی شما رو با سیاست های اون شرکت آشنا میکنه, قبل از وارد شدن بهش!😅 و حتی این موضوع رو باید بنظرم علنی اعلام کنید که مثلا وقتی سوال میپرسین, یکم سوال ها رو بیشتر به business logic اون شرکت گره بزنید و قبل از پرسیدن هم بهش بگین که دلیل سوال پرسیدنم اینه که ببینم ایا شرکت و بیزنسش با شخصیت من و تایپم fit هست یا نه.


در آخر, body language خیلی مهمه تو مصاحبتون.
میتونید از بلاگ زیر بیشتر بخونید.
https://uk.indeed.com/career-advice/interviewing/body-language-in-interview

و البته آنالیز زبان بدن هم خیلی مهمه, یعنی به جای اینکه HR شما رو از زبان بدنتون قضاوت کنه, شما عملکرد خودتون رو از زبان بدن HR قضاوت کنید. مطالعه راجب زبان بدن کلا بنظرم تو زندگی شخصی و کاری و مصاحبه خیلی میتونه کمکتون کنه.

@ManiFoldsPython
👍12👎1
Python BackendHub
پارت دو این پستو بیشتر کشش میدم چون بازخورد خوبی داشت, و بیشتر میشه راجبش حرف زد. اولا پارت یک رو اصلاحی کنم, اولا این متن راجبه پاس شدن از مصاحبه اول به دومه, این یادداشت منه, تکلیف و سرلوحه نیست. پس خواهشا اشتباه نگیرین هدف من رو. اول اینکه بتونید یک پروداکتی…
نکات اضافه شده توسط بابی 🙏

چرا دوست داری تو شرکت ما کار کنی؟
به نظرم اگه از تکنولوژی و استک و بیزینس لاجیک بگی باز هم در شرایطی رد فلگ میشه چون هرچیزی بگی مشابهش هم وجود داره. مثلا از استک این شرکت خوشت میاد اوکی میای اینجا فیسبوک رو میبینی از استک اون خوشت میاد پس خیلی راحت میری. به نظرم بهترین چیز برای این سوال کالچر هر شرکت هست چون منحصر به فرد هست. اگه روی کالچر اون شرکت مانور بدی براشون خیلی جذاب تره چون باعث میشه متوجه بشن چیزی که اونهارو داره متمایز میکنه برات فرهنگ هست نه یه سری تولز و تکنولوژی یا بیزینس لاجیک.

چطور لباس بپوشم؟
راجع به اینم میخواستم بگم به نظرم تی شرت اوکیه من خیلی مصاحبه هام با تی شرت بوده و فیدبک منفی نگرفتم
5👍1👎1👏1
یک ریپو دارم برای رزومه نویسیه
https://github.com/ManiMozaffar/awesome-resumes

خیلی تکمیله, و نظر شخصی توش ننوشتم. بیشتر نکاتی بوده که از video و سمینار های مختلف و resumeworded جمع کردم.
تقریبا 70درصد رزومه هایی که میبینم ایراداتی دارن که تو این ریپو بهش اشاره شده.
مثال هم کامل زدم, اگه دوست داشتین contribute کنید و نکاتی که شاید از قلم افتاده اضافه کنید, یا اینکه اگه رزومتون خوبه به ریپو اضافه کنید که مثال خوبی شه.

یک روز برای رزومتون وقت بذارین, تاثیرش رو طی چند سال میبینید!
@ManiFoldsPython
❤‍🔥63👏1
چیزی که ما از ChatGPT میبینیم شروع یه صنعت به اسم AI هست که تازه اول راهه و شاید ده‌ها سال بعد به جایگاه واقعیش برسه
در واقع اگه ChatGPT نتونه جای شمارو بگیره احتمالا AI های بعدی بتونن
ولی چرا نیازی نیست نگرانش باشیم؟
صنایع معمولا از ۲ گروه آدم تشکیل شدن، گروه اول صرفا دنبال بازار کار هستن، یک روال خطی دارن و احتمالا تنها دلیلی که الان داخل این کار هستن اینه که بیکار نشن
در کنارش گروه دوم کسایی هستن که از سر علاقه وارد شدن و متخصص حرفه‌ای هستن که خب صنایع رو همین آدما معمولا رشد میدن
مثلا نویسنده‌ای که الان به ازای هر کلمه ۲۰ تومن میگیره تا محتوای کپی چرخ‌شده رو تحویلتون بده
در مقایسه با کسی که نویسنده حرفه‌ای هست و قدرت قلم گیرا داره
طبیعی هست که گروه اول AI جایگزینشون میشه، حالا اگه تصمیم داریم نگران تغییر شغل نباشید فقط کافی هست جزء گروه اول نباشید
در کنار این از تغییر شغل نباید ترسید، AI اگه یه شغل رو ازتون بگیره یه راه جدید براتون باز میکنه، همونطور که تکنولوژی‌های قبلی همین کارو کردن
نهایتا شاید یه روزی تو ۱۰۰ سال بعد AI هممونو بیکار کنه، که خب اشکالی نداره، میشنیم همگی استراحت میکنیم
@DevTwitter |<Soroush Ahamadi/>
👍7🆒6👎2👀2🌭1
Forwarded from Sadra Codes
🥚 ایسترگ‌ها (Easter egg) و سیکرت‌های جالب پایتون!

1️⃣ - توی ترمینال یا CMD، واسه تست پایتونتون، کامند زیر رو ران کنید و پروگرم hello world اجرا میشه.

$ python -m hello
Hello World!

2️⃣ - برای چاپ کردن ذن پایتون، کافیه ماژول this رو ایمپورت کنید و یه لیست از استعاره‌های بامفهوم برنامه‌نویسی رو واستون چاپ می‌کنه.

$ python -c 'import this'

👈
ماژول ذن this.py در ریپازیتوری CPython

3️⃣ - اگه حوصلتون سر رفته و می‌خواید چند تا کامیک ساینس-طور ببینید، کامند زیر رو ران کنید. بهتون دسترسی به آرشیو xkcd میده که محفلیه پر از میم‌ها و جک‌های دنیای خودمون.

$ python -c 'import antigravity'

4️⃣
- اگه می‌خواید از فیچر‌هایی که قراره در آینده به پایتون اضافه شه استفاده کنید، می‌تونید از __future__ استفاده کنید. مثلا توی پایتون۲، پرینت یه تابع نبود ولی اگه ماژول زیر رو ایمپورت می‌کردید، مفسر پایتون۲ از این به بعد به دید یه فانکشن به print نگاه می‌کرد و باید از پرانتز جلوی پرینت استفاده می‌کردید.

#!/usr/bin/python2
from future import print_function

حالا نکته جالبش اینجاس که ما توی تقریبا تمام زبان هایی که بیسشون C هست، از {} بعنوان تعیین اسکوپ فانکشن، شروط، کلس‌ها و.. استفاده می‌کنیم که توی پایتون به این شکل نیست و block-indentation مهمه. حالا اگه سعی کنید braces رو از __future__ ایمپورت کنید میاد و اینجوری بهتون تیکه میندازه..

>>> from future import braces
SyntaxError: not a chance

5️⃣ - می‌دونستید میشه هش بی‌نهایت و Not-a-numbert رو توی پایتون نشون داد..؟! جالبه نه؟

>>> hash(float('inf'))
314159
>>> hash(float('nan'))
0

👈 اینجا جاییه که بعنوان دوتا ثابت در کدبیس CPython تعریف شدن

6️⃣ - میدونستید یه جایگزین جالب واسه آپریشن =! (نامساوی) توی پایتون هست؟!

>>> 1 != 0
True
>>> from future import barry_as_FLUFL
>>> 1 != 0
SyntaxtError: with Barry as BDFL, use '<>' instead of '!='
>>> 1 <> 0
True
>>> 2 <> 2
False

شاید واستون جالب باشه ولی این قضیه بعد از اینکه Maintain پروژه پایتون توسط Guido به Barry داده شد، رواج پیدا کرد. واسش حتی PEP401 هم نوشتن که من (شخصا) موجودیتش رو درک نکردم ولی ارزش خوندن داره و نکات جالبی درباره تاریخچه پایتون میگه. :)

=> منبع اصلی این پست در Medium
👍5
Forwarded from Sadra Codes
Pythoinc Development (IMO)
👍6
Sadra Codes
Pythoinc Development (IMO)
چند تا دیگه هم بررسی میکنیم.
Waterfall

@ManiFoldsPython
👍5