Python BackendHub – Telegram
Python BackendHub
7.51K 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
ما یک لایبری داریم تو راست به اسم pyo3 که بهت اجازه میده تو راست کد binding بزنی بدون اینکه بخوای یک عالمه بویلرپلیت بنویسی. اما چطور؟ core پایتون expose شده تحت لایبری C به اسم libpython

لایبری مثل Pyo3 که اجازه میده با راست برای پایتون کد binding بزنی اینطوری کار میکنه که میاد اون لایبری libpython رو wrap میکنه ولی به صورت تایپ سیف و مموری سیف. من الان یکم داکشو خوندم فکر کنم بخوام یک ادد ساده بنویسم این شکلی میشه:


use pyo3::prelude::*;

#[pyfunction]
fn add(a: i32, b: i32) -> i32 {
a + b
}

#[pymodule]
fn my_module(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_function(wrap_pyfunction!(add, m)?)?;
Ok(())
}


و ظاهرا خوده ‍PyO3 برام فایل stub هم میسازه که مشخص شه اینترفیس پکیجم چطوری شده.


def add(a: int, b: int) -> int


بعد با این لایبری میام کد rustمو کامپایل میکنم. میزنم maturin develop که پکیج رو کامپایل میکنه به فایل so یا dll. و خودش هم میفرسته رو pypi همون فایلو با دستور maturin publish.
بعدش پکیجمو نصب میکنم نویسم

from my_module import add
add(1,2)

و جوابش میاد میشه ۳. اما تو ران تایم چطوری اجرا میشه؟

فایل .so بهش میگن shared object.
وقتی داری یک چیزی رو کامپایل میکنی دو حالت داره:
۱. یا اینکه بیای static linking انجام بدی. یک executable میدی بیرون که اونو اجرا میکنی درجا اجرا میشه.
۲. یا اینکه بیای dynamic loading انجام بدی. یعنی نمیای executable بدی که قابل اجراست و و همه چیز داخلش هست. به جاش میای باینری کد برنامتو کمپایل میکنی به همراه یک سری symbol و executable نیست دیگه مستقیم.سیمبل میشه function ها و variable هات.و یک برنامه دیگه اونوقت میتونه بیاد با استفاده از اون سیمبل ها, به صورت داینامیک از ماشین کدت استفاده کنه.

حالا چطوری؟ تو سیستم عامل یک چیزی وجود داره به اسم dynamic loader که وظیفش اینه دقیقا همین فایل های .so رو ران کنه. اینم رفرنس لینوکیسش.

در نهایت مفسر پایتون میتونه تو ران تایم کد rust ای که تحت فایل .so داری رو با داینامیک لودر ران کنه. و اون کد so دقیقا توابعی که تو راست نوشتی ماشین کدشو به صورت callable پایتون داره و از اون جایی که libpython هم wrap شده میتونی از api های libpython استفاده کنی. مثل گرفتن GIL و ریلیز کردنش. بقیه extension های ‍C هم همینطوری کار میکنند.

@PyBackendHub
👍21🔥3🤣31👎1
Python BackendHub
Next one is loading... ⌛️🚀 @PyBackendHub
همیشه با خودم فکر میکردم چی میشد اگه همونطوری که FastAPI ریسپانس 2xx که ریترن میکنیم و تو سواگر میاره, بقیه حالت ها رو هم بیاره. مثلا اگه احراز هویت کاربر درست انجام نشد بهش تو سواگر نشون بده چه ریسپانسی ممکنه بگیره.

برای همین پروژه ای نوشتم که اینکارو انجام میده. شما تو این پروژه فقط یک خط کد میتونید این قابلیت رو به پروژتون اضافه کنید!

لینک گیتهاب
لینک داکیومنتشن

لایبری RichAPI با استفاده از Abstract Syntax Tree کل کد FastAPI شما رو آنالیز میکنه و میبینه زیر روتر های شما چه اکسپشن هایی ممکنه رخ بده و اون رو به سواگر اضافه میکنه!

