🎄 یک برنامه نویس تنبل – Telegram
🎄 یک برنامه نویس تنبل
1.99K subscribers
1.51K photos
281 videos
37 files
1.89K links
کانال یک برنامه نویس تنبل

🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

ارتباط با مدیریت :

@CoderNap

اسپانسر هاست سایت راییوم توسط پوینا

https://rayium.ir

@poinair
Download Telegram
Forwarded from laravel-news
تیلور، خبر از مشارکت دختر 13 ساله اش در مستندات لاراول داد! 👩‍🦱

تیلور: "او می خواهد نویسنده یا روزنامه نگار شود، احتمالا امسال اولین مشارکت خود را در مستندات لاراول انجام دهد. ❤️"

#Laravel_Doc
👍133
🔶 چگونه دیتا براساس مقام در لاراول نمایش دهیم؟

فرض کنید می خواهید دیتا براساس مقام در یک صفحه نمایش دهید و در حالت عادی دو دیتای کلی در یک صفحه نشون میده هم در مدیر و کاربر عادی.

کد زیر:

$tasks = Task::paginate(10);
$tasks = Task::where('owner_id', Auth::id())->paginate(10);


اما چگونه براساس کاربر مدیر و عادی این دو نمایش دهیم.

با استفاده تابع کوئری :
$tasks = Task::when(!Auth::user()->isAdmin(), function ($query) {
$query->where('owner_id', Auth::id());
})->paginate(10);


و اینم تابع Roles در مدل User:

public function isAdmin(): bool
{
return $this->roles()->where('noscript', 'isAdmin')->count() > 0;
}


اینجاست من دیتا براساس گیرنده owner_id یعنی کاربر عادی ثبت کردم و اگر کاربری که عضو شد به عنوان کاربر عادی دیتاهای مدیر کل سایت دیده نمی شود و فقط دیتا کاربر عادی می ببیند. بنابراین با isAdmin() براساس مقام در نمایش دیتاها محدودیت ایجاد کردم.

#لاراول

@TheRaymondDev
🔥1
🔶 فرهنگستان زبان و ادب فارسی، واژه فارسی «فرسته» را معادل واژه فرنگی «پٌست» تصویب کرد.

🤦‍♂️

@TheRaymondDev
😁5👏1
Forwarded from Node Unique
🆕~> انواع معماری‌ها در 👩‍💻 Nodejs: انتخاب بهترین رویکرد برای پروژه. 🧐


⚪️معماری نرم‌افزار یکی از مهم‌ترین عوامل در موفقیت یا شکست یک پروژه است. وقتی صحبت از توسعه‌ی اپلیکیشن‌های مبتنی بر 👩‍💻Node.js می‌شود، انتخاب معماری مناسب می‌تواند عملکرد، مقیاس‌پذیری و نگهداری کد را بهبود بخشد. در این پست، به بررسی رایج‌ترین معماری‌های مورد استفاده در 👩‍💻Nodejs می‌پردازیم. 👍

1️⃣معماری MVC (Model-View-Controller):
⚪️معماری کلاسیک که اپلیکیشن را به سه لایه مدل (مدیریت مدل ها)، نمایش (رابط کاربری)، و کنترلر (مدیریت منطق و واسطه) تقسیم می‌کند.
⚪️مناسب برای پروژه‌های متوسط تا بزرگ که نیازمند کدی سازمان‌دهی‌شده هستند.

2️⃣معماری MVVM (Model-View-ViewModel):
⚪️شبیه به MVC است، اما با تمرکز بیشتر بر داده‌محوری و جداسازی بهتر منطق UI از منطق تجاری.
⚪️معمولاً برای پروژه‌های SPA (تک‌صفحه‌ای) استفاده می‌شود، به ویژه با فریمورک‌هایی مانند 👩‍💻 Vuejs یا 🏤 Angular.

3️⃣معماری لایه‌ای (Layered Architecture):
⚪️این معماری شامل لایه‌های مختلفی مانند کنترلر، سرویس‌ها، و مدل ها است.
⚪️مناسب برای پروژه‌هایی که نیاز به جداسازی وظایف در بخش‌های مختلف دارند.

