دیدنش حتما پیشنهاد میشه!
ساموئل کلوین راجع به Pydantic و اوپن سورس صحبت میکنه.
https://www.youtube.com/watch?v=tP8iVJiLwX8
ساموئل کلوین راجع به Pydantic و اوپن سورس صحبت میکنه.
https://www.youtube.com/watch?v=tP8iVJiLwX8
YouTube
The story of Pydantic and Logfire | Samuel Colvin
Samuel Colvin - the creator of Pydantic - the most popular data validation library for Python. Used by literally everyone (Anthropic, OpenAI, Meta, NVIDIA, even the NSA). He shares the story behind his startup Logfire which just raised $12.5m from Sequoia.…
❤3
درود دوستان. بهمن، از دوستان عزیزم لطف داشتن و یه کد تخفیف 100% واسه شما درنظر گرفتن واسه این وبینار خاص. مفاهیمی که در این وبینار تدریس میشن:
✅ نصب و پیکربندی Neovim برای یه محیط سریع 🛠
✅ زیباتر کردن ترمینال با Zsh و Powerlevel10k 💎
✅ استفاده از تمها و پلاگینهای حرفهای با NvChad 🌈
✅ تکمیل خودکار و خطایابی هوشمند با LSP 🤖
✅ ارتباط مستقیم با دیتابیسهای SQL و اجرای کوئری 📊
✅ دیباگ آسان و حرفهای 🐛
✅ شخصیسازی محیط برای تجربهای منحصربهفرد 🎨
کد تخفیف:
لینک ثبت نام: https://evnd.co/zXglH
مدت ثبت نام محدوده!
✅ نصب و پیکربندی Neovim برای یه محیط سریع 🛠
✅ زیباتر کردن ترمینال با Zsh و Powerlevel10k 💎
✅ استفاده از تمها و پلاگینهای حرفهای با NvChad 🌈
✅ تکمیل خودکار و خطایابی هوشمند با LSP 🤖
✅ ارتباط مستقیم با دیتابیسهای SQL و اجرای کوئری 📊
✅ دیباگ آسان و حرفهای 🐛
✅ شخصیسازی محیط برای تجربهای منحصربهفرد 🎨
کد تخفیف:
sadra
لینک ثبت نام: https://evnd.co/zXglH
مدت ثبت نام محدوده!
❤7🤣7👍2
استکی که ابتدای راه انتخاب میکنید خیلی خیلی مهمه و باید حسابی با تحقیق و برنامهریزی انتخابش کنید. آینده رو بسنجید. هدف خودتون رو بسنجید. صرف علاقه یا بدلیل سهولت یا محبوبیت، یک زبان رو انتخاب نکنید.
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
👍43🤔2👎1👏1
یه مثال خیلی ساده پایاکشن 👀
در بدنه اون فانکشن، شما میتونی از هر کتابخونه پایتونی استفاده کنی، به هرجا که دوست داری رکوئست بزنی و تمام این سورس کد روی گیت هاب ران میشه.
یه چیز تو مایه های Lambda Function. شما میتونی تعیین کنی که این فانکشن طبق چه Scheduleی ران شه یا اگه فلان ایونت روی ریپازیتوری رخ داد اجراش کن.
حتی از طریق پکیج github cli توی ترمینال بصورت دستی یه بار رانش کنی.
pyaction.imsadra.me
در بدنه اون فانکشن، شما میتونی از هر کتابخونه پایتونی استفاده کنی، به هرجا که دوست داری رکوئست بزنی و تمام این سورس کد روی گیت هاب ران میشه.
یه چیز تو مایه های Lambda Function. شما میتونی تعیین کنی که این فانکشن طبق چه Scheduleی ران شه یا اگه فلان ایونت روی ریپازیتوری رخ داد اجراش کن.
حتی از طریق پکیج github cli توی ترمینال بصورت دستی یه بار رانش کنی.
pyaction.imsadra.me
👍19
Sadra Codes
یه مثال خیلی ساده پایاکشن 👀 در بدنه اون فانکشن، شما میتونی از هر کتابخونه پایتونی استفاده کنی، به هرجا که دوست داری رکوئست بزنی و تمام این سورس کد روی گیت هاب ران میشه. یه چیز تو مایه های Lambda Function. شما میتونی تعیین کنی که این فانکشن طبق چه Scheduleی…
یه مثال: اکشنی بنویسی که هروقت push انجام شد روی ریپازیتوری، تغییرات رو بفرسته واسه یه LLM و ازش بخواد که واسه تغییرات فایل تست بنویسه و اون فایلها رو توی دایرکتوری تست ریپازیتوری نگه داری.
پینوشت: همین الان چنین اکشنی رو نوشتم. هروقت مقاله ای مینویسم، میتونم اتوماتیک نسخه فارسیش رو هم با استفاده از API های تلگرام توی کانال پست کنم.
پینوشت: همین الان چنین اکشنی رو نوشتم. هروقت مقاله ای مینویسم، میتونم اتوماتیک نسخه فارسیش رو هم با استفاده از API های تلگرام توی کانال پست کنم.
🔥12👍4
پایاکشن رو لانچ کردم روی پروداکتهانت! ✨
اولین ویدئوی یوتیوبم رو هم درست کردم و یه مثال Hello World با pyaction رو بررسی کردم: https://www.youtube.com/watch?v=6eEMm1YNU00
داکیومنت: https://pyaction.imsadra.me/docs
شیوه ساخت اکشن: https://pyaction.imsadra.me/docs/overview/quickstart
تا شب یلدا (۳۰ آذر) هر اکشن خفنی درست کنید توی مارکتپلیس پایاکشن قرار میدم. 😎
اولین ویدئوی یوتیوبم رو هم درست کردم و یه مثال Hello World با pyaction رو بررسی کردم: https://www.youtube.com/watch?v=6eEMm1YNU00
داکیومنت: https://pyaction.imsadra.me/docs
شیوه ساخت اکشن: https://pyaction.imsadra.me/docs/overview/quickstart
تا شب یلدا (۳۰ آذر) هر اکشن خفنی درست کنید توی مارکتپلیس پایاکشن قرار میدم. 😎
🤩15👍2
دوستان، سید (@seyedmahdi4) یه پلتفورم کلود درست کرده که یه اعتبار اولیه ۳۰۰ هزارتومنی میده. واسه استقرار سرویستون حتما یه بررسیش کنید:
link 👉 kubarcloud.com
داکیومنتشم کامله تا جایی که دیدم!
link 👉 kubarcloud.com
داکیومنتشم کامله تا جایی که دیدم!
🔥34👎5❤🔥3👍1🗿1
Forwarded from Python BackendHub (Mani)
یکی از اشتباهات رایج و خیلی بد تو دیزاین دیتابیس که من دیدم خیلی انجام میدن اینه که سعی میکنن state یک entity رو با چند boolean ست کنند.
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
@PyBackendHub
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
match state:
case State.FAILED:
email_to_user()
case State.SUCCESS | State.FAILED:
pass # do nothing
case _:
assert_never(state)
@PyBackendHub
👌21👍12