اگه این پست یا این کتابخونه برات مفید بوده، خیلی ممنون می‌شم اگه بهش یه ستاره بدی. استار گیت هاب شما به من خیلی انگیزه میده که به توسعه و بهبود فریمورک‌های متن‌باز ادامه بدم. 🙂🙏


@PyBackendHub
🔥353👍3👎2👏2
این لایبری عالیه
https://github.com/adamchainz/time-machine

میتونید باهاش تایم رو ماک کنید تو پای تست.
اینطوری انگار برگشتین عقب به تایم.
اگه از این لایبری استفاده نکنید باید now رو یک جا run کنید و همه جا پاسش بدید که یکم اذیت کنندست

@PyBackendHub
👍14👎1
یک فیچر جدید به RichAPI اضافه شد.

شما میتونید اکسپشن کاستوم با context بنویسید.
اینطوری دیگه لازم نیست کل متن exception تون رو stringify کنید تو detail که اصلا پترن خوبی نیست. اینطوری دیتا رو کامل تر میتونید به کلاینت بدید و بذارین خوده کلاینت متن ارور رو بسازه.

و خوبیش هم اینجاست که صورت خودکار به سواگرتون اضافه میشه 🚀

لینک گیتهاب
لینک داکیومنتشن

@PyBackendHub
18👍2🔥2👎1🤩1
قصد هیت دادن ندارم ولی واقعا لینکدین جای عجیبیه!

@PyBackendHub
🤣103👎3😁3😐1
Python BackendHub
Photo
لینکدین به روایت تصویر😂:

I shat myself today, here are 5 things I learnt from shitting myself

1. Fart isn’t always a fart only 💨
2. Shit is wet 💧
3. Shit doesn’t go away without washing 💩
4. You can’t trust yourself ⁉️
5. Shit stinks 😷


credit: the9to5slaves

@PyBackendHub
🤣65😐5👎3👍2🔥1👏1
یک چیزه خیلی basic و قشنگ تو پایتون که من نمیدونستم, میتونید تو list comprehension از walrus operator استفاده کنید.

فقط یک نکته ای که داره اینه که اسم variable لیک میشه. حواستون باشه به این قضیه. یعنی تو این مثال اگه از list comprehension خالی استفاده میکردم i وجود نداشت.

@PyBackendHub
👌28👍71
Forwarded from ‌BenDev
یه صحبت جذابی با مانی داشتیم در رابطه با پیشرفت توی شرکت های بزرگ و کوچیک کلی تاپیک مختلف هم وسط اومد. گفتم به اشتراک بزارم شما هم بهره ببرید.

https://youtu.be/FOg9zK4ikGU

@BenDevelop
15👍1
یک نکته خیلی بزرگ راجب رزومه نویسی که تو ریپو هم بهش اشاره کردم
سعی کنید با کمترین تعداد لغات بیشترین مفهوم رو تو رزومتون برسونید. یک مثال میزنم:

Engineered Notification System: Designed a real time notification system to notify customers about their purchases. It improved the satisfaction of customer.

سه بار کلمه نوتیفیکشن رو نوشته. بعد توضیح داده نوتیفیکشن چیه.خب ذاتا نوتیفیکشن هم real time هست تقریبا. یعنی اینطور نیست یکی تو تلگرام به شما پیام بده شما ۵ روز بعد نوتیفیشکنشو بگیرید. بعد اون قسمتی که واقعا مهم بوده رو اصلا باز نکرده (رضایت کاربر). کاربر چطور راضیه وقتی شما بهش نوتفیکیشن میدی؟ اصلا این چه ارتباطی داره؟ یوزرا بدتر ممکنه بدشون بیاد اسپم بشن. در کل خیلی بولت پوینت ساده و خسته کننده ای هست. اصلا هم مشخص نیست این سیستم رو چطور نوشته. چیکار میکنه و ... .

Boosted app engagement and revenue through timely purchase alerts by developing a multilingual purchase notification system using Firebase.

تقریبا همون تعداد کلمه ولی خیلی بیشتر و کاملتر و دقیقتر. بعضا buzz word هم دیده میشه. حواستون باشه رزومتون رو ندید به gpt براتون بنویسه یا اگه اینکارو میکنید خواهشا سه بار بخونید از روش که ۱. تابلو نباشه AI نوشته ۲. جملات مفهوم و معنی داشته باشن و straight to point باشن.

