Django Expert
9.71K subscribers
992 photos
81 videos
114 files
1.34K links
✔️ بزرگترین کانال و جامعه جنگو به فارسی
Contact:
@majid_aghamohamad
@BobyCloud

Group:
@DjangoIR

Our Site ;coming soon:
🔜 PyExpert.ir

تبلیغات نداریم فقط درج آگهی های استخدامی مرتبط پذیرفته می‌شود
Download Telegram
✔️ آشنایی با structural pattern matching در پایتون

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

((دوستان انتقادات و پیشنهاداتون باعث میشه تا نقاط ضعف کار مشخص بشه و برای اصلاحش گام برداریم.پس حتما نظراتتون رو زیر ویدیو کامنت کنین🙏 ))

👉 Link: https://youtu.be/d8-ocyf6l9M

Thanks to: @shahriaarrr12

#python #پایتون
〰️〰️〰️〰️〰️〰️
©@DjangoEx
✔️ مرگ تخصص

جهل و نادانی چطور فضیلت شد؟

با از بین رفتن احترام به حقیقت، تجزیه و تحلیل منطقی و تفکر انتقادی شرایط خطرناکی در پیش داریم. در این شرایط نظرات ناآگاه هم وزن نظرات متخصصان می‌شود و تقلب، نظریه‌های توطئه، اخبار جعلی، تبلیغات و انواع مزخرفات رونق می‌گیرند.

معمولا بین متخصص‌ها و غیر متخصص‌ها در جامعه شکاف و فاصله‌ای هست. تام نیکولز نویسنده کتاب مرگ تخصص ابتدا به دلایل این شکاف اشاره می‌کند. چیزهایی مثل اثر دانینگ-کروگر، خطاهای شناختی و انواع الگوهای فکری نادرست مثل خرافات و تئوری توطئه. بعد سراغ این موضوع می‌رود که این شکاف به مرز خطرناکی رسیده؛ یعنی وضعیتی که فرد عامی مفتخر است از اینکه متخصص نیست. پرسش درباره اینکه چرا اینطور شده؟ چه چیزی در این دوران تازه تغییر کرده که باعث این وضع شده؟

🎧 در پادکست بی‌پلاس گوش دهید - خلاصه کتاب مرگ تخصص
👉 Link: https://bpls.me/9u3dxl

〰️〰️〰️〰️〰️〰️
©@DjangoEx
Forwarded from DevOps Expert (Mohammad Babazadeh)
#fun

〰️〰️〰️〰️〰️〰️
© @DevOpsEx
آموزش کامل داکر 🔥

✔️ ۰۰ - آموزش داکر - داکر چیست و به چه دردی میخوره؟
👉🏻 https://youtu.be/j4mYb5ZuH3Q

✔️ ۰۱ - تفاوت داکر با ماشین مجازی - داکر چطوری کار می کنه؟
👉🏻 https://youtu.be/M-tTkh6fS8g

✔️ ۰۲ - نصب و کانفیگ داکر بر روی لینوکس
👉🏻 https://youtu.be/nVZg08dcx90

✔️ ۰۳ - نصب و کانفیگ داکر بر روی ویندوز
👉🏻 https://youtu.be/ziMMC8Rc12M

#داکر #سیلیسیم
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ همه‌چیز درباره‌ی الگوهاست!

در پیرو نسخه ۳.۱۰ زبان برنامه‌نویسی پایتون که در ۴ اکتبر ۲۰۲۱ منتشر شد. یکی از امکانات جدید آن که پیش‌تر هم راجع‌به آن صحبت‌های زیادی شده بود مورد توجه برنامه‌نویسان پایتون قرار گرفت. این امکان Structural Pattern Matching نام دارد.
در نگاه اول به نمونه کدهای مرتبط با این قابلیت، ممکن است شبیه به switch case در زبان‌هایی مثل C/CPP، Java، Javascript و... بنظر برسد. اما واقعیت چیز دیگری‌ست.
اول از همه باید توجه داشت که این قابلیت ابداع شده‌ توسط پایتون نیست و زبان‌های دیگری مثل Haskell، Erlang، Ruby و... نیز از چنین ساختاری برخوردار هستند. توجه شما را به این نقل قول از Brandt Bucher نویسنده این قابلیت جدید از پایتون جلب می‌کنم:
"We didn't invent most of this, we stole a lot of it :)"

تفاوت Structural Pattern Matching و Switch Case
برنت بوکر (Brandt Bucher) نویسنده این قابلیت توضیح می‌دهد: درواقع چیزهای زیادی وجود دارد که switch case انجام می‌دهد و pattern matching نمی‌تواند و همچنین قابلیت‌های زیادی در pattern matching وجود دارد که switch case از آنها برخوردار نیست. اگر شما تلاش کنید که این دو ساختار را شبیه هم در نظر بگیرید، شانس استفاده از قدرت هردو را از دست می‌دهید.

اما این چه ساختاری است؟
درواقع Structural Pattern Matching ترکیبی از دو ایده‌ی کنترل روند (control flow) و گسستن ساختار (destructure) است. در این ساختار با دریافت یک مقدار (subject value) و تعریف کردن چند الگوی تطبیق (pattern) برای آن، فرایند را منتهی به تطابق یا عدم تطابق می‌کنیم.
در تعریف ساده: در این روند مقدار ورودی به اجزای سازنده آن تجزیه شده و در جریان تطابق با الگوی تعیین شده قرار می‌گیرد.
فرض کنید متغیر name را به عنوان ورودی می‌گیریم و انتظار داریم که از نوع لیست، به اندازه ۲، در اندیس صفر مقدار Shahriar و در اندیس یکم مقدار Shariati را داشته باشد. در پایتون ۳.۹ به قبل، می‌توانیم چنین کدی را داشته باشیم:

