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
تجربه کارایی بینظیر با Laravel Octane و Swoole در Docker!

همه ما به عنوان توسعه‌دهنده دنبال راهکارهایی هستیم که برنامه‌هامون سریعتر، بهینه‌تر و مقیاس‌پذیرتر باشن. خبر خوب اینه که Laravel Octane همراه با Swoole دقیقاً همین کار رو انجام میده!
این ترکیب نه تنها سرعت برنامه‌تون رو چند برابر میکنه، بلکه کارایی و قابلیت‌های آن رو هم به طور قابل توجهی افزایش میده.

لاراول اکتان (Laravel Octane) یه پکیج برای بهینه‌سازی عملکرد لاراوله که با استفاده از سرورهای پیشرفته مثل Swoole و RoadRunner، برنامه‌تون رو در حافظه نگه میداره. یعنی هر بار که یه درخواست جدید میاد، لازم نیست کل برنامه از اول بارگذاری بشه. نتیجه؟ سرعت بالاتر و پاسخگویی بهتر به کاربران!


اما Swoole چطور کار میکنه؟
حالا بیایم بیشتر در مورد Swoole صحبت کنیم، چون موضوع اصلی اینجاست.
افزونه Swoole یه Extension برای PHP هست که با زبان C پیاده‌سازی شده و امکانات فوق‌العاده‌ای ارائه میده. بیاین چندتا از قابلیت‌هاش رو مرور کنیم:
1. پردازش همزمان (Concurrency): Swoole امکان اجرای چندین درخواست رو همزمان و بدون افت سرعت فراهم میکنه. این یعنی برنامه‌تون میتونه به تعداد بیشتری از کاربران خدمت بده بدون اینکه دچار لگ یا کندی بشه.
2. استفاده از Coroutine ها : با استفاده از Coroutineها، Swoole میتونه عملیاتهای ورودی/خروجی (I/O) رو به‌صورت غیرهمزمان و بدون مسدودسازی اجرا کنه. این ویژگی باعث میشه برنامه‌تون به شدت سریعتر باشه.
3. وب‌سوکت‌ها و HTTP/2: Swoole از پروتکلهای پیشرفته مثل وبسوکت و HTTP/2 پشتیبانی میکنه، که یعنی میتونید برنامه‌های Real-time با کارایی بالا بسازید.
4. بهینه‌سازی منابع: Swoole مصرف حافظه و CPU رو به شدت کاهش میده و برنامه‌تون رو بهینه‌تر و اقتصادی‌تر میکنه. این یعنی با منابع کمتر، میتونید عملکرد بهتری داشته باشید.


چرا ترکیب Laravel Octane و Swoole عالیه؟
1. سرعت بارگذاری بالا: برنامه‌تون تا ۱۰ برابر سریعتر اجرا میشه.
2. کاهش مصرف منابع: مصرف RAM و CPU به طرز چشمگیری کاهش پیدا میکنه و این یعنی شما میتونید بیشتر با منابع کمتر کار کنید.
3. پشتیبانی از قابلیت‌های پیشرفته: مثل وب‌سوکت‌ها که برای برنامه‌های Real-time فوقالعاده‌ان.
4. پایداری بیشتر: برنامه‌تون در حافظه نگهداری میشه، یعنی نیاز به ریستارت مداوم ندارید.
5. افزایش ظرفیت سرویس‌دهی: میتونید تعداد زیادی از درخواستها رو به‌صورت همزمان مدیریت کنید بدون افت عملکرد.

تجربه شخصی من:
تو چندتا از پروژه‌های اخیرم، از ترکیب Laravel Octane و Swoole همراه با Docker استفاده کردم. کارایی و سرعت به شکل قابل توجهی بهتر شد، زمان پاسخدهی به شدت کاهش پیدا کرد و باعث افزایش Performance برنامه ها شد.

@DevTwitter | <Amir Mohammad Sanjari/>
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