Dev Perfects – Telegram
Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Meitix
داکر همون VM نیست!

واقعیت اینه که اینا دو تا مفهوم کاملاً متفاوتن. ماشین مجازی یه سیستم‌عامل کامله که روی یه نرم‌افزار مثل VMware یا VirtualBox اجرا می‌شه. این یعنی هر VM برای خودش یه سیستم‌عامل جدا داره، کرنل خودش رو اجرا می‌کنه و منابع سخت‌افزاری مثل CPU و رم رو شبیه‌سازی می‌کنه. همین کار باعث می‌شه VMها نسبتاً سنگین باشن و زمان زیادی برای بوت شدنشون لازم باشه.

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

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

پس دفعه بعد که کسی گفت داکر همون VMه، با خیال راحت توضیح بدید که داکر سبکه، سریع‌تره و هدفش اجرای اپلیکیشن‌هاست، نه شبیه‌سازی سخت‌افزار. 🚀
@meiti_x 💻
Forwarded from Sadra Codes
👀

$200/month btw
خب خب خب شی‌گرایی در پایتون🚀

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

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
Forwarded from Code Module | کد ماژول (𔓙)
۳۰ توصیه از یک برنامه‌نویس سنیور: نکاتی که ای کاش زودتر می‌دونستیم! 🦠

۱. کد تمیز مهم‌تر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر می‌کنی!

۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.

۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار می‌کنی.

۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!

۵. سراغ فریم‌ورک جدید نرو تا وقتی پایه‌ت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ری‌اکت.

۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.

۷. وقتی یه چیزی رو نمی‌دونی، با افتخار بگو نمی‌دونم. هیچکس همه چیز رو نمی‌دونه.

۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.

۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمی‌خوری!

۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.

۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.

۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!

۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.

۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.

۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!

۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.

۱۷. توی کامیونیتی‌ها فعال باش. یه روزی به دردت می‌خوره.

۱۸. فقط به حقوق فکر نکن، به چیزی که یاد می‌گیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.

۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.

۲۰. استک‌اورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.

۲۱. کامنت بذار، ولی نه برای توضیح کد بد.

۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.

۲۳. به چشم‌هات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.

۲۴. زندگی فقط کد نیست. تفریح هم مهمه.

۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!

۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.

۲۷. کمال‌گرایی رو بزار کنار و MVP بساز.

۲۸. از شکست‌هات یاد بگیر، همه اشتباه می‌کنن.

۲۹. صبور باش، همه یه روزی جونیور بودن.

۳۰. لذت ببر! برنامه‌نویسی قشنگ‌ترین شغل دنیاست.


شما چه تجربه ای دارید؟ 🤔
لیست رو اگه میتونید تکمیل تر کنید.

#tips
@CodeModule
Forwarded from DevAcademy
فول استک توسعه‌دهنده (میدلول یا جونیور)

استارتاپ استودیو هوش مصنوعی فیوچر فاندرز:
استارتاپ استودیو هوش مصنوعی به دنبال توسعه و ارائه استارتاپ‌های نوآورانه در حوزه‌های مختلف داخلی و خارجی است. ما بر روی ایجاد محصولات مبتنی بر حل مسائل جدی جامعه بین‌الملل و جامعه ایران تمرکز داریم و به دنبال افرادی هستیم که به این اهداف مشترک بپیوندند.

فول تایم و ریموت (۱ الی ۲ جلسه حضوری در ماه در لواسان یا تهران)

الزامات:
• آشنایی با زبان‌های برنامه‌نویسی مانند پایتون
• تجربه کار با فریم‌ورک‌های وب مانند جنگو، React، Angular یا Node.js
• آشنایی با پایگاه‌های داده SQL و NoSQL
• توانایی کار در محیط‌های Agile و Scrum
• مهارت‌های ارتباطی قوی و توانایی کار تیمی
• انگیزه بالا برای یادگیری و پیشرفت در زمینه فناوری

لطفا توجه داشته باشید فقط رزومه‌هایی که موضوع ایمیل آن‌ها "فول استک استارتاپ استودیو هوش مصنوعی" است، باز و بررسی می‌شود.
Email: futurefoundersai@gmail.com

حتما قبل از ارسال رزومه وبسایت سازمان را بررسی کنید:
https://futurefounders.github.io/

💻@DevAcaademy
دومین پورت موفق از پارچ به یک معماری جدید.

در بلاگ پارچ درمورد پورت‌های پارچ و همچنین برنامه برای نگهداریشون صحبت خواهم کرد.


