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

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

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
خب خب خب شی‌گرایی در پایتون🚀

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

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
خب خب خب لایه فیزیکی (Physical Layer) در مدل OSI 🔌

لایه فیزیکی اولین و پایین‌ترین لایه تو مدل OSI هست که کارش انتقال بیت‌های خام (0 و 1) از یه دستگاه به دستگاه دیگه از طریق رسانه‌های فیزیکیه. این لایه کاملاً با سخت‌افزار سروکار داره و اصلاً سراغ مفاهیمی مثل داده، پروتکل‌ها یا بسته‌های اطلاعاتی نمی‌ره؛ فقط حواسش به انتقال سیگنال‌های الکتریکی، نوری یا رادیوییه.

وظایف لایه فیزیکی 🛠️

1⃣ انتقال بیت‌ها
وظیفه اصلی این لایه اینه که بیت‌ها (1 و 0) رو به سیگنال‌هایی که میشه از طریق رسانه‌های مختلف فرستاد، تبدیل کنه. مثلاً:
سیگنال‌های الکتریکی تو کابل‌های مسی.

سیگنال‌های نوری تو فیبر نوری.

امواج رادیویی تو شبکه‌های وایرلس.


2⃣ تعریف مشخصات رسانه‌های انتقال
این لایه مشخص می‌کنه چه نوع رسانه‌ای (مثل کابل کواکسیال، فیبر نوری، یا امواج رادیویی) باید استفاده بشه. مثلاً:
نوع و طول کابل.

چقدر سیگنال تو طول کابل ضعیف می‌شه.

مشخصات کانکتورها.


3⃣ اینکدینگ (Encoding) و مدولاسیون (Modulation)
لایه فیزیکی بیت‌ها رو به سیگنال‌های فیزیکی (مثل ولتاژ، نور یا امواج رادیویی) تبدیل می‌کنه:


اینکدینگ (Encoding):
بیت‌ها رو به قالبی تبدیل می‌کنه که مناسب انتقال باشه. مثلاً تو کابل‌های مسی از کدگذاری Manchester استفاده می‌شه.

مدولاسیون (Modulation):
سیگنال دیجیتال رو به سیگنال آنالوگ تبدیل می‌کنه تا بشه رو بعضی رسانه‌ها امواج رادیویی فرستاد.

4⃣ نرخ انتقال داده (Data Rate):
این لایه نرخ انتقال داده (Data Rate) یا پهنای باند رو تعیین می‌کنه که بر حسب بیت بر ثانیه (bps) اندازه‌گیری می‌شه.

5⃣ سینکرون‌سازی (Synchronization)
لایه فیزیکی حواسش هست که فرستنده و گیرنده هماهنگ باشن تا داده‌ها درست تفسیر بشن.

6⃣ کنترل خطاهای فیزیکی
خطاهایی که ممکنه به خاطر نویز، تداخل الکترومغناطیسی یا مشکلات سخت‌افزاری پیش بیاد، تو این لایه شناسایی و در صورت امکان رفع می‌شه.

رسانه‌های انتقال در لایه فیزیکی 🌐
1⃣ رسانه‌های سیمی (Wired Media)

کابل کواکسیال (Coaxial Cable):
این کابل تو تلویزیون‌های کابلی و شبکه‌های قدیمی کاربرد داشته. سیگنال‌ها به صورت الکتریکی منتقل می‌شن.
مثال: اتصال تلویزیون به آنتن.


Twisted Pair Cable:
این کابل تو شبکه‌های تلفنی و اترنت (Ethernet) رایجه. سیم‌ها برای کاهش تداخل، به هم تابیده شده‌ان.
مثال: کابل LAN مثل Cat5 یا Cat6.


فیبر نوری (Fiber Optic):
داده‌ها رو به صورت سیگنال‌های نوری منتقل می‌کنه و سرعت و بردش از کابل‌های مسی بیشتره.
مثال: اینترنت فیبر نوری.


2⃣ رسانه‌های بی‌سیم (Wireless Media)

امواج رادیویی (Radio Waves):
برای انتقال داده تو شبکه‌های Wi-Fi یا بلوتوث استفاده می‌شه.
مثال: مودم وایرلس.


امواج مایکروویو (Microwaves):
برای ارتباطات راه دور مثل بین برج‌های مخابراتی استفاده می‌شه.
مثال: سیستم‌های تلفن همراه.


دستگاه‌های فعال در لایه فیزیکی 🖥️

هاب (Hub):
یه دستگاه ساده که داده‌ها رو از یه پورت می‌گیره و به همه پورت‌های دیگه می‌فرسته.

تقویت‌کننده (Repeater):
سیگنال‌های ضعیف شده رو تقویت می‌کنه تا مسافت بیشتری رو طی کنن.

مودم (Modem):
داده‌های دیجیتال رو به سیگنال‌های آنالوگ تبدیل می‌کنه و برعکس.
مثال: مودم‌های DSL.


روتر (Router):
روتر تو لایه شبکه کار می‌کنه ولی سخت‌افزاری با لایه فیزیکی سروکار داره.

سوئیچ (Switch):
بیشتر تو لایه دوم کار می‌کنه ولی با لایه فیزیکی برای انتقال داده‌ها تو رسانه‌ها در تماسه.

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


#⃣ #network



🥷 CHANNEL | GROUP
🔥9👍42
Grokking_Relational_Database_Design-asbook.ir (3).pdf
29.6 MB
یکی از بچه ها توی گروه پرسید که چه منبعی برای Database design رو پیشنهاد میدی
منم کتاب Grokking Relational Database Design
رو پیشنهاد میدم که میتونید فایلشو رو دانلود کنید فقط یه نکته ای که هست این فایل کلا ۵ فصلشو داره از ۸ تا فصل(که همینم غیر رایگان خیلی سخت پیدا شد)
و میتونید اون سه تای دیگرو از این رپوی گیت هاب بخونید

#⃣ #book



🥷 CHANNEL | GROUP
16👎1
Ninja Learn | نینجا لرن
Grokking_Relational_Database_Design-asbook.ir (3).pdf
واقعا کتاب خوبیه و کلی چیز از طراحی دیتابیس یاد میگیرید.
اگه دوست داشته باشید میتونم بعدا براساس همین کتاب یکسری پست درست کنم
🔥20👍4