pybackendhub | Unsorted

Telegram-канал pybackendhub - Python BackendHub

-

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 لینک گروه: https://t.me/PythonFellow

Subscribe to a channel

Python BackendHub

یک سوال خوبی هم که پرسیدن این بود که چی سره sentry و datadog و اینا اومد.

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

@PyBackendHub

Читать полностью…

Python BackendHub

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

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

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

@PyBackendHub

Читать полностью…

Python BackendHub

یک چالش رو به رو شدم یکی از دیتابیس های پروداکشن ۳ ترابایت دیتا داخلش بود. گرچه کل row هاش رو هم ۱۰۰ گیگ هم نمیشد. و باعث میشد فضای سرور پر شه و دیتابیس بیاد پایین.

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

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

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

@PyBackendHub

Читать полностью…

Python BackendHub

این پست رو تو لینکدین دیدم. دوست دارم جوابتون رو بدونم. <چالش طراحی>
فرض کنید قراره سرویسی بنویسید که پلتفرم آنلاین رزرو و مدیریت کلاس درس باشه. حالا به این فکر کنید که یه کلاس درس از زمانی که خریداری میشه و در وضعیت «در انتظار برگزاری» قرار میگیره، باید بصورت خودکار وضعیت هاش توسط سیستم مدیریت بشه، مثلا وقتی کلاس خواست برگزار بشه بره در وضعیت «در حال برگزاری»، بعدش بشه «خاتمه یافته»، بعدش که کمیسیون استاد حساب شد بشه «تسویه شده» تصور کنید که ممکنه روی مقیاس بالا مثلا در ساعت اوج حدود ۵۰ هزار یا بیشتر کلاس برگزار بشه. تصور کنید کلاس ها به صورت آنلاین برگذار میشه. از چه ابزارها و معماری ای استفاده میکنید که پاسخگو نیاز بیزنس باشه؟

@PyBackendHub

Читать полностью…

Python BackendHub

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

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

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

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

یوتیوب من:
GitOverHere" rel="nofollow">https://www.youtube.com/@GitOverHere

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

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


@PyBackendHub

Читать полностью…

Python BackendHub

نسخه ۲.۷ پایندانتیک اومد که خیلی فیچر های جالبی داره:

https://blog.pydantic.dev/blog/2024/04/11/2-7-release/#new-features


@PyBackendHub

Читать полностью…

Python BackendHub

مقاله خیلی خوبیه که یاد میده چطور از git bisect استفاده کنید. یوزکیسش؟
برای دیباگ خیلی مفیده. فکر کنید شما یک باگی دارین که n تایم پیش نداشتین (مثلا چند ساعت مهم نیست). و میخواین ببینید کدوم کامیت باعث ایجادش شده. میتونید یک تست reproduce براش بنویسید. و بعد با استفاده از bisect سریع به اون کامیتی که باعثش شده بود برسید.

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

@PyBackendHub

Читать полностью…

Python BackendHub

سلام. ما داخل تیممون داخل شرکت Noah Labs به دنبال یک بک اند دولوپر پایتون هستیم. این پوزیشن visa sponsership داره ولی به دلیل نیاز سریع به نیرو, فقط میتونیم کسانی رو اسپانسر کنیم که کارشون رو زودتر حتی ریموت شروع کنند. به همین دلیل اگه داخل ایران هستین و یا اجازه کار ندارین حتما لینک زیر رو بخونید.
شرایط کار کردن قانونی به صورت ریموت

میتونید با آیدی تلگرام من در تماس باشین برای ریفر کردتون. لطفا رزومه تون رو داخل پیامتون بفرستین.
@mani_nikou

At Noah Labs, we are guided by the vision to develop software that understands, treats, and ultimately prevents cardiovascular diseases. Our mission is to help people with heart diseases live longer and happier lives. We are building a Machine Learning based Health Analytics platform that combines connected medical devices, smart algorithms and a mobile application for patients. Such an application involves storing and serving data for multiple frontends, integrating with 3rd party systems, processing and analyzing health data and much more…

