Pishro App
145 subscribers
258 photos
50 videos
5 files
215 links
از دنیای صفر و یک



👨‍💻 @imanborumand_ir


Website: https://pishroapp.net
Download Telegram
سلام بچه ها

اگر #وردپرس کار هستید و دنبال کار هستید
یه موقعیت شعلی برای وردپرس توی تهران، سمت توحید

یکی از دوستان من هست اگه مایل بودین رزومه بفرستید

کار حضوری هست، تمام وقت
و حقوق توافقی

سایتشون هم یه فروشگاه فروش محصولات بهداشتی هست

دوستان حقوق تو رنج ۲۵ تا ۳۰ هست
تعطیلی ۲ روز اخر هفته
ساعت کاری از ۹ تا ۶


میتونید به آی دی زیر پیام بدین
@Shoaib_rastin


#موقعیت_شغلی
👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
Pishro App
بچه ها تو #لاراول ۱۱.۲۳ متد findOrFail() به Eloquent Collectionاضافه شده ‼️ با این متدِ جدید که اضافه شده میتونید به راحتی روی کالکشن هایی که از دیتابیس دارید برای جستجوی مدل خاصی عملیات انجام بدین نمونه های زیر رو ببینید: $users = User::get(); // [User(id:…
⚡️ بچه ها توی Eloquent  #لاراول یه متد داریم بنام  toBase

کار این متد چیه؟

در حالت عادی query زیر رو در نظر بگیرید:
$orders = Order::all();

خوب اینجا لاراول میاد و اشیای کلاس مدل را برای هر رکورد آماده می‌کنه و اگر حجم داده ها بالا باشه این باعث میشه که حافظه بشدت درگیر بشه!

‼️ اما راه حل چیه؟

🛸 اینجا میتونیم از toBase استفاده کنیم!
بصورت زیر:
$orders = Order::toBase()->get();


اما تفاوتش با حالت اول چیه؟؟؟؟

🧠 تو این حالت، متغیر $orders شامل یه کالکشن از نوع Illuminate\Support\Collection هست که اشیای اون از نوع StdClass هستند. و نه کل مدل.

با استفاده از این متد، داده‌ها از پایگاه‌داده بازیابی می‌شن، اما لاراول کلاس مدل را برای اونها آماده نمی‌کند.

این کار باعث کاهش حافظه مصرفی و افزایش سرعت می‌شه!


#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
Pishro App
⚡️ بچه ها توی Eloquent  #لاراول یه متد داریم بنام  toBase کار این متد چیه؟ در حالت عادی query زیر رو در نظر بگیرید: $orders = Order::all(); خوب اینجا لاراول میاد و اشیای کلاس مدل را برای هر رکورد آماده می‌کنه و اگر حجم داده ها بالا باشه این باعث میشه…
این رو هم یکی از دوستان زحمت کشیده و benchmark گرفته

    $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 جان


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Pishro App
بچه ها #مسابقه از این قراره میزکارِ من ⚡️ شما تصاویر میزکارتون رو میفرستید و بعد بین تصاویر ارسالی، بهترین میزکار(از لحاظ جذابیت، شیک بودن، تمیزبودن) به نظرسنجی گذاشته میشه و توسط کاربران بهترین میزکار انتخاب میشه من باید یه ربات برای ارسال تصاویر آماده…
بچه تصاویر میزکارتون رو به این آی دی ارسال کنید لطفا

شرایط تصویر ارسالی از میز کار

💜 تصویر باید با کیفیت باشه و اسم خودتون رو همراه تصویر بفرستید لطفا

💝 لطفا هنگام عکس از میزکارتون توی یه کاغذ اسم پیشرو اپ رو بنویسید و کنار میزکارتون بزارین که توی تصویر مشخص باشه

منتظر تصاویر قشنگتون هستیم

🔥 👉 @imanborumand

#مسابقه
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧠 با الگوی طراحی ساگا (Saga Design Pattern) در معماری میکروسرویس آشنا شویم


معماری میکروسرویس اگر به درستی پیاده سازی نشود بدون شک مشکلات بسیار زیادی میتواند ایجاد کند. از همین رو برای این معماری الگوهای طراحی متفاوتی برای بخش های مختلف آن موجود می باشد.
در این مطلب ما قصد داریم با الگوی طراحی ساگا(Sage) در معماری #میکروسرویس آشنا شویم.

