مثال بهتر, من یک فانکشن دارم که قراره کلی جا ازش استفاده کنم به اسم get_user و از طرفی process_order هم دارم که قرار مثلا یک اوردر رو برام پروسس کنه طبق لاجیک بیزنس.
با دامی ریترن
بدون دامی ریترن:
من خودم حالت دوم رو اصلا نمیپسندم. حالت اولاستفاده از کد رو خیلی راحت تر میکنه و خوانایی کدو به شدت بیشتر میکنه.
@ManiFoldsPython
با دامی ریترن
def get_user() -> UserId | None
process_order() ->
user = get_user
if not user:
raise Stp[P(reason="User does not exist")
بدون دامی ریترن:
def get_user() -> UserId
process_order() ->
try:
user = get_user
except UserDoesNotExist as exception:
raise StopOrderProcessing(reason="User does not exist")
من خودم حالت دوم رو اصلا نمیپسندم. حالت اولاستفاده از کد رو خیلی راحت تر میکنه و خوانایی کدو به شدت بیشتر میکنه.
@ManiFoldsPython
👍6👎3💩3
Forwarded from Oh My Task!
I always have a respect for the aged geeks who have been growing with the technology and felt the history instead of reading it. One of them is David Beazley. He was one of the developers who used first versions of Python (<=1.0) in big projects and it’s cool to see these guys seen all the change history of these tools and programming languages.
Follow him on Youtube and watch his lectures about multi-threading and asyncio.
Here he’s teaching you how to build your async:
https://youtu.be/Y4Gt3Xjd7G8?si=A4GrpDoqQPZ8Q8G5
@OhMyTask
Follow him on Youtube and watch his lectures about multi-threading and asyncio.
Here he’s teaching you how to build your async:
https://youtu.be/Y4Gt3Xjd7G8?si=A4GrpDoqQPZ8Q8G5
@OhMyTask
YouTube
Build Your Own Async
Screencast based on a workshop originally presented at PyCon India, Chennai, October 14, 2019.
Code samples at: https://gist.github.com/dabeaz/f86ded8d61206c757c5cd4dbb5109f74
This workshop is about the low-level foundations and abstractions for asynchronous…
Code samples at: https://gist.github.com/dabeaz/f86ded8d61206c757c5cd4dbb5109f74
This workshop is about the low-level foundations and abstractions for asynchronous…
👏4👍1
چقدر تبلیغای real python احساسی و personal شده 😂😂
الان ایمیل بعدی اسکرین شات میفرسته میگه “به بعضیا باید گفت ببخشید که فکر کردم رفیقی، دیگه تکرار نمیشه 🙃” :)))
@ManiFoldsPython
الان ایمیل بعدی اسکرین شات میفرسته میگه “به بعضیا باید گفت ببخشید که فکر کردم رفیقی، دیگه تکرار نمیشه 🙃” :)))
@ManiFoldsPython
😁26🤣7👍1💩1🖕1
یک مقاله خوب از مهدی
✔️ تازههای پایتون ۳.۱۲
تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیتها و بهبودهای پایتون آشنا بشیم 😁
🔗 https://virgool.io/@liewpl/python-3-12-whats-new-vpq99njtytc6
@ManiFoldsPython
✔️ تازههای پایتون ۳.۱۲
تا چند روز آینده پایتون ۳.۱۲ که آخرین ورژن پایدار پایتون هست قراره منتشر بشه، بیاید تا با جدیدترین قابلیتها و بهبودهای پایتون آشنا بشیم 😁
🔗 https://virgool.io/@liewpl/python-3-12-whats-new-vpq99njtytc6
@ManiFoldsPython
👏13❤4👍3🙏1
برگشتم با یک ویدیو جدید از ادامه دوره دیزاین پترن
تو این ویدیو راجب دیزاین پترن متود فکتوری صحبت کردم و مثال با کد زدم, گفتم کجا و چقدر میتونه استفاده شه و کاربردش چیه و مزایا و معایب استفاده ازش چیه؟
https://www.youtube.com/watch?v=Ci_noxGINY4&list=PLEQ3RnweNGA5XLLANrPl5erS90EREs0F0&index=4
لینک گیتهاب دوره دیزاین پترن
جزوه و مثال های دوره همه اینجا ذخیره خواهند شد.
https://github.com/ManiMozaffar/design-101
@ManiFoldsPython
تو این ویدیو راجب دیزاین پترن متود فکتوری صحبت کردم و مثال با کد زدم, گفتم کجا و چقدر میتونه استفاده شه و کاربردش چیه و مزایا و معایب استفاده ازش چیه؟
https://www.youtube.com/watch?v=Ci_noxGINY4&list=PLEQ3RnweNGA5XLLANrPl5erS90EREs0F0&index=4
لینک گیتهاب دوره دیزاین پترن
جزوه و مثال های دوره همه اینجا ذخیره خواهند شد.
https://github.com/ManiMozaffar/design-101
@ManiFoldsPython
YouTube
دیزاین پترن Factory Method
تو این ویدیو پرداختم به اولین دیزاین پترنی که قراره تو دوره کاور کنم, متود فاکتوری. همچنین کریتور پترن ها هم توضیح دادم
👨💻Source Code:
https://github.com/ManiMozaffar/design-101/tree/main/02-Creator-Patterns/factory_method
🌍 LinkedIn: https://www.link…
👨💻Source Code:
https://github.com/ManiMozaffar/design-101/tree/main/02-Creator-Patterns/factory_method
🌍 LinkedIn: https://www.link…
❤21🔥6💩2👍1
بقیه از AI میترسن که جاشونو بگیره
من از این :)))
اینقدری که خوب دیباگ میکنه منو gpt نمیکنیم :)))
@ManiFoldsPython
من از این :)))
اینقدری که خوب دیباگ میکنه منو gpt نمیکنیم :)))
@ManiFoldsPython
🤣33😁2👍1
Forwarded from آموزش پایتون، دوآپس و مهندسی نرم افزار | BobyCloud (Boby Cloud)
✔️ اخیرا code review برای یک سری از دوستان انجام دادم و یک موردی که در اکثر کدها میدیدم عبارات شرطی (if/else) های غیرضروری و تورفتگی های بیش از حد کدها بود که باعث میشد خوانایی کد پایین بیاد، کدها کثیف بشن و دیباگ و نگهداری کد هم سخت تر بشه. این مورد انقدر زیاد بود که تصمیم گرفتم راجع بهش یه ویدیو بسازم.
✅ توی این ویدیو راجع به تکنیک گارد کلاوز (Guard Clause) صحبت میکنیم که با استفاده از برعکس کردن شرطهای if، میشه کدهای تمیزتری نوشت و دیباگ، نگهداری و در نهایت زندگی راحت تری داشته باشیم.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Q3FLJ95Mc1g?si=JnCE5PYehlrTyQMl
〰️〰️〰️〰️〰️〰️
@BobyDotCloud
✅ توی این ویدیو راجع به تکنیک گارد کلاوز (Guard Clause) صحبت میکنیم که با استفاده از برعکس کردن شرطهای if، میشه کدهای تمیزتری نوشت و دیباگ، نگهداری و در نهایت زندگی راحت تری داشته باشیم.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Q3FLJ95Mc1g?si=JnCE5PYehlrTyQMl
〰️〰️〰️〰️〰️〰️
@BobyDotCloud
🔥7❤2👍1👏1😁1
Python BackendHub
context is king @ManiFoldsPython
مقاله جالبه بخونید بنظرم
https://belief-driven-design.com/naming-stuff-is-hard-17fca2ee582/
میشه گفت مهم ترین اصل کلین کد اسم گذاری variable ها هست. چون شما هر طوری کد بزنی اگه اینو درست انجام ندی کدت کلین نیست.
همیشه تو هر کاری زیاده روی هست. به کسی که قراره کدتون رو maintain کنه رحم کنید و مثل عکس اسم گذاری نکنید :))
w 🚫
weight ❔
weightKg ✅
customerWeightInKg ❔
customerCurrentWeightInKg🚫
@ManiFoldsPython
https://belief-driven-design.com/naming-stuff-is-hard-17fca2ee582/
میشه گفت مهم ترین اصل کلین کد اسم گذاری variable ها هست. چون شما هر طوری کد بزنی اگه اینو درست انجام ندی کدت کلین نیست.
همیشه تو هر کاری زیاده روی هست. به کسی که قراره کدتون رو maintain کنه رحم کنید و مثل عکس اسم گذاری نکنید :))
w 🚫
weight ❔
weightKg ✅
customerWeightInKg ❔
customerCurrentWeightInKg🚫
@ManiFoldsPython
👍15👎2
یک تایمی که اپلای میکردم برای اروپا متوجه شدم اکثر شرکت های اروپایی یک فریم ورک و فرهنگ مشخص دارن برای استخدام،
اولا که اگهی ها اینطوری بود:
What you will do
1. ….
2. ….
What you will bring
1. Proficienct in Django
2. …
3. Fimiliar with k8s
Nice to have
1. …
دلیلش اینه که وقتی میگن advance یا … مشخص نیست چقدر ادونس؟ تکنولوژی تو اخرین مرحله advance اش یعنی شما مستقیما core contributer بشی و شاید سال ها طول بکشه تا به اونجا برسی. پس طبیعتا این کلمه advance میتونه به کلی معنی های مختلف ترجمه شه. ولی وقتی تسکی که انتظار میره ازتون رو بنویسن شما متوجه میشی چقدر میخوان اشنایی داشته باشی با یک چیزی
نکته دوم، شرکت های خیلی بزرگ و FAANG میان سوالات سخت الگوریتمی میذارن تو مصاحبه فنی، کاری به خوبی و بدیش ندارم ولی اون شرکتا تو اون حجم راهکار دیگه ای ندارن. نمیتونن بشینن برای کاندید های مناسب یک پوزیشن تک تک coding assignment بدن و پروژه هاشون رو چک کنند، هزینه این کار تو scale بالا ممکنه براشون غیرمنطقی باشه. پس شرکتا معمولا یا coding assignment میدن یا الگوریتم. نمیان جفتشو بدن! کنارش سوالات تئوری هم میپرسن.
و نکته اخر، چه الگوریتم باشه چه coding assignment، مستقیما به پروداکت شرکت ربطی نداره! مثلا من coding assignment هایی که انجام دادم راجب pokemon و imdb و این چیزا بود. طبیعتا نباید چالش شرکتو assignment بدن بهتون، یا اگه همچین کاریکنند باید بهتون هزینه پرداخت کنند چون دارین عملا رو پروداکتشون کد میزنید.
@ManiFoldsPython
اولا که اگهی ها اینطوری بود:
What you will do
1. ….
2. ….
What you will bring
1. Proficienct in Django
2. …
3. Fimiliar with k8s
Nice to have
1. …
دلیلش اینه که وقتی میگن advance یا … مشخص نیست چقدر ادونس؟ تکنولوژی تو اخرین مرحله advance اش یعنی شما مستقیما core contributer بشی و شاید سال ها طول بکشه تا به اونجا برسی. پس طبیعتا این کلمه advance میتونه به کلی معنی های مختلف ترجمه شه. ولی وقتی تسکی که انتظار میره ازتون رو بنویسن شما متوجه میشی چقدر میخوان اشنایی داشته باشی با یک چیزی
نکته دوم، شرکت های خیلی بزرگ و FAANG میان سوالات سخت الگوریتمی میذارن تو مصاحبه فنی، کاری به خوبی و بدیش ندارم ولی اون شرکتا تو اون حجم راهکار دیگه ای ندارن. نمیتونن بشینن برای کاندید های مناسب یک پوزیشن تک تک coding assignment بدن و پروژه هاشون رو چک کنند، هزینه این کار تو scale بالا ممکنه براشون غیرمنطقی باشه. پس شرکتا معمولا یا coding assignment میدن یا الگوریتم. نمیان جفتشو بدن! کنارش سوالات تئوری هم میپرسن.
و نکته اخر، چه الگوریتم باشه چه coding assignment، مستقیما به پروداکت شرکت ربطی نداره! مثلا من coding assignment هایی که انجام دادم راجب pokemon و imdb و این چیزا بود. طبیعتا نباید چالش شرکتو assignment بدن بهتون، یا اگه همچین کاریکنند باید بهتون هزینه پرداخت کنند چون دارین عملا رو پروداکتشون کد میزنید.
@ManiFoldsPython
👍23❤2👏2💯2
یک اپلیکیشن فست نسبتا خوب با رعایت استاندارد ها.
- Backend -> Fastapi
- Front -> React
- Opentelemtry
- Jaeger
- Alembic & migration
https://github.com/fike/fastapi-blog
اصلاحاتی که نیاز داره:
۱. بنظره من jaeger و tracing اش میتونست بهبود پیدا کنه و از فرانت تا بک کلش trace شه.
۲. بکش async باشه.
۳. دپندسی اینجکشن و auth اش خیلی ضعیفه
@ManiFoldsPython
- Backend -> Fastapi
- Front -> React
- Opentelemtry
- Jaeger
- Alembic & migration
https://github.com/fike/fastapi-blog
اصلاحاتی که نیاز داره:
۱. بنظره من jaeger و tracing اش میتونست بهبود پیدا کنه و از فرانت تا بک کلش trace شه.
۲. بکش async باشه.
۳. دپندسی اینجکشن و auth اش خیلی ضعیفه
@ManiFoldsPython
👍13
Python BackendHub
ازتون یک سوال دارم، https://roadmap.sh/backend این سایت پره رودمپ خفنه، که مال بک اند رو گذاشتم، منتهی ته رودمپ میخوره به بحث های دوآپسی بنظر شما یک بک اند کار چقدر باید مفاهیم زیرم بلد باشه؟ ۱. لینوکس ۲. instrumentation ۳. monitoring ۴. کوبر ۵. Web server…
این برام همیشه سوال بود که overlap دوآپس و بک اند چطوریه. این مدت که بیشتر کارای آپریشن کردم به جواب رسیدم...
بذارین سناریو بگم که شبیه واقعیت باشه که دوآپس واقعا کاری از عهدش برنمیاد. اولا که آپریشن صرفا دپلوی و ci cd نیست. مخصوصا تو شرکت های خارجی. دوما سولوشن بقیه بیشتر مواقع به دردتون نمیخوره. حالا با مثال بهتر متوجه میشین.
فکر کنید مثلا دارین ربات اینستاگرام مینویسین که میره پست هارو لایک میکنه و کامنت میذاره و ... . و کاملا distributed هست. یک سرویس دارین اکانت میسازه. یک سرویس دارین لاگین میکنه. یک سرویس دارین کامنت میذاره. یک سرویس دارین لایک میکنه. یک سرویس دارین reels میبینه و ... .
حالا این وسط یک باگی به وجود میاد. از شما به عنوان دولوپر انتظار میره این باگو برطرف کنید. مثلا سیستم لایک, درست کار نمیکنه. این باگ بین چند تا سرویس اتفاق افتاده (مثلا). چطور میخواین بفهمین و کل trace باگو داشته باشین؟
اینجاست که ابزار هایی مثل datadog یا opentelemtry یا jaeger یا kibana مفهوم پیدا میکنن.و بزرگ ترین مشکل اینه که شما دیگه مشکلت صرفا یک درخواست بک اند نیست. مشکلی که شما داری یک instrumentation کاستوم میخواد. instrumentation یعنی چی؟
In the context of logging, "instrumentation" refers to the act of adding logging statements to your code to monitor its behavior, measure performance, or troubleshoot issues. These logging statements serve as "instruments" to give you insight into how your application is running
پس مشکل شما رو پکیج opentelemetry-instrumentation-fastapi یا پکیج های اوپن سورس برطرف نمیکنه.
چرا؟ چون باید خودتون span هاتون رو طراحی کنید. طراحی و معماری میخواد پشت این موضوع. مثلا باید پشت هر یوزر اینستاگرام شما یک span بسازین که من تو یک trace ببینم اون کاربر اینستاگرام چه درخواست هایی زده تا خورده به اون اکسپشن. اینجاست که شما باید با این آپریشن ها آشنا باشید و devops نمیتونه طبیعتا اینارو بنویسه. دوآپس به شما میتونه infrastructure قابل اعتماد بده که بتونید راحت tracing رو انجام بدید و یک جایی براتون visualize کنه.
خیلیا اصلا با این مفاهیم اشنا نیستن و چرخه رو از نو میسازن. یک سولوشن لاگینگ برای خودشون مینویسن. این کارم درست نیست چون همه اینا رو یک سری استاندارد هایی نوشته شدن که بتونید یک سیستم distributed رو لاگ کنید و کلی query service و فیچر دارن که بخواین بازنویسی کنید یک سال فقط باید روش کار کنید در حالی که میتونستین تو یک هفته یک distributed tracing خیلی قوی داشته باشین از اپلیکیشنتون! چرا؟چون بک اند کار هاشون هیچ آشنایی نداشتن با آپریشن.
هر موقع خواستین سمت سیستم distributed برین یادتون باشه پیدا کردن باگ خیلی پیچیده میشه. چون دیگه نمیتونید صرفا با یک chain exception کل درخواست رو trace کنید و باگ میتونه بین چند تا سرویس باشه که اگه instrumentation خوبی نداشته باشین زیاد با این جور باگا سروکله خواهید زد.
@ManiFoldsPython
بذارین سناریو بگم که شبیه واقعیت باشه که دوآپس واقعا کاری از عهدش برنمیاد. اولا که آپریشن صرفا دپلوی و ci cd نیست. مخصوصا تو شرکت های خارجی. دوما سولوشن بقیه بیشتر مواقع به دردتون نمیخوره. حالا با مثال بهتر متوجه میشین.
فکر کنید مثلا دارین ربات اینستاگرام مینویسین که میره پست هارو لایک میکنه و کامنت میذاره و ... . و کاملا distributed هست. یک سرویس دارین اکانت میسازه. یک سرویس دارین لاگین میکنه. یک سرویس دارین کامنت میذاره. یک سرویس دارین لایک میکنه. یک سرویس دارین reels میبینه و ... .
حالا این وسط یک باگی به وجود میاد. از شما به عنوان دولوپر انتظار میره این باگو برطرف کنید. مثلا سیستم لایک, درست کار نمیکنه. این باگ بین چند تا سرویس اتفاق افتاده (مثلا). چطور میخواین بفهمین و کل trace باگو داشته باشین؟
اینجاست که ابزار هایی مثل datadog یا opentelemtry یا jaeger یا kibana مفهوم پیدا میکنن.و بزرگ ترین مشکل اینه که شما دیگه مشکلت صرفا یک درخواست بک اند نیست. مشکلی که شما داری یک instrumentation کاستوم میخواد. instrumentation یعنی چی؟
In the context of logging, "instrumentation" refers to the act of adding logging statements to your code to monitor its behavior, measure performance, or troubleshoot issues. These logging statements serve as "instruments" to give you insight into how your application is running
پس مشکل شما رو پکیج opentelemetry-instrumentation-fastapi یا پکیج های اوپن سورس برطرف نمیکنه.
چرا؟ چون باید خودتون span هاتون رو طراحی کنید. طراحی و معماری میخواد پشت این موضوع. مثلا باید پشت هر یوزر اینستاگرام شما یک span بسازین که من تو یک trace ببینم اون کاربر اینستاگرام چه درخواست هایی زده تا خورده به اون اکسپشن. اینجاست که شما باید با این آپریشن ها آشنا باشید و devops نمیتونه طبیعتا اینارو بنویسه. دوآپس به شما میتونه infrastructure قابل اعتماد بده که بتونید راحت tracing رو انجام بدید و یک جایی براتون visualize کنه.
خیلیا اصلا با این مفاهیم اشنا نیستن و چرخه رو از نو میسازن. یک سولوشن لاگینگ برای خودشون مینویسن. این کارم درست نیست چون همه اینا رو یک سری استاندارد هایی نوشته شدن که بتونید یک سیستم distributed رو لاگ کنید و کلی query service و فیچر دارن که بخواین بازنویسی کنید یک سال فقط باید روش کار کنید در حالی که میتونستین تو یک هفته یک distributed tracing خیلی قوی داشته باشین از اپلیکیشنتون! چرا؟چون بک اند کار هاشون هیچ آشنایی نداشتن با آپریشن.
هر موقع خواستین سمت سیستم distributed برین یادتون باشه پیدا کردن باگ خیلی پیچیده میشه. چون دیگه نمیتونید صرفا با یک chain exception کل درخواست رو trace کنید و باگ میتونه بین چند تا سرویس باشه که اگه instrumentation خوبی نداشته باشین زیاد با این جور باگا سروکله خواهید زد.
@ManiFoldsPython
👍10❤5😱1
قسمت جدید دوره تست نویسی راجب Parametrized Testing اضافه شد.
تو این قسمت پارامترایز تستینگ رو توضیح دادم, گفتم کجا به درد میخوره و مزیت و معایبش چیه و کجا باید استفاده شه.
https://www.youtube.com/watch?v=2tE6REdDjp8&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=8
سوالی داشتین حتما کامنت کنید زیر ویدیو.
@ManiFoldsPython
تو این قسمت پارامترایز تستینگ رو توضیح دادم, گفتم کجا به درد میخوره و مزیت و معایبش چیه و کجا باید استفاده شه.
https://www.youtube.com/watch?v=2tE6REdDjp8&list=PLEQ3RnweNGA6v7qTMrDCcpgr9u91zvpq_&index=8
سوالی داشتین حتما کامنت کنید زیر ویدیو.
@ManiFoldsPython
YouTube
Parametrized Testing تست با پارامتر
در این ویدیو باهم تست نویسی با پارامتر انجام میدیم.
✍️ Source Code: https://github.com/ManiMozaffar/testing-101
🌍LinkedIn: https://www.linkedin.com/in/manimozaffar
👨💻 Github: https://github.com/ManiMozaffar
🔖 Chapters:
00:00 مقدمه
00:55 توضیح Parametrized…
✍️ Source Code: https://github.com/ManiMozaffar/testing-101
🌍LinkedIn: https://www.linkedin.com/in/manimozaffar
👨💻 Github: https://github.com/ManiMozaffar
🔖 Chapters:
00:00 مقدمه
00:55 توضیح Parametrized…
❤14👍3🎃2
Mastering API Testing with FastAPI: Databases, Dependencies, and More!
https://www.youtube.com/watch?v=9gC3Ot0LoUQ
@ManiFoldsPython
https://www.youtube.com/watch?v=9gC3Ot0LoUQ
@ManiFoldsPython
YouTube
Mastering API Testing with FastAPI: Databases, Dependencies, and More!
👷 Review code better and faster with my 3-Factor Framework: https://arjan.codes/diagnosis.
In this tutorial, I'll guide you through API testing using FastAPI, complete with a full code example. Use this as a template for testing your own APIs!
Git Repo:…
In this tutorial, I'll guide you through API testing using FastAPI, complete with a full code example. Use this as a template for testing your own APIs!
Git Repo:…
👍5
خیلیا رو میبنیم که تو گرفتن اولین شغلشون سختی های زیادی دارن میکشن و حتی بعضی ها منصرف میشن!
برای همین تصمیم گرفتم این هفته سه ویدیو خوب و اساسی record کنم و البته یک دستی به ریپو های رزومه نویسیم بکشم. ریپو رزومه نویسیمو همین امشب آپدیت کردم و ۲ سکشن جدید بهش اضافه کردم:
https://github.com/ManiMozaffar/awesome-resumes
سه ویدیو ای که قراره record کنم
ویدیو اول)چطور پروفایل خوبی داشته باشیم؟
ویدیو دوم) چطور رزومه خوبی بنویسیم؟
ویدیو سوم)چطور پرفومنس خوبی تو مصاحبه ها داشته باشیم؟
اگه ایده یا نظری دارین بگین.
@ManiFoldsPython
برای همین تصمیم گرفتم این هفته سه ویدیو خوب و اساسی record کنم و البته یک دستی به ریپو های رزومه نویسیم بکشم. ریپو رزومه نویسیمو همین امشب آپدیت کردم و ۲ سکشن جدید بهش اضافه کردم:
https://github.com/ManiMozaffar/awesome-resumes
سه ویدیو ای که قراره record کنم
ویدیو اول)چطور پروفایل خوبی داشته باشیم؟
ویدیو دوم) چطور رزومه خوبی بنویسیم؟
ویدیو سوم)چطور پرفومنس خوبی تو مصاحبه ها داشته باشیم؟
اگه ایده یا نظری دارین بگین.
@ManiFoldsPython
👍23❤19🔥1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
پروژه aggify اوپن سورس شد 🥳
این پروژه با سینتکس ساده و شبیه به django orm میتونه pipeline های aggregate رو بسازه و کوئری های پیچیده MongoDB رو بشدت ساده سازی کنه
با استفاده از این کتابخونه شما به راحتی میتونید از جوین استفاده کنید توی MongoDB
در حال حاضر این کتابخونه با فرض بر اینکه مدل های دیتابیس شما با MongoeEngine نوشته شده اند کار میکنه و در آینده روش های دیگه هم قراره ساپورت کنه
اگر مشتاق هستید میتونید توی توسعه این پروژه مشارکت کنید
github: github.com/Aggify/aggify
pypi : https://pypi.org/project/aggify/
website : aggify.org
mail : support@aggify.org
Telegram : @Aggify
توی کانال تلگرام جوین بشید و به پروژه توی گیتهاب ستاره بدید🥰
با پخش این پست به شناخته شدن این پروژه کمک کنید ❤️
✅ @SEYED_BAX
این پروژه با سینتکس ساده و شبیه به django orm میتونه pipeline های aggregate رو بسازه و کوئری های پیچیده MongoDB رو بشدت ساده سازی کنه
با استفاده از این کتابخونه شما به راحتی میتونید از جوین استفاده کنید توی MongoDB
در حال حاضر این کتابخونه با فرض بر اینکه مدل های دیتابیس شما با MongoeEngine نوشته شده اند کار میکنه و در آینده روش های دیگه هم قراره ساپورت کنه
اگر مشتاق هستید میتونید توی توسعه این پروژه مشارکت کنید
github: github.com/Aggify/aggify
pypi : https://pypi.org/project/aggify/
website : aggify.org
mail : support@aggify.org
Telegram : @Aggify
توی کانال تلگرام جوین بشید و به پروژه توی گیتهاب ستاره بدید
با پخش این پست به شناخته شدن این پروژه کمک کنید ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
منم یک PR زدم به لایبری سید
https://github.com/Aggify/aggify/blob/main/tests/test_query.py
پارامتر تست دقیقا همینجا به درد میخوره 👌
@ManiFoldsPython
https://github.com/Aggify/aggify/blob/main/tests/test_query.py
پارامتر تست دقیقا همینجا به درد میخوره 👌
@ManiFoldsPython
👍7👏1
چطور issue رو به صورت حرفه ای تو یک community مطرح کنیم و به جواب برسیم؟
اولین مشکلی که من خیلی میبینم مشکل xy هست.
https://en.wikipedia.org/wiki/XY_problem
مشکل xy چیه؟ به جای اینکه راجب صورت سوال, سوال بپرسن راجب مشکلی میپرسن که در طی پاسخ به اون سوال از اون روش بهش برخوردن. مثلا یک مثال ساده: من چطور تو پایتون میتونم سه کاراکتر اخر از یک string که میاد رو بگیرم؟
حالا سوال و چالش واقعی:من چطور میتونم ببینم فایلی که کلاینت برام فرستاده همون فایلیه که ادعا میکنه؟ جوابش: مقایسه مجیک بایت و تطابقش با file extension که بعد آخرین نقطه میاد.
پس همیشه سوالتون رو بپرسید. میتونید راهکاری هم که داشتین در کنارش معرفی کنید.
دومین مشکل همون مشکل dont ask to ask هست که احتمال پاسخ گرفتنتون رو به شدت کاهش میدین.
https://dontasktoask.com
و آخرین مشکل نحوه و کالچر مطرح کردن مشکلتون هست. لایبری های اوپن سورس اگه ایشو زده باشین حتما با کالچر مطرح issue آشنا هستین, این موارد شامل:
۱. جدایی لاجیک از کدتون. هرچقدر لاجیک لای کدتون بیشتر باشه خواناییش کمتر میشه برای کسی که مسلط نیست به اون لاجیک.
۲. نوشتن یک failing test. خیلی وقتا همه مشکلشونو میگن ولی واقعا نمیفهمم کجاش مشکل بوده 😁
۳. اگه مورد دو رو انجام ندادین, میتونید یک قطعه کد کوتاهی بذارین که مشکلتون رو reproduce کنه! expected result مشخص باشه.
۴. محیطتون رو کامل شرح بدید. سیستم عاملتون, چه نسخه ای از لایبری و پایتون رو دارین استفاده میکنید.
۵. اسکرین شات با سایت هایی مشابه ray.so بنویسید یا از قابلیت جدید تلگرام استفاده کنید برای ارسال کد.
@ManiFoldsPython
اولین مشکلی که من خیلی میبینم مشکل xy هست.
https://en.wikipedia.org/wiki/XY_problem
مشکل xy چیه؟ به جای اینکه راجب صورت سوال, سوال بپرسن راجب مشکلی میپرسن که در طی پاسخ به اون سوال از اون روش بهش برخوردن. مثلا یک مثال ساده: من چطور تو پایتون میتونم سه کاراکتر اخر از یک string که میاد رو بگیرم؟
حالا سوال و چالش واقعی:من چطور میتونم ببینم فایلی که کلاینت برام فرستاده همون فایلیه که ادعا میکنه؟ جوابش: مقایسه مجیک بایت و تطابقش با file extension که بعد آخرین نقطه میاد.
پس همیشه سوالتون رو بپرسید. میتونید راهکاری هم که داشتین در کنارش معرفی کنید.
دومین مشکل همون مشکل dont ask to ask هست که احتمال پاسخ گرفتنتون رو به شدت کاهش میدین.
https://dontasktoask.com
و آخرین مشکل نحوه و کالچر مطرح کردن مشکلتون هست. لایبری های اوپن سورس اگه ایشو زده باشین حتما با کالچر مطرح issue آشنا هستین, این موارد شامل:
۱. جدایی لاجیک از کدتون. هرچقدر لاجیک لای کدتون بیشتر باشه خواناییش کمتر میشه برای کسی که مسلط نیست به اون لاجیک.
۲. نوشتن یک failing test. خیلی وقتا همه مشکلشونو میگن ولی واقعا نمیفهمم کجاش مشکل بوده 😁
۳. اگه مورد دو رو انجام ندادین, میتونید یک قطعه کد کوتاهی بذارین که مشکلتون رو reproduce کنه! expected result مشخص باشه.
۴. محیطتون رو کامل شرح بدید. سیستم عاملتون, چه نسخه ای از لایبری و پایتون رو دارین استفاده میکنید.
۵. اسکرین شات با سایت هایی مشابه ray.so بنویسید یا از قابلیت جدید تلگرام استفاده کنید برای ارسال کد.
@ManiFoldsPython
👍16
من واقعا شانسمو درک نمیکنم, چهار ساله یک عنکبوت ندیدم, دقیقا دقیقه ۱۲ ام ویدیویی که دارم ریکورد میکنم عنکبوت میاد بالای میزم :))
حالا بگذریم, ویدیو هایی که قولشو دادم record کردم. منتهی رو اسم کل پلی لیست گیر کردم :)) بنظرتون چه اسمی بذارم براش؟
1. تقویت پروفایل با مشارکت اوپن سورس
2. تقویت پروفایل با پرسونال برندینگ, نتورکینگ و مدرک
3. صفر تا صد رزومه نویسی
4. صفر تا صد مصاحبه behavioural
5. صفر تا صد مصاحبه تکنیکال
6. انتخاب, و پیشرفت شخصی در شرکت
از امشب شبی یک ویدیو میدم بیرون از این پلی لیست. 😁
@ManiFoldsPython
حالا بگذریم, ویدیو هایی که قولشو دادم record کردم. منتهی رو اسم کل پلی لیست گیر کردم :)) بنظرتون چه اسمی بذارم براش؟
1. تقویت پروفایل با مشارکت اوپن سورس
2. تقویت پروفایل با پرسونال برندینگ, نتورکینگ و مدرک
3. صفر تا صد رزومه نویسی
4. صفر تا صد مصاحبه behavioural
5. صفر تا صد مصاحبه تکنیکال
6. انتخاب, و پیشرفت شخصی در شرکت
از امشب شبی یک ویدیو میدم بیرون از این پلی لیست. 😁
@ManiFoldsPython
🔥36👍4
قسمت اول پلی لیست رشد مسیر شغلی, صفر تا صد گرفتن استخدام شدن در دنیای نرم افزار
در اولین ویدیو و دومین ویدیو میپردازیم به بهبود پروفایل خودتون به عنوان یک برنامه نویس. در این ویدیو میپردازیم به مشارکت اوپن سورس. قراره با هم بررسی کنیم چطور میتونیم تو یک پروژه اوپن سورس مشارکت داشته باشیم, چه فرهنگ و کالچری داره و تو چه سطحی باشیم میتونیم مشارکت کنیم؟
https://www.youtube.com/watch?v=0Xem5Ft72TE
@ManiFoldsPython
در اولین ویدیو و دومین ویدیو میپردازیم به بهبود پروفایل خودتون به عنوان یک برنامه نویس. در این ویدیو میپردازیم به مشارکت اوپن سورس. قراره با هم بررسی کنیم چطور میتونیم تو یک پروژه اوپن سورس مشارکت داشته باشیم, چه فرهنگ و کالچری داره و تو چه سطحی باشیم میتونیم مشارکت کنیم؟
https://www.youtube.com/watch?v=0Xem5Ft72TE
@ManiFoldsPython
🔥9👍1💩1