بیش از ۵ ماه شده که دارم روی ریپوی دیزاین پترن ها کار می کنم. توی آپدیت جدید چندتا دیزاین پترن جدید اضافه شد. ممنون که با استار دادن بهش باعث میشین که ادامه بدم.
نکاتی که تو این ریپو هست:
- توضیح به همراه پیاده سازی و دیاگرام
- پیاده سازی بَد پرکتیس
- تست نویسی برای همه پترن ها
- مثال هایی که در دنیای واقعی پیش میاد (اکثرا برای خودم پیش اومده و قبلا مشابهش رو پیاده سازی کردم)
- و داکیومنت کامل برای نحوه اجرا و توسعه
https://github.com/vahidvdn/realworld-design-patterns
@DevTwitter | <Vahid/>
نکاتی که تو این ریپو هست:
- توضیح به همراه پیاده سازی و دیاگرام
- پیاده سازی بَد پرکتیس
- تست نویسی برای همه پترن ها
- مثال هایی که در دنیای واقعی پیش میاد (اکثرا برای خودم پیش اومده و قبلا مشابهش رو پیاده سازی کردم)
- و داکیومنت کامل برای نحوه اجرا و توسعه
https://github.com/vahidvdn/realworld-design-patterns
@DevTwitter | <Vahid/>
👍27🔥7
یه متن بلندبالا برای یادگیری گیت و دستوراتش
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
👍30❤5
مدلهای Llama، واقعاً بهترین مدلهای اپن سورس هستن و برای ساخت محصول خیلی مناسبن. آخرین ورژن این مدل، Llama 3.2 هست و 4 مدل مختلف داره:
مدل 1B و 3B برای دستگاههای Edge
مدل 11B و 90B که مالتیمدل هستن
دوره زیر در مورد این مدلها رو از دست ندید.
https://www.deeplearning.ai/short-courses/introducing-multimodal-llama-3-2/
@DevTwitter | <Reza Jafari/>
مدل 1B و 3B برای دستگاههای Edge
مدل 11B و 90B که مالتیمدل هستن
دوره زیر در مورد این مدلها رو از دست ندید.
https://www.deeplearning.ai/short-courses/introducing-multimodal-llama-3-2/
@DevTwitter | <Reza Jafari/>
👍19🤣2
اون زمان چون همه سایتها http بودن میتونستن همچین صفحهای رو نمایش بدن، یه جوری مثل این بود که انگار شما نامه بزنی به دوستت، ولی شرکت پست نامه رو تحویل نده و خودش نامتو جواب بده.
این به لطف https عوض شد، دیگه نتونستن از این کارا بکنن.
@DevTwitter | <Soroush Ahmadi/>
این به لطف https عوض شد، دیگه نتونستن از این کارا بکنن.
@DevTwitter | <Soroush Ahmadi/>
🤣179👎13👍7🔥3
به نظرم بعد از یادگیری یک زبان، مهم ترین فاکتوری که میتونه شما رو از برنامه نویس مبتدی به لول بعدی ببره، رعایت کردن best practice های اون زبانه.
سایت زیر که البته ورژن پی دی اف هم داره، تو فصل اول این بست پرکتیس ها رو توضیح داده. خیلی خوشم اومد واقعا!
https://github.com/rust-unofficial/patterns
@DevTwitter | <Soroush Sardashti/>
سایت زیر که البته ورژن پی دی اف هم داره، تو فصل اول این بست پرکتیس ها رو توضیح داده. خیلی خوشم اومد واقعا!
https://github.com/rust-unofficial/patterns
@DevTwitter | <Soroush Sardashti/>
👍29❤6🤣2
#بدرد
یه سری سایتا آتیش زدن به مالشون
پس تو هم تا میتونی بمالشون (ازشون تشکر کن)
ارائه دهنده های هاست رایگان (نه صرفا سی پنل و دایرکت ادمین):
- Netlify
- Firebase
- Github
- InfinityFree
- Wix
- 000WebHost
- Google Cloud Hosting
- AwardSpace
- versal
- Freehostia
- FreeHosting
- Searge
- Render
- Glitch
- Fleek
- Begin
- InfinityFree
- ByetHost
- HyperPHP
- FreeWebHostingArea
@DevTwitter
یه سری سایتا آتیش زدن به مالشون
پس تو هم تا میتونی بمالشون (ازشون تشکر کن)
ارائه دهنده های هاست رایگان (نه صرفا سی پنل و دایرکت ادمین):
- Netlify
- Firebase
- Github
- InfinityFree
- Wix
- 000WebHost
- Google Cloud Hosting
- AwardSpace
- versal
- Freehostia
- FreeHosting
- Searge
- Render
- Glitch
- Fleek
- Begin
- InfinityFree
- ByetHost
- HyperPHP
- FreeWebHostingArea
@DevTwitter
👍53👎26❤6🤣3
دوره رایگان پایتون با این تفاوت که این دوره در دو بخش توسط کمپانی سیسکو لانچ و منتشر شده
Python Essentials 1
https://netacad.com/courses/python-essentials-1?courseLang=en-US
Python Essentials 2
https://netacad.com/courses/python-essentials-2?courseLang=en-US
@DevTwitter | <Amir/>
Python Essentials 1
https://netacad.com/courses/python-essentials-1?courseLang=en-US
Python Essentials 2
https://netacad.com/courses/python-essentials-2?courseLang=en-US
@DevTwitter | <Amir/>
👍23👎3
بتونم امروز تو وقت خالیم بخش اول این پروژه شخصی رو تموم کنم. هدف اینه که فایل .torrent بگیره و دانلودش کنه. بعد magnet link رو هم بهش اضافه میکنم. یوزر دیتابیس رو با diesel هندل میکنم و در نهایت با tauri یه اپ دسکتاپ برای دانلود تورنت باید بشه ازش در آورد.
https://github.com/Soroushsrd/Torrs
@DevTwitter | <Soroush Sardashti/>
https://github.com/Soroushsrd/Torrs
@DevTwitter | <Soroush Sardashti/>
🔥19👍7🤣3❤1
بچه ها من با react و express یدونه برنامه تبدیل عکس به PDF نوشتم برای فان، کلا UI و پرفورمنسش باحال شده ، خودکار هم بعد 30 ثانیه لینک دانلود expire میشه و فایل ها پاک میشن ، اگه دوست داشتید توی github بهش استار بدید و خودتونم استفاده کنید ،چیز کاربردیه
https://github.com/Mehranlip/XImage-to-PDF
@DevTwitter | <Mehran/>
https://github.com/Mehranlip/XImage-to-PDF
@DevTwitter | <Mehran/>
👍47🔥12👎8
خیلی وسوسه انگیزه ولی چرا نباید از فیلدهای جیسون در پایگاههای داده رابطهای مانند PostgreSQL و MySQL برای دادههای تراکنشی استفاده کرد؟
به دلایل زیر:
١) کاهش کارایی جستجو و عملکرد:
جستجو و فیلتر کردن دادهها در یک فیلد JSON به طور کلی کندتر از جستجو در جداول ساختاریافته است. برای دادههای تراکنشی که نیاز به جستجوهای سریع و مکرر دارند، کار با فیلدهای JSON میتواند منجر به کاهش کارایی شود. این به دلیل عدم امکان استفاده کامل از ایندکسهای کارآمد درون فیلدهای JSON است.
۲) فرم ها:
پایگاه دادههای رابطهای بر اساس طراحی ساختاریافته جداول با کلیدهای اصلی و خارجی استوار هستند تا بتوان روابط بین دادهها را بهینه مدیریت کرد. استفاده از فیلدهای JSON میتواند به ایجاد دادههای غیر نرمال (Denormalized) منجر شود، که این امر مدیریت و بهروزرسانی دادهها را پیچیدهتر میکند و میتواند منجر به ناسازگاری دادهها شود.
۳) مشکل در صحت دادهها (Data Integrity):
در جداول ساختاریافته، میتوان محدودیتهایی مانند نوع داده و روابط بین جداول را تعریف کرد که صحت دادهها را تضمین کند. در JSON، این نوع کنترلها به طور ذاتی وجود ندارد و دادهها به صورت آزاد وارد میشوند، که میتواند منجر به ورود دادههای نادرست یا ناسازگار شود.
۴) گزارش گیری:
بسیاری از ابزارهای گزارشگیری و تحلیلی به دادههای ساختاریافته نیاز دارند. دادههای ذخیره شده به صورت JSON نیاز به تجزیه و تبدیل به قالبهای ساختاریافته دارند، که این کار اضافهای است و ممکن است بر سرعت و کارایی تحلیل دادهها تأثیر منفی بگذارد.
۵) افزایش پیچیدگی مدیریت تراکنشها:
مدیریت تراکنشها و قفلگذاری دادهها (locking) برای فیلدهای JSON در برخی موارد پیچیدهتر میشود. همچنین اگر بخواهید چندین مقدار درون یک فیلد JSON را همزمان بهروزرسانی کنید، ممکن است کنترل نسخهگذاری و سازگاری دادهها دشوارتر شود.
۶) مشکل در ایندکسگذاری کارآمد:
اگرچه PostgreSQL و MySQL قابلیت ایندکسگذاری محدود روی فیلدهای JSON را فراهم میکنند، اما این ایندکسها در مقایسه با ایندکسهای سنتی روی جداول ساختاریافته به اندازه کافی کارآمد نیستند و ممکن است در حجمهای بزرگ داده باعث کاهش عملکرد شوند.
چکار باید کرد؟
۱- استفاده ترکیبی از فیلدهای رابطهای و فیلد JSON
۲- ایجاد جداول مرتبط برای دادههای غیرساختاریافته با این شرط که حجم جیسون شما محدوده
۳- ایندکس فیلد JSON (فقط در صورت استفاده)
۴ - طرحی برای تبدیل و مهاجرت تدریجی
۵ - استفاده از NoSQL در کنار پایگاه داده رابطهای
چکار نباید کرد؟
۱- ذخیره کل دادههای مهم در فیلد JSON
۲- عدم استفاده از ایندکسگذاری برای فیلد JSON
۳- استفاده از JSON به جای نرمالسازی دادهها
۴- نادیده گرفتن نیازهای گزارشگیری و تحلیلی
۵- استفاده از JSON برای دادههایی که اغلب تغییر میکنند
۶- عدم در نظر گرفتن تراکنشها و قفلگذاری مناسب
۷- ذخیرهسازی دادههای حجیم به صورت JSON
۸- عدم طراحی برای مهاجرت به ساختارهای بهتر
۹- عدم استفاده از ابزارها و توابع مناسب برای کار با JSON
خلاصه:
با توجه به این نکات، برای دادههای تراکنشی که نیاز به عملکرد سریع، جستجوهای مکرر، و یکپارچگی داده دارند، بهتر است از جداول ساختاریافته با طرحهای نرمال استفاده شود و JSON را تنها در مواردی به کار برد که نیاز به انعطافپذیری زیاد در ساختار دادهها دارید، مانند ذخیرهسازی دادههای غیرساختاریافته یا لاگهای پیچیده.
درصورت نیاز اجتناب ناپذیر مطمئن باشید که با برنامه این کار رو انجام میدهید در غیر اینصورت خبر بدی دارم براتون، به زودی مشکل پرفرمنس جدی خواهید داشت و کسب و کارتون با ریسک جدی روبرو خواهد شد. اگر هزینه برای شما مطرح نیست از گزینه هایی مثل Cassandra همینطور Google Bigtable به راحتی رد نشید.
@DevTwitter | <Mohammad Javidan Darugar/>
به دلایل زیر:
١) کاهش کارایی جستجو و عملکرد:
جستجو و فیلتر کردن دادهها در یک فیلد JSON به طور کلی کندتر از جستجو در جداول ساختاریافته است. برای دادههای تراکنشی که نیاز به جستجوهای سریع و مکرر دارند، کار با فیلدهای JSON میتواند منجر به کاهش کارایی شود. این به دلیل عدم امکان استفاده کامل از ایندکسهای کارآمد درون فیلدهای JSON است.
۲) فرم ها:
پایگاه دادههای رابطهای بر اساس طراحی ساختاریافته جداول با کلیدهای اصلی و خارجی استوار هستند تا بتوان روابط بین دادهها را بهینه مدیریت کرد. استفاده از فیلدهای JSON میتواند به ایجاد دادههای غیر نرمال (Denormalized) منجر شود، که این امر مدیریت و بهروزرسانی دادهها را پیچیدهتر میکند و میتواند منجر به ناسازگاری دادهها شود.
۳) مشکل در صحت دادهها (Data Integrity):
در جداول ساختاریافته، میتوان محدودیتهایی مانند نوع داده و روابط بین جداول را تعریف کرد که صحت دادهها را تضمین کند. در JSON، این نوع کنترلها به طور ذاتی وجود ندارد و دادهها به صورت آزاد وارد میشوند، که میتواند منجر به ورود دادههای نادرست یا ناسازگار شود.
۴) گزارش گیری:
بسیاری از ابزارهای گزارشگیری و تحلیلی به دادههای ساختاریافته نیاز دارند. دادههای ذخیره شده به صورت JSON نیاز به تجزیه و تبدیل به قالبهای ساختاریافته دارند، که این کار اضافهای است و ممکن است بر سرعت و کارایی تحلیل دادهها تأثیر منفی بگذارد.
۵) افزایش پیچیدگی مدیریت تراکنشها:
مدیریت تراکنشها و قفلگذاری دادهها (locking) برای فیلدهای JSON در برخی موارد پیچیدهتر میشود. همچنین اگر بخواهید چندین مقدار درون یک فیلد JSON را همزمان بهروزرسانی کنید، ممکن است کنترل نسخهگذاری و سازگاری دادهها دشوارتر شود.
۶) مشکل در ایندکسگذاری کارآمد:
اگرچه PostgreSQL و MySQL قابلیت ایندکسگذاری محدود روی فیلدهای JSON را فراهم میکنند، اما این ایندکسها در مقایسه با ایندکسهای سنتی روی جداول ساختاریافته به اندازه کافی کارآمد نیستند و ممکن است در حجمهای بزرگ داده باعث کاهش عملکرد شوند.
چکار باید کرد؟
۱- استفاده ترکیبی از فیلدهای رابطهای و فیلد JSON
۲- ایجاد جداول مرتبط برای دادههای غیرساختاریافته با این شرط که حجم جیسون شما محدوده
۳- ایندکس فیلد JSON (فقط در صورت استفاده)
۴ - طرحی برای تبدیل و مهاجرت تدریجی
۵ - استفاده از NoSQL در کنار پایگاه داده رابطهای
چکار نباید کرد؟
۱- ذخیره کل دادههای مهم در فیلد JSON
۲- عدم استفاده از ایندکسگذاری برای فیلد JSON
۳- استفاده از JSON به جای نرمالسازی دادهها
۴- نادیده گرفتن نیازهای گزارشگیری و تحلیلی
۵- استفاده از JSON برای دادههایی که اغلب تغییر میکنند
۶- عدم در نظر گرفتن تراکنشها و قفلگذاری مناسب
۷- ذخیرهسازی دادههای حجیم به صورت JSON
۸- عدم طراحی برای مهاجرت به ساختارهای بهتر
۹- عدم استفاده از ابزارها و توابع مناسب برای کار با JSON
خلاصه:
با توجه به این نکات، برای دادههای تراکنشی که نیاز به عملکرد سریع، جستجوهای مکرر، و یکپارچگی داده دارند، بهتر است از جداول ساختاریافته با طرحهای نرمال استفاده شود و JSON را تنها در مواردی به کار برد که نیاز به انعطافپذیری زیاد در ساختار دادهها دارید، مانند ذخیرهسازی دادههای غیرساختاریافته یا لاگهای پیچیده.
درصورت نیاز اجتناب ناپذیر مطمئن باشید که با برنامه این کار رو انجام میدهید در غیر اینصورت خبر بدی دارم براتون، به زودی مشکل پرفرمنس جدی خواهید داشت و کسب و کارتون با ریسک جدی روبرو خواهد شد. اگر هزینه برای شما مطرح نیست از گزینه هایی مثل Cassandra همینطور Google Bigtable به راحتی رد نشید.
@DevTwitter | <Mohammad Javidan Darugar/>
👍35👎11
450 تا سیستم دیزاین برای ML و LLM
یکی از منابع خوب برای ارتقای کارمون اینه که ببینیم حرفه ای های این حوزه چطوری کار میکنن، کد میزنن و اصلا فکر میکنن.. مهم ترین بخش همین فکر کردنه..
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Sam92/>
یکی از منابع خوب برای ارتقای کارمون اینه که ببینیم حرفه ای های این حوزه چطوری کار میکنن، کد میزنن و اصلا فکر میکنن.. مهم ترین بخش همین فکر کردنه..
https://www.evidentlyai.com/ml-system-design
@DevTwitter | <Sam92/>
❤18👍9👎1
دیشب که ما خواب بودیم، OpenAI به صورت خیلی سوسکی، فریمورکاش رو برای Mutli-Agentic systems رو معرفی کرد.
نکته جالب اینکه به نظرم توی نگاه اول یه چیزی بین LangGraph و ell هست.
گفتن که پروژه در مرحله experimental هست.
https://github.com/openai/swarm
@DevTwitter | <Von Datawarehausen/>
نکته جالب اینکه به نظرم توی نگاه اول یه چیزی بین LangGraph و ell هست.
گفتن که پروژه در مرحله experimental هست.
https://github.com/openai/swarm
@DevTwitter | <Von Datawarehausen/>
👍13🤣11👎2
حاصل یک هفته مریضی شد این چهارتا پروژه که هرچهارتاش رو پابلیک کردم الان و میتونین ببینین و بخونین و حتی تکملیش کنین و توی رزومه خودتون داشته باشینش
اینجا توضیحات کامل و لینک هاش رو گذاشتم که بتونین راحت تر دسترسی داشته باشین(هفته یک پوشه ۲)
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
اینجا توضیحات کامل و لینک هاش رو گذاشتم که بتونین راحت تر دسترسی داشته باشین(هفته یک پوشه ۲)
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
👍47🤣11❤9👎8
قراره توی نسخههای بعد مرورگر کروم امکان استفاده از سوکت TCP و UDP اضافه بشه
wicg.github.io/direct-sockets/
@DevTwitter | <Ali Shirvani/>
wicg.github.io/direct-sockets/
@DevTwitter | <Ali Shirvani/>
👍39👎4
تجربه کارایی بینظیر با 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/>
همه ما به عنوان توسعهدهنده دنبال راهکارهایی هستیم که برنامههامون سریعتر، بهینهتر و مقیاسپذیرتر باشن. خبر خوب اینه که 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/>
👍30🤣9👎5🔥5
همیشه دنبال یه فایل منیجر سبک و خوشگل و راحت واسه لاراول بودم و پکیج هایی مثل Unisharp lfm هم سنگین بودن و هم dependency ها و css, js های زیادی داشتن.
اینگونه بود که دست به کار شدم و یه پکیج فایل منیجر مینیمال جمع و جور خوشگل واسه لاراول با Vue3 نوشتم
بسیار سبکه و کاملا بر اساس SOLID هست و کاملا Ajax. فعلا در حد پیمایش، آپلود، تغییر نام، جابجایی آیتم ها، دانلود و ساخت دایرکتوری.
میتونید توی ادیتور ها هم استفادش کنید. مثل CKEditor
https://github.com/keyvanlotfi/laravel-filemanager
@DevTwitter | <Keyvan Lotfi Kamran/>
اینگونه بود که دست به کار شدم و یه پکیج فایل منیجر مینیمال جمع و جور خوشگل واسه لاراول با Vue3 نوشتم
بسیار سبکه و کاملا بر اساس SOLID هست و کاملا Ajax. فعلا در حد پیمایش، آپلود، تغییر نام، جابجایی آیتم ها، دانلود و ساخت دایرکتوری.
میتونید توی ادیتور ها هم استفادش کنید. مثل CKEditor
https://github.com/keyvanlotfi/laravel-filemanager
@DevTwitter | <Keyvan Lotfi Kamran/>
👍30🔥6🤣6👎4
دوره Large Language Model Agents که در دانشگاه برکلی داره برگزار میشه رو میتونید به صورت رایگان شرکت کنید.
تو این دوره شما ابتدا با LLM ها آشنا میشین و بعد یاد میگیرید چطور agent بسازید و در آخر با فرصتها، تهدیدها و محدودیت agentها آشنا خواهید شد.
https://llmagents-learning.org/f24
@DevTwitter | <Reza Jafari/>
تو این دوره شما ابتدا با LLM ها آشنا میشین و بعد یاد میگیرید چطور agent بسازید و در آخر با فرصتها، تهدیدها و محدودیت agentها آشنا خواهید شد.
https://llmagents-learning.org/f24
@DevTwitter | <Reza Jafari/>
👍20👎4❤3🔥3
آیا میدانستید PeachPie
کد PHP را کامپایل میکنه روی .NET runtime اجرا میکنه
چه شود
peachpie.io
https://github.com/peachpiecompiler/peachpie
چرا یکی باید بخواد بین .net و php پل بزنه ؟
@DevTwitter | <MehrdadLinux />
کد PHP را کامپایل میکنه روی .NET runtime اجرا میکنه
چه شود
peachpie.io
https://github.com/peachpiecompiler/peachpie
چرا یکی باید بخواد بین .net و php پل بزنه ؟
@DevTwitter | <MehrdadLinux />
🤣46🔥5👍2
چگونه در Digikala از کرشهای ناشی از lazy load در وب جلوگیری کردیم و تجربه کاربری را نجات دادیم!
کیفیت افتضاح اینترنت و قطع شدن لحظهای نتورک باعث میشه lazy load کردن اسکریپتهای یک وبسایت باعث کرش اپلیکیشن و تجربهی بد کاربری بشه. با توجه به شرایط بد اینترنت میخواستم این مطلب رو با شما هم به اشتراک به بذارم به امید اینکه با توجه به این نکتهی مهم، تجربهی کاربری بهتری در آینده داشته باشیم.
طبق آمار sentry یکی از پروداکتهامون، این مسئله روزانه بیش از ۳۰۰۰ کرش ایجاد میکرد.
قبل از اینکه دنبال راه حل بگردیم، وبسایتهای مطرحی که میشناختم رو بررسی کردم و متاسفانه همگی این مشکل رو داشتن.
(Aparat, Snapp! Express, Snapp!, Divar, Neshan, Alibaba)
لینک gist زیر راه حل ما برای پروداکتی بر پایه react و vite بود که امکان retry کردن رو به متد React.lazy اضافه میکنه و امروز هم با موفقیت تستش روی پروداکشن پاس شد و تقریبا تمامی ارورهای مرتبط با lazy load ماژولها مثل مورد زیر رفع شد.
TypeError: Failed to fetch dynamically imported module
لینک Gist
https://gist.github.com/mberneti/28769391cf27f7580a55dedab342c63a
خوشحال میشم پیشنهادی برای بهبودش دارید روی لینک gist متد retryDynamicImport اضافه کنید.
@DevTwitter | <Mohammadreza Berneti/>
کیفیت افتضاح اینترنت و قطع شدن لحظهای نتورک باعث میشه lazy load کردن اسکریپتهای یک وبسایت باعث کرش اپلیکیشن و تجربهی بد کاربری بشه. با توجه به شرایط بد اینترنت میخواستم این مطلب رو با شما هم به اشتراک به بذارم به امید اینکه با توجه به این نکتهی مهم، تجربهی کاربری بهتری در آینده داشته باشیم.
طبق آمار sentry یکی از پروداکتهامون، این مسئله روزانه بیش از ۳۰۰۰ کرش ایجاد میکرد.
قبل از اینکه دنبال راه حل بگردیم، وبسایتهای مطرحی که میشناختم رو بررسی کردم و متاسفانه همگی این مشکل رو داشتن.
(Aparat, Snapp! Express, Snapp!, Divar, Neshan, Alibaba)
لینک gist زیر راه حل ما برای پروداکتی بر پایه react و vite بود که امکان retry کردن رو به متد React.lazy اضافه میکنه و امروز هم با موفقیت تستش روی پروداکشن پاس شد و تقریبا تمامی ارورهای مرتبط با lazy load ماژولها مثل مورد زیر رفع شد.
TypeError: Failed to fetch dynamically imported module
لینک Gist
https://gist.github.com/mberneti/28769391cf27f7580a55dedab342c63a
خوشحال میشم پیشنهادی برای بهبودش دارید روی لینک gist متد retryDynamicImport اضافه کنید.
@DevTwitter | <Mohammadreza Berneti/>
1👍76👎4🔥3
کسانی که تازه دست به کد میشن یا در بعضی از دوستان میدلول, همیشه استرس این رو دارن که آیا کدی که می نویسند، تمیز هست و بر اساس اصولی که باید باشه هست؟!
میخوام یک سری موارد بگم که مفید باشه براتون و استرس کد کثیف نداشته باشید.
شما وقتی یک تکه کدی رو میخواهید بنویسید بر اساس دانش و تجربه تون بنویسید تو فکر این نباشید کدتون کثیف یا نه، سپس کدی که نوشتید رو بررسی کنید با اصول SOLID,KISS,DRY و... هم خونی داره و وارد دنیای ریفکتورینگ Refactoring شوید و در هر مرحله کد هاتون رو تمیز تر از قبل بنویسید.
هدفتون برای بار اول حل مسئله هست سپس اون راه حل تون رو هر دفعه بهبود ببخشید این باعث میشه درک بهتری از کد نویسی نیز داشته باشید.
این تکنیک باعث میشه شما تو آینده به صورت دیفالت کد های تمیز تری بنویسید.
@DevTwitter | <Mohammadreza Abdorrahmani/>
میخوام یک سری موارد بگم که مفید باشه براتون و استرس کد کثیف نداشته باشید.
شما وقتی یک تکه کدی رو میخواهید بنویسید بر اساس دانش و تجربه تون بنویسید تو فکر این نباشید کدتون کثیف یا نه، سپس کدی که نوشتید رو بررسی کنید با اصول SOLID,KISS,DRY و... هم خونی داره و وارد دنیای ریفکتورینگ Refactoring شوید و در هر مرحله کد هاتون رو تمیز تر از قبل بنویسید.
هدفتون برای بار اول حل مسئله هست سپس اون راه حل تون رو هر دفعه بهبود ببخشید این باعث میشه درک بهتری از کد نویسی نیز داشته باشید.
این تکنیک باعث میشه شما تو آینده به صورت دیفالت کد های تمیز تری بنویسید.
@DevTwitter | <Mohammadreza Abdorrahmani/>
👍101🔥11❤2👎1