💡 ساگا یک الگوی طراحی هست که می‌تواند هماهنگی بین چندین تغییر در حالت سیستم را بدون نیاز به قفل کردن منابع برای مدت زمان طولانی انجام دهد.

🔘 https://pishroapp.net/article/166


#microservices #saga


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍1
سلام بچه ببخشید چند روزی نبودم

سعی میکنم جبران کنم 😁

یکی از مهمترین اصول هنگام برنامه نویسی نامگذاری درست برای فایل ها، توابع، متدها، کلاس ها و... می باشد

💡 من چند  Naming Conventions توی #لاراول رو در ادامه برای شما می نویسم که امیدوارم برای شما مفید باشه

👍 برای نامگذاری مدل سعی کنید همیشه از اسم مفرد اون مدل استفاده کنید:

// 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

👍 ایونت ها و Listener ها باید با توجه به کاری که میخوان انجام بشن یعنی، رویدادها باید با استفاده از زمان گذشته نامگذاری شوند و Listener ها باید بر اساس عملی که انجام می دهند نامگذاری بشن. برای نمونه:

// 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
}


👍 در آخر برای نامگذاری کلاسهاتون اون ها رو بصورت PascalCase بنویسید. مثلا برای یه پرووایدر بصورت زیر نامگذاری کنید:

// Correct
class AppServiceProvider extends ServiceProvider
{
    // Service provider methods
}

// Incorrect
class appserviceprovider extends ServiceProvider
{
    // Service provider methods
}

⭐️ همیشه سعی کنید از نامگذاری های صحیح استفاده کنید که اگر خودتون چند سال بعد یا یه برنامه نویس جدید خواست روی پروژه‌ی شما کار کنه به راحتی با ساختار آشنا بشه.


#laravel


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥1
همه متد های HTTP در یک نگاه

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
✔️ گروه هکری IRLEAKS فعالیت خود را متوقف کرد.

گروه هکری IRLEAKS با اعلام این خبر از طریق کانال تلگرامی خود، از خاتمه دائمی فعالیت‌هایش خبر داد:

«پایان همیشگی فعالیت گروه IRLeaks!
با توجه به تغییرات جدید در سیاست‌های تلگرام مبنی بر همکاری با دولت‌ها برای ارائه اطلاعات کاربران و عدم وجود جایگزین مناسب، تصمیم گرفتیم که به فعالیت‌های خود پایان دهیم.

توجه ۱: از این پس هر گونه فعالیتی تحت نام #IRLeaks، قطعاً کلاهبرداری بوده و ارتباطی با ما ندارد.

توجه ۲: اطلاعات مربوط به بیمه، تپسی و حج که قبلاً برای فروش عرضه می‌شدند، دیگر در دسترس نخواهد بود.»

شایان ذکر است که این گروه در آخرین حمله خود، با هک ۲۰ بانک کشور، موفق به اخذ ۳ میلیون دلار باج از شرکت توسن شدند.

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
5😁2
💢 خرید نیروگاه هسته ای توسط مایکروسافت!

مایکروسافت برای تأمین انرژی توسعه و نگهداری هوش مصنوعی خود، توافقی ۲۰ ساله با نیروگاه هسته‌ای Three Mile Island کرد که در سال 1979 میلادی بنا به دلایلی به مشکل برخورده و بصورت قسمی ذوب شده و پس از نشتی انرژی هسته ای تعطیل شده بود.
زینپس با رفع این مشکل تمامی انرژی تولید شده توسط این نیروگاه به سرور های هوش مصنوعی مایکروسافت اختصاص داده می‌شود.
مورد قابل توجه دیگر این است که، با این مقدار انرژی هسته‌ای میتوان انرژی لازم هشتصد هزار خانه در آمریکا و حدود سه میلیون خانه در ایران را تامین کرد!



👾 @pishraopp
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
💧 مقایسه HTTP Long Polling با WebSockets

بصورت کلی Long Polling یک تکنیک ارتباطی در وب است که به سرور اجازه می‌دهد تا درخواست کلاینت را باز نگه دارد و تنها زمانی پاسخ دهد که داده‌ای آماده باشد، در حالی که WebSocket یک پروتکل دوطرفه و پایدار است که ارتباط مداوم و سریع‌تری بین سرور و کلاینت فراهم می‌کند.

