Python çalıştırılıyor

Referans :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

kurulum gereksinimi

pip install -r requirements.txt

başlangıç

Python’da GoF’in Design Patterns

GoF tasarım kalıpları, 'Design Patterns: Elements of Reusable Object-Oriented Software' kitabında tanımlanan 23 tasarım kalıptan oluşan bir setir.

GoF tasarım desenlerinin listesi

İsim Açıklama

Fabrika Metodu

Kesin sınıfı belirtmeden nesneler oluşturur.

Soyut Fabrika

Somut sınıflarını belirtmeden ilişkin veya bağımlı nesne aileleri oluştur.

yapımcı

Karmaşık bir nesnenin oluşturmasını temsillerinden ayırır, böylece aynı oluşturma süreci farklı temsiller oluşturabilir.

prototiip

Mevcut bir prototip kopyalanarak yeni nesneler oluştur.

Tek örnek

Bir sınıfın örnek oluşturmasını tek bir nesneye kısıtlar.

adaptör

Bir sınıfın arayüzünü istemcinin beklediği başka bir arayüze dönüştürür.

Köprü

Bir soyutlamayı uygulamadan ayırır, böylece ikisi de bağımsız olarak değişebilir.

Kompozit

Nesneleri ağaç yapılarında birleştirerek, bölüm-tüm hiyerarşilerini temsil edin.

Dekoratör

Dinamik olarak nesneye ek sorumluluklar ekle.

cephe

Bir alt sistemdeki arayüz setine tek bir arayüz sağlar.

pena

Hafif nesnelerin oluşturulması ve kullanımının maliyetini azaltır.

proxy

Başka bir nesnenin erişimini kontrol etmek için bir yerine geçer veya yer tutucu sağlar.

Sorumluluk zinciri

Birden fazla nesnenin bir isteği işlemesine izin verir.

Komut

Bir istek bir nesneye sarmalanarak, böylece farklı istekler, kuyruklar veya günlükler ile istemciler yapılandırılabilir ve iptal edilebilir işlemler desteklenebilir.

Yorumlayıcı

Bir dilin dilbilgisinin bir temsili ver ve bu temsili kullanarak o dildeki cümleleri yorumla.

Yineleyici

Bir agregeli nesnenin elemanlarını ardışık olarak gezinmenin bir yolunu sunar, temel gösterimini açığa çıkarmadan.

Araçı

Objeler arasındaki karmaşık bağımlılıkları, bir aracı nesne yoluyla sadece birbirleriyle iletişim kurmalarını sağlayarak azaltmaya olanak tanır.

Hatırlatma

Bir nesneyi önceki durumuna geri yükleme yeteneği sağlar (kapsüllemeyi ihlal etmeden).

Gözlemlemek

Nesneler arasında bir-çok (one-to-many) bağımlılık tanımlar; böylece bir nesnenin durumu değiştiğinde tüm bağımlıları otomatik olarak bilgilendirilir ve güncellenir.

Devlet

Bir nesnenin, iç durumunun değiştiğinde davranışını değiştirmesine olanak sağlar.

Strateji

Bir algoritma ailesi tanımlar, her birini sarmalar ve bunların yer değiştirilebilir olmasını sağlar.

Şablon Yöntemi

Bir yöntemde bir algoritmanın iskeletini tanımlar, bazı adımları alt sınıflara devreder.

ziyaretçi

Bir nesne yapısında, nesnelerinin sınıflarını değiştirmeden yeni bir işlem tanımlamaya olanak tanır.

Fonksiyonel programlama

kütüphane

URL

Açıklama

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad, Haskell ve F# gibi programlama dillerine dayalı Python’daki monadik veri yapıları uygulamasıdır ve fonksiyonel programlamada sıkça kullanılan monad tipleri için uygulamalara sahiptir.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[makale]

PyFunctional

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

PyFunctional, fonksiyonel programlama için bir Python kütüphanesi olup, pure fonksiyonlar ve iterable’larla çalışmak için araçlar sağlar.

Araçlar

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

Toolz, fonksiyonel programlama için Python kütüphanesidir ve temiz fonksiyonlarla ve yinelenebilirlerle çalışmak için araçlar sağlar.

Fn.py

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

Fn.py, fonksiyonel programlama için bir Python kütüphanesi olup, saf fonksiyonlarla ve iterable’larla çalışmak için araçlar sağlar.

Coconut

https://coconut-lang.org/

Coconut, Python’a fonksiyonel programlama için birkaç özellik ekler, bunlar arasında pattern matching yer alır.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[konuşma sof]

yan etkiler

döngüler

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

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

İlgili Makaleler