Ninja Learn | نینجا لرن
1.26K subscribers
95 photos
36 videos
11 files
306 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
دوستان یه هل بدید میشیم 1k :) ❤️

NinjaLearn Banner 🥷🤝
17👎5👍1
⚡️ خب خب خب starlette چیست؟ ⚡️

ـStarlette یکی از فریم‌ورک‌های عالی برای ساخت اپلیکیشن‌های وب در پایتونه که به طور خاص برای پردازش درخواست‌ها به صورت غیرهمزمان (async) ساخته شده. این فریم‌ورک با استفاده از ASGI (Asynchronous Server Gateway Interface)
سرعت و کارایی بالایی رو به ما میده.

یکی از ویژگی‌های خوب Starlette اینه که خیلی سبک و کم‌حجم هست، به طوری که می‌تونید به راحتی ازش برای ساخت سرویس‌ها و API های پیچیده استفاده کنید بدون اینکه بخواید با پیچیدگی‌های اضافی روبه‌رو بشید. 🚀

پشت صحنه‌ی Starlette 🎬
ـASGI:
ـStarlette از ASGI به جای WSGI استفاده می‌کنه. این تغییر باعث میشه که تو بتونی درخواست‌ها رو به صورت همزمان پردازش کنی و کارایی بهتری داشته باشی، مخصوصاً در مواقعی که نیاز به پردازش‌های طولانی یا مولتی تسک داری.
ـNon-blocking I/O:
با non-blocking I/O درخواستو عملیات ها منتظر نمی‌مونن. این یعنی که هر درخواست به سرعت پردازش می‌شه و سیستم هیچ‌وقت از کار نمی‌افته.
ـEvent-driven:
ـStarlette معماری event-driven داره، به این معنی که هیچ عملیات غیرضروری انجام نمیده. فقط وقتی که یه اتفاقی بیفته، کاری انجام می‌ده، که باعث میشه سرعت پردازش بالاتر بره.
ـMiddleware:
ـStarlette کاملاً روی middleware ها بنا شده که می‌تونید به راحتی ویژگی‌هایی مثل لاگینگ، احراز هویت، یا مدیریت خطاها رو به برنامه اضافه کنید.
ـUvicorn:
معمولا از Uvicorn برای راه‌اندازی اپلیکیشن استفاده میشه که یه سرور ASGI خیلی سریع و سبک هست. این باعث میشه که اپلیکیشن شما به راحتی به HTTP/2 و WebSocket متصل بشه.
چرا Starlette سریع‌تره؟ 💨
سبک بودن:
ـStarlette به شدت مینیمال طراحی شده و چیز اضافی توش نیست که بخواد سرعت رو پایین بیاره. به همین خاطر به راحتی می‌تونید اپلیکیشن‌هایی با کارایی بالا بسازید.

پشتیبانی از async:
استفاده از async و await برای پردازش درخواست‌ها بصورت همزمان باعث میشه تا اپلیکیشن شما بدون هیچ کندی درخواست‌ها رو پردازش کنه. این یه ویژگی خیلی مهم برای اپلیکیشن‌هایی هست که نیاز به سرعت بالا دارن.

ـUvicorn:
ـ Uvicorn باعث میشه که اپلیکیشن‌ها با کمترین تأخیر و بیشترین کارایی اجرا بشن.

پشتیبانی از WebSocket:
ـStarlette از WebSocket به خوبی پشتیبانی می‌کنه که باعث میشه اپلیکیشن‌های real time سریع و کارآمد اجرا بشن.

ویژگی‌های کاربردی Starlette 🛠️
ـWebSocket:
پشتیبانی از WebSocket برای اپلیکیشن‌های realt time مثل چت یا نوتیفیکیشن‌های زنده.


ـBackground Tasks:
امکان اجرای کارهای پس‌زمینه‌ای مثل ارسال ایمیل یا پردازش داده‌ها بدون معطلی کاربر.


ـMiddleware قدرتمند:
می‌تونید به راحتی هر middleware دلخواهی رو برای احراز هویت، لاگینگ و موارد دیگه اضافه کنید.