if (
isinstance(name, list)
and len(name) == 2
and name[0] == "Shahriar"
and name[1] == "Shariati"
):
print("Name is correct.")
else:
print("Name is incorrect.")

اما حالا با کمک پایتون ۳.۱۰ می‌توانیم چنین الگویی را تعریف کنیم:

match name:
case ["Shahriar", "Shariati"]:
print("Name is correct")
case _:
print("Name is incorrect")

نکته: علامت underscore در اینجا حکم الگوی خالی را دارد و در صورتی که مقدار ورودی با هیچ کدام از الگوهای تعریف شده تطابق نداشته باشد اتفاق می‌افتد.
به همین ترتیب مثلا برای مقایسه مقادیر داخل یک data class به نام Point نیز می‌توانیم چنین الگویی تعریف کنیم:

match p:
case Point(0, 0):
print("At the origin!")
case Point(0, y):
print(f"On the y-axis at {y = }!")
case Point(x, 0):
print(f"On the x-axis at {x = }!")

در قطعه کد بالا با تعریف تطابق کلاس و یک الگوی پویا می‌توانیم مقادیر موجود در کلاس مانند x و y را نیز استخراج کنیم و در بدنه‌ی شرط از آن استفاده کنیم. برای مطالعه بیشتر به pep-636 مراجعه کنید.

احتمالا تا الآن متوجه شده باشید که این قابلیت چیزی بیشتر و متفاوت‌تر از مقایسه معمولی است و همانطور که پیداست، اینجا الگوها حائز اهمیت هستند!
این قابلیت در سه pep به شماره‌های ۶۳۴، ۶۴۵ و ۶۳۶ معرفی شده که خواندن آنها بسیار مفید است.

منابع
PEP 634 -- Structural Pattern Matching: Specification
PEP 635 -- Structural Pattern Matching: Motivation and Rationale
PEP 636 -- Structural Pattern Matching: Tutorial
Python 3.10 Release Stream - Brandt Bucher
#Fun
#موقت

© @DjangoEx
آموزش کامل داکر 🔥

✔️ ۰۴ - ثبت نام در docker hub و لاگین با docker و کاهش محدودیت دانلود ایمیج
👉🏻 https://youtu.be/MEC21hKHkUk

✔️ ۰۵ - دانلود ایمیج nginx و ران کردنش
👉🏻 https://youtu.be/iowDQry1hNk

✔️ ۰۶ - تنظیم پورت در داکر
👉🏻 https://youtu.be/j5y6xpKQCXk

#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ آیا attribute‌های private امنیت دسترسی به object را تضمین می‌کنند؟

شما تا چه حد private و protected بودن attributeهای حساس در کلاس را رعایت می‌کنید؟

پ.ن: Anthony Shaw نویسنده کتاب CPython Internals و نویسنده کامپایلر Pyjion برای زبان پایتون است.

#python #پایتون
〰️〰️〰️〰️〰️〰️
© @DjangoEx
✔️ هکتوبرفست اینجاست

توی این پست راجع‌به هکتوبرفست صحبت می‌کنیم و می‌بینیم که چیه،‌ چرا بوجود اومده و چطور میشه توش مشارکت داشت؟


👉 Link: https://youtu.be/VjdaxhnUMcE

Thanks to: @code_therapy

#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
✔️ مشارکت توی هکتوبرفست

توی این ویدئو عمیق‌تر به هکتوبرفست می‌پردازیم و یه ریپازیتوری خوب پیدا می‌کنیم برای مشارکت.

اگه ریپازیتوری باحالی می‌شناسین،‌ به من و بقیه معرفی کنین.

👉 Link: https://www.youtube.com/watch?v=5nTDUVUl5Dc

Thanks to: @code_therapy

#hacktoberfest #هکتوبرفست
〰️〰️〰️〰️〰️〰️
©@DjangoEx
آموزش کامل داکر 🔥

✔️ ۰۷ - اجرای دستورات با کانتینرها، اجرای شل
👉 https://youtu.be/5PdizZOilHc

✔️ ۰۸ - آشنایی با volume - اشتراک گذاری، ذخیره سازی و بک‌آپ دیتای کانتینر
👉 https://youtu.be/9URwheOcfx0

#داکر
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ بزرگترین کانال و جامعه جنگو به فارسی

Channel :
@DjangoEx

Group:
@DjangoIR
Forwarded from DevOps Expert (Majid A.M)
✔️ کانال آموزش دوآپس به فارسی

Channels:
@DevOpsEx

Group:
@DevOpsExpertGroup
سلام دوستان یه سری نکته رو لازم دونستم بهتون بگم.
اگه می‌خواید تازه پایتون یا جنگو یا ... رو شروع کنید، سعی کنید بدون اطلاعات کافی داخل بوت کمپ‌های مختلف اسم ننویسین. (اسم از شرکت یا آموزشگاهی نمیبرم)
این رو برای این می‌گم که اخیرا زیاد می‌بینم یه سری دوستان داخل دوره‌هایی شرکت می‌کنن و تهش پشیمون شدن یا اینکه داخل جلسه مصاحبه واقعا دانش کافی در حد مبتدی رو هم حتی ندارن.
کلی آموزش رایگان چه فارسی چه انگلیسی داخل یوتیوب هست و خیلی بهتر هم از اون دوره‌های پولی بهتون آموزش میدن. گول یه سری تبلیغات رو نخورین.
اگه دوره‌ای واقعا خوب هست، استادای خوبی داره و ... پول بدین و شرکت کنید خیلی هم خوبه کلی چیز از یه فرد با تجربه یاد می‌گیرید. اما کلا اینکه صرفا شرکت کردن داخل یه سری بوت کمپ شما رو برنامه نویس نمی‌کنه.

〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx