تو پست قبلی interface لایبری خیلی واضح نشد, برای همین عکس میدم ازش. اگه ایده ای داشتین حتما بهم بگید. تومن و بقیه کریپتو ها ساپورت شن میتونه game changer خوبی باشه.
(پ.ن: تایپ ها یک جورین که میتونید راحت تیبلشون کنید 😅.)
برای حمایت خیلی ممنون میشم استار و یا contribute بدید 🙏
لینک گیتهاب لایبری:
https://github.com/ManiMozaffar/fastexchange
@PyBackEndHub
(پ.ن: تایپ ها یک جورین که میتونید راحت تیبلشون کنید 😅.)
برای حمایت خیلی ممنون میشم استار و یا contribute بدید 🙏
لینک گیتهاب لایبری:
https://github.com/ManiMozaffar/fastexchange
@PyBackEndHub
👍11
یک مقاله خیلی خوب بازم راجب type state که ben (بنیامین فکر کنم؟ 😁) تو گروه به اشتراک گذاشت:
Writing python like rust
همه چیزه این مقاله درست نیست قطعا ولی ایده کلیش رو اگه بگیرین خیلی بهتر کد میزنید.
اگه نمیدونید type state چیه توصیه میکنم حتما ویدیو زیر رو ببینید:
آموزش پترن type state به زبان فارسی
و یا مقاله های زیر هم خیلی بهتون میتونه کمک کنه:
Parse, don't validate in Python
Rust, for type state!
سمپل کدش هم که اخیرا share کردم. یک لایبری که type state هست برای بحث کریپتو و پول. اینترفیس خیلی آسون تری میده و تجربه توسعه عالی بهتون میده. همین که استتیک تایپ چکر رو ران کنید و ایرادی بهتون نگیره احتمال خیلی قوی کدتون مشکلی نداره.
FastExchange
تایپ استیت کد زدن میتونه خیلی نحوه و سبک کد زنیتون رو تغییر بده.
@PyBackEndHub
Writing python like rust
همه چیزه این مقاله درست نیست قطعا ولی ایده کلیش رو اگه بگیرین خیلی بهتر کد میزنید.
اگه نمیدونید type state چیه توصیه میکنم حتما ویدیو زیر رو ببینید:
آموزش پترن type state به زبان فارسی
و یا مقاله های زیر هم خیلی بهتون میتونه کمک کنه:
Parse, don't validate in Python
Rust, for type state!
سمپل کدش هم که اخیرا share کردم. یک لایبری که type state هست برای بحث کریپتو و پول. اینترفیس خیلی آسون تری میده و تجربه توسعه عالی بهتون میده. همین که استتیک تایپ چکر رو ران کنید و ایرادی بهتون نگیره احتمال خیلی قوی کدتون مشکلی نداره.
FastExchange
تایپ استیت کد زدن میتونه خیلی نحوه و سبک کد زنیتون رو تغییر بده.
@PyBackEndHub
Kobzol’s blog
Writing Python like it’s Rust
You can check out a YouTube recording of a talk based on this blog post.
👍9❤3
Writing python like rust
مقاله ای که پست قبل شیر کردم بهترین مقاله ای بود که تو پایتون خوندم سمت typing
چیزی که خودم خیلی رعایت میکنم استفاده مناسب از NewType هست.
دقت کنید نیازی نیست حتما از pydantic استفاده کنید و overhead داشته باشین. فقط وقتی باید از pydantic استفاده کنید که دیتاتون ازبیرون اومده باشه. مثل بروکر یا response ای از یک api.
تو مقاله اصلا از pydantic استفاده نکرده (از serde کرده که لایبری مشابه serde راست هست. ولی فقط برای لایه بیرون لازمه. نه داخل خوده کد)
تو لایبری FastExchange علتی که استفاده کردم از Discriminated union بوده. که تو این مقاله خودش با پایتون دستی نوشته همین Discriminated union. برای نوشتن Discriminated union میتونید از pydantic استفاده کنید.
@PyBackendHub
مقاله ای که پست قبل شیر کردم بهترین مقاله ای بود که تو پایتون خوندم سمت typing
چیزی که خودم خیلی رعایت میکنم استفاده مناسب از NewType هست.
دقت کنید نیازی نیست حتما از pydantic استفاده کنید و overhead داشته باشین. فقط وقتی باید از pydantic استفاده کنید که دیتاتون ازبیرون اومده باشه. مثل بروکر یا response ای از یک api.
تو مقاله اصلا از pydantic استفاده نکرده (از serde کرده که لایبری مشابه serde راست هست. ولی فقط برای لایه بیرون لازمه. نه داخل خوده کد)
تو لایبری FastExchange علتی که استفاده کردم از Discriminated union بوده. که تو این مقاله خودش با پایتون دستی نوشته همین Discriminated union. برای نوشتن Discriminated union میتونید از pydantic استفاده کنید.
@PyBackendHub
👍15❤1
یک چیز جالب دیدم؛
https://leetcode.com/zcgzcgzcg/
رنک ۹۴ دنیا هستن، تو لیت کد.
اما ایشون اصلا حرفه اش برنامه نویسی نیست. دارنده ۳ مدال طلا المپیک و یکی از بهترین بازیکن های پینگ پونگ تو دوران خودش بوده 😂
@PyBackendHub
https://leetcode.com/zcgzcgzcg/
رنک ۹۴ دنیا هستن، تو لیت کد.
اما ایشون اصلا حرفه اش برنامه نویسی نیست. دارنده ۳ مدال طلا المپیک و یکی از بهترین بازیکن های پینگ پونگ تو دوران خودش بوده 😂
@PyBackendHub
LeetCode
zcgzcgzcg - LeetCode Profile
View zcgzcgzcg's profile on LeetCode, the world's largest programming community.
🔥20🤯7❤2
یک سافت اسکیل خیلی مهم که نداشتنش میتونه محیط کاری رو تبدیل به محیط سمی کنه:
Disagree and commit
کالچری هست که تو آمازون و خیلی شرکت های خوب دنیا هست. رفرنس
At Amazon, you may know, we have a set of leadership principles that we take very seriously. I’m a big fan of the one that says “Have Backbone: Disagree and Commit.” It means that if you disagree with something, it’s your responsibility to argue. It’s meant to be applied even if it’s your boss’s idea. Disagreeing doesn’t mean acting like a jerk. It means making a cogent case, using data where possible to support your arguments. The second part of the principle, “Commit,” is important as well. At some point, you may have to give in, or compromise. If you do, then you’re committed to the decision. You can’t be passive-aggressive or later say “I told you so.” You own the final decision, even if it’s not what you originally wanted.
"دیدی بهت گفتم؟". بدترین جمله ای هست که یک نفر میتونه بگه تو یک تیم بنظرم.
تو این فیلمم jeff خودش توضیح میده
https://www.youtube.com/watch?v=Afoh23PHVP0
@PyBackendHub
Disagree and commit
کالچری هست که تو آمازون و خیلی شرکت های خوب دنیا هست. رفرنس
At Amazon, you may know, we have a set of leadership principles that we take very seriously. I’m a big fan of the one that says “Have Backbone: Disagree and Commit.” It means that if you disagree with something, it’s your responsibility to argue. It’s meant to be applied even if it’s your boss’s idea. Disagreeing doesn’t mean acting like a jerk. It means making a cogent case, using data where possible to support your arguments. The second part of the principle, “Commit,” is important as well. At some point, you may have to give in, or compromise. If you do, then you’re committed to the decision. You can’t be passive-aggressive or later say “I told you so.” You own the final decision, even if it’s not what you originally wanted.
"دیدی بهت گفتم؟". بدترین جمله ای هست که یک نفر میتونه بگه تو یک تیم بنظرم.
تو این فیلمم jeff خودش توضیح میده
https://www.youtube.com/watch?v=Afoh23PHVP0
@PyBackendHub
Amazon
Guts, Part Three: Having Backbone – Disagreeing and Committing | Amazon Web Services
Sometimes, other leaders in your company reject your ideas. Perhaps you’re a CIO, who knows perfectly well that the cloud will have tremendous benefit for your company. But the CFO says no, it’s too risky, or the economic projections aren’t convincing. Or…
👍13
یک سوال دارم ممنون میشم کامنت کنید جوابتون رو. از چه مدل پست های کانال بیشتر خوشتون میاد و بنظرتون مفیده؟ اینو نمیپرسم که بقیه نوع پستا رو نذارم. اینو میپرسم چون دوست دارم بدونم مخاطب از چه مدل پستی که گذاشتم خوشش اومده.
👍16❤1
نتیجه کامنتا ها رو سوالمیکنم، بنظرتون سطح و میزان مطالب راجب دیتابیس و SQL چطور بوده؟
Anonymous Poll
60%
خوب
26%
متوسط
14%
ضعیف
یک دلیلی که نباید از تم دیفالت pycharm استفاده کنید. چون همه چیزو سفید نشون میده. تو این مثال baz.bar هم رنگ foo.bar میشد.
و شما نمیتونی متوجه شی چیزی که بهش دسترسی داری واقعا type داره یا نه.
پی نوشت:نگفتم تغییر بدین IDEرو. گفتم فقط مهمه که رنگا متفاوت باشه. که شما متوجه شین به attr درستی دسترسی پیدا کردین یا نه. دیفالتشو ظاهرا میتونید تغییر بدید...
@PyBackendHub
و شما نمیتونی متوجه شی چیزی که بهش دسترسی داری واقعا type داره یا نه.
پی نوشت:نگفتم تغییر بدین IDEرو. گفتم فقط مهمه که رنگا متفاوت باشه. که شما متوجه شین به attr درستی دسترسی پیدا کردین یا نه. دیفالتشو ظاهرا میتونید تغییر بدید...
@PyBackendHub
👍18👎5
استفاده از privilege های pg خیلی میتونه مفید باشه. داکش زیره میتونید بخونید:
https://www.postgresql.org/docs/current/ddl-priv.html
یوزکیس هاش:
۱. اولا نیازی نیست برنامه نویسا write access داشته باشن. یک read کافیه اکثر مواقع. یا اگه write میخواین بدین دو یوزر بسازین یکی read باشه فقط یکی هم read هم write
۲. میتونید کنترل کنید که یک نفر GRANT خاصی رو نگیره. مثلا یوزر mani قابلیت دیلیت رو هیچ تیبلی نداشته باشه. یا قابلیت select رو تیبل اطلاعات شخصی کاربرا نداشته باشه و ... .
میتونید لاگ pg هم فعال کنید. که متوجه شین چه کسی چه query ای زده. از کجا رو کدوم تیبل. و کلی متا دیتا دیگه. از لینک زیر میتونید راجب لاگ pg هم بخونید.
https://www.postgresql.org/docs/current/runtime-config-logging.html
یک نکته فقط داره اونم اینه که postgresql لاگ قدیمی رو پاک نمیکنه. فقط rotate میکنه. پاک کردن لاگ قدیمی رو توصیه میکنم با logrotate انجام بدید. نه فقط لاگ pg بلکه خیلی جاها به درد بخوره.
https://linux.die.net/man/8/logrotate
@PyBackendHub
https://www.postgresql.org/docs/current/ddl-priv.html
یوزکیس هاش:
۱. اولا نیازی نیست برنامه نویسا write access داشته باشن. یک read کافیه اکثر مواقع. یا اگه write میخواین بدین دو یوزر بسازین یکی read باشه فقط یکی هم read هم write
۲. میتونید کنترل کنید که یک نفر GRANT خاصی رو نگیره. مثلا یوزر mani قابلیت دیلیت رو هیچ تیبلی نداشته باشه. یا قابلیت select رو تیبل اطلاعات شخصی کاربرا نداشته باشه و ... .
میتونید لاگ pg هم فعال کنید. که متوجه شین چه کسی چه query ای زده. از کجا رو کدوم تیبل. و کلی متا دیتا دیگه. از لینک زیر میتونید راجب لاگ pg هم بخونید.
https://www.postgresql.org/docs/current/runtime-config-logging.html
یک نکته فقط داره اونم اینه که postgresql لاگ قدیمی رو پاک نمیکنه. فقط rotate میکنه. پاک کردن لاگ قدیمی رو توصیه میکنم با logrotate انجام بدید. نه فقط لاگ pg بلکه خیلی جاها به درد بخوره.
https://linux.die.net/man/8/logrotate
@PyBackendHub
PostgreSQL Documentation
5.8. Privileges
5.8. Privileges # When an object is created, it is assigned an owner. The owner is normally the role that executed …
👍10
Python BackendHub
استفاده از privilege های pg خیلی میتونه مفید باشه. داکش زیره میتونید بخونید: https://www.postgresql.org/docs/current/ddl-priv.html یوزکیس هاش: ۱. اولا نیازی نیست برنامه نویسا write access داشته باشن. یک read کافیه اکثر مواقع. یا اگه write میخواین بدین دو…
برای پسا social engineeringا هم خیلی روش دفاعی خوبیه. مثلا organization ها data breach داشتن ولی نفهمیدن از کجا خوردن :)) ولی لاگتون فعال کنید و هر سرویس یوزر و هر کاربر یوزر خودشو داشته باشه و لاگ انداخته شه کاملا مشخص میشه که چه اتفاقی افتاده اگه یک درصد data breach بود.
@PyBackendHub
@PyBackendHub
❤2
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
خب یک لایبری دیگه نوشتم 🚀 این بار یک فریم ورک کاملا 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
👌20👍10🔥6❤1🤩1😐1
https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/
این مقاله رو حتما توصیه میکنم بخونید. به شدت کاربردیه.
@PyBackendHub
این مقاله رو حتما توصیه میکنم بخونید. به شدت کاربردیه.
@PyBackendHub
The GitHub Blog
How to undo (almost) anything with Git
One of the most useful features of any version control system is the ability to "undo" your mistakes. In Git, "undo" can mean many slightly different things.
👍14
HICTE Blog
#گوناگون جواب ادمین FFmpeg قشنگ بود 😁 🚁 Hicte Blog
در پی این توییت:
توجه کنید اشتباه برداشت نکنید. این meme منظورش این نیست که دیزاین پترن یا abstraction نداشته باشین هیچوقت. منظورش اینه که اگه نیاز ندارین نداشته باشین. و بیشتر از اینکه نگران perfect بودن OOPتون باشین, نگران سادگی و فهم کد باشین در مقابل پیچیدگی مشکلی که داره حل میکنه. یک وقتا ممکنه یک abstraction کد رو خیلی ساده تر کنه. و اون یعنی کد خوبیه.
@PyBackendHub
توجه کنید اشتباه برداشت نکنید. این meme منظورش این نیست که دیزاین پترن یا abstraction نداشته باشین هیچوقت. منظورش اینه که اگه نیاز ندارین نداشته باشین. و بیشتر از اینکه نگران perfect بودن OOPتون باشین, نگران سادگی و فهم کد باشین در مقابل پیچیدگی مشکلی که داره حل میکنه. یک وقتا ممکنه یک abstraction کد رو خیلی ساده تر کنه. و اون یعنی کد خوبیه.
@PyBackendHub
👍18😁3👌1
یک فکت:امروز ۶ میلیون نفر pydantic رو دانلود کردن! pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده, و احتمال داره به جایی برسه در آینده نزدیک که به پر دانلود ترین پکیج پایتونی هم تبدیل شه!در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic هستند مثل نام پای با ۹ میلیون دانلود روزانه. این در حالیه که فست فقط یک میلیون دانلود داشته. این آمار و ارقام نشون میده pydantic کامل وارد اکوسیستم پایتون شده و تو انواع پروژه ها استفاده میشه.
اگه هنوز pydantic رو شروع نکردین, اهل خوندن داک هم نیستن(!), ویدیو دکتر فرد رو بهتون توصیه میکنم:
https://www.udemy.com/course/pydantic/
دکتر فرد دوره پایتونی خیلی خوبی هم داره. deep dive into python. اگه میخواین بیشتر پایتون یاد بگیرین به شدت توصیه میشه:
https://www.udemy.com/user/fredbaptiste/
@PyBackendHub
اگه هنوز pydantic رو شروع نکردین, اهل خوندن داک هم نیستن(!), ویدیو دکتر فرد رو بهتون توصیه میکنم:
https://www.udemy.com/course/pydantic/
دکتر فرد دوره پایتونی خیلی خوبی هم داره. deep dive into python. اگه میخواین بیشتر پایتون یاد بگیرین به شدت توصیه میشه:
https://www.udemy.com/user/fredbaptiste/
@PyBackendHub
Udemy
Pydantic V2: Essentials
An in-depth guide to mastering Pydantic V2 for data modeling, parsing and validation
👍14❤4🔥2
Python BackendHub
یک فکت:امروز ۶ میلیون نفر pydantic رو دانلود کردن! pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده, و احتمال داره به جایی برسه در آینده نزدیک که به پر دانلود ترین پکیج پایتونی هم تبدیل شه!در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic…
معادل 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
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
GitHub
GitHub - typestack/class-validator: Decorator-based property validation for classes.
Decorator-based property validation for classes. Contribute to typestack/class-validator development by creating an account on GitHub.
👍2
این روزا ردیس خیلی شلوغ کرده احتمالا خونده باشین راجبش که لاینسس تغییر کرده
میخواستم بگم یک alternative داره که api اش کاملا با ردیس compatible هست و مدعیه که پرفومنس خیلی بهتری میده نسبت به ردیس. همچنین شرکت هایی مثل ubisoft و epic games هم ازش استفاده میکنن ظاهرا.
توصیه میکنم یک سری بزنید. خودم هنوز تستش نکردم. ولی احتمالا ردیسو با این تغییر بدم اگه تست کنم و ببینم هیچ ساید افکتی نداره.
https://www.dragonflydb.io/
@PyBackendHub
میخواستم بگم یک alternative داره که api اش کاملا با ردیس compatible هست و مدعیه که پرفومنس خیلی بهتری میده نسبت به ردیس. همچنین شرکت هایی مثل ubisoft و epic games هم ازش استفاده میکنن ظاهرا.
توصیه میکنم یک سری بزنید. خودم هنوز تستش نکردم. ولی احتمالا ردیسو با این تغییر بدم اگه تست کنم و ببینم هیچ ساید افکتی نداره.
https://www.dragonflydb.io/
@PyBackendHub
Dragonfly
Dragonfly | An In-Memory Data Store without Limits
Discover Dragonfly - the most performant in-memory data store, engineered for extreme throughput at scale.
👍9
یک جمله به شدت حق 😂👌
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
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
😁23🤣16👍1