Tasks:
- You'll strengthen our backend: Storing, processing and reliably serving our customers' sensitive health data.
- You'll keep an eye on code quality and best practices: Making sure our code is well tested doesn't mean you'll be writing tests 24/7. More importantly you are pushing for a high quality codebase within the team, worthy of a medical product.
- You'll work autonomously and as part of a team: Agile, owning some things and sharing others.

Requirements:
- You have at least 2 years of backend developer experience.
- You have experience with FastAPI, SQLAlchemy, PostgreSQL, Pytest and Playwright.
- You can communicate a deep understanding of programming fundamentals: Why is one abstraction good and another bad?
- You know how to write solid, consistent, meaningful tests. Testing only what needs to be tested, at the right level of abstraction.
- You can give constructive code reviews, helping your teammates to write better code.

Benefits
💔 The chance to solve a problem that affects millions of people
🚀 A highly talented and ambitious team
☮️ A good environment practice your craftsmanship, we care about quality and DX
💸 Competitive compensation & an Urban Sports Club membership
🏡 A beautiful office in Berlin (Mitte) or Potsdam (Babelsberg)
🍺 Team drinks every Friday!

لینک اپلای

@PyBackendHub

Читать полностью…

Python BackendHub

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

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

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

@ManiFoldsPython

Читать полностью…

Python BackendHub

نکته سوال دوم: scale این پروژه به شدت سخته. جایی که وب سوکت میاد به شدت سخت scale میشه چون state داره اپلیکیشن. شما فکر کنید ۱ میلیون کاربر یک دفعه به وب سوکتتون وصل میشن، حالا ۲ تا اپ جدید میذارین، کسی بهش وصل‌نمیشه! چون همه به اپ اول وصلن هنوز. ولی rest api اینطوری نیست چون state نداره. فکر کنید میخواین دیپلوی کنید، اگه وب سوکت رو بیارین پایین همه ۱ میلیون کاربر باهم قطع میشن. وقتی داره یک دانلود بزرگ رخ میده، احتمال اینکه مموری بچسبه به سقف هم خیلی زیاده!

پس هر جایی که اپتون state داره سعی کنید کمترین فشار روش باشه. کاره منطقی اینه که یک بروکر داشته باشین، و یک سرور دیگه وظیفش فقط دانلود باشه و اطلاع بده تو مسیج بروکر که چقدر انجام شده. دیگه اینطوری درگیر لاک و … نمیشین و کد async و sync خیلی راحت میتونن باهم حرف بزنن

@PyBackendHub

Читать полностью…

Python BackendHub

چند روز پیش ازم یک سوالی شد که جذاب بود برام:

شما requirement ای دارین که باید بدون استفاده از هیچ دپندسی خارجی جز پایتون, با یک وب سوکت async که در نظر بگیرین که کلاینت بهش وصل میشه, باید از یک لایبری sync یک دیتای زیادی رو دانلود کنید و به کلاینت وب سوکت هم باید آپدیت بدید که چند درصد دانلود انجام شده رو وب سوکت. فرض کنید اون لایبری sync ای که ازش دارین استفاده میکنید برای دانلود دیتا, یک hook داره که در واقع یک callable بهش میدین و اون صدا میزنه رو هر n درصد از دانلودی که پیش بره. یک همچین اینترفیسی:


def download_hook(info: DownloadInfo):
...
# notify your webhook client which is async


download_big_data(hook=download_hook, every_n_percent=10)


در واقع چالش این سوال اینه که کد sync و async با هم به طور real time تو یک پروسس حرف بزنن.
سوال اول:‌اینو چطور پیاده سازی میکنید؟
سوال دوم:‌ اگه requirement ای وجود نداشت برای دپندسی خارجی, از چه چیزی استفاده میکردین؟ و چرا؟

@PyBackendHub

Читать полностью…

Python BackendHub