ـRouting منعطف:
مسیرهای URL رو می‌تونید به صورت خیلی دقیق و منعطف تعریف کنید.


و...

چرا starllete باعث سرعت Fastapi میشه؟ 🔄
در حقیقت، FastAPI یه فریم‌ورک مبتنی بر Starlette هست که ویژگی‌هایی مثل Pydantic برای اعتبارسنجی و OpenAPI برای مستندسازی خودکار API‌ها و... موارد دیگه رو اضافه کرده. بنابراین، FastAPI از Starlette استفاده می‌کنه.
پس الان کاملا براتون واضح هست که چرا Fastapi سریع هست

نمونه کد ساده از Starlette 🖥️
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route

async def homepage(request):
return JSONResponse({'message': 'Hello, Starlette!'})

routes = [
Route("/", endpoint=homepage)
]

app = Starlette(debug=True, routes=routes)

برای اجرای اپلیکیشن:
uvicorn app:app --reload 


اینم سایت خود starllette
https://www.starlette.io/


شیرو و ریکشن فراموش نشه ❤️


#programming #fastapi #web



🔆 CHANNEL | GROUP
15👍5
Forwarded from جادی | Jadi
شاید این ماه‌ها من به نظر خیلی کم کار بیام (: ولی در عمل ماجرا اینه که دارم یه دوره جدید و کامل پایتون با مکتبخونه ضبط می کنم و پیگیری و دقت اونها کار رو مفصل می کنه! فعلا حدود ۶۰ تا ویدئو داریم و نکات مقدماتی تا پیشرفته پایتون جدید رو توش توضیح می دم. تقریبا آخرهاشه و امیدوارم به زودی منتشر بشه.
17🔥4👍1
طاها جان یکی از بچه های پرتلاش کامیونیتی هست که محتوای خفنیم تولید میکنه.
درحال حاضر روی توسعه یه زبان کارمیکنه به نام (کوروش) و کامپایلریه و داره با زبان برنامه نویسی Rust توسعش میده و از LLVM هم برای کامپایلرش استفاده میکنه.
متاسفانه مورد حمایت اصلا قراره نمیگیره.
اینم تبلیغ نیست و به انتخاب خودم دارم اینکارو میکنم و تاحالا کلی چیز از طاها یاد گرفتم.


کانال طاها 👇

https://t.iss.one/geek_engineers
12🤣3👍1
پست بعدی راجب OOP توی پایتونه 🐍
20👍6🔥6
راستی دوستان من کتاب

Rest api Design rulebook



رو تا فصل ۴ ترجمه کردم

خواستید میتونید با هشتک

#کتاب


پیداشون کنید و استفاده کنید 😊


🔆 CHANNEL | GROUP
15👍2🔥1
Me


🔆 CHANNEL | GROUP
🤣12🔥1
خب خب خب شی‌گرایی در پایتون🚀

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

1⃣ متاکلاس‌ها🕵️‍♂️
متاکلاس‌ها این امکان رو می‌دن که قبل از ایجاد یک کلاس، ساختارش رو کنترل کنی. می‌تونی مطمئن شی که قوانین خاصی رعایت شدن یا حتی رفتار کلاس رو دستکاری کنی.
مثال:
اطمینان از تعریف متد greet در کلاس
class Meta(type):
def __new__(cls, name, bases, dct):
# Ensure 'greet' method exists in the class
if 'greet' not in dct:
raise TypeError(f"Class '{name}' must define 'greet' method")
return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
def greet(self):
return "Hello, world!"

obj = MyClass()
print(obj.greet()) # Output: Hello, world!

💡 چی شد؟
متاکلاس Meta بررسی می‌کنه که متد greet توی هر کلاسی که ازش استفاده می‌کنه، حتماً تعریف شده باشه. با این کار، خطاها زودتر شناسایی می‌شن و کدت تمیزتر می‌مونه.
2⃣ ‏Composition به جای ارث‌بری 🔗
ترکیب یا Composition یک راه انعطاف‌پذیرتر برای ساختار دادن به کلاسهات هست. این روش بهت کمک می‌کنه وابستگی‌ها رو کم کنی و کدهات قابل نگهداری‌تر باشن.
مثال: تعریف ماشین با استفاده از موتور
class Engine:
def start(self):
return "Engine started"

class Car:
def __init__(self):
self.engine = Engine() # Engine is a part of Car

def start(self):
return self.engine.start() # Delegate starting to Engine

car = Car()
print(car.start()) # Output: Engine started

💡 چی شد؟
به جای این که ماشین از موتور ارث‌بری کنه، موتور به عنوان یک جزء در ماشین ترکیب شده. این یعنی موتور رو می‌تونی راحت عوض کنی بدون این که ساختار کلی ماشین به مشکل بخوره.
3⃣ بهینه‌سازی حافظه با slots 🧠
ویژگی های (attributes) هر آبجکت در پایتون به صورت پیش‌فرض در یک دیکشنری ذخیره می‌شن که حافظه زیادی مصرف می‌کنه. با slots می‌تونی این دیکشنری رو حذف کنی و مصرف حافظه رو کاهش بدی.
مثال: استفاده از slots برای بهینه‌سازی

class MyClass:
__slots__ = ['name', 'age'] # Restrict attributes to these two

obj = MyClass()
obj.name = "Alice"
obj.age = 25

💡 چی شد؟
ویژگی‌های آبجکت فقط محدود به name و age هستن و هیچ فضای اضافی برای دیکشنری داخلی استفاده نمی‌شه. این روش توی سیستم‌هایی با تعداد آبجکت زیاد، تفاوت بزرگی ایجاد می‌کنه.

4⃣ ‏Abstract Base Classes 🎯
کلاس‌های پایه انتزاعی (ABC) تضمین می‌کنن که کلاس‌های فرزند متدهای مشخصی رو پیاده‌سازی کنن. این کار طراحی رو مطمئن‌تر و کدها رو خواناتر می‌کنه.
مثال: طراحی یک کلاس پایه برای اشکال هندسی
from abc import ABC, abstractmethod

class Shape(ABC):
@abstractmethod
def area(self):
"""Calculate the area of the shape"""
pass

class Circle(Shape):
def __init__(self, radius):
self.radius = radius

def area(self):
return 3.14 * self.radius ** 2 # Area formula for a circle

circle = Circle(5)
print(circle.area()) # Output: 78.5

💡 چی شد؟
کلاس Shape تضمین می‌کنه که همه‌ی اشکال فرزند متد area رو داشته باشن. بدون این متد، ساختن کلاس فرزند امکان‌پذیر نیست.

جمع‌بندی
این نکات فقط نوک کوه یخه اگه می‌خوای عمیق تر بشی، کتاب Fluent Python یکی از بهترین منابعه.

#programming #python #oop



🔆 CHANNEL | GROUP
1👍14🔥21
تو پست بعدی درمورد این میخوام حرف بزنم که چرا بعضی ها میگن پایتون شی گرا نیست
🤣12👍3👌2
خب سرور دیسکورد دیگه اخراشه 😁
پیشنهادی دارید بهش اضافه کنم؟ 🤔
مثل بخشی، چنلی و ...
هرچی که بنظرتون باعث میشه بهتر شه میتونید تو کامنتا بگید. 🤗
🔥8👍2👌1
Fluent_Python_Clear,_Concise,_and_Effective_Programming_Luciano.pdf
15.7 MB
Fluent Python - Clear, Concise, and Effective Programming - Luciano Ramalho (O'Reilly Media, 2022)

دوستانی که نتونستن کتابو پیدا کنن.
اینم از کتاب Fluent Python

به دوستاتونم شیر کنید اوناهم داشته باشن 😉

لذت ببرید 😁

#book



🔆 CHANNEL | GROUP
🔥13👍1
دوستاااان 🎉 بالاخره سرور دیسکوردی که قولش رو داده بودم آماده شد 😍 خوشحال می‌شم همگی جوین بدید تا با هم یه کامیونیتی خفن و پرانرژی بسازیم 💪 کلی برنامه جذاب داریم که فقط توی دیسکورد قابل اجراست و همونجا براتون عملی می‌کنم 🎙️ این فرصت رو از دست ندید 🔥
منتظر حضور گرم همتون هستم 🫶

برای جوین اینجا کلیک کنید و بیاید پیشمون 🚀


🔆 CHANNEL | GROUP
🔥10👍4
یه خبر خوبم برای دوستانی که برای دیسکورد با مشکل VPN سروکله میزنن.
دوستان یه اراعه دهنده DNS هست
به اسم الکترو
برید توی این سایت همون اول یه دکمه هست DNS و DNS رو ست کنید بعدش میبینید که دیسکوردتون به راحتی باز میشه. 😁


🔆 CHANNEL | GROUP
7👍1
دوستان میخوام علممو راجب Network بیشتر کنم و چیزایی که یاد میگیرم رو اینجا شیر کنم
میخوام بایه ترتیب خاص تایه مدت درمورد Network پست بزارم و فکرنم ۸ ۹ تایی میشن شایدم بیشتر (هرچی بیشتر یادبگیرم بیشتر میزارم)
نظرتون چیه؟
👍62👎1
Forwarded from Ali
سلام دوستان

سیج‌هود یک محصول هوش مصنوعی متمرکز روی بازار سهام آمریکاست.
روی پروداکت‌هانت فیچر شدیم و الان رنک دوم هستیم، لطفا حمایت کنید و بهش Upvote بدید. 🎉🌹

https://www.producthunt.com/posts/sagehood-3
5👍1
حق

#fun




🔆 CHANNEL | GROUP
🤣26👍2
مقدمه‌ای بر شبکه‌های کامپیوتری 🌐

در دنیای مدرن امروز، شبکه‌های کامپیوتری بخش جدانشدنی از زندگی روزمره ما هستند. از ارتباطات درون سازمانی گرفته تا اینترنت جهانی که از طریق آن میتونیم با دوستان، خانواده و حتی همکاران در اقصی نقاط جهان ارتباط برقرار کنیم.
در این پست، میخوایم با هم نگاهی دقیق‌تر به مفاهیم شبکه‌های کامپیوتری بندازیم و توضیح بدیم که این شبکه‌ها چطور کار می‌کنن و چه اجزای اصلی دارن. 🌍

مدل OSI و TCP/IP 🌐
قبل از اینکه وارد جزئیات بشیم، بهتره با دو مدل معروف آشنا بشیم که برای طراحی و توضیح شبکه‌های کامپیوتری استفاده می‌شن:
مدل OSI (Open Systems Interconnection):
این مدل 7 لایه داره و معمولاً برای توضیح ارتباطات شبکه به کار میره. لایه‌ها از لایه فیزیکی شروع می‌کنن و به لایه برنامه‌های کاربردی می‌رسن.

مدل TCP/IP:
این مدل 4 لایه داره و بیشتر در شبکه‌های واقعی و اینترنت به کار میره. مدل TCP/IP یکم ساده‌تر از OSI هست.

1⃣ لایه‌های مدل OSI و TCP/IP 📶

مدل OSI

1⃣ لایه فیزیکی (Physical Layer):
این لایه مسئول ارسال و دریافت داده‌ها به صورت سیگنال‌های الکتریکی، نوری یا رادیویی روی مدیاهای مختلف (مثل کابل‌ها و امواج رادیویی) هست. دستگاه‌هایی که در این لایه کار می‌کنن شامل کابل‌ها، روترها، سوئیچ‌ها و آنتن‌ها می‌شن.
2⃣ لایه داده پیوند (Data Link Layer):
وظیفه این لایه، ایجاد ارتباط بی‌خطا بین دستگاه‌ها در یک شبکه محلی هست. این لایه به انتقال فریم‌ها پرداخته و خطاهایی که در انتقال داده‌ها ممکنه رخ بده رو اصلاح می‌کنه. پروتکل‌های معروف در این لایه Ethernet و Wi-Fi هستن.
3⃣ لایه شبکه (Network Layer):
در این لایه، داده‌ها به پکیج‌های کوچکتری تقسیم می‌شن و آدرس‌دهی (IP Addressing) انجام می‌شه. وظیفه اصلی این لایه، ارسال داده‌ها از مبدا به مقصد و انتخاب مسیر مناسب هست. پروتکل معروف در این لایه IP (Internet Protocol) هست.
4⃣ لایه انتقال (Transport Layer):
در این لایه، پروتکل‌هایی مانند TCP و UDP برای انتقال داده‌ها به طور ایمن و کارآمد استفاده می‌شن. این لایه تضمین می‌کنه که داده‌ها به درستی از مبدا به مقصد برسن و در صورت نیاز خطاها تصحیح بشن.
5⃣ لایه جلسه (Session Layer):
لایه جلسه مسئول ایجاد، مدیریت و پایان دادن به ارتباطات بین دو دستگاه هست. این لایه معمولاً برای ارتباطات پایدار و طولانی‌مدت بین سیستم‌ها استفاده می‌شه.
6⃣ لایه نمایش (Presentation Layer):
این لایه داده‌ها رو به فرمتی که توسط برنامه‌های کاربردی قابل درک باشه تبدیل می‌کنه. این لایه مسئول رمزگذاری، فشرده‌سازی و رمزگشایی داده‌هاست.
7⃣ لایه کاربرد (Application Layer):
بالاترین لایه‌ای که در این مدل وجود داره. این لایه به طور مستقیم با برنامه‌های کاربردی کار می‌کنه. برای مثال، HTTP برای مرورگرها یا FTP برای انتقال فایل‌ها از پروتکل‌های معروف در این لایه هستن.
مدل TCP/IP
مدل TCP/IP یکم ساده‌تر از مدل OSI هست و به 4 لایه تقسیم می‌شه:
لایه Link (معادل Data Link و Physical در OSI)

لایه Internet (معادل لایه Network در OSI)

لایه Transport (معادل لایه Transport در OSI)

لایه Application (معادل لایه‌های Session, Presentation و Application در OSI)


2⃣ پروتکل‌های مهم در شبکه‌های کامپیوتری 💻
TCP (Transmission Control Protocol) 📨
‏TCP یکی از مهم‌ترین پروتکل‌های لایه انتقاله که برای ارسال داده‌ها به صورت ایمن و مطمئن طراحی شده. این پروتکل مسئول برقراری ارتباط بین دو دستگاه، تقسیم داده‌ها به پکیج‌ها و اطمینان از اینکه تمام پکیج ها به مقصد رسیدن، هست.

IP (Internet Protocol) 🌐
‏IP پروتکلیه که در لایه شبکه برای آدرس‌دهی و هدایت پکیج ها به سمت مقصد مورد استفاده قرار می‌گیره. هر دستگاهی که به اینترنت متصل هست، یک آدرس IP منحصر به فرد داره.

HTTP (Hypertext Transfer Protocol) 🌐
این پروتکل لایه اپلیکیشنه، برای انتقال اطلاعات از سرور به مرورگرهای وب استفاده می‌شه. به طور کلی، وقتی شما در مرورگر URL رو وارد می‌کنید، پروتکل HTTP درخواست رو به سرور ارسال می‌کنه و سرور پاسخ رو به مرورگر ارسال می‌کنه.

DNS (Domain Name System) 📜
‏DNS به شما کمک می‌کنه که به جای یادآوری آدرس‌های IP، بتونید نام‌های دامنه مانند www.google.com رو وارد کنید. این سیستم آدرس‌های دامنه رو به آدرس‌های IP تبدیل می‌کنه.
توی این پست کامل درموردش گفتم

3⃣ آدرس‌دهی و مسیریابی 🌍
یکی از مهم‌ترین بخش‌های شبکه، آدرس‌دهی و مسیریابی داده‌هاست. در لایه‌های پایین‌تر شبکه، مثل لایه شبکه (Network Layer)، برای هر دستگاه یک آدرس منحصر به فرد (آدرس IP) در نظر گرفته می‌شه. دستگاه‌های روتر مسئول مسیریابی بسته‌ها از مبدا به مقصد هستن.

#⃣ #network



🥷 CHANNEL | GROUP
1👍215👌2