اجرای پایتون

مرجع :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

نیاز برای نصب

pip install -r requirements.txt

الگوهای طراحی GoF در پایتون

الگوپترن‌های GoF یک مجموعهٔ 23 الگوپترن هستند که در کتاب «Design Patterns: Elements of Reusable Object-Oriented Software» توصیف شده‌اند.

Table 1. لیست الگوهای طراحی GoF

نام

توضیح

متد کارخانه

اشیاء ایجاد کنید بدون تعریف دقیق کلاس مورد نظر برای نمونه‌سازی.

کارخانه انتزاعی

خانواده‌های شیء مرتبط یا وابسته را بدون تعیین کلاس ملموس آن‌ها ایجاد می‌کند.

سازنده

ساخت یک شیء پیچیده را از نمایش آن جدا می‌کند تا همان فرآیند ساخت بتواند نمایش‌های مختلفی ایجاد کند.

نمونه اولیه

اشیاء جدید را با کپی کردن یک نمونه موجود ایجاد می‌کند.

سینگلتون

ساخت یک کلاس را به یک شیء محدود می‌کند.

آداپتور

انترفیس یک کلاس را به یک انترفیس دیگر تبدیل می‌کند که مشتری آن را انتظار دارد.

پل

یک انتزاع را از پیاده‌سازی آن جدا کنید تا هر دو بتوانند به صورت مستقل تغییر کنند.

ترکیبی

اشیا را در ساختارهای درختی ترکیب کنید تا سلسله‌مراتبات part-to-whole را نمایش دهید.

دکوراسیون دهنده

به‌صورت پویا وظایف اضافی را به یک شیء متصل می‌کند.

فاساد

یک اینترفیس یکپارچه به یک مجموعه از اینترفیس‌ها در یک زیرسیستم ارائه می‌دهد.

وزن پرچند

هزینهٔ ساخت و استفاده از اشیاء سبک را کاهش می‌دهد.

وکیل

یک جایگزین یا یک مکان رزرو شده برای یک شیء دیگر ارائه می‌دهد تا دسترسی به آن کنترل شود.

زنجیره مسئولیت

اجازهٔ پردازش یک درخواست توسط بیش از یک شیء را می‌دهد.

دستور

یک درخواست را در یک شیء کپسوله‌سازی می‌کند؛ به این ترتیب امکان تنظیم مشتریان با درخواست‌های مختلف، صف‌های انتظار یا لاگ‌ها فراهم می‌شود و امکان پشتیبانی از عملیات‌های قابل بازگشت نیز فراهم می‌شود.

ترجمان

یک نمایش از گرامر یک زبان بده و از این نمایش برای تفسیر جملات در آن زبان استفاده کن.

تکرارشونده

یک راه برای پیمایش به‌صورت متوالی عناصر یک شیء تجمیع‌شده فراهم می‌آورد، بدون افشای نمایش زیرین آن.

واسطه

به کاهش وابستگی‌های پیچیده بین اشیا به وسیلهٔ این که آن‌ها را فقط از طریق یک شیء متّصل‌کننده (mediator) به تعامل می‌رساند.

یادآور

قدرت بازگرداندن شیء به حالت پیشین خود را فراهم می‌سازد (بدون نقض پشت‌پوشی).

مشاهده‌کننده

یک وابستگی یک به چند بین اشیاء تعریف می‌کند به طوری که وقتی یک شیء وضعیتش تغییر می‌کند، تمام وابسته‌های آن به‌صورت خودکار اطلاع داده و به‌روزرسانی می‌شوند.

دولت

اجازه می‌دهد تا یک شیء وقتی حالت داخلی‌اش تغییر می‌کند، رفتارش را تغییر دهد.

استراتژی

یک خانواده از الگوریتم‌ها را تعریف می‌کند، هر کدام را کپسوله‌سازی می‌کند و آن‌ها را قابل تعویض می‌سازد.

روش الگو

ساختار یک الگوریتم را در یک روش تعریف می‌کند و برخی مراحل را به زیرکلاس‌ها واگذار می‌کند.

بازدیدکننده

اجازه می‌دهد تا یک عملیات جدید بر روی یک ساختار اشیاء تعریف شود بدون تغییر کلاس‌های اشیایی که بر روی آن‌ها عمل می‌شود.

برنامه‌نویسی تابعی

کتابخانه

URL

توضیح

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad یک پیاده‌سازی از ساختارهای داده مونادیک در پایتون است که بر اساس زبان‌های برنامه‌نویسی مثل هاسکال و F# ساخته شده و برای انواع موناد‌های رایج در برنامه‌نویسی فانکشنال پیاده‌سازی‌های لازم را فراهم می‌کند.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[مقاله]

PyFunctional

https://github.com/EntilZha/PyFunctional/

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

تولز

https://toolz.readthedocs.io/en/latest/

Toolz یک کتابخانهٔ Python برای برنامه‌نویسی تابعی است که ابزارهایی برای کار با توابع خالص و تکرارپذیرها فراهم می‌کند.

Fn.py

https://github.com/kachayev/fn.py

Fn.py یک کتابخانهٔ پایتون برای برنامه‌نویسی تابعی است که ابزارهایی برای کار با توابع صاف و Iterable‌ها فراهم می‌آورد.

نارگیل

https://coconut-lang.org/

Coconut چندین ویژگی را به پایتون برای برنامه‌نویسی عملکردی اضافه می‌کند، از جمله pattern matchinghttps://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[گفتگو sof]

آثار جانبی

حلقه‌ها

# impérative way
result = []
for i in inputs:
    x = f(g(i))
    result.append(x)

# idiomatic way
result = map(comp(f,g), inputs)

مقالات مرتبط