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
Forwarded from Python BackendHub
من چند وقت پیش یک آگهی ریموت تو شرکتی که تو برلین دارم توش کار میکنم گذاشتم.. چند نفر تماس گرفتن. وقتی صحبت از حقوق شد هیچ اطلاعی نداشتن که invoice چیه و چطوری میتونن قانونی کار کنند.

اگه میخواین ریموت کار کنید باید یک سری مراحلی رو طی کنید تا واجد شرایط باشین. اولین قدمش داشتن یک حساب بانکی و شماره مالیاته که بتونید یک شرکت یک جای دیگه دنیا رو به صورت قانونی invoice کنید!

این مقاله خیلی قشنگ توضیح داده دست نویسنده اش درد نکنه 🙂

@ManiFoldsPython
👍26
Python BackendHub
من چند وقت پیش یک آگهی ریموت تو شرکتی که تو برلین دارم توش کار میکنم گذاشتم.. چند نفر تماس گرفتن. وقتی صحبت از حقوق شد هیچ اطلاعی نداشتن که invoice چیه و چطوری میتونن قانونی کار کنند. اگه میخواین ریموت کار کنید باید یک سری مراحلی رو طی کنید تا واجد شرایط…
من یک چیزی اضافه کنم: تو مهاجرتتون خیلی تاثیر داره اگه بتونید اینکارو انجام بدید. چون وقتی شما میتونید یک شرکتی رو invoice کنید دیگه نیازی نیست نگران ویزا اسپانسرشیپ باشین. و برای شرکت کلی خرج ندارین تا onboard شید. نمونش اینه که فرض کنید من آفر گرفتم از یک شرکت استارت آپ. اون شرکت ممکنه توان اینو نداشته باشه که ۳ ماه منتظر بشه تا نیرو بهش اضافه شه و تو این مدت هم یک نفر براش اختصاصی بذاره که کارای ویزاشو انجام بده. و پکیج onboarding بده. نمیگم این غیرممکن هستا.. این دیفالته شرکت های بزرگه شکی نیست توش. ولی من بحثم اینه که میتونید شانس مهاجرتتون رو بیشتر کنید. وقتی شما ‍invoice میدین به یک شرکت -> میتونید از فردا روزی که قرارداد رو امضا کردین کار کنید. کنارشم هم کارای ویزاتون پیش میره و در نهایت جا به جا میشین. اگه هم دوست نداشتین مهاجرت کنید که میتونید تو ایران بمونید و درآمد دلاری داشته باشین.

@PyBackendHub
21👍6
دوستانی که از داخل ایران اپلای کردن و به من خبر ندادن, لطفا یا به من مراجعه کنند یا داخل توضیحات اضافه بنویسن که قابلیت invoice دادن رو دارند از داخل ایران. اگه اینکارو نکنید متاسفانه ریجکت میشید.
مقاله خیلی خوبیه که یاد میده چطور از git bisect استفاده کنید. یوزکیسش؟
برای دیباگ خیلی مفیده. فکر کنید شما یک باگی دارین که n تایم پیش نداشتین (مثلا چند ساعت مهم نیست). و میخواین ببینید کدوم کامیت باعث ایجادش شده. میتونید یک تست reproduce براش بنویسید. و بعد با استفاده از bisect سریع به اون کامیتی که باعثش شده بود برسید.

https://noaabarki.medium.com/git-bisect-and-debugging-is-easy-afdccf8ae0e8

@PyBackendHub
👍131
نسخه بعدی لایبری aioclock منتشر شد. 🚀

تو این نسخه شما میتونید مشخص کنید تسکتون چند بار ران شه. مثلا من میخوام تسکم هر ۵ ثانیه یک بار ران شه ولی کلا میخوام ۱۰۰۰ بار ران شه.



from aioclock import AioClock, Every

app = AioClock()