@SohrabContents
کاش آقای وزیر می‌فرمودن که به نظرشون چرا در اینترنت طبقاتی‌شون باید به اساتید و دانشجویان دانشگاه یوتیوب بدن ولی به ما عوام یوتیوب ندن (:

‏یادآوری: شکاف دیجیتال یعنی نابرابری دسترسی به تکنولوژی دیجیتال. اینکه بگی فلانی چون تو دانشگاه نیست، یوتیوب هم نمی‌خواد یعنی تشدید شکاف دیجیتال.

جاهای درست سعی می‌کنن دقیقا به اونی که الان دسترسی کمتری داره، دسترسی و فرصت‌های بیشتری بدن تا بتونه خودش رو به کسانی که دسترسی زیادتر دارن نزدیک کنه. اینکه «فلانی رو محدود می‌کنیم چون از قشر دانشمندان نیست»‌ ادامه ذهنیت «بچه کشاورز لازم نیست سواد یاد بگیره» هست.

© jadi

🔍 ircf.space
@ircfspace
برای اجرای لینوکس روی سیستم عامل های دیگه مثل هلو ( برای کاربرد آموزش )

1. نصب داکر:
https://docs.docker.com/desktop/setup/install/windows-install/

2. سری اول بعد تموم شدن نصب داکر و اجرای نرم افزار داکر دستور:
docker pull ubuntu
که میاد کانتینر ابونتور رو دانلود میکنه

3.بعد دانلود توی عکسی که میدم دکمه اجرا رو بزنی تا لینوکس اجرا شه

4.در در آخر دستور زیر رو میزنی تا ترمینال داکر اجرا شه:
docker attach container-id
شناسه کانتینتر هم توی عکس علامت زدم

@DevTwitter | <Alireza Babaei/>
Forwarded from  (Amir Hossein 'Amiria' Maher)
x.com/iamam1r1a/status/1876582579757007001

اینجا هم از این به بعد قراره فعّال باشم:
Forwarded from Go Casts 🚀
یه تعریف خیلی ساده و شسته و رفته برای Stack و Heap

تو مستندات آموزش rust قبل از اینکه ownership رو توضیح بده در مورد heap و stack صحبت کرده، توضیح کوتاه و خوبیه، یادآوری خوبی میتونه باشه
https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html

چقدر این مثالش قشنگه برای اینکه چرا دسترسی به heap کندتر از stack هست

Accessing data in the heap is slower than accessing data on the stack because you have to follow a pointer to get there. Contemporary processors are faster if they jump around less in memory. Continuing the analogy, consider a server at a restaurant taking orders from many tables. It’s most efficient to get all the orders at one table before moving on to the next table. Taking an order from table A, then an order from table B, then one from A again, and then one from B again would be a much slower process. By the same token, a processor can do its job better if it works on data that’s close to other data (as it is on the stack) rather than farther away (as it can be on the heap).


@gocasts
Audio
در رادیوی ۱۸۶ خیلی خبرها از هوش مصنوعی هستن. از پول‌های عظیمی که دراومده و خرج می‌شه تا جایگزینی انسان‌ها. چین ساخت باتری برای جهان رو سختتر کرده و اروپا شارژ باتری رو آسونتر. با ما باشین که جهان هکرهای بیشتری می‌خواد حتی اگر دوربینشون جای اشتباهی باشه.


00:00 - رادیوجادی ۱۸۶ خوش اومدی پاپای
01:20 - ربات هایی که از فیلم جراحی یاد گرفتن
07:20 - بازمتن شدن ران:ای آی توسط انویدیا
13:31 - حمایت ساپورت از ویزاهای اچ ۱ب آمریکا
15:30 - محدودیت‌های بیشتر چین بر روی فلزات مرتبط با باتری
18:30 - سرمایه‌گذاری ۸۰ میلیارد دلاری مایکروسافت در دیتاسنترهای هوش مصنوعی
24:16 - روز پابلک دامین ۲۰۲۵ و پایان یکسری کپی رایت‌ها
25:24 - قانون اجبار شارژ از طریق یو اس بی سی در اروپا عملیاتی شد
28:34 - بخش آخر
35:12 - تشکر از حامیان

https://youtu.be/JK9MNhlv6aA

#پادکست #صوتی
خب سرور دیسکورد دیگه اخراشه 😁
پیشنهادی دارید بهش اضافه کنم؟ 🤔
مثل بخشی، چنلی و ...
هرچی که بنظرتون باعث میشه بهتر شه میتونید تو کامنتا بگید. 🤗
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
۵ سال گذشت 😢
#PS572
چطوری به متدهای Policy توی لاراول متغیر ارسال کنیم؟
داخل متد authorize کلاس Gate بعد از اینکه اسم متد متناظر توی policy رو پاس دادیم در قالب یک آرایه، اول مدلمون رو پاس میدیم و بعد متغیری که مدنظرمون هست. اینجوری میتونیم اون متغیر رو داخل متد policy داشته باشیم. مثال:
توی عکس های زیر، من میخوام آرایه ای از آیدی های کاربران رو بگیرم و همشون رو حذف کنم، اما میخوام در صورتی که آیدی شماره ۱ بین آیدی های انتخاب شده باشه، اجازه حذف داده نشه و خطای ۴۰۳ برگردونه. پس آرایه آیدی هارو پاس میدم به policy و اونجا چک میکنم، اگر آیدی ۱ داخل آرایه نبود، true برگردونه و اجازه عملیات رو صادر کنه.
عکس اول داخل کنترلر جایی که از Gate پالیسی رو فرا میخونیم. و عکس دوم داخل UserPolicy هست. (نحوه فراخونی policy توی لاراول ۱۱ کمی عوض شده)

@DevTwitter | <Pouya Farshidnia/>
دانشگاه استنفورد ابزاری به نام STORM رو ساخته که با کمک هوش مصنوعی می‌تونه در لحظه صدها سایت و مقاله مرتبط با موضوع شما رو اسکن کنه و یه مقاله خلاصه ازش بسازه و بهتون بده.

https://storm.genie.stanford.edu/

@DevTwitter | <Hanieh Khalesi/>
Forwarded from Meitix
A Crash Course in Docker - ByteByteGo Newsletter.pdf
2.3 MB
نوت های bytebyte برای داکر
@meiti_x
Forwarded from ‌BenDev
دقایقی تا شروع لایو