Forwarded from Ninja Learn | نینجا لرن
خب خب خب شیگرایی در پایتون🚀
شیگرایی تو پایتون فقط محدود به تعریف کلاسها و متدهای ساده نیست. این زبان امکانات پیشرفتهتری هم داره که با یاد گرفتنشون میتونید کدهای بهینهتر، استانداردتر و انعطافپذیرتری بنویسید. بیاید چند تا از این مفاهیم رو بررسی کنیم.
1⃣ متاکلاسها🕵️♂️
متاکلاسها این امکان رو میدن که قبل از ایجاد یک کلاس، ساختارش رو کنترل کنی. میتونی مطمئن شی که قوانین خاصی رعایت شدن یا حتی رفتار کلاس رو دستکاری کنی.
مثال:
اطمینان از تعریف متد greet در کلاس
💡 چی شد؟
ترکیب یا Composition یک راه انعطافپذیرتر برای ساختار دادن به کلاسهات هست. این روش بهت کمک میکنه وابستگیها رو کم کنی و کدهات قابل نگهداریتر باشن.
مثال: تعریف ماشین با استفاده از موتور
💡 چی شد؟
ویژگی های (attributes) هر آبجکت در پایتون به صورت پیشفرض در یک دیکشنری ذخیره میشن که حافظه زیادی مصرف میکنه. با slots میتونی این دیکشنری رو حذف کنی و مصرف حافظه رو کاهش بدی.
مثال: استفاده از slots برای بهینهسازی
💡 چی شد؟
4⃣ Abstract Base Classes 🎯
کلاسهای پایه انتزاعی (ABC) تضمین میکنن که کلاسهای فرزند متدهای مشخصی رو پیادهسازی کنن. این کار طراحی رو مطمئنتر و کدها رو خواناتر میکنه.
مثال: طراحی یک کلاس پایه برای اشکال هندسی
💡 چی شد؟
جمعبندی ✍
این نکات فقط نوک کوه یخه اگه میخوای عمیق تر بشی، کتاب Fluent Python یکی از بهترین منابعه.
➖➖➖➖➖➖➖➖➖
شیگرایی تو پایتون فقط محدود به تعریف کلاسها و متدهای ساده نیست. این زبان امکانات پیشرفتهتری هم داره که با یاد گرفتنشون میتونید کدهای بهینهتر، استانداردتر و انعطافپذیرتری بنویسید. بیاید چند تا از این مفاهیم رو بررسی کنیم.
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
O’Reilly Online Learning
Fluent Python
Python’s simplicity lets you become productive quickly, but this often means you aren’t using everything it has to offer. With this hands-on guide, you’ll learn how to write... - Selection from Fluent Python [Book]
Forwarded from Code Module | کد ماژول (𔓙)
۳۰ توصیه از یک برنامهنویس سنیور: نکاتی که ای کاش زودتر میدونستیم! 🦠
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!
۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.
۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.
۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!
۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.
۱۷. توی کامیونیتیها فعال باش. یه روزی به دردت میخوره.
۱۸. فقط به حقوق فکر نکن، به چیزی که یاد میگیری هم فکر کن. خروجی ما از شرکت و تیم نباید فقط بحث مالی باشه.
۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.
۲۰. استکاورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.
۲۱. کامنت بذار، ولی نه برای توضیح کد بد.
۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.
۲۳. به چشمهات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.
۲۴. زندگی فقط کد نیست. تفریح هم مهمه.
۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!
۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.
۲۷. کمالگرایی رو بزار کنار و MVP بساز.
۲۸. از شکستهات یاد بگیر، همه اشتباه میکنن.
۲۹. صبور باش، همه یه روزی جونیور بودن.
۳۰. لذت ببر! برنامهنویسی قشنگترین شغل دنیاست.
شما چه تجربه ای دارید؟ 🤔
لیست رو اگه میتونید تکمیل تر کنید.
#tips
@CodeModule
۱. کد تمیز مهمتر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر میکنی!
۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.
۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار میکنی.
۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!
۵. سراغ فریمورک جدید نرو تا وقتی پایهت قوی نشده. جاوااسکریپت وانیلا رو خوب یاد بگیر، بعد برو سراغ ریاکت.
۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.
۷. وقتی یه چیزی رو نمیدونی، با افتخار بگو نمیدونم. هیچکس همه چیز رو نمیدونه.
۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.
۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمیخوری!
۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.
۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.
۱۲. دیباگ کردن رو یاد بگیر، 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
استارتاپ استودیو هوش مصنوعی فیوچر فاندرز:
استارتاپ استودیو هوش مصنوعی به دنبال توسعه و ارائه استارتاپهای نوآورانه در حوزههای مختلف داخلی و خارجی است. ما بر روی ایجاد محصولات مبتنی بر حل مسائل جدی جامعه بینالملل و جامعه ایران تمرکز داریم و به دنبال افرادی هستیم که به این اهداف مشترک بپیوندند.
فول تایم و ریموت (۱ الی ۲ جلسه حضوری در ماه در لواسان یا تهران)
الزامات:
• آشنایی با زبانهای برنامهنویسی مانند پایتون
• تجربه کار با فریمورکهای وب مانند جنگو، React، Angular یا Node.js
• آشنایی با پایگاههای داده SQL و NoSQL
• توانایی کار در محیطهای Agile و Scrum
• مهارتهای ارتباطی قوی و توانایی کار تیمی
• انگیزه بالا برای یادگیری و پیشرفت در زمینه فناوری
لطفا توجه داشته باشید فقط رزومههایی که موضوع ایمیل آنها "فول استک استارتاپ استودیو هوش مصنوعی" است، باز و بررسی میشود.
Email: futurefoundersai@gmail.com
حتما قبل از ارسال رزومه وبسایت سازمان را بررسی کنید:
https://futurefounders.github.io/
💻@DevAcaademy
Forwarded from محتوای آزاد سهراب
دومین پورت موفق از پارچ به یک معماری جدید.
در بلاگ پارچ درمورد پورتهای پارچ و همچنین برنامه برای نگهداریشون صحبت خواهم کرد.
@SohrabContents
در بلاگ پارچ درمورد پورتهای پارچ و همچنین برنامه برای نگهداریشون صحبت خواهم کرد.
@SohrabContents
Forwarded from IRCF | اینترنت آزاد برای همه
کاش آقای وزیر میفرمودن که به نظرشون چرا در اینترنت طبقاتیشون باید به اساتید و دانشجویان دانشگاه یوتیوب بدن ولی به ما عوام یوتیوب ندن (:
یادآوری: شکاف دیجیتال یعنی نابرابری دسترسی به تکنولوژی دیجیتال. اینکه بگی فلانی چون تو دانشگاه نیست، یوتیوب هم نمیخواد یعنی تشدید شکاف دیجیتال.
جاهای درست سعی میکنن دقیقا به اونی که الان دسترسی کمتری داره، دسترسی و فرصتهای بیشتری بدن تا بتونه خودش رو به کسانی که دسترسی زیادتر دارن نزدیک کنه. اینکه «فلانی رو محدود میکنیم چون از قشر دانشمندان نیست» ادامه ذهنیت «بچه کشاورز لازم نیست سواد یاد بگیره» هست.
© jadi
🔍 ircf.space
@ircfspace
یادآوری: شکاف دیجیتال یعنی نابرابری دسترسی به تکنولوژی دیجیتال. اینکه بگی فلانی چون تو دانشگاه نیست، یوتیوب هم نمیخواد یعنی تشدید شکاف دیجیتال.
جاهای درست سعی میکنن دقیقا به اونی که الان دسترسی کمتری داره، دسترسی و فرصتهای بیشتری بدن تا بتونه خودش رو به کسانی که دسترسی زیادتر دارن نزدیک کنه. اینکه «فلانی رو محدود میکنیم چون از قشر دانشمندان نیست» ادامه ذهنیت «بچه کشاورز لازم نیست سواد یاد بگیره» هست.
© jadi
🔍 ircf.space
@ircfspace
Forwarded from DevTwitter | توییت برنامه نویسی
برای اجرای لینوکس روی سیستم عامل های دیگه مثل هلو ( برای کاربرد آموزش )
1. نصب داکر:
https://docs.docker.com/desktop/setup/install/windows-install/
2. سری اول بعد تموم شدن نصب داکر و اجرای نرم افزار داکر دستور:
docker pull ubuntu
که میاد کانتینر ابونتور رو دانلود میکنه
3.بعد دانلود توی عکسی که میدم دکمه اجرا رو بزنی تا لینوکس اجرا شه
4.در در آخر دستور زیر رو میزنی تا ترمینال داکر اجرا شه:
docker attach container-id
شناسه کانتینتر هم توی عکس علامت زدم
@DevTwitter | <Alireza Babaei/>
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)
Forwarded from Go Casts 🚀
یه تعریف خیلی ساده و شسته و رفته برای Stack و Heap
تو مستندات آموزش rust قبل از اینکه ownership رو توضیح بده در مورد heap و stack صحبت کرده، توضیح کوتاه و خوبیه، یادآوری خوبی میتونه باشه
https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html
چقدر این مثالش قشنگه برای اینکه چرا دسترسی به heap کندتر از stack هست
@gocasts
تو مستندات آموزش 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
#پادکست #صوتی
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 Ninja Learn | نینجا لرن
خب سرور دیسکورد دیگه اخراشه 😁
پیشنهادی دارید بهش اضافه کنم؟ 🤔
مثل بخشی، چنلی و ...
هرچی که بنظرتون باعث میشه بهتر شه میتونید تو کامنتا بگید. 🤗
پیشنهادی دارید بهش اضافه کنم؟ 🤔
مثل بخشی، چنلی و ...
هرچی که بنظرتون باعث میشه بهتر شه میتونید تو کامنتا بگید. 🤗
Forwarded from DevTwitter | توییت برنامه نویسی
چطوری به متدهای Policy توی لاراول متغیر ارسال کنیم؟
داخل متد authorize کلاس Gate بعد از اینکه اسم متد متناظر توی policy رو پاس دادیم در قالب یک آرایه، اول مدلمون رو پاس میدیم و بعد متغیری که مدنظرمون هست. اینجوری میتونیم اون متغیر رو داخل متد policy داشته باشیم. مثال:
توی عکس های زیر، من میخوام آرایه ای از آیدی های کاربران رو بگیرم و همشون رو حذف کنم، اما میخوام در صورتی که آیدی شماره ۱ بین آیدی های انتخاب شده باشه، اجازه حذف داده نشه و خطای ۴۰۳ برگردونه. پس آرایه آیدی هارو پاس میدم به policy و اونجا چک میکنم، اگر آیدی ۱ داخل آرایه نبود، true برگردونه و اجازه عملیات رو صادر کنه.
عکس اول داخل کنترلر جایی که از Gate پالیسی رو فرا میخونیم. و عکس دوم داخل UserPolicy هست. (نحوه فراخونی policy توی لاراول ۱۱ کمی عوض شده)
@DevTwitter | <Pouya Farshidnia/>
داخل متد authorize کلاس Gate بعد از اینکه اسم متد متناظر توی policy رو پاس دادیم در قالب یک آرایه، اول مدلمون رو پاس میدیم و بعد متغیری که مدنظرمون هست. اینجوری میتونیم اون متغیر رو داخل متد policy داشته باشیم. مثال:
توی عکس های زیر، من میخوام آرایه ای از آیدی های کاربران رو بگیرم و همشون رو حذف کنم، اما میخوام در صورتی که آیدی شماره ۱ بین آیدی های انتخاب شده باشه، اجازه حذف داده نشه و خطای ۴۰۳ برگردونه. پس آرایه آیدی هارو پاس میدم به policy و اونجا چک میکنم، اگر آیدی ۱ داخل آرایه نبود، true برگردونه و اجازه عملیات رو صادر کنه.
عکس اول داخل کنترلر جایی که از Gate پالیسی رو فرا میخونیم. و عکس دوم داخل UserPolicy هست. (نحوه فراخونی policy توی لاراول ۱۱ کمی عوض شده)
@DevTwitter | <Pouya Farshidnia/>
Forwarded from Laravel News
New Eloquent Relation Existence Methods in Laravel 11.37 https://laravel-news.com/laravel-11-37-0
Laravel News
New Eloquent Relation Existence Methods in Laravel 11.37 - Laravel News
The Laravel team released v11.37, which includes new Eloquent relation existence methods, a case-insensitive option for Str::is(), the Dumpable trait added to the Uri class, and more.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 پخش بدون مشکل ویدئو یوتیوب با افزونه فایرفاکس یوتر (Youter)
https://addons.mozilla.org/en-US/firefox/addon/youter/
@TheRaymondDev | @kiahamedi_channel
https://addons.mozilla.org/en-US/firefox/addon/youter/
@TheRaymondDev | @kiahamedi_channel
addons.mozilla.org
Youter – Get this Extension for 🦊 Firefox (en-US)
Download Youter for Firefox. Fix 1 minute problem in youtube
Forwarded from DevTwitter | توییت برنامه نویسی
دانشگاه استنفورد ابزاری به نام STORM رو ساخته که با کمک هوش مصنوعی میتونه در لحظه صدها سایت و مقاله مرتبط با موضوع شما رو اسکن کنه و یه مقاله خلاصه ازش بسازه و بهتون بده.
https://storm.genie.stanford.edu/
@DevTwitter | <Hanieh Khalesi/>
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
@meiti_x
Forwarded from زندگی به عنوان سرویس
تصمیم سخت؛ جنگ اعداد و ارقام یا ناز کردن ارزشها؟
ماها هر روز کلی تصمیم میگیریم. بعضیها ساده هستن اما بعضیهاشون خیلی سختن.
اگه تا اسم تصمیم سخت رو میشنوید به ازدواج و تحصیل و... فکر میکنید باید بگم اشتباه میکنید. انتخاب یک صبحونه یا حتی جای پارک هم میتونه چالش زیادی داشته باشه. فرض کنید میخواید صبحونه بخورید کدوم رو انتخاب میکنید: «یک نان جو و یک لیوان شیر» یا «یک کیک شکلاتی».
هر روز که میخواید از بیرون غذا بگیرید درگیر این انتخاب هستید. یه پیتزا یا مرغ سوخاری سفارش بدم یا یه سالاد؟ دوغ بخورم یا نوشابه؟ با دوستم برم بیرون یا بشینم این کار رو تموم کنم؟ و... .
آیا اینجا عدد یا رقمی دخیل هست زیاد؟ احتمالا نه. اگر هم باشه اونقدر پر رنگ نیست. پس چیه که اینقدر انتخاب بین حتی دوغ و نوشابه رو سخت میکنه؟
فرض کنید میخواید یه ماشین بخرید یا میخواین شغلتون رو عوض کنید. یه موقعیت شغلی واضحا داره بهتون پول بیشتری رو پیشنهاد میده و یه موقعیت شغلی دیگه داره بهتون همکارهای گردن کلفتی رو پیشنهاد میده. اونقدرها ساده نیست بین اینها انتخاب کردن. گاهی اگه اون موقعیت شغلی با حقوق بیشتر حتی اگه پیشنهادش رو دو برابر کنه هم بازم نمیتونید بگید خب این که بدیهیه میرم اینجا حقوق بیشتر میگیرم. ته دلتون باز هم درگیر انتخاب هستید. حتی اینجا که عدد هست باز هم تصمیم سخته.
وقتی تصمیمگیری سخت میشه، در واقع دیگه بحث سر اعداد نیست، بلکه سر چیزهاییه که نمیشه زیادی به اعداد مدلشون کرد. دارم در مورد ارزشها صحبت میکنم. سلامتی یک صبحونه ساده یا مزهی بهشتی یه کیک شکلاتی خوشمزه؟
دو سه سال پیش چند ماهی رو پای تحقیق و یاد گرفتن در مورد تصمیمهای سخت گذاشتم. چندتا کتاب و مقاله خوندم و چندتایی هم ویدئو و مستند دیدم. هر جایی انتخابها داره سخت میشه، احتمالا پای ارزشهای شماست که در میون هستش(نه همیشه. مثلا آینده اندیشی هم میتونه سخت کنه انتخاب رو). انتخابها ممکنه از دید ناظر بیرونی خیلی بدیهی باشه. مثلا دوستتون بگه خب معلومه دیوونه فکر کردن نداره که! برو سر اون کاری که پول بیشتری بهت میدن. ولی شما توی اون کفهی ترازو ارزش یادگیری و شان اجتماعی رو گذاشتین که از بد روزگار نمیشه زیاد با عدد سنجیدش.
اینجور موقعیتها زمان خیلی خوبی برای شناختن خودمون و اطرافیانمون هستش. ممکنه یک انتخاب خیلی ساده مثل صبحونه باشه ولی وقتی به سختی میافتیم توی انتخابش در واقع داره پایبندی به ارزشهامون محک میخوره و میتونیم خودمون رو بشناسیم. این روزها باز هم درگیر انتخابهایی هستم که این کفههای ترازوی غیرقابل اندازه گیری مقابل هم قرار گرفتن.
اینجا لینک یه سخنرانی تد رو براتون میذارم که پروفسور چانگ از دانشگاه آکسفورد در مورد تصمیمهای سخت و نحوهی برخورد با اونها صحبتهای خوبی رو میکنه. چیز خفنی نیست ولی برای شروع خوبه.
لینک
مَهدی آخی
ماها هر روز کلی تصمیم میگیریم. بعضیها ساده هستن اما بعضیهاشون خیلی سختن.
اگه تا اسم تصمیم سخت رو میشنوید به ازدواج و تحصیل و... فکر میکنید باید بگم اشتباه میکنید. انتخاب یک صبحونه یا حتی جای پارک هم میتونه چالش زیادی داشته باشه. فرض کنید میخواید صبحونه بخورید کدوم رو انتخاب میکنید: «یک نان جو و یک لیوان شیر» یا «یک کیک شکلاتی».
هر روز که میخواید از بیرون غذا بگیرید درگیر این انتخاب هستید. یه پیتزا یا مرغ سوخاری سفارش بدم یا یه سالاد؟ دوغ بخورم یا نوشابه؟ با دوستم برم بیرون یا بشینم این کار رو تموم کنم؟ و... .
آیا اینجا عدد یا رقمی دخیل هست زیاد؟ احتمالا نه. اگر هم باشه اونقدر پر رنگ نیست. پس چیه که اینقدر انتخاب بین حتی دوغ و نوشابه رو سخت میکنه؟
فرض کنید میخواید یه ماشین بخرید یا میخواین شغلتون رو عوض کنید. یه موقعیت شغلی واضحا داره بهتون پول بیشتری رو پیشنهاد میده و یه موقعیت شغلی دیگه داره بهتون همکارهای گردن کلفتی رو پیشنهاد میده. اونقدرها ساده نیست بین اینها انتخاب کردن. گاهی اگه اون موقعیت شغلی با حقوق بیشتر حتی اگه پیشنهادش رو دو برابر کنه هم بازم نمیتونید بگید خب این که بدیهیه میرم اینجا حقوق بیشتر میگیرم. ته دلتون باز هم درگیر انتخاب هستید. حتی اینجا که عدد هست باز هم تصمیم سخته.
وقتی تصمیمگیری سخت میشه، در واقع دیگه بحث سر اعداد نیست، بلکه سر چیزهاییه که نمیشه زیادی به اعداد مدلشون کرد. دارم در مورد ارزشها صحبت میکنم. سلامتی یک صبحونه ساده یا مزهی بهشتی یه کیک شکلاتی خوشمزه؟
دو سه سال پیش چند ماهی رو پای تحقیق و یاد گرفتن در مورد تصمیمهای سخت گذاشتم. چندتا کتاب و مقاله خوندم و چندتایی هم ویدئو و مستند دیدم. هر جایی انتخابها داره سخت میشه، احتمالا پای ارزشهای شماست که در میون هستش(نه همیشه. مثلا آینده اندیشی هم میتونه سخت کنه انتخاب رو). انتخابها ممکنه از دید ناظر بیرونی خیلی بدیهی باشه. مثلا دوستتون بگه خب معلومه دیوونه فکر کردن نداره که! برو سر اون کاری که پول بیشتری بهت میدن. ولی شما توی اون کفهی ترازو ارزش یادگیری و شان اجتماعی رو گذاشتین که از بد روزگار نمیشه زیاد با عدد سنجیدش.
اینجور موقعیتها زمان خیلی خوبی برای شناختن خودمون و اطرافیانمون هستش. ممکنه یک انتخاب خیلی ساده مثل صبحونه باشه ولی وقتی به سختی میافتیم توی انتخابش در واقع داره پایبندی به ارزشهامون محک میخوره و میتونیم خودمون رو بشناسیم. این روزها باز هم درگیر انتخابهایی هستم که این کفههای ترازوی غیرقابل اندازه گیری مقابل هم قرار گرفتن.
اینجا لینک یه سخنرانی تد رو براتون میذارم که پروفسور چانگ از دانشگاه آکسفورد در مورد تصمیمهای سخت و نحوهی برخورد با اونها صحبتهای خوبی رو میکنه. چیز خفنی نیست ولی برای شروع خوبه.
لینک
مَهدی آخی
Ted
How to make hard choices
Here's a talk that could literally change your life. Which career should I pursue? Should I break up -- or get married?! Where should I live? Big decisions like these can be agonizingly difficult. But that's because we think about them the wrong way, says…
👍1