@app.task(trigger=Every(seconds=5, max_loop_count=1000)
async def some_task():
print("This would only run for 1,000 times!")



با تشکر از مهدی و امیر عارف بابت contributeشون. برای حمایت میتونید استار بدید یا contribute کنید. اگه فیچری مد نظرتون هست خوشحال میشم تو ریپو یا تو تلگرام بهم بگید.

https://github.com/ManiMozaffar/aioclock


@PyBackendHub
🔥216
سلام خدمت دوستان. حدودا ۱ سال از تاسیس کانال میگذره. برای همین این پستو میذارم که پین بمونه تا سال دیگه😁

اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید.
دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن. من منتورشیپ انجام نمیدم چون متاسفانه وقتشو ندارم, ولی هم سایت رایگان هست برای اینکار و هم اینکه من تو گروه و داخل پی وی جواب میدم و کمکی از دستم بیاد حتما انجام میدم.
سوما بهتره سوالتون رو تو گروه بپرسید چون اونجا افراد بیشتری هستن و نظرات من ممکنه bias باشه و یا اشتباه باشه. ولی باز اگه به هر دلیلی نمیخواستین داخل گروه بپرسید داخل پیوی هم پاسخ میدم.

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

من مانی هستم. از سال ۲۰۲۰ برنامه نویسی رو به طور حرفه ای شروع کردم. قبلا پروداکت داشتم و به صورت تیمی روش کار میکردیم.البته الانم هستم ولی دیگه کاره تمام وقتم نیست. الان ۲ سالیه داخل یک استارت آپ آلمانی به عنوان مهندس نرم افزار کار میکنم و برلین زندگی میکنم. تجاربم بیشتر سمت بک اند, فرانت, تست نرم افزار (QA) و وب اسکرپ, و کمی آپریشن (ci/cd, observation, orchestration) هست. زبونی که باهاش کار میکنم پایتون و تایپ اسکریپت هست و در حال یادگیری rust هستم.

یوتیوب من:
https://www.youtube.com/@GitOverHere

لینکدین من:
https://www.linkedin.com/in/manimozaffar/

گیت هاب من:
https://github.com/manimozaffar


@PyBackendHub
46👍12👎1🙏1
Python BackendHub pinned «سلام خدمت دوستان. حدودا ۱ سال از تاسیس کانال میگذره. برای همین این پستو میذارم که پین بمونه تا سال دیگه😁 اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید. دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن.…»
این پست رو تو لینکدین دیدم. دوست دارم جوابتون رو بدونم. <چالش طراحی>
فرض کنید قراره سرویسی بنویسید که پلتفرم آنلاین رزرو و مدیریت کلاس درس باشه. حالا به این فکر کنید که یه کلاس درس از زمانی که خریداری میشه و در وضعیت «در انتظار برگزاری» قرار میگیره، باید بصورت خودکار وضعیت هاش توسط سیستم مدیریت بشه، مثلا وقتی کلاس خواست برگزار بشه بره در وضعیت «در حال برگزاری»، بعدش بشه «خاتمه یافته»، بعدش که کمیسیون استاد حساب شد بشه «تسویه شده» تصور کنید که ممکنه روی مقیاس بالا مثلا در ساعت اوج حدود ۵۰ هزار یا بیشتر کلاس برگزار بشه. تصور کنید کلاس ها به صورت آنلاین برگذار میشه. از چه ابزارها و معماری ای استفاده میکنید که پاسخگو نیاز بیزنس باشه؟

@PyBackendHub
🔥9👍51
Forwarded from Sadra Codes
نسخه 0.5 پای‌اکشن هم رلیز شد! 💫

پای‌اکشن یه ابزاره متن‌بازه که اجازه می‌ده با استفاده از پایتون، گیت‌هاب اکشن بسازید!

توی این رلیز کلی اتفاق افتاده. پروژه دیگه یه تمپلیت ساده نیس و تبدیل شده به یه پکیج پایتون. علاوه‌بر بهترشدن داکیومنت و ساختار، یه فیچر خیلی خفن هم اضافه شده که واقعا استفاده از GitHub Issues رو یه لول می‌بره بالاتر!

این فیچر این قابلیت رو به شما میده تا از Issue Form گیت‌هاب بعنوان ساید فرانت اپ های پایتونتون استفاده کنید! این فیچر الان قابل استفاده هست و توتوریالش هم توی داک‌ها قرارداده شده.

یک مثال که می‌تونید با پای‌اکشن پیاده کنید: فرض کنید که یک ریپو NLP دارید که برای Text Summaraization استفاده می‌شه و می‌خواید مردم این قابلیت رو داشته باشن که تستش کنن. به راحتی می‌تونید ساختاری رو طراحی کنید که هرشخص بتونه یک ایشو باز کنه و در ایشو، از ابزار شما استفاده کنه. (همه‌چیز اتوماتیک اتفاق میوفته)

💅 Issue Form feature: pyaction.imsadra.me/tutorial/#issueform

🟣 PyAction repo: github.com/lnxpy/pyaction
👍12💩1
یک چالش رو به رو شدم یکی از دیتابیس های پروداکشن ۳ ترابایت دیتا داخلش بود. گرچه کل row هاش رو هم ۱۰۰ گیگ هم نمیشد. و باعث میشد فضای سرور پر شه و دیتابیس بیاد پایین.

میدونستین وقتی یک row رو دیلیت میکنید فضا داخل دیتابیس PostgreSQL خالی نمیشه؟ بخوام درست تر بگم, فضا همچنان توسط تیبل reserve شده. برای همینه که میگن بهتره تو postgresql نیاین فایل byte بزرگی رو ذخیره کنید. البته تو کیس من دیتا بایت بزرگ نبود, صرفا دیتا زیاد بود. و دلیلش هم به خاطر مدل MVCC دیتابیس هست.

دو راهکار وجود داره برای اینکار. اولیش استفاده از VACUUM خوده دیتابیسه.😎 فکر کنید دوستتون زنگ بزنه بپرسه داری چیکار میکنی, بگی دارم جارو میکنم :))