4️⃣معماری میکروسرویس‌ها (Microservices):
⚪️اپلیکیشن به سرویس‌های کوچک و مستقل تقسیم می‌شود که هرکدام می‌توانند به طور جداگانه توسعه، تست، و مستقر شوند.
⚪️مناسب برای پروژه‌های بزرگ و پیچیده با تیم‌های متعدد.

5️⃣معماری Serverless (بدون سرور):
⚪️کد به صورت تابع‌های کوچک اجرا می‌شود و مدیریت سرورها بر عهده‌ی ارائه‌دهندگان ابری مثل AWS Lambda است.
⚪️برای پروژه‌هایی با نیاز به مقیاس‌پذیری بالا و هزینه‌های پایین مناسب است.

6️⃣معماری Event-Driven (مبتنی بر رویداد):
⚪️با استفاده از رویدادها و پیام‌ها (event emitters) کار می‌کند.
⚪️مناسب برای اپلیکیشن‌های بلادرنگ (real-time) مثل سیستم‌های چت، بازی‌های آنلاین، و اعلان‌ها.

7️⃣معماری Clean (معماری تمیز):
⚪️تأکید بر جداسازی منطق تجاری از زیرساخت‌ها و فناوری‌ها.
⚪️هدف آن ایجاد کدی خوانا، قابل نگهداری و مقیاس‌پذیر است.

8️⃣معماری Hexagonal (شش‌ضلعی):
⚪️به نام Ports and Adapters هم شناخته می‌شود.
⚪️هدف آن انعطاف‌پذیری بیشتر با جداسازی منطق کسب‌وکار از جزئیات تکنیکی است.

9️⃣معماری Monolithic (یکپارچه):
⚪️اپلیکیشن به صورت یک واحد بزرگ ساخته می‌شود.
⚪️مناسب برای پروژه‌های کوچک یا زمانی که نیاز به پیچیدگی کم و استقرار ساده است.

0️⃣1️⃣معماری Modular (ماژولار):
⚪️پروژه به ماژول‌های مستقل تقسیم می‌شود که هرکدام مسئولیت مشخصی دارند.
⚪️برای کدهای با قابلیت استفاده مجدد (reusable code) مناسب است و 🤟 nodejs با فریم ورک های مثل 👩‍💻 nestjs و angular 🏤 استفاده میشه بیشتر.

1️⃣1️⃣معماری CQRS (Command Query Responsibility Segregation):
⚪️وظایف دریافت داده‌ها (Query) و دستکاری داده‌ها (Command) را جدا می‌کند.
⚪️معمولاً در پروژه‌هایی با حجم بالای داده یا نیاز به پردازش پیچیده استفاده می‌شود.

2️⃣1️⃣معماری SOA (Service-Oriented Architecture):
⚪️مشابه میکروسرویس‌ها است، اما سرویس‌ها کمتر مستقل هستند و ارتباطات بیشتری دارند.
⚪️مناسب برای پروژه‌هایی با نیاز به سرویس‌های اشتراکی.

3️⃣1️⃣معماری Multi-Tenant (چند مستأجر):
⚪️برای سیستم‌هایی که به طور همزمان توسط چند کاربر یا شرکت استفاده می‌شوند (مانند SaaS) طراحی شده است.
⚪️مناسب برای پروژه‌های SaaS (نرم‌افزار به‌عنوان سرویس).

4️⃣1️⃣معماری Pipeline (خط لوله):
⚪️داده‌ها به صورت مرحله‌ای پردازش می‌شوند.
⚪️معمولاً در سیستم‌های پردازش داده‌های بزرگ (Big Data) استفاده می‌شود.

♨️~>لپ مطلب:
⚪️هر معماری مزایا و معایب خاص خود را دارد. انتخاب معماری مناسب به نیازهای پروژه، مقیاس آن، و تیم توسعه بستگی دارد. 👍

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #مقاله #معماری_نرم_افزار #nodejs

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
🔶 براساس گزارش آسوشیتدپرس نیوز, به گفته مقامات کره جنوبی ، جعبه های سیاه در سقوط هواپیمای کره جنوبی نتوانستند 4 دقیقه پایانی را ثبت کنند و هیچ داده ای در جعبه سیاه هواپیمای ججو ایر کره جنوبی وجود ندارد.

