Panic Dev
رسیدیم به ۳۰۰ تا دوست 🥰 چند روزیه که میخوام این پست رو ارسال کنم و از حضورتون در کنارمون تشکر کنم اما فرصتش پیش نمیومد... نوشتن متن رسمی و اداری یکم سخته و خب منم اهلش نیستم؛ از حضور همهتون توی این کانال سپاسگزارم و قطعا قدر دان انتخابتون هستم 🙃 امیدوارم…
Please open Telegram to view this post
VIEW IN TELEGRAM
یکی از مواردی که من همیشه بهش برمیخوردم و هربار میگفتم کاش تابع سریعتر و کوتاه تری براش وجود داشته باشه مدیریت رفتار foreignKey های لاراوله...
ما اگه بخوایم اون کلید خارجی زمان آپدیت و حذف در هر حالت cascade باشه، restricted باشه یا حتی noAction باشه؛ باید از 2 تابع برای این کار پشت سر هم استفاده میکردیم:
برای مثال
اما با این PR ما میتونیم به راحتی از تابع
استفاده کنیم.
توابع اضافه شده:
جزئیات بیشتر از طریق "این لینک" قابل مشاهدهست.
👀 از کامنت های همین پست میتونید نحوه استفاده از توابع رو ببینید
البته این PR هنوز مرج نشده و به محض اینکه تایید و مرج بشه همین پست رو اپدیت میکنم🙃
🔥 @PanicDev
ما اگه بخوایم اون کلید خارجی زمان آپدیت و حذف در هر حالت cascade باشه، restricted باشه یا حتی noAction باشه؛ باید از 2 تابع برای این کار پشت سر هم استفاده میکردیم:
برای مثال
->cascadeOnUpdate()->cascadeOnDelete()اما با این PR ما میتونیم به راحتی از تابع
->cascadeAlways()استفاده کنیم.
توابع اضافه شده:
cascadeAlwaysrestrictAlwaysnoActionAlwayscascadeAndNullrestrictAndNullnoActionAndNullجزئیات بیشتر از طریق "این لینک" قابل مشاهدهست.
البته این PR هنوز مرج نشده و به محض اینکه تایید و مرج بشه همین پست رو اپدیت میکنم
Please open Telegram to view this post
VIEW IN TELEGRAM
یه Giveaway کتاب هم داشته باشیم 🔥
کتاب آیین مقابله با بیشعوری: راهنمای شناخت بیشعوران و قربانیان آنها
از لینک زیر هدیه قابل دریافته؛ امیدوارم مفید باشه برای هرکسی که دریافتش میکنه ♥️
🎁 دریافت هدیه
✨ @PanicDev
کتاب آیین مقابله با بیشعوری: راهنمای شناخت بیشعوران و قربانیان آنها
از لینک زیر هدیه قابل دریافته؛ امیدوارم مفید باشه برای هرکسی که دریافتش میکنه ♥️
Please open Telegram to view this post
VIEW IN TELEGRAM
کتابراه
معرفی و دانلود کتاب صوتی آیین مقابله با بیشعوری: راهنمای شناخت بیشعوران و قربانیان آنها | خاویر کرمنت | کتابراه
کتاب صوتی آیین مقابله با بیشعوری: راهنمای شناخت بیشعوران و قربانیان آنها اثر خاویر کرمنت، با موضوع روانشناسی و با محوریت طنز شما را با راههای شناخت و مقابله با بیشعورها آشنا میکند. درباره کتاب صوتی بیشعوری: بارها در...
سلام سلام :))
از اونجایی که فرصت نمیکنم زیاد به کانال سر بزنم و تایم ازادم به شدت محدوده و فرصتِ مناسبی برای بقیه کار ها و تولید محتوا نیست تصمیم گرفتم زمان آزادی که دارم رو هرچند که کم، Giveaway کنم 🎉
روز های پنجشنبه و جمعه از ساعت 21 تا 23 میتونیم صحبت کنیم 😁❤️
ترجیح بر اینه که درمورد چالش های پروژه های تحت وب صحبت کنیم.
مواردی که اشتیاق زیادی به صحبت درموردشون هست
1. Laravel
2. Modular Structure
3. Clean Code
4. Livewire 3
5. TailwindCSS
6. AlpineJS
و بقیه موارد مرتبط؛ اما خب اگه یک وقت شکست عشقی خورده بودید خدایی نکرده هم میتونیم بحرفیم شاید کمک کرد (البته من که تراپیست نیستم ولی میتونم دوست یا شنونده خوبی باشم)🙃
پ.ن: بدیهیه که من ممکنه اون تاپیکِ مشخص مدنظر شمارو بلد نباشم و یا تجربه کار تجاری در اون خصوص رو نداشته باشم پس اگه تاپیک مدنظرتون خیلی تخصصیه قبلش باهام یه دابل چک کنید که وقتتون نسوزه! ♥️
خلاصه که از لینک زیر میتونید میت رو سِت کنید و دور هم یاد بگیریم🥂
https://calendly.com/mentionhex/giveaway-mentorship
ارادت ✌️✨
از اونجایی که فرصت نمیکنم زیاد به کانال سر بزنم و تایم ازادم به شدت محدوده و فرصتِ مناسبی برای بقیه کار ها و تولید محتوا نیست تصمیم گرفتم زمان آزادی که دارم رو هرچند که کم، Giveaway کنم 🎉
روز های پنجشنبه و جمعه از ساعت 21 تا 23 میتونیم صحبت کنیم 😁❤️
ترجیح بر اینه که درمورد چالش های پروژه های تحت وب صحبت کنیم.
مواردی که اشتیاق زیادی به صحبت درموردشون هست
1. Laravel
2. Modular Structure
3. Clean Code
4. Livewire 3
5. TailwindCSS
6. AlpineJS
و بقیه موارد مرتبط؛ اما خب اگه یک وقت شکست عشقی خورده بودید خدایی نکرده هم میتونیم بحرفیم شاید کمک کرد (البته من که تراپیست نیستم ولی میتونم دوست یا شنونده خوبی باشم)
پ.ن: بدیهیه که من ممکنه اون تاپیکِ مشخص مدنظر شمارو بلد نباشم و یا تجربه کار تجاری در اون خصوص رو نداشته باشم پس اگه تاپیک مدنظرتون خیلی تخصصیه قبلش باهام یه دابل چک کنید که وقتتون نسوزه! ♥️
خلاصه که از لینک زیر میتونید میت رو سِت کنید و دور هم یاد بگیریم
https://calendly.com/mentionhex/giveaway-mentorship
ارادت ✌️✨
Please open Telegram to view this post
VIEW IN TELEGRAM
Calendly
Giveaway Mentorship - Armin Hooshmand
Armin Hooshmand: Web Developer and Enthusiastic MentorWith about six years in the programming field, I am Armin Hooshmand, a dedicated and passionate senior web developer. My journey in the tech world is fueled by a profound love for teaching and solving…
Filament
Grapes JS by DotSwan - Filament
Grapesjs field type for visual HTML editing. Drag-and-drop functionality to seamlessly design.
Please open Telegram to view this post
VIEW IN TELEGRAM
اگه اهل کتاب خوندن هستید و دوس دارید نسخه فیزیکی کتاب هارو با کیفیتِ نزدیک به اصلی داشته باشید میتونید از مجموعه آیتی هلو ثبت سفارش کنید.
خیلی سریع به دستتون میرسه و قیمتش هم خیلی مناسبه و معمولا با قیمتِ بازار اختلاف چند صد هزار تومانی داره و ارزون تر میفته :)
کیفیت کارشون هم واقعا بالاست - ما از سفارشایی که دادیم واقعا رضایت داشتیم.
🥂 t.me/itbook_pub
خیلی سریع به دستتون میرسه و قیمتش هم خیلی مناسبه و معمولا با قیمتِ بازار اختلاف چند صد هزار تومانی داره و ارزون تر میفته :)
کیفیت کارشون هم واقعا بالاست - ما از سفارشایی که دادیم واقعا رضایت داشتیم.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
کتابفروشی آی تی هلو
اینجا کتابفروشی آی تی هلو هستش. جایی که کتاب های زبان اصلی رو به کیفیت کتاب اورجینال به دستتون میرسونیم ^ ^ فقط کافیه اسم کتاب رو برامون بفرستی
برای ثبت سفارش:
@MRVJ475
📸 نمونه های چاپ و رضایت:
@ITBook_Images
ثبت سفارش از طریق سایت:
ITHooloo.com
برای ثبت سفارش:
@MRVJ475
📸 نمونه های چاپ و رضایت:
@ITBook_Images
ثبت سفارش از طریق سایت:
ITHooloo.com
شاید براتون پیش اومده باشه که برای مدیریت صف هاتون از Horizon استفاده کنید.
مشکلی که وجود داره اینه که Horizon بعد از استارت شدن متوجه تغییراتِ کدهاتون توی حالت توسعه نمیشه و باید بعد از هر تغییر یکبار termination pulse رو براش ارسال کنید و مجددا startش کنید.
با استفاده از این پکیج میتونید خیلی راحت بجای اجرا کردن دستور
horizon از دستور horizon:watch توی حالت لوکال/توسعه استفاده کنید و به کمک Chokidar بعد از هر تغییر به طور خودکار horizon رو از تغییرات مطلع کنید.اگه با مستندات مشکل داشتید، از این مقاله میتونید کمک بگیرید.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - spatie/laravel-horizon-watcher: Automatically restart Horizon when local PHP files change
Automatically restart Horizon when local PHP files change - spatie/laravel-horizon-watcher
توی رویداد Laravel MeetUP امشب هم طبق معمولِ همیشه 2 تا تاپیکِ جالب مورد بحث قرار میگیره.
آقای Joel Clermont موسس No Compromises برامون درمورد "Life beyond dd" صحبت میکنن.
آقای Caneco که فول استک دولوپر Medicare کشور پرتغال هستند موضوع بحثشون "CAN YOU SEE MY SCREEN" هست
این میتآپ ساعت 17 به وقت UTC و یا ساعت 20:30 به وقت تهران برگزار میشه.
میتونید از وبسایت میتآپ ایمیلتون رو برای اطلاع رسانی برگزاری این میتآپ ست کنید.
🌻 @PanicDev
آقای Joel Clermont موسس No Compromises برامون درمورد "Life beyond dd" صحبت میکنن.
آقای Caneco که فول استک دولوپر Medicare کشور پرتغال هستند موضوع بحثشون "CAN YOU SEE MY SCREEN" هست
این میتآپ ساعت 17 به وقت UTC و یا ساعت 20:30 به وقت تهران برگزار میشه.
میتونید از وبسایت میتآپ ایمیلتون رو برای اطلاع رسانی برگزاری این میتآپ ست کنید.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Hessam
#نکته_روز
ممکن تا حالا براتون پیش امده باشه که دیتای خیلی زیادی داخل دیتابیس دارید
مثلا ۱ میلیون دیتا
و بر حسب یک کوئری یه نتیجه ۲۰۰ هزار تایی براتون به دست امده که باید برای هرکدوم از این رکورد ها یک عملیاتی رو انجام بدید .(مثلا برای هرکدوم یک نوتیفیکیشن ارسال کنید )
- نکته ای که وجود داره اگه بیاید همه رو واکشی کنید و بریزید داخل رم تا chunk کنید بعد بندازید داخل for بعد بدید به جاب ها احتمالا به مموری لیک میخورید .
- یک راهی که وجود داره این هست که دیتا و کوئری رو به صورت paginate بگیرید و به صورت limit - offset دیتا رو تیکه تیکه بگیرید .
— این راه حل هم شدنی هست . ولی یه دوتا مشکل داره .
۱- اولین مشکل این میتونه باشه که هر بار شما یه hit به دیتابیس میزنید و کوئری رو مجدد میگیرید با limit-offset جدید . که این خودش میتونه فشار بیاره به منابع سرور و sql شما .
۲- دومین مشکل میتونه این باشه که اگه نرخ insert دیتابیش شما زیاد باشه ممکنه که به داپلیکیت بخورید .. به این صورت که وقتی دارید روی limit -offset اول کار میکنید . یه سری row مجدد insert میشه که دوباره موقع گرفتن limit-offset دوم از row های قبلی انتخاب بشه و شما مجدد عملیات و انجام بدید و دوبار نوتیفیکشن ارسال کنید .
———————-
حالا راه حل چی میتونه باشه .
یکی از راه حل ها میتونه استفاده از FETCH Cursor مربوط به sql باشه .
چطوری عمل میکنه ؟
به این صورت که شما میاید یک بار کوئری رو به یه orderby مشخص میگیرید بعد دیتارو به صورت تیکه تیکه از mysql یا بقیه sql ها درخواست میکنید .
اینجوری یبار کوئری گرفته نگه داشته و تیکه تیکه به شما میده بدون اینکه هربار بهش hit بزنید و فشار بیاد به منابع .
از طرفی چون هرموقع گرفتن دیتای جدید باید آخرین آیدی رو بهش بدید تا دیتای بعدی رو بگیرید ،اینجوری به Duplicate هم نمیخورید .
————-
حالا این چطوری توی لاراول انجام میشه ؟
از لاراول ۸ به بعد اگر اشتباه نکنم یه فیچری امد به اسم cursor pagination که دقیقا میاد همین کارو برای شما انجام میده .
این نوع pagination برای infinite scroll ها و دیتاست های بزرگ خیلی به کار میاد
مثل مثالی که بالاتر زدم
اگر شما هم تجربه ای دارید خوشحال میشم بشنوم .
———
اگه دوست دارید بیشتر بدونید این لینک ها شاید کمک کنه .
https://www.educba.com/fetch-in-sql
https://medium.com/@maryam-bit/offset-vs-cursor-based-pagination-choosing-the-best-approach-2e93702a118b
https://laravel.com/docs/10.x/pagination#cursor-pagination
https://laravel-news.com/cursor-pagination
https://www.laravel-enlightn.com/blog/laravel-offset-vs-cursor-pagination
https://www.youtube.com/watch?v=zwDIN04lIpc&ab_channel=PlanetScale
ممکن تا حالا براتون پیش امده باشه که دیتای خیلی زیادی داخل دیتابیس دارید
مثلا ۱ میلیون دیتا
و بر حسب یک کوئری یه نتیجه ۲۰۰ هزار تایی براتون به دست امده که باید برای هرکدوم از این رکورد ها یک عملیاتی رو انجام بدید .(مثلا برای هرکدوم یک نوتیفیکیشن ارسال کنید )
- نکته ای که وجود داره اگه بیاید همه رو واکشی کنید و بریزید داخل رم تا chunk کنید بعد بندازید داخل for بعد بدید به جاب ها احتمالا به مموری لیک میخورید .
- یک راهی که وجود داره این هست که دیتا و کوئری رو به صورت paginate بگیرید و به صورت limit - offset دیتا رو تیکه تیکه بگیرید .
— این راه حل هم شدنی هست . ولی یه دوتا مشکل داره .
۱- اولین مشکل این میتونه باشه که هر بار شما یه hit به دیتابیس میزنید و کوئری رو مجدد میگیرید با limit-offset جدید . که این خودش میتونه فشار بیاره به منابع سرور و sql شما .
۲- دومین مشکل میتونه این باشه که اگه نرخ insert دیتابیش شما زیاد باشه ممکنه که به داپلیکیت بخورید .. به این صورت که وقتی دارید روی limit -offset اول کار میکنید . یه سری row مجدد insert میشه که دوباره موقع گرفتن limit-offset دوم از row های قبلی انتخاب بشه و شما مجدد عملیات و انجام بدید و دوبار نوتیفیکشن ارسال کنید .
———————-
حالا راه حل چی میتونه باشه .
یکی از راه حل ها میتونه استفاده از FETCH Cursor مربوط به sql باشه .
چطوری عمل میکنه ؟
به این صورت که شما میاید یک بار کوئری رو به یه orderby مشخص میگیرید بعد دیتارو به صورت تیکه تیکه از mysql یا بقیه sql ها درخواست میکنید .
اینجوری یبار کوئری گرفته نگه داشته و تیکه تیکه به شما میده بدون اینکه هربار بهش hit بزنید و فشار بیاد به منابع .
از طرفی چون هرموقع گرفتن دیتای جدید باید آخرین آیدی رو بهش بدید تا دیتای بعدی رو بگیرید ،اینجوری به Duplicate هم نمیخورید .
————-
حالا این چطوری توی لاراول انجام میشه ؟
از لاراول ۸ به بعد اگر اشتباه نکنم یه فیچری امد به اسم cursor pagination که دقیقا میاد همین کارو برای شما انجام میده .
این نوع pagination برای infinite scroll ها و دیتاست های بزرگ خیلی به کار میاد
مثل مثالی که بالاتر زدم
اگر شما هم تجربه ای دارید خوشحال میشم بشنوم .
———
اگه دوست دارید بیشتر بدونید این لینک ها شاید کمک کنه .
https://www.educba.com/fetch-in-sql
https://medium.com/@maryam-bit/offset-vs-cursor-based-pagination-choosing-the-best-approach-2e93702a118b
https://laravel.com/docs/10.x/pagination#cursor-pagination
https://laravel-news.com/cursor-pagination
https://www.laravel-enlightn.com/blog/laravel-offset-vs-cursor-pagination
https://www.youtube.com/watch?v=zwDIN04lIpc&ab_channel=PlanetScale
EDUCBA
FETCH in SQL | Learn the Examples of Fetch Command in SQL
Guide to FETCH in SQL. Here we discuss the examples to understand the FETCH command along with the syntax and parameters.
Episode 01
@PanicCast
🪻 این داستان؛ "بحثهای سمی"
🍿 درمورد بحثهای رایج و تعصبی که توی کامیونیتی های برنامهنویسی اتفاق میفته صحبت کردیم و ازشون کمی انتقاد میکنیم
🦦 این پادکست شامل لحظات خشن میباشد؛ پس اگه از اون دسته افرادی هستید که بحثهای تعصبی راه میندازید؛ این پادکست براتون دلخراش خواهد بود
🔥 @PanicDev
🍿 درمورد بحثهای رایج و تعصبی که توی کامیونیتی های برنامهنویسی اتفاق میفته صحبت کردیم و ازشون کمی انتقاد میکنیم
🦦 این پادکست شامل لحظات خشن میباشد؛ پس اگه از اون دسته افرادی هستید که بحثهای تعصبی راه میندازید؛ این پادکست براتون دلخراش خواهد بود
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Laravel
Installation - Laravel 12.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.
Please open Telegram to view this post
VIEW IN TELEGRAM
Laravel Reverb
Laravel Reverb - Real-time WebSocket
Laravel Reverb brings real-time WebSocket communication to Laravel applications.
Please open Telegram to view this post
VIEW IN TELEGRAM
Panic Dev
https://sabzlearn.ir/course/laravel-reverb/
Media is too big
VIEW IN TELEGRAM
https://sabzlearn.ir/course/laravel-reverb/
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
اپدیت دوره Reverb - امشب در دسترستون قرار میگیره 🔥✨
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
دوتا دوره جدید توی جشنواره نوروزی سبزلرن درحال پیش فروش هست که میتونید تا پایان این جشنواره هر دو دوره رو با ۶۰٪ تخفیف تهیه کنید 😇🎁
دوره اول : آموزش Docker از صفر مطلق!
لینک مشاهده دوره
🟡 این دوره به صورت قطعی از خرداد ماه شروع میشه
دوره دوم : آموزش جامع webpack
لینک مشاهده دوره
🟡 این دوره به صورت قطعی از خرداد ماه شروع میشه
دوره اول : آموزش Docker از صفر مطلق!
لینک مشاهده دوره
🟡 این دوره به صورت قطعی از خرداد ماه شروع میشه
دوره دوم : آموزش جامع webpack
لینک مشاهده دوره
🟡 این دوره به صورت قطعی از خرداد ماه شروع میشه