دومیش استفاده از یک extension هست که شخصا تستش نکردم ولی جالب بود وقتی داشتم یک مقاله راجبش میخوندم.

@PyBackendHub
👍23🙏1
https://www.youtube.com/watch?v=q99TYA7LnuA

یک فیلم جذاب از آرمین که داره rye رو معرفی میکنه. توصیه میکنم حتما ببینید.
داخل یک ویدیو تو کانال یوتیوبش هم یک walk through رو سورس کد و نحوه کارکرد rye رو نشون میده.
پ.ن: فقط صدای کیبورد آرمین >>>. البته واسه ویدیو. وگرنه همکارم بود استعفا میدادم 🤣(شوخیه دوستان جدی نگیرین😅)

@PyBackendHub
😁2👍1🙏1
#otel

بر پایه opentelemetry ابزار بعدی pydantic هم توسعه داده شد 🔥🔥

همونطور که تو رودمپشون بود قرار بود سولوشنی بدن که دیگه نیازی نباشه شما خیلی درگیر observability بشی داخل کدتون و اینترفیس developer friendly تر و تجربه بهتری بهتون بدن.

دقایقی پیش logfire سولوشن جدید pydantic اوپن سورس شد. توصیه میکنم حتما یک سر بزنید بهش
https://docs.pydantic.dev/logfire/

@PyBackendHub
👍141🙏1
Python BackendHub
#otel بر پایه opentelemetry ابزار بعدی pydantic هم توسعه داده شد 🔥🔥 همونطور که تو رودمپشون بود قرار بود سولوشنی بدن که دیگه نیازی نباشه شما خیلی درگیر observability بشی داخل کدتون و اینترفیس developer friendly تر و تجربه بهتری بهتون بدن. دقایقی پیش logfire…
#otel

سوال پرسیدن که این پکیج چیه اصلا و کارش چیه. اولا باید بگم اگه onboarding guide اش رو بخونید خیلی راحته استفاده ازش. تو ۱ دقیقه میتونید بالا بیارین و شروع به استفاده کنید. بدون اینکه چیزی رو بخواین هاست کنید.

اول بذارین توضیح بدم observation یعنی چی. ما توی devops دو آپریشن داریم که شبیه همن و گاها باهم اشتباه گرفته میشن. اولیش مانتورینگه. مانیتورینگ به پروسه ای میگن که دیتا کالکت میشه از سرویسی, و یک ریپورت از سلامت سرویس بر اساس metric های مشخصی که برای سلامت سیستم رو نشون میدن و کالکت شدن ساخته میشه. یعنی چی؟ مثلا تعداد ریسپانس های 5xx در ۲۴ ساعت گذشته. یکی از شناخته شده ترین ابزار برای اینکار prometheus هست. observability به پروسه ای میگن که رویکرد تحقیقاتی داره. یعنی دنبال این نیست که بگه چقدر ریسپانس 5xx وجود داره. دنبال دلیل وجود این ریسپانس هاست. چرا الان این درخواست تو پروداکشن ارور ۵۰۰ میده؟ خوندن کل لاگ سرویس قدیمی ترین و ابتدایی ترین راهکار بود.