من تو هر ۱۰۰ تا رزومه ای که میبینم ۹۵ تاش خوب نیستن... توصیه میکنم حتما رو رزومه تون خیلی وقت بذارین. رزومه بخش بزرگی از presentation شماست و تو آینده شغلیتون بسیار تاثیر میذاره.

ریپو رزومه نویسی من رو هم اگه تاحالا نخوندین لینکش اینجاست.

@PyBackendHub
👍23
متاسفانه کلی ربات زیاد شده تو کانال و همیشه میان کامنت میذارن زیره همه پستا. کار من شده پاک کردن این کامنتا. (و این از عملکرد بسیار ضعیف تلگرام هم میاد تو این زمینه)
برای همین مجبورم گروه رو دیگه پابلیک نکنم و برای عضو شدن باید درخواست بدید از این به بعد. در خصوص کامنت گذاشتن هم همین موضوع برقرار هست.


@PyBackendHub
👍36🍌3🤬2
این پست جنبه اموزشی ندارد 😁

از وقتی برلین اومدم خیلی networking event میرم. در در حد هر یکی دو هفته یک بار. دوره همی فانه، کلی ادم و دوست جدید پیدا میکنم معمولا بعدش هم میریم بیرون. نکته ای که خیلی برام جالبه اینه که همه دارن یک کمپانی AI میسازن تو این event ها، و دنبال فاند raise کردن هستن که پروداکتشون رو لانچ کنند. این AI خیلی بیش از حد ترند شده مخصوصا تو VC و fundraising. اصلا انگار مردم یادشون رفته تا سال پیش هم AI وجود داشته 😅

یک استارت آپ داشت pitch انجام میداد، کارشون این بود که بگن از چه پروداکت skin care چک کن با استفاده از دوربین گوشیت. همون کاری که بری یک لوازم ارایش فروشی اون فروشنده تو ۲ دقیقه انجام میده. و این پروسه ای هست که نیاز به human interaction داره.

و چیزی که خیلیا دیدم فراموش میکنن بیزنس مدل و استراتژی فروش هست. اوکی پروداکتت خیلی باحاله ولی چرا یک e-commerce باید ده هزار یورو خرج همچین فیچری کنه؟ اصلا چه سود مالی داره همچین چیزی؟

بنظره من این عنصر پروداکت که بتونی قانع کنی کلاینتو و بتونی یک چیزی راه بندازی تو خیلی از این پروداکت های جدید AI وجود نداره و میخوان با چکش AI هرجوری شده هر میخی رو بکوبن تو دیوار.

@PyBackendHub
👍63👏2👎1
بهترین آهنگ برای کد زدن رو یافتم :))
اونایی که داستانشو میدونن 😁

@PyBackendHub
👍8👎4😁3
Forwarded from Sadra Codes
یه مقاله خیلی جمع و جور نوشتم واستون. اگه به مبحث type hinting علاقه دارین، توی این مقاله راجع به Generic Typing توی پایتون نوشتم. دقیقا سینتکس زیر و اون [T] که گاها ممکنه گیج کننده باشه:

def function[T](...) -> T:
...


اینکه چیه و چیکار می‌کنه به همراه کلی مثال و تمرین کوچیک که درک این قضیه رو واستون ساده‌تر می‌کنه.

Read 👉 https://blog.imsadra.me/generic-typing-in-python

این سینتکس در ورژن ۳.۱۲ معرفی شد. در رلیزهای بعدی پایتون، خواهید دید که خیلی از این سینتکس استفاده میشه.
👍23🤣3👎2🔥2😁1
The Oxidation Compiler is creating a collection of high-performance tools for JavaScript and TypeScript.
Oxc is building a parser, linter, formatter, transformer, minifier, resolver ... all written in Rust.

حقیقتش تست نکردم. ولی readme خیلی جالبی داره. یک سر بزنید بهش

https://github.com/oxc-project/oxc

@PyBackendHub
👍5
#آف_تاپیک #موقت