#خبر

@TheRaymondDev
🤨6
💎 آشنایی با ORM‌ها، چی هستد و به چه کاری میان 💎

کلمه ORM و یا همون Object-Relational Mapping ابزاریه که به شما این امکان رو میده تا با استفاده از زبان های برنامه‌نویسی شی‌گرا، به راحتی با دیتابیس کار بکنید.

یعنی دیگه نیازی نیست خودتون به صورت دستی به نوشتن کوئری‌های پیچیده با sql خام بپردازید و میتونید تمرکز بیشتری رو روی منطق برنامه‌نویسی داشته باشید 💥


مزایای ORM‌ها

کاهش کد نویسی
با استفاده از ORM، نیاز به نوشتن کد SQL کاهش پیدا میکنه و عملیات دیتابیس به صورت خودکار انجام می‌شه

افزایش خوانایی کد
کد ORM بیشتر به زبان برنامه‌نویسی شما نزدیکه و فهم اون ساده‌تره.

قابلیت‌های جابجایی
با ORM میتونید به سادگی از یک دیتابیس به یک دیتابیس دیگه منتقل شد.

مدیریت خودکار ریلیشن‌ها
با ORM ها مدیریت روابط ( ریلیشن‌ها ) بین جداول مختلف خیلی ساده تر میشه


معایب ORM‌ها

➊ عملکرد کمتر
برای برخی از عملیات‌های پیچیده مثل گذارش گیری ها ممکنه کارایی کمتری نسبت به نوشتن کد SQL خالص داشته باشن.

➋ پیشرفته بودن برای مبتدیان
درک کامل عملکرد ORM و چگونگی کارکرد اون می‌تونه برای برخی از دولوپر‌های تازه‌کار سخت تر باشه.

➌ محدودیت‌های عملکردی
برای سناریوهایی با نیازهای خاص و پیچیده، ممکنه ORM همه نیازهای مارو برآورده نکنه.


💯 بهترین ORM ها برای Node.js

1. Sequelize
یک ORM قدرتمند برای Node.js و دیتابیس های SQL با پشتیبانی از تعریف مدل، روابط پیچیده، و Migration.

2. TypeORM
به شخصه typeorm رو‌ برای NestJS توصیه میکنم چون فوق‌العاده مناسب برای TypeScript هستش که از database های SQL و NoSQL پشتیبانی میکنه.
3. Mongoose
این یکی برای MongoDB به‌کار می‌ره و درواقع ODM هستش که با Schema‌ها، Middleware و قابلیت Validation، مدیریت دیتای NoSQL رو براتون اسون تر میکنه.
4. Prisma
یک ORM مدرن و TypeScript-friendly برای دیتابیس های SQL با تمرکز بر سرعت، Type-Safty کوئری‌ها.


#️⃣ #lazyloading #javanoscript

🫶 𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
👍3
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 چگونه دیتا براساس مقام در لاراول نمایش دهیم؟

فرض کنید می خواهید دیتا براساس مقام در یک صفحه نمایش دهید و در حالت عادی دو دیتای کلی در یک صفحه نشون میده هم در مدیر و کاربر عادی.

کد زیر:

$tasks = Task::paginate(10);
$tasks = Task::where('owner_id', Auth::id())->paginate(10);


اما چگونه براساس کاربر مدیر و عادی این دو نمایش دهیم.

با استفاده تابع کوئری :
$tasks = Task::when(!Auth::user()->isAdmin(), function ($query) {
$query->where('owner_id', Auth::id());
})->paginate(10);


و اینم تابع Roles در مدل User:

public function isAdmin(): bool
{
return $this->roles()->where('noscript', 'isAdmin')->count() > 0;
}


اینجاست من دیتا براساس گیرنده owner_id یعنی کاربر عادی ثبت کردم و اگر کاربری که عضو شد به عنوان کاربر عادی دیتاهای مدیر کل سایت دیده نمی شود و فقط دیتا کاربر عادی می ببیند. بنابراین با isAdmin() براساس مقام در نمایش دیتاها محدودیت ایجاد کردم.