وقتی بک اند پیچیده تر شد, دیگه خوندن لاگ واقعا کارساز نبود. شما فکر کنید در لحظه ۱۰۰ درخواست داره میاد براتون. چطور میخواین لاگ هارو بخونید؟ تو قدم بعدی لاگ های هر درخواست رو جدا کردن. ولی بازم کار ساز نبود تو دنیای distributed system. چون مثلا یک سرویس ۱ با سرویس ۲ داشت حرف میزد. ورودی که میداد بهش درست نبود. سرویس ۱ صرفا یک exception میگرفت که سرویس ۲ استتوس ۵۰۰ داده. و این کافی نبود برای اینکه متوجه شیم چه اتفاقی میفته.

سولوشن های زیادی اومدن تو مارکت. از قبیل sentry که شاید اسمشو شنیده باشین. یا datadog و لوکی و ... . اینقدر این سولوشن ها زیاد شدن و هر کدوم ساز خودشون رو میزدن. نمیشد راحت از این سولوشن سوییچ کرد به اون یکی. نمیشد مزایا دو سولوشن رو همزمان داشت. و learning curve سختی داشت اگه میخواستین سوییچ کنید از یکی به یکی دیگه.

اینجا بود که CNCF (Cloud native compute foundation) یک پروژه جدید رو استارت زد. همون فاندیشنی که کوبر و prometheus و خیلی ابزار های تحت کلاد رو ساخته. اومد یک پروتکلی ساخت به اسم opentelemetry.
یعنی چی پروتکل؟ یعنی گفت sentry جان من برام مهم نیست شما لاگ رو چطور ذخیره میکنی یا پردازش میکنی اینترنالی. شما باید span داشته باشی. metric داشته باشی. و trace. و دقیقا تعریف کرد که اینا چین. یعنی اومد گفت اینترفیس خارجی یک سیستم observability چطور باید باشه؟ چون در نهایت همه این سیستما شبیه هم بودن. و حالا چون همشون داشتن از یک پروتکل خاصی پیروی میکردن شما میتونستی راحت از سولوشن یک سوییچ کنی به سولوشن دو. مثلا شاید مثالشو دیده باشین که تو سیستم فایل استوریج بعضی استوریجا s3 compatible هستن. اینم دقیقا شبیه همونه.

استک observation به دو قسمت تقسیم میشه. یکی میشه exporter و یکی میشه داشبورد. exporter معمولا یک لایبریه که شما نصب میکنی. و باهاش اون دیتایی که میخوای export میکنی. و میگی دیتا رو کجا بفرسته.(یک وقتام برعکسه, سرور داره دیتا رو میگیره). قسمت دوم میشه اینترنال اون استک. مثلا دیتایی که فرستاده میشه تو چه دیتابیسی ذخیره میشه؟ چطوری پردازش میشه؟ چی به شما نمایش داده میشه؟من بهش میگم داشبورد.

خوده opentelemetry داشبورد خاصی نداره. صرفا یک سری exporter تو زبون های مختلف داره که میتونید تو گیتهابش ببینید. مثلا برای fastapi و جنگو لایبری داره. ولی پیاده سازی و داشبوردی نداره برای نشون دادن این اطلاعات. چون همونطور که گفتم در نهایت فقط یک پروتکل و specification هست. از طرفی سولوشن های داشبورد زیاده.یک سرچ کنید میرسید بهش. مثلا من خودم signoz استفاده میکنم.

خب همه اینارو گفتم. حالا نقش logfire این وسط چیه؟ logfire همون لایبری های اکسپورتر opentelemetry رو اینترفیسشو بهتر کرده. و با pydantic هم اینتگریتشون کرده. و یکم utilty اضافه کرده. این قسمت exporter اش هست که اوپن سورسه.
یک قسمت داشبورد هم داره که هنوز اوپن سورس نشده. و مشخص نیست که بشه یا نه. ولی فعلا رایگانه.


اینجا قشنگ صفر تا صد توضیح داده. بعد توضیح های من حالا خیلی بهتر متوجه میشین.

