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

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Syntax | سینتکس (Daimon)
🔍 بررسی استراتژی جداسازی عملیات چک کردن وجود و بازیابی اطلاعات از دیتابیس

دو رویکرد اصلی در این زمینه در نظر داریم:

1️⃣ جداسازی مسئولیت‌ها:
در این روش، دو متد جداگانه داریم:
- check_user_exists(user_id)
- get_user_by_id(user_id)

مزایا:
رعایت Single responsibility(SRP)
خوانایی و وضوح بیشتر کد
امکان استفاده مجدد از هر متد به صورت مستقل

معایب:
افزایش تعداد کوئری‌های ارسالی به دیتابیس

2️⃣ ترکیب عملیات در یک متد:
در این روش، یک متد واحد داریم:
- get_user(user_id)

مزایا:
کاهش تعداد کوئری‌های ارسالی به دیتابیس
بهبود کارایی

معایب:
احتمال نقض اصل Single responsibility
کاهش خوانایی و وضوح کد

🤔 حالا سوال این است: کدام رویکرد بهتر است؟

پاسخ: بستگی دارد!

باید فاکتورهایی مانند نیازهای پروژه، الگوهای استفاده، و اولویت‌های تیم را در نظر گرفت. اما یک راه حل میانه هم وجود دارد:

3️⃣ رویکرد میانه:
در این روش، یک متد اصلی داریم که می‌تواند مبنای سایر عملیات باشد:

class UserService:
@staticmethod
def get_user(user_id: int) -> Optional[User]:
try:
return User.objects.get(id=user_id)
except User.DoesNotExist:
return None

@staticmethod
def check_user_exists(user_id: int) -> bool:
return UserService.get_user(user_id) is not None

@staticmethod
def get_user_or_raise(user_id: int) -> User:
user = UserService.get_user(user_id)
if user is None:
raise ObjectDoesNotExist(f"User with id {user_id} does not exist")
return user


این رویکرد مزایای هر دو روش را ترکیب می‌کند:
تنها یک کوئری به دیتابیس زده می‌شود
اصل مسئولیت تکی تا حد زیادی رعایت می‌شود
انعطاف‌پذیری بیشتری در استفاده داریم
کد خوانا و قابل نگهداری است

شما کدام رویکرد را ترجیح می‌دهید؟

@Syntax_fa
👍1
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 وردپرس کنترل پلاگین WP Engine را به‌دست گرفت.

افزونه‌ی بسیار محبوب ACF متعلق به WP-Engine اکنون با نام جدید و تحت‌نظر وردپرس دردسترس کاربران قرار گرفته است و هم اکنون افزونه‌ی ACF با نام Secure Custom Fields با نسخه جدید منتشر شده است.

#خبر
#وردپرس

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 قالب پاندا روی پارچ بلاگ نصب شده است.

https://blog.parchlinux.com/

#وردپرس

@TheRaymondDev
Forwarded from  (Amir Hossein "Amiria" Maher)
jstor.org

Explore the world’s knowledge, cultures, and ideas:

#learn #culture #science #research
@amiria703_channel
Forwarded from Linuxor ?
یه روش سریع برای اشتراک گذاری یک فولدر یا دایرکتوری با ماشین VirtualBox


کافیه مثل عکس وارد Shared Folders بشید و یه فولدر اضافه کنید و داخل ماشین مجازی با کامند زیر مانتش کنید:

sudo mount -t vboxsf MyFilesOnHost ./MyFilesOnVirtualMachine

که MyFilesOnHost فولدر داخل هاسته و MyFilesOnVirtualMachine یه فولدر خالی داخل ماشین مجازی.

الان هرچی داخل MyFilesOnHost بریزین از MyFilesOnVirtualMachine قابل استفادس و بر عکس.

🐧 @Linuxor
Forwarded from  (Amir Hossein "Amiria" Maher)
@litera999

اگه از این دست کانال‌ها می‌شناسید، لطفاً زیر این فرسته، معرّفی کنید. ممنون.

#موقت
پست جدیدمون سبکش با بقیه پستا متفاوته، چند فریمشو گذاشتم اگر دوست دوست داشتید ببینید حتما 🔥🤩