#لاراول

@TheRaymondDev
👍4🌚1
Forwarded from Sudoer (Morteza Bashsiz)
سناریو شماره ۷ - افت پرفورمنس به دلیل RAM و swap

توی این ویدیو یه سرویسی داریم که افت پرفورمنس داشته به دلیل استفاده نادرست یک پروسس از مموری. با مفاهیم swap آشنا میشیم و اینکه چطوری داره کار میکنه

https://youtu.be/haxr3Lh8lxU
🔶 کدوم یک از فریم ورک های CSS در پروژه استفاده کنیم؟

دو فریم ورک معروف در دنیای CSS داریم: ۱- بوت استرپ (Bootstrap) ۲- تیلویند (TailwindCSS)

۱- بوت استرپ (Bootstrap) :

فریم ورک بوت استرپ رسپانسیو سازی و سرعت توسعه بالایی داره و هم سازگار با جاوا اسکریپت است. دارای سیستم گرید قدرتمند برای رسپانسیو سازی المان ها است و قابلیت شخصی سازی خوبی دارد. اگر در پروژه ای می خواهید مداوم تغییراتی اعمال کنید, فریم ورک بوت استرپ پیشنهاد می کنم که دردسرهای شخصی سازی با دستورات خاص برای اعمال کلاس ها را ندارید و دارای کامپوننت‌های آماده است.

۲- تیلویند (TailwindCSS) :

با استفاده از تیلویند (Tailwind CSS) می توانید کلاس‌های از پیش تعریف شده، به سرعت رابط‌های کاربری سفارشی و واکنش‌گرا ایجاد کنید و رسپانسیو سازی و قابلیت های شخصی بالایی دارد و هم سازگار با جاوا اسکریپت است. اگر در پروژه تغییرات چندانی ندارد و نیازی به اعمال مداوم کلاس ها ندارید رو تیلویند (Tailwind CSS) پیشنهاد می کنم. اما یه سری ایراداتی هست که پیچیدگی در خوانایی کدهای HTML دارد و نیاز به تنظیمات اولیه, وابستگی به ابزارهای ساخت (Build Tools) مانند Webpack، PostCSS یا Vite برای اعمال کلاس ها و دستورات خاص دارید.

#CSS

@TheRaymondDev
👍1
چرا بعضی Unit Testها به هیچ دردی نمی خورن؟

تا حالا براتون پیش اومده که بعد از کلی وقت گذاشتن روی نوشتن تست های واحد، بازم سیستم با یه باگ ناجور منفجر بشه؟ اون حس ناامیدی که انگار همه اون تست ها فقط وقت تلف کردن...

خب، چرا این اتفاق می افته؟
یه سری اشتباهات رایج باعث می شه تست ها بی اثر بشن. مثلا:

استفاده از داده های واقعی به جای داده های ساختگی:
فکر کنید تست تون روی دیتابیس واقعی اجرا بشه. اگه رکوردها تغییر کنن یا دسترسی به دیتابیس قطع بشه، تست می ترکه. تست خوب باید مستقل از محیط باشه.

عدم استفاده از Mocking:
وقتی همه وابستگی های کد واقعی باشن، دارین کل سیستم رو تست می کنید، نه فقط یه بخش خاص رو. این دیگه Unit Test نیست! استفاده از Mock باعث می شه به جای اینکه به API واقعی یا دیتابیس وصل بشید، شبیه ساز اون ها رو تست کنید.

نوشتن تست های زیاد ولی بدون هدف مشخص:
یه زمانی فکر می کردم هرچی تعداد تست ها بیشتر باشه بهتره. بعد فهمیدم تستی که هدفمند نباشه، فقط کد رو شلوغ می کنه و باعث می شه موقع تغییرات کلی مشکل زا بشه.

حالا راه حل چیه؟
۱. وابستگی ها رو Mock کنید. با ابزارهایی مثل Mockito می تونید رفتار وابستگی ها رو شبیه سازی کنید.
۲. از داده های ثابت و ساختگی (Fake Data) استفاده کنید که تغییر نمی کنن.
۳. روی سناریوهای کلیدی تمرکز کنید. مثلا یه تابع مهم چطوری ورودی های خاص رو هندل می کنه؟ این مهم تر از اینه که صد تا تست بنویسید که همشون بی هدف باشن.