@PyBackendHub
👍2311🙏4
Python BackendHub
#otel سوال پرسیدن که این پکیج چیه اصلا و کارش چیه. اولا باید بگم اگه onboarding guide اش رو بخونید خیلی راحته استفاده ازش. تو ۱ دقیقه میتونید بالا بیارین و شروع به استفاده کنید. بدون اینکه چیزی رو بخواین هاست کنید. اول بذارین توضیح بدم observation یعنی…
یک سوال خوبی هم که پرسیدن این بود که چی سره sentry و datadog و اینا اومد.

ببینید اینا خودشون یک sdk داشتن. هنوزم دارن. منتهی اومدن sdk هارو ریفکتور کردن که با opentelemetry protocol هم سازگاری داشته باشه. ولی اگه sdk ها ۱۰۰ تا فیچر داشتن, اگه سوییچ کنید رو پروتکل اوپن تلمتری, اون موقع ممکنه ۲۰ تا فیچر sdk هاشو از دست بدید. چرا؟‌ چون opentelemetry هنوز نتونسته چهارچوبی بسازه که صد در صد فیت باشه واسه همه این سولوشن ها. ولی اگه بخواین اون ۲۰ تا فیچر رو فاکتور بگیرین, مثلا شما میتونید sdk سنتری رو استفاده کنید با داشبورد سیگنوز. یا sdk لاگ فایر با داشبورد سنتری. یا sdk خوده اوپن تلمتری با datadog. و خوبی opentelemetry هم دقیقا همینه. که شما هر sdk که دوست دارین با هر داشبوردی میتونید استفاده کنید.
منتهی همونطور که اشاره کردم ممکنه یک وقتا sdk ها در برابر داشبورد خودشون یک سری فیچر های اضافه و خارج از پروتکل opentelemetry داشته باشن.

@PyBackendHub
👍10
بنظرم دانش تو زمینه بک اند به ۳ قسمت تقسیم میشه، که خیلی مهمه سه تاشو داشته باشیم.

مثلا فکر کنید میخواین یک rest api بنویسید به همراه تست.

قسمت اول بلد بودن فریم ورکی برای اینکاره. مثل پای تست و فست. ولی بلد بودن اینا کافی نیست فقط

قسمت دوم، فلسفه پشت اون موضوعه. که دونستنش خیلی ضروریه. مثلا تو بحث api نویسی کی باید یک اندپوینت post باشه کی put کی patch و .. . یک api چطور باید باشه. Rest api چی داره که بهش میگن restful. و …. یا مثلا برای تست نویسی چی باید تست شه. چقد باید تست نوشته شه. چی باید ماک شه. چی نباید ماک شه.

و قسمت سوم اینکه بدونیم پشت صحنه اینا چطور کار میکنن. قسمت سوم همیشه الزامی نیست چون انتهایی نداره ولی اگه به اندازه کافی قسمت سوم رو نداشته باشین، خیلی وابسته میشین به اون فریم ورکی که دارین ازش استفاده میکنید.


@PyBackendHub
👍37👎41🔥1
Python BackendHub
بنظرم دانش تو زمینه بک اند به ۳ قسمت تقسیم میشه، که خیلی مهمه سه تاشو داشته باشیم. مثلا فکر کنید میخواین یک rest api بنویسید به همراه تست. قسمت اول بلد بودن فریم ورکی برای اینکاره. مثل پای تست و فست. ولی بلد بودن اینا کافی نیست فقط قسمت دوم، فلسفه پشت اون…
برداشت اشتباه نکنید از حرفم، من نگفتم فقط باید نوشتن api و تست بلد باشین. گفتم سه سطح یادگیری برای هرچیزی هست.
تو یک سطح شما یوزر‌ خوبی هستی با اتکا به یک ابزار خاصی.
تو یک سطح شما میتونی یوزر‌خوبی باشی حتی بدون اتکا به اون ابزار خاص. و میتونی درک کنی که چطوری کار میکنه.
و تو یک سطح شما نه تنها یوزر‌خوبی هستی، بلکه تصمیم گیرنده خوبی هستی چون چرا ها رو درک میکنی.

@PyBackendHub
👍231
👌👌
بحثش بود دیروز تو گروه که یکی از دوستان دنبال مدلی از business analytic دیتا بود و میخواست خودش اینو حساب کنه و یک فیچر جدید بذاره
ولی حقیقت واقعا نیازی نیست. اگه observationتون خوب باشه, خیلی وقتا همون دیتا میتونه برای بیزنس خیلی مهم و کریتیکال بشه.

@PyBackendHub
👍2🙏1