استارت آپ من دنبال UI UX دیزاینری هست که زبان انگلیسی بلد باشه. متن آگهی:
-------------

پوزیشن:‌ UI/UX Designer
محل کار:‌ ریموت

درباره پروداکت:
فیر تو بات یک پروداکت B2B هست که با ارائه API و داشبورد، به کسب‌وکارها امکان می‌دهد به‌طور خودکار با بازی‌های آنلاین تعامل داشته باشند و انتقال ارزهای دیجیتال درون بازی را خودکار کنند. پلتفرم ما به شرکت‌ها کمک می‌کند تا فرآیندهای مرتبط با ارزهای بازی را بهینه‌سازی کنند و هزینه ها را کاهش بدهند و تجربه کاربری بهتری را برای مشتریان خود فراهم نمایند.
ما به دنبال یک طراح UI/UX هستیم که بتواند طراحی‌های تجربه کاربری را از ابتدا تا انتها انجام دهد و با انجام تحقیقات دقیق، به بهبود مستمر پلتفرم ما کمک کند. کاندیدای ایده‌آل باید دارای توانایی ایجاد رابط‌های کاربری جذاب و کاربرپسند باشد و بتواند نیازهای کسب‌وکارهای ما را در طراحی‌های خود به خوبی منعکس کند.


وظایف:
- Design and refine intuitive, user-centered UI/UX solutions with a focus on simplicity and functionality.
- Collaborate with developers to translate designs into interactive prototypes and final implementations using Figma.
- Conduct user research, usability testing, and analyze feedback to identify and prioritize design improvements.
- Create data-driven visuals, including analytics dashboards and complex UI components.
- Facilitate user interviews and workshops in English to gather requirements and enhance the user experience.

نیازمندی ها:
- Proven experience in UI/UX design.
- Proficiency in Figma.
- Good communication skills in English, both written and verbal.
- Strong research and problem-solving abilities with an independent and proactive approach
- In-depth understanding of UX principles, information architecture, and end-to-end design processes.

آنچه ما ارائه می دهیم:
- Innovative work environment: Freedom to explore without tight deadlines
- Remote work flexibility

در صورت تمایل لطفا رزومه و portfolio در آدرس زیر وارد فرمایین.
https://forms.gle/LqPJEfccL9mB1XxRA


@PyBackendHub
👍132🤣2
کمی آف تاپیک, یک مدته هوس لینوکس کرده بودم از MacOS خسته شدم.
یک PC کوچیک گرفتم از اینا که تو یک دست جا میشه. وزنش ۱ کیلو هست. با این مشخصات:

RAM: 32GB DDR5
CPU: AMD Ryzen 9, 8 core 16 thread 4.9 GHz
Storage: 1TB SSD NVMe PCIE x 4
Graphics Coprocessor: AMD Radeon 680M 12 cores 2400 MHz
Frequency
Display port: USB 4, HDMI, DP


قیمت چقدر؟‌ فقط ۴۰۰ یورو 😂 اینقدر ارزونه که دارم شک میکنم واقعا کار کنه :)) شنبه دستم میرسه ایشالا.

اسم برندش BOSGAME هست که اصلا آشنایی ندارم.
@PyBackendHub
😭31🔥12👀4👍21🤔1
Python BackendHub
کمی آف تاپیک, یک مدته هوس لینوکس کرده بودم از MacOS خسته شدم. یک PC کوچیک گرفتم از اینا که تو یک دست جا میشه. وزنش ۱ کیلو هست. با این مشخصات: RAM: 32GB DDR5 CPU: AMD Ryzen 9, 8 core 16 thread 4.9 GHz Storage: 1TB SSD NVMe PCIE x 4 Graphics Coprocessor:…
چند نفر پرسیدن, اسمش BOSGAME P3 Mini PC هست. شاید ۴۰۰ یورو گیرتون نیاد چون قیمت واقعیش ۴۷۰-۵۰۰ یوروعه, من با تخفیف موقت رو آمازون و voucher ای که بهم داد اینو گرفتم.

@PyBackendHub
🥰12👍71🔥1