این روزا ردیس خیلی شلوغ کرده احتمالا خونده باشین راجبش که لاینسس تغییر کرده
میخواستم بگم یک alternative داره که api اش کاملا با ردیس compatible هست و مدعیه که پرفومنس خیلی بهتری میده نسبت به ردیس. همچنین شرکت هایی مثل ubisoft و epic games هم ازش استفاده میکنن ظاهرا.

توصیه میکنم یک سری بزنید. خودم هنوز تستش نکردم. ولی احتمالا ردیسو با این تغییر بدم اگه تست کنم و ببینم هیچ ساید افکتی نداره.
https://www.dragonflydb.io/

@PyBackendHub

Читать полностью…

Python BackendHub

یک فکت:‌امروز ۶ میلیون نفر pydantic رو دانلود کردن!‌ pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده, و احتمال داره به جایی برسه در آینده نزدیک که به پر دانلود ترین پکیج پایتونی هم تبدیل شه!‌در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic هستند مثل نام پای با ۹ میلیون دانلود روزانه. این در حالیه که فست فقط یک میلیون دانلود داشته. این آمار و ارقام نشون میده pydantic کامل وارد اکوسیستم پایتون شده و تو انواع پروژه ها استفاده میشه.

اگه هنوز pydantic رو شروع نکردین, اهل خوندن داک هم نیستن(!), ویدیو دکتر فرد رو بهتون توصیه میکنم:
https://www.udemy.com/course/pydantic/

دکتر فرد دوره پایتونی خیلی خوبی هم داره. deep dive into python. اگه میخواین بیشتر پایتون یاد بگیرین به شدت توصیه میشه:
https://www.udemy.com/user/fredbaptiste/

@PyBackendHub

Читать полностью…

Python BackendHub

#گوناگون

جواب ادمین FFmpeg قشنگ بود 😁

🚁 Hicte Blog

Читать полностью…

Python BackendHub

AioClock 🚀🔥

خب یک لایبری دیگه نوشتم 🚀 این بار یک فریم ورک کاملا scheduler با async و خیلی سبک.‌فیچر هاش؟
۱. دپندسی اینجکشن
۲. داشتن trigger های مختلف (تو عکس واضحه) و scheduling
۳. ماژول بندی با Group که به code maintainabilityتون کمک میکنه
۴. سینتکس خیلی خوب و استفاده از pydantic

چی شد اینو نوشتم؟‌ مشکل اینجا بود که من از rocketry استفاده میکردم و خیلی وقتا که نسخه pyddanticشو آپدیت نکرده. میخواستم یک پروژه دیگه بالا بیارم حال نداشتم دوباره برم پکیجشو vendor کنم و نسخه pydanticشو ببرم بالا و ... .‌گفتم چه کاریه کاره خاصی نمیکنه خودم تو یک نصف روز میکنم 😁 اینترفیسش به نظره خودم جذاب تر شد!

برای حمایت خیلی ممنون میشم استار بدید 🙏
https://github.com/ManiMozaffar/aioclock

و خوشحال میشم contribute کنید مثل همیشه. لایبری رو خیلی سریع نوشتم. ایده های بهتری دارم براش بعدا روش کار میکنم.
Make It Work Make It Right Make It Fast

@PyBackendHub

Читать полностью…

Python BackendHub

سوال پرسیدن که این پکیج چیه اصلا و کارش چیه. اولا باید بگم اگه 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

Читать полностью…

Python BackendHub

https://www.youtube.com/watch?v=q99TYA7LnuA

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

@PyBackendHub

Читать полностью…

Python BackendHub

نسخه 0.5 پای‌اکشن هم رلیز شد! 💫

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

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

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

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

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

🟣 PyAction repo: github.com/lnxpy/pyaction

Читать полностью…

Python BackendHub

گلچین مطالب کانال پارت اول. رزومه نویسی و کار یافتن

دوره رزومه نویسی و رشد در مسیر شغلی

چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟‌راهنما عملکرد بهتر در مصاحبه ها

قدم های مورد نیاز برای مهاجرت

ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار

معرفی ریسورس برای مصاحبه و بهتر کردن رزومه


این پست در آینده ادیت خواهد شد.

@PyBackendHub

Читать полностью…

Python BackendHub

نسخه بعدی لایبری 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

Читать полностью…

Python BackendHub

https://www.linkedin.com/posts/manimozaffar_previously-i-was-using-rocketry-a-useful-activity-7184234309443059712-EYjX?utm_source=share&amp;utm_medium=member_desktop

Читать полностью…

Python BackendHub

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

Читать полностью…

Python BackendHub

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

@PyBackendHub

Читать полностью…

Python BackendHub

این اصل‌ همیشه هست، جایی که اپتون state داره، خیلی کار کمی انجام بدید.
پست مشابه:
/channel/PyBackEndHub/838

Читать полностью…

Python BackendHub

خب نکته ای که این سوال اول داشت این بود که چطور حرف میزنن؟ بهترین جواب اینه که وب سوکتت وقتی کانشن باز میشه یک ترد دیگه باز میکنه، و یک queue میسازه برای خودش، و تو اون یکی ترد از کد sync اپدیت میگیره. داخل هوکش مسیج رو میذاره که بفرسته سمت queue. اماااا یک نکته ریز داره!

شما اگه از Queue خوده تردینگ استفاده کنید تو کد async ددلاک میشه کدتون، و همینطور اگه تو threading از لاک asyncio استفاده کنید بازم همین مشکل دارین. ضمن اینکه لاک asyncio ترد سیف نیست، و لاک تردینگ کوروتین سیف نیست.

این لایبری queue ای داره که هم asyncio aware هست و هم ترد سیفه!
https://github.com/aio-libs/janus


@PyBackendHub

Читать полностью…

Python BackendHub

یک جمله به شدت حق 😂👌

I finally understand the rust people.
Its javascipt devs who got out of a toxic relationship and now they want to date the opposite person.


@PyBackendHub

Читать полностью…

Python BackendHub

معادل pydantic برای بقیه زبونا:

Type Script (ترکیب این ۳ تا)
https://github.com/typestack/class-validator
https://github.com/typestack/class-transformer
https://github.com/vega/ts-json-schema-generator

اینم گزینه جذابیه:
https://arktype.io/

Rust (ترکیب این دو)
https://github.com/serde-rs/serde
https://github.com/GREsau/schemars

با serde کار کردم. با تایپ اسکریپت نه. ولی بنظرم pydantic قشنگ ترین اینترفیس و فیچر هارو داره.

@PyBackendHub

Читать полностью…

Python BackendHub

در پی این توییت:

توجه کنید اشتباه برداشت نکنید. این meme منظورش این نیست که دیزاین پترن یا abstraction نداشته باشین هیچوقت. منظورش اینه که اگه نیاز ندارین نداشته باشین. و بیشتر از اینکه نگران perfect بودن OOPتون باشین, نگران سادگی و فهم کد باشین در مقابل پیچیدگی مشکلی که داره حل میکنه. یک وقتا ممکنه یک abstraction کد رو خیلی ساده تر کنه. و اون یعنی کد خوبیه.

@PyBackendHub

Читать полностью…

Python BackendHub

https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/

این مقاله رو حتما توصیه میکنم بخونید. به شدت کاربردیه.
@PyBackendHub

Читать полностью…

Python BackendHub

برای پسا social engineeringا هم خیلی روش دفاعی خوبیه. مثلا organization ها data breach داشتن ولی نفهمیدن از کجا خوردن :))‌ ولی لاگتون فعال کنید و هر سرویس یوزر و هر کاربر یوزر خودشو داشته باشه و لاگ انداخته شه کاملا مشخص میشه که چه اتفاقی افتاده اگه یک درصد data breach بود.

@PyBackendHub

Читать полностью…
Subscribe to a channel