ایشالا از این به بعد با همین روال میریم جلو 🙌😁

🌐 مشاهده پست

https://www.instagram.com/reel/DBEThRdMMbX

#️⃣ #NEWPost #uiux

🚀 @coolycode
همیشه دنبال یه فایل منیجر سبک و خوشگل و راحت واسه لاراول بودم و پکیج هایی مثل Unisharp lfm هم سنگین بودن و هم dependency ها و css, js های زیادی داشتن.

اینگونه بود که دست به کار شدم و یه پکیج فایل منیجر مینیمال جمع و جور خوشگل واسه لاراول با Vue3 نوشتم


بسیار سبکه و کاملا بر اساس SOLID هست و کاملا Ajax. فعلا در حد پیمایش، آپلود، تغییر نام، جابجایی آیتم ها، دانلود و ساخت دایرکتوری.
میتونید توی ادیتور ها هم استفادش کنید. مثل CKEditor

https://github.com/keyvanlotfi/laravel-filemanager

@DevTwitter | <Keyvan Lotfi Kamran/>
اگه با زبان کلوژر (clojure) و vscode کار میکنید از این repl داخل ادیتور غافل نشید.

https://calva.io/

کلا هم اگه دنبال یادگیری lisp هستید ولی یه چیزی عملی میخواین بین dialect های مختلفی که داره من racket و clojure رو دوست داشتم.

توسط دوست خوبم دانیال #ارسالی
Forwarded from Quera
مسابقه کشتی‌بان
🎒مهارت سنجی مسیرهای شغلی برنامه‌‌نویسی در #فناپـکمپس

⭐️ در دو مسیر برنامه‌نویسی:
- #C و NET.
- Java

📅جمعه ۲۷ مهر ماه ساعت ۱۶

🟡 نفرات برتر این مسابقات، وارد دوره آموزشی این مسیرها میشن که توی پاییز ۱۴۰۳ برگزار میشه.

🔵 ثبت‌نام فقط در یکی از مسیرها امکان پذیره

🟢 ثبت‌نام رایگان:
https://quera.org/r/g16tq

〰️〰️〰️〰️
#Quera #Quera_Contest
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
پنجمین پرتاب آزمایشی استارشیپ، بزرگ‌ترین و سنگین‌ترین موشک ساخته شده توسط انسان، با موفقیت انجام شد و شرکت اسپیس‌اکس در عملیاتی تونست این موشک رو سالم به زمین برگردونه! برعکس پرتاب قبل که روی آب فرود اومد.
اسپیس‌اکس امروز، یک‌شنبه در ساعت ۱۵:۵۵ به وقت ایران، این موشک رو برای پنجمین بار از مرکز استاربیس در جنوب تگزاس پرتاب کرد و دقایقی بعد با سالم فرود آوردنش رو سکوی پرتاب، تونست به پیشرفت چشم‌گیری در این آزمایش برسه.

x.
hadi @geekalerts
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
Ubuntu24.10.pdf
1.7 MB
🔸جزئیات کامل از ویژگی های جدید اوبونتو نسخه 24.10

🔸در ادامه این پست:
https://t.iss.one/linuxtnt/3947


🔸جزئیات کاملی از ویژگی های نسخه جدید اوبونتو در قالب فایل pdf قرار دادم. امیدوارم مفید باشد.
نویسنده حسین سیلانی
دوره Large Language Model Agents که در دانشگاه برکلی داره برگزار میشه رو میتونید به صورت رایگان شرکت کنید‌.

تو این دوره شما ابتدا با LLM ها آشنا میشین و بعد یاد میگیرید چطور agent بسازید و در آخر با فرصت‌ها، تهدیدها و محدودیت agentها آشنا خواهید شد.

https://llmagents-learning.org/f24

@DevTwitter | <Reza Jafari/>
Forwarded from  (Amir Hossein "Amiria" Maher)
آیا می‌دونستید؟

@ParchLinux
Forwarded from  (Amir Hossein "Amiria" Maher)
Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
Programming patterns aren't 'Good practice' or 'The right way to do things', they exist to help make things easier for you. They're meant as good solutions to common problems. But once they stop being easy, they stop being useful.