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
پست بعدی راجب 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
Ninja Learn | نینجا لرن pinned «دوستاااان 🎉 بالاخره سرور دیسکوردی که قولش رو داده بودم آماده شد 😍 خوشحال می‌شم همگی جوین بدید تا با هم یه کامیونیتی خفن و پرانرژی بسازیم 💪 کلی برنامه جذاب داریم که فقط توی دیسکورد قابل اجراست و همونجا براتون عملی می‌کنم 🎙️ این فرصت رو از دست ندید 🔥 منتظر…»
یکی از بهترین عکسایی که برای توضیح خلاصه این ۷ لایه میشه دید

پست مدل OSI



#⃣ #network



🥷 CHANNEL | GROUP
👍14
Ninja Learn | نینجا لرن
یکی از بهترین عکسایی که برای توضیح خلاصه این ۷ لایه میشه دید پست مدل OSI #⃣ #network 🥷 CHANNEL | GROUP
فردا درمورد لایه اول (Physical layer) قرار صحبت کنم.

خیلی کاربر نداره براتون ولی دونستنش خالی از لطف نیست.


🥷 CHANNEL | GROUP
👍121🔥1