@DevTwitter | <Hamed Farzanefar/>
👍3
🔶 درآمد بیشتر پورن هاب از یوتیوب

بالاخره فهمیدم 😂

@TheRaymondDev
🤣8
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 دوره طراحی قالب فروشگاهی ووکامرس منتشر شد!

۱- معرفی دوره
۲- فراخوانی فایل ها
۳- ایحاد سربرگ و منوها
۴- اسلایدر – تبلیغات ها
۵- اطلاعات – محصولات جدید – پرفروش – باتخفیف – بلاگ – لوگوها – فوتر
۶- صفحه Single محصول
۷- نصب وردپرس و ووکامرس – کار با آن
۸- پارتیشن بندی قالب ووکامرس
۹- پویا سازی سربرگ و منوها
۱۰- پویا سازی اسلایدر
۱۱- ایجاد پست تایپ و متاباکس
۱۲- پویا سازی صفحه اول فروشگاه
۱۳- پویا سازی صفحه Single محصول
۱۴- ایجاد صفحه سبد خرید – پارت ۱
۱۵- صفحه سبد خرید – پارت ۲
۱۶- ایجاد صفحه تسویه حساب
۱۷- استایل دهی به صفحه تسویه حساب و سبد خرید
۱۸- ایجاد صفحه حساب کاربری
۱۹- ایجاد دسته بندی – آرشیو – برچسب ها و ایجاد ابزارک برای ووکامرس
۲۰- ابزارک نویسی فیلتر سفارشی قیمت محصولات برای ووکامرس
۲۱- ایجاد وبلاگ و Single آن
۲۲- ایجاد نظرات و استایل دهی آن
۲۳- ایجاد تابع View Post برای نمایش بازدید های پست بدون افزونه
۲۴- ایجاد تب های پست جدید و دیدگاه ها در جایگاه ابزارک ها

۲۵- محصولات مرتبط - رفع اشکال آن (به زودی منتشر می شود)
۲۶- برچسب - دسته بندی - آرشیو - ۴۰۴ (به زودی منتشر می شود)
۲۷- ایجاد محدودیت دسترسی برای دکمه های ورود و عضویت (به زودی منتشر می شود)
۲۸- استایل قیمت ها و افزودن به سبد خرید در Single محصولات (به زودی منتشر می شود)
۲۹- ایجاد تنظیمات قالب با Option Tree (به زودی منتشر می شود)

قیمت دوره ۱.۵ میلیون تومان با تخفیف ۸۰ درصدی ۳۰۰۰۰۰ تومان


https://rayium.ir/?p=1247

#ووکامرس

@TheRaymondDev
👍1
Forwarded from Linuxor ?
روی main.c کد sqlite نوشته :

امیدوارم نیکی کنید و از بدی دوری کنید.
امیدوارم بتوانید خود را ببخشید و دیگران را نیز ببخشید.
امیدوارم سخاوتمندانه به اشتراک بگذارید و هرگز بیشتر از آنچه می‌دهید، نگیرید.


@Linuxor
6👍4👏1
🔶 بالاخره پروژه مدیریت تسک (TaskSquad) با لاراول - لایو وایر تمام شد!

در این پروژه شما می توانید کارهای وظایفی ایجاد کنید و از شرکت یا راه دور وظیفه یا پروژه ها برای هم تیمی خود تعریف و مدیریت کنید. این پروژه پیچیدگی چندانی ندارد و طوری نوشته شده است که کار با آن ساده باشد.

امکانات نظیر : مدیریت کاربران - گروه ها - مقام ها - دسترسی ها - وظیفه ها - پروژه ها

گیت هاب :

https://github.com/Rayiumir/TaskSquad

نمی دونم قابلیت تجاری سازی داره یا نه
شما می توانید این پروژه مشارکت و فورک و توسعه دهید و امکاناتی که مد نظر است را در تسک اسکواد اضافه کنید که کم کم پروژه بزرگتر شود.
برای حمایت ⭐️ دهید.

@TheRaymondDev
👍2