📌 https://pishroapp.net/article/167


👾 @pishraopp
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2
مقایسه فریمورک های بک‌اند

مقایسه شده توسط CHAT GPT 4

منبع: DevTwitter

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
3
📂| SQL Injection

حمله SQL Injection یا همان تزریق کد SQL نوعی حمله است که در آن فرد یا گروه مهاجم سعی دارند با ارسال کدهای مختلف برای پایگاه داده راهی را برای نفوذ و یا بدست آوردن اطلاعات و یا حتی تخریب اطلاعاتی که نمی‌دانند چیست و در کجا قرار دارد، انجام دهند. این نوع از حملات یک نوع خطرناک به‌شمار می‌آید و از خانواده‌ی حملات Code Injection هستند که همان تزریق کد می‌باشد. عموما URLهایی که کوئری‌های مختلفی را درون خود دارند، صفحه‌های وارد کردن اطلاعات به فرم‌ها و همین‌طور صفحه‌های لاگین از مواردی هستند که می‌توانند اهداف مناسبی برای اجرای حمله SQL Injection باشد.

اجرای حمله SQL Injection به این صورت است که یک فهرست از دستورات و کوئری‌های مختلف برای پایگاه داده تهیه شده و از روزنه‌ای که تشخیص داده شده است و هکرها فکر می‌کنند که ممکن است کدهایی که از آنجا وارد می‌شود روی پایگاه داده پردازش شوند به سایت تزریق می‌شود.

👾 @pishroapp
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
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🔰 گوگل موقعیت مکانی شما را "هر 15 دقیقه" ردیابی می کند - "حتی با غیرفعال بودن GPS"

منبع

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎1😍1
✔️ مستند HBO: پیتر تاد همان ساتوشی ناکاموتو است

مستند جدید شبکه HBO با عنوان «پول الکتریکی: راز بیت کوین» ادعا می‌کند که پیتر تاد (Peter Todd)، یکی از توسعه‌دهندگان اصلی بیت کوین، ممکن است همان ساتوشی ناکاموتو مرموز باشد.

این ادعا در جامعه ارزهای دیجیتال جنجال و تردیدهای زیادی ایجاد کرده است. کارگردان این مستند، کالن هوبک (Cullen Hoback)، شواهدی ارائه داده که شامل تطابق برنامه تحصیلی تاد با الگوهای پست‌گذاری ناکاموتو و تعاملات خاص در انجمن‌ها است.

با این حال، تاد قاطعانه این ادعاها را رد کرده و آنها را مضحک خوانده است. منتقدان معتقدند شواهد ارائه شده در مستند بر پایه حدس و گمان و فاقد قطعیت است. علی‌رغم این ادعاها، اکثر جامعه ارزهای دیجیتال همچنان معتقدند که هویت ناکاموتو باید ناشناس باقی بماند، که با خواسته اصلی خالق مرموز بیت کوین همخوانی دارد


👾 @pishroapp
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
یه مقایسه‌ی کوچیک و باحال از ‌Kotlin، Swift و فلاتر

👾@pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
بچه ها توی #لاراول اگر شما یکسری seed دارید که میخواید وقتی مایگریت رو رفرش کردن seed ها هم ران بشن میتونید با دستور زیر همراه Refresh کردن مایگریشن ها این کار رو انجام بدین



php artisan migrate:refresh --seed


این میاد اول #دیتابیس رو تازه سازی میکنه و بعد seed ها رو ران میکنه


#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
تایم لاین انتشار #php 8.4


نسخه 8.4 زبان برنامه نویسی PHP در نوامبر سال جاری میلادی منتشر میشه

@pishroapp
4
🛸 ابزار های هوش مصنوعی برای توسعه دهنده ها!

1. GitHub Copilot: دستیار کدنویسی که به شما در نوشتن کدهای بهتر و سریع‌تر کمک می‌کند.

2. TensorFlow و PyTorch: برای توسعه مدل‌های یادگیری عمیق.

3. Kite: یک افزونه‌ای که پیشنهادات هوشمندانه کد را ارائه می‌دهد.


👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3