Pishro App
بچه ها تو #لاراول ۱۱.۲۳ متد findOrFail() به Eloquent Collectionاضافه شده ‼️ با این متدِ جدید که اضافه شده میتونید به راحتی روی کالکشن هایی که از دیتابیس دارید برای جستجوی مدل خاصی عملیات انجام بدین نمونه های زیر رو ببینید: $users = User::get(); // [User(id:…
کار این متد چیه؟
$orders = Order::all();
بصورت زیر:
$orders = Order::toBase()->get();
اما تفاوتش با حالت اول چیه؟؟؟؟
با استفاده از این متد، دادهها از پایگاهداده بازیابی میشن، اما لاراول کلاس مدل را برای اونها آماده نمیکند.
این کار باعث کاهش حافظه مصرفی و افزایش سرعت میشه!
#laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
Pishro App
این رو هم یکی از دوستان زحمت کشیده و benchmark گرفته
و خوب توی تصویر میبینید که تو حالت سوم از لحاظ زمانی خیلی بهتر بوده
و البته اگر ستون هایی رو هم که میخوایم تو خروجی داشته باشیم به متد get بدیم باز هم پرفورمنس استفاده از این روش بخاطر عدم استفاده از مدل سبکتر و سریعتر میشه که خوب توی حجم بالاتر بهتر خودش رو نشون میده
متشکر @PhpWebDeveloper جان
👾 @pishroapp
$m1 = memory_benchmark(function () {
$cities = \App\Models\City::all();
});
$m2 = memory_benchmark(function () {
$cities = \App\Models\City::get();
});
$m3 = memory_benchmark(function () {
$cities = \App\Models\City::toBase()->get();
});
dd($m1, $m2, $m3);و خوب توی تصویر میبینید که تو حالت سوم از لحاظ زمانی خیلی بهتر بوده
و البته اگر ستون هایی رو هم که میخوایم تو خروجی داشته باشیم به متد get بدیم باز هم پرفورمنس استفاده از این روش بخاطر عدم استفاده از مدل سبکتر و سریعتر میشه که خوب توی حجم بالاتر بهتر خودش رو نشون میده
متشکر @PhpWebDeveloper جان
Please open Telegram to view this post
VIEW IN TELEGRAM
Pishro App
بچه ها #مسابقه از این قراره میزکارِ من ⚡️ شما تصاویر میزکارتون رو میفرستید و بعد بین تصاویر ارسالی، بهترین میزکار(از لحاظ جذابیت، شیک بودن، تمیزبودن) به نظرسنجی گذاشته میشه و توسط کاربران بهترین میزکار انتخاب میشه من باید یه ربات برای ارسال تصاویر آماده…
بچه تصاویر میزکارتون رو به این آی دی ارسال کنید لطفا
شرایط تصویر ارسالی از میز کار
💜 تصویر باید با کیفیت باشه و اسم خودتون رو همراه تصویر بفرستید لطفا
💝 لطفا هنگام عکس از میزکارتون توی یه کاغذ اسم پیشرو اپ رو بنویسید و کنار میزکارتون بزارین که توی تصویر مشخص باشه
منتظر تصاویر قشنگتون هستیم
🔥 👉 @imanborumand
#مسابقه
شرایط تصویر ارسالی از میز کار
منتظر تصاویر قشنگتون هستیم
#مسابقه
Please open Telegram to view this post
VIEW IN TELEGRAM
معماری میکروسرویس اگر به درستی پیاده سازی نشود بدون شک مشکلات بسیار زیادی میتواند ایجاد کند. از همین رو برای این معماری الگوهای طراحی متفاوتی برای بخش های مختلف آن موجود می باشد.
در این مطلب ما قصد داریم با الگوی طراحی ساگا(Sage) در معماری #میکروسرویس آشنا شویم.
#microservices #saga
Please open Telegram to view this post
VIEW IN TELEGRAM
pishroapp.net
با الگوی طراحی ساگا (Saga Design Pattern) در معماری میکروسرویس آشنا شویم
معماری میکروسرویس اگر به درستی پیاده سازی نشود بدون شک مشکلات بسیار زیادی میتواند ایجاد کند. از همین رو برای این معماری الگوهای طراحی متفاوتی برای بخش های مختلف آن موجود می باشد. در این مطلب ما قصد داریم با الگوی طراحی ساگا(Sage) در معماری میکروسرویس آشنا…
سلام بچه ببخشید چند روزی نبودم
سعی میکنم جبران کنم😁
✨ یکی از مهمترین اصول هنگام برنامه نویسی نامگذاری درست برای فایل ها، توابع، متدها، کلاس ها و... می باشد
💡 من چند Naming Conventions توی #لاراول رو در ادامه برای شما می نویسم که امیدوارم برای شما مفید باشه
👍 برای نامگذاری مدل سعی کنید همیشه از اسم مفرد اون مدل استفاده کنید:
👍 برای فایل های کانفیگ رو بصورت زیر نامگذاری کنید:
👍 ایونت ها و Listener ها باید با توجه به کاری که میخوان انجام بشن یعنی، رویدادها باید با استفاده از زمان گذشته نامگذاری شوند و Listener ها باید بر اساس عملی که انجام می دهند نامگذاری بشن. برای نمونه:
👍 در آخر برای نامگذاری کلاسهاتون اون ها رو بصورت PascalCase بنویسید. مثلا برای یه پرووایدر بصورت زیر نامگذاری کنید:
⭐️ همیشه سعی کنید از نامگذاری های صحیح استفاده کنید که اگر خودتون چند سال بعد یا یه برنامه نویس جدید خواست روی پروژهی شما کار کنه به راحتی با ساختار آشنا بشه.
#laravel
👾 @pishroapp
سعی میکنم جبران کنم
// Correct
class User extends Model {
// Model methods
}
// Incorrect
class Users extends Model {
// Model methods
}
// Correct
config/app.php
config/database.php
// Incorrect
config/App.php
config/DataBase.php
// Correct
class UserRegistered extends Event
{
// Event methods
}
class SendWelcomeEmail extends Listener
{
// Listener methods
}
// Incorrect
class RegisterUser extends Event
{
// Event methods
}
class WelcomeEmailSender extends Listener
{
// Listener methods
}
// Correct
class AppServiceProvider extends ServiceProvider
{
// Service provider methods
}
// Incorrect
class appserviceprovider extends ServiceProvider
{
// Service provider methods
}
#laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2 2🔥1
✔️ گروه هکری IRLEAKS فعالیت خود را متوقف کرد.
گروه هکری IRLEAKS با اعلام این خبر از طریق کانال تلگرامی خود، از خاتمه دائمی فعالیتهایش خبر داد:
«پایان همیشگی فعالیت گروه IRLeaks!
با توجه به تغییرات جدید در سیاستهای تلگرام مبنی بر همکاری با دولتها برای ارائه اطلاعات کاربران و عدم وجود جایگزین مناسب، تصمیم گرفتیم که به فعالیتهای خود پایان دهیم.
توجه ۱: از این پس هر گونه فعالیتی تحت نام #IRLeaks، قطعاً کلاهبرداری بوده و ارتباطی با ما ندارد.
توجه ۲: اطلاعات مربوط به بیمه، تپسی و حج که قبلاً برای فروش عرضه میشدند، دیگر در دسترس نخواهد بود.»
شایان ذکر است که این گروه در آخرین حمله خود، با هک ۲۰ بانک کشور، موفق به اخذ ۳ میلیون دلار باج از شرکت توسن شدند.
👾 @pishroapp
گروه هکری IRLEAKS با اعلام این خبر از طریق کانال تلگرامی خود، از خاتمه دائمی فعالیتهایش خبر داد:
«پایان همیشگی فعالیت گروه IRLeaks!
با توجه به تغییرات جدید در سیاستهای تلگرام مبنی بر همکاری با دولتها برای ارائه اطلاعات کاربران و عدم وجود جایگزین مناسب، تصمیم گرفتیم که به فعالیتهای خود پایان دهیم.
توجه ۱: از این پس هر گونه فعالیتی تحت نام #IRLeaks، قطعاً کلاهبرداری بوده و ارتباطی با ما ندارد.
توجه ۲: اطلاعات مربوط به بیمه، تپسی و حج که قبلاً برای فروش عرضه میشدند، دیگر در دسترس نخواهد بود.»
شایان ذکر است که این گروه در آخرین حمله خود، با هک ۲۰ بانک کشور، موفق به اخذ ۳ میلیون دلار باج از شرکت توسن شدند.
Please open Telegram to view this post
VIEW IN TELEGRAM
💢 خرید نیروگاه هسته ای توسط مایکروسافت!
مایکروسافت برای تأمین انرژی توسعه و نگهداری هوش مصنوعی خود، توافقی ۲۰ ساله با نیروگاه هستهای Three Mile Island کرد که در سال 1979 میلادی بنا به دلایلی به مشکل برخورده و بصورت قسمی ذوب شده و پس از نشتی انرژی هسته ای تعطیل شده بود.
زینپس با رفع این مشکل تمامی انرژی تولید شده توسط این نیروگاه به سرور های هوش مصنوعی مایکروسافت اختصاص داده میشود.
مورد قابل توجه دیگر این است که، با این مقدار انرژی هستهای میتوان انرژی لازم هشتصد هزار خانه در آمریکا و حدود سه میلیون خانه در ایران را تامین کرد!
👾 @pishraopp
مایکروسافت برای تأمین انرژی توسعه و نگهداری هوش مصنوعی خود، توافقی ۲۰ ساله با نیروگاه هستهای Three Mile Island کرد که در سال 1979 میلادی بنا به دلایلی به مشکل برخورده و بصورت قسمی ذوب شده و پس از نشتی انرژی هسته ای تعطیل شده بود.
زینپس با رفع این مشکل تمامی انرژی تولید شده توسط این نیروگاه به سرور های هوش مصنوعی مایکروسافت اختصاص داده میشود.
مورد قابل توجه دیگر این است که، با این مقدار انرژی هستهای میتوان انرژی لازم هشتصد هزار خانه در آمریکا و حدود سه میلیون خانه در ایران را تامین کرد!
Please open Telegram to view this post
VIEW IN TELEGRAM
بصورت کلی Long Polling یک تکنیک ارتباطی در وب است که به سرور اجازه میدهد تا درخواست کلاینت را باز نگه دارد و تنها زمانی پاسخ دهد که دادهای آماده باشد، در حالی که WebSocket یک پروتکل دوطرفه و پایدار است که ارتباط مداوم و سریعتری بین سرور و کلاینت فراهم میکند.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2
📂| SQL Injection
حمله SQL Injection یا همان تزریق کد SQL نوعی حمله است که در آن فرد یا گروه مهاجم سعی دارند با ارسال کدهای مختلف برای پایگاه داده راهی را برای نفوذ و یا بدست آوردن اطلاعات و یا حتی تخریب اطلاعاتی که نمیدانند چیست و در کجا قرار دارد، انجام دهند. این نوع از حملات یک نوع خطرناک بهشمار میآید و از خانوادهی حملات Code Injection هستند که همان تزریق کد میباشد. عموما URLهایی که کوئریهای مختلفی را درون خود دارند، صفحههای وارد کردن اطلاعات به فرمها و همینطور صفحههای لاگین از مواردی هستند که میتوانند اهداف مناسبی برای اجرای حمله SQL Injection باشد.
اجرای حمله SQL Injection به این صورت است که یک فهرست از دستورات و کوئریهای مختلف برای پایگاه داده تهیه شده و از روزنهای که تشخیص داده شده است و هکرها فکر میکنند که ممکن است کدهایی که از آنجا وارد میشود روی پایگاه داده پردازش شوند به سایت تزریق میشود.
👾 @pishroapp
حمله SQL Injection یا همان تزریق کد SQL نوعی حمله است که در آن فرد یا گروه مهاجم سعی دارند با ارسال کدهای مختلف برای پایگاه داده راهی را برای نفوذ و یا بدست آوردن اطلاعات و یا حتی تخریب اطلاعاتی که نمیدانند چیست و در کجا قرار دارد، انجام دهند. این نوع از حملات یک نوع خطرناک بهشمار میآید و از خانوادهی حملات Code Injection هستند که همان تزریق کد میباشد. عموما URLهایی که کوئریهای مختلفی را درون خود دارند، صفحههای وارد کردن اطلاعات به فرمها و همینطور صفحههای لاگین از مواردی هستند که میتوانند اهداف مناسبی برای اجرای حمله SQL Injection باشد.
اجرای حمله SQL Injection به این صورت است که یک فهرست از دستورات و کوئریهای مختلف برای پایگاه داده تهیه شده و از روزنهای که تشخیص داده شده است و هکرها فکر میکنند که ممکن است کدهایی که از آنجا وارد میشود روی پایگاه داده پردازش شوند به سایت تزریق میشود.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
رندرینگ در Next.js
در دنیای توسعه وب، یکی از دلایل محبوبیت Next.js نحوه مدیریت فرآیندهای رندرینگ است. این
فریمورک انعطافپذیری زیادی در ارائه انواع مختلف رندرینگ برای بهینهسازی عملکرد و تجربه کاربری فراهم میکند. در ادامه به انواع رندرینگ در Next.js میپردازیم:
رندرینگ سمت سرور (SSR) - Server Side Rendering:
در این روش، صفحه وب در سمت سرور رندر شده و به صورت HTML کامل به مرورگر کاربر ارسال میشود. این نوع رندرینگ برای سئو (SEO) و دسترسی سریع به محتوای اولیه بسیار موثر است.
رندرینگ سمت کاربر - کلاینت (CSR) - Client Side Rendering:
در CSR، صفحه ابتدا به صورت یک فایل HTML خالی ارسال میشود و جاوا اسکریپت در مرورگر بارگذاری شده و محتوای پویا را ایجاد میکند. این نوع رندرینگ برای اپلیکیشنهای تکصفحهای (SPA) که تعاملات زیادی دارند، مناسب است.
رندرینگ استاتیک (SSG) - Static Site Generation:
در این روش، صفحات به صورت استاتیک و در زمان ساخت (build time) تولید میشوند و به کاربران ارائه میگردند. این نوع رندرینگ بسیار سریع و مناسب برای محتوای ثابت است.
رندرینگ هیبریدی (ISR) - Incremental Static Regeneration:
ترکیبی از رندرینگ استاتیک و دینامیک است که به شما اجازه میدهد صفحاتی را به صورت استاتیک ایجاد کنید و بعداً بدون نیاز به بازسازی کل سایت، آنها را بهروزرسانی کنید. این روش برای بهبود عملکرد در سایتهای پویا مفید است.
Next.js با پشتیبانی از این انواع مختلف رندرینگ، انعطاف و سرعت بالایی برای ایجاد اپلیکیشنهای وب پیشرفته فراهم میکند. منبع DevTwitter
👾 @pishroapp
در دنیای توسعه وب، یکی از دلایل محبوبیت Next.js نحوه مدیریت فرآیندهای رندرینگ است. این
فریمورک انعطافپذیری زیادی در ارائه انواع مختلف رندرینگ برای بهینهسازی عملکرد و تجربه کاربری فراهم میکند. در ادامه به انواع رندرینگ در Next.js میپردازیم:
رندرینگ سمت سرور (SSR) - Server Side Rendering:
در این روش، صفحه وب در سمت سرور رندر شده و به صورت HTML کامل به مرورگر کاربر ارسال میشود. این نوع رندرینگ برای سئو (SEO) و دسترسی سریع به محتوای اولیه بسیار موثر است.
رندرینگ سمت کاربر - کلاینت (CSR) - Client Side Rendering:
در CSR، صفحه ابتدا به صورت یک فایل HTML خالی ارسال میشود و جاوا اسکریپت در مرورگر بارگذاری شده و محتوای پویا را ایجاد میکند. این نوع رندرینگ برای اپلیکیشنهای تکصفحهای (SPA) که تعاملات زیادی دارند، مناسب است.
رندرینگ استاتیک (SSG) - Static Site Generation:
در این روش، صفحات به صورت استاتیک و در زمان ساخت (build time) تولید میشوند و به کاربران ارائه میگردند. این نوع رندرینگ بسیار سریع و مناسب برای محتوای ثابت است.
رندرینگ هیبریدی (ISR) - Incremental Static Regeneration:
ترکیبی از رندرینگ استاتیک و دینامیک است که به شما اجازه میدهد صفحاتی را به صورت استاتیک ایجاد کنید و بعداً بدون نیاز به بازسازی کل سایت، آنها را بهروزرسانی کنید. این روش برای بهبود عملکرد در سایتهای پویا مفید است.
Next.js با پشتیبانی از این انواع مختلف رندرینگ، انعطاف و سرعت بالایی برای ایجاد اپلیکیشنهای وب پیشرفته فراهم میکند. منبع DevTwitter
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
✔️ مستند HBO: پیتر تاد همان ساتوشی ناکاموتو است
مستند جدید شبکه HBO با عنوان «پول الکتریکی: راز بیت کوین» ادعا میکند که پیتر تاد (Peter Todd)، یکی از توسعهدهندگان اصلی بیت کوین، ممکن است همان ساتوشی ناکاموتو مرموز باشد.
این ادعا در جامعه ارزهای دیجیتال جنجال و تردیدهای زیادی ایجاد کرده است. کارگردان این مستند، کالن هوبک (Cullen Hoback)، شواهدی ارائه داده که شامل تطابق برنامه تحصیلی تاد با الگوهای پستگذاری ناکاموتو و تعاملات خاص در انجمنها است.
با این حال، تاد قاطعانه این ادعاها را رد کرده و آنها را مضحک خوانده است. منتقدان معتقدند شواهد ارائه شده در مستند بر پایه حدس و گمان و فاقد قطعیت است. علیرغم این ادعاها، اکثر جامعه ارزهای دیجیتال همچنان معتقدند که هویت ناکاموتو باید ناشناس باقی بماند، که با خواسته اصلی خالق مرموز بیت کوین همخوانی دارد
👾 @pishroapp
مستند جدید شبکه HBO با عنوان «پول الکتریکی: راز بیت کوین» ادعا میکند که پیتر تاد (Peter Todd)، یکی از توسعهدهندگان اصلی بیت کوین، ممکن است همان ساتوشی ناکاموتو مرموز باشد.
این ادعا در جامعه ارزهای دیجیتال جنجال و تردیدهای زیادی ایجاد کرده است. کارگردان این مستند، کالن هوبک (Cullen Hoback)، شواهدی ارائه داده که شامل تطابق برنامه تحصیلی تاد با الگوهای پستگذاری ناکاموتو و تعاملات خاص در انجمنها است.
با این حال، تاد قاطعانه این ادعاها را رد کرده و آنها را مضحک خوانده است. منتقدان معتقدند شواهد ارائه شده در مستند بر پایه حدس و گمان و فاقد قطعیت است. علیرغم این ادعاها، اکثر جامعه ارزهای دیجیتال همچنان معتقدند که هویت ناکاموتو باید ناشناس باقی بماند، که با خواسته اصلی خالق مرموز بیت کوین همخوانی دارد
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
جالبه!
💻 خوبه بدونید که تو شرکت خودروسازی Volvo دارن Rust رو برای ECU ماشین ها استفاده می کنن
https://tweedegolf.nl/en/blog/137/rust-is-rolling-off-the-volvo-assembly-line
👾 @pishroapp
https://tweedegolf.nl/en/blog/137/rust-is-rolling-off-the-volvo-assembly-line
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
بچه ها توی #لاراول اگر شما یکسری seed دارید که میخواید وقتی مایگریت رو رفرش کردن seed ها هم ران بشن میتونید با دستور زیر همراه Refresh کردن مایگریشن ها این کار رو انجام بدین
این میاد اول #دیتابیس رو تازه سازی میکنه و بعد seed ها رو ران میکنه
#laravel
👾 @pishroapp
php artisan migrate:refresh --seed
این میاد اول #دیتابیس رو تازه سازی میکنه و بعد seed ها رو ران میکنه
#laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
تایم لاین انتشار #php 8.4
نسخه 8.4 زبان برنامه نویسی PHP در نوامبر سال جاری میلادی منتشر میشه
@pishroapp
نسخه 8.4 زبان برنامه نویسی PHP در نوامبر سال جاری میلادی منتشر میشه
@pishroapp
❤4
Anonymous Quiz
30%
از OAuth 2.0 برای ورود به سیستم و OpenID برای دسترسی به اطلاعات کاربر استفاده میشه
15%
از OpenID برای تأیید هویتو OAuth 2.0 برای اجازه دسترسی به اطلاعات کاربر توسطبرنامهها استفاده میشه
10%
از OAuth 2.0 تنها در فیسبوک و OpenID تنها در گوگل استفاده میشه
45%
از OAuth 2.0 و OpenID هر دو برای اجازه دسترسی به اطلاعات کاربر توسط برنامههای مختلف استفاده میشه
1. GitHub Copilot: دستیار کدنویسی که به شما در نوشتن کدهای بهتر و سریعتر کمک میکند.
2. TensorFlow و PyTorch: برای توسعه مدلهای یادگیری عمیق.
3. Kite: یک افزونهای که پیشنهادات هوشمندانه کد را ارائه میدهد.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
بچهها، تا حالا براتون پیش اومده که توی پروژههاتون یه کامیت یا تغییر خاص از یه شاخه دیگه رو بخواید ولی نمیخواید کل شاخه رو ادغام کنید و همه تغییراتش رو بیارید؟
مثلاً یه باگ رو توی شاخه اصلی فیکس کردید و میخواید فقط همون فیکس رو توی یه شاخه دیگه که دارین روش کار میکنید اعمال کنید، بدون اینکه کل تغییرات شاخه اصلی به شاخه شما منتقل بشه؟
⭐️ اینجاست که یه قابلیت خیلی جذاب به اسم چری پیک (Cherry-Pick) تو گیت به کمکتون میاد. این قابلیت به شما اجازه میده که فقط یک کامیت خاص رو از شاخه دیگه بردارید و روی شاخه فعلیتون اعمال کنید، بدون اینکه نیازی به ادغام کل شاخه باشه.
👩🚀 چجوری ازش استفاده کنیم؟
خیلی ساده، با این دستور:
🚀 چرا این قابلیت عالیه؟
این قابلیت فوقالعاده به شما کمک میکنه که تغییرات مورد نظرتون، مثل یه فیکس باگ یا یه ویژگی کوچک رو بدون آوردن همه تغییرات شاخه منبع، به شاخه خودتون اضافه کنید. این یعنی شما میتونید فقط همون چیزی که لازم دارید رو به پروژهتون بیارید و نیازی نیست بقیه تغییرات شاخه رو که ممکنه ناسازگار باشن، قبول کنید.
🧬 یه نکته حرفهای:
چری پیک کردن خیلی به درد این میخوره که بخواید تغییرات کوچیک یا فیکسهایی رو به نسخههای قدیمیتر پروژهتون برگردونید، بدون اینکه همه تغییرات جدید رو به اون نسخهها منتقل کنید. این کار بهتون انعطاف زیادی میده توی مدیریت پروژه و رفع مشکلات.
#git
👾 @pishroapp
مثلاً یه باگ رو توی شاخه اصلی فیکس کردید و میخواید فقط همون فیکس رو توی یه شاخه دیگه که دارین روش کار میکنید اعمال کنید، بدون اینکه کل تغییرات شاخه اصلی به شاخه شما منتقل بشه؟
خیلی ساده، با این دستور:
git cherry-pick <commit-hash>
این قابلیت فوقالعاده به شما کمک میکنه که تغییرات مورد نظرتون، مثل یه فیکس باگ یا یه ویژگی کوچک رو بدون آوردن همه تغییرات شاخه منبع، به شاخه خودتون اضافه کنید. این یعنی شما میتونید فقط همون چیزی که لازم دارید رو به پروژهتون بیارید و نیازی نیست بقیه تغییرات شاخه رو که ممکنه ناسازگار باشن، قبول کنید.
چری پیک کردن خیلی به درد این میخوره که بخواید تغییرات کوچیک یا فیکسهایی رو به نسخههای قدیمیتر پروژهتون برگردونید، بدون اینکه همه تغییرات جدید رو به اون نسخهها منتقل کنید. این کار بهتون انعطاف زیادی میده توی مدیریت پروژه و رفع مشکلات.
#git
Please open Telegram to view this post
VIEW IN TELEGRAM