Anophel | آنوفل
158 subscribers
283 photos
299 links
آنوفل | Anophel: دنیای بی ‌پایان امکانات برای برنامه‌ نویسان

https://anophel.com

پشتیبانی :
@anophel_support
Download Telegram
آشنایی با Vite.js: بررسی کامل، مثال‌ها و جایگزین‌ها

🔺 ظهور ابزارهای ساخت، بسیاری از نوآوری های جدید را در توسعه frontend ممکن کرد. در حالی که ابزارهایی مانند webpack در خط مقدم این نوآوری قرار داشتند، با گذشت زمان، آهسته و متورم شدند. این امر ابزارهای ساخت جدید را ضروری کرد، ابزارهایی مانند Vite که سریع...

🌐 : آشنایی با Vite.js: بررسی کامل، مثال‌ها و جایگزین‌ها
در فرایند تست‌نویسی در لاراول، اغلب اوقات نیاز است که بررسی کنیم آیا رکوردی از دیتابیس حذف شده است یا خیر. روش رایج استفاده از متد assertDatabaseMissing است.

روش سنتی با assertDatabaseMissing
در این روش، برای بررسی حذف شدن یک رکورد خاص از دیتابیس، از متد assertDatabaseMissing استفاده می‌کنیم.

روش بهینه با assertModelMissing
از طرف دیگر، می‌توانیم از متد assertModelMissing استفاده کنیم که به طور خاص برای بررسی مدل‌ها طراحی شده است. این متد کد را کوتاه‌تر و خواناتر می‌کند. کد نمونه داخل تصویر را مشاهده کنید.


مزایای assertModelMissing
- کد کوتاه‌تر و خواناتر.
- تمرکز بیشتر بر روی منطق مدل به جای جزییات دیتابیس.
- کمک به کلین کد و بهبود نگهداری کد.

استفاده از assertModelMissing می‌تواند به بهبود کیفیت کد و سرعت تست‌نویسی کمک کند و به ویژه در پروژه‌های بزرگ و پیچیده، مزایای خود را نشان دهد.


آنوفل| Anophel

#لاراول #کدنویسی #laravel #تست_نویسی
بهترین روش های احراز هویت در Next.js

🔺 نکست جی اس یکی از بهترین فریمورک های دنیای فرانت اند می باشد که دارای ویژگی های بسیار زیادی است. یکی از جنبه های مهم توسعه برنامه، اطمینان از ایمن بودن و محافظت از برنامه ها در برابر نقض داده ها و سایر جرایم سایبری است. یکی از راه هایی که می توانید ب...

🌐 : بهترین روش های احراز هویت در Next.js

#nextjs #نکست_جی_اس
بررسی بهینه سازی تصویر در Next.js با مثال

🔺 تصاویر نقش مهمی در توسعه وب دارند، اما می توانند به طور قابل توجهی بر عملکرد وب سایت تأثیر بگذارند. برای رفع این مشکل، Next.js مؤلفه Image را ارائه می دهد که بهینه سازی خودکار تصویر و ویژگی های مختلفی را برای بهینه سازی بارگذاری و رندر تصویر ارائه می...

🌐 : بررسی بهینه سازی تصویر در Next.js با مثال

#nextjs #نکست
میکرو-فرانت اند در Next.js بررسی همراه با مثال

🔺 مدیریت پایگاه کد یک پروژه بزرگ در حین کار روی آن برای تیم ها آسان نیست. Micro-frontend (میکرو فرانت اند) ها برای مدت طولانی کاربردی بوده اند، اما به دلیل ویژگی های متمایز و راحتی که دارند، در بین کاربران محبوب شده اند.تیم های مختلف می توانند بر روی و...

🌐 : میکرو-فرانت اند در Next.js بررسی همراه با مثال

#میکرو_فرانت‌اند #میکروسرویس #nextjs #react
کش در لاراول : همه چیز درباره Laravel Caching

🔺 کش برای دستیابی به عملکرد بالا و مقیاس پذیری ضروری است. برای جلوگیری از تاخیر در APIها و کاهش زمان بارگذاری صفحه، اجرای استراتژی ذخیره سازی مناسب درست از مرحله توسعه بسیار مهم است. لاراول یکی از محبوب‌ترین فریم ورک‌های PHP است، بنابراین پیاده‌سازی اس...

🌐 : کش در لاراول : همه چیز درباره Laravel Caching

#لاراول #کش_لاراول #laravel
بررسی علت آهسته بودن Code Reviews

🔺 تقریباً هر توسعه‌دهنده نرم‌افزاری از بررسی کند کد شکایت می‌کند، اما گاهی اوقات، درک علت آن‌ها دشوار است. ممکن است گاهی اوقات به این دلیل باشد که صاحبان حق شناسایی نشده اند، اما بسیاری اوقات ممکن است به دلیل عدم ارتباط باشد. در این مقاله از آنوفل، آنچ...

🌐 : بررسی علت آهسته بودن Code Reviews
در لاراول بین with و load چه تفاوتی وجود دارد؟

وقتی از with استفاده می‌کنیم، Laravel تلاش می‌کند تمام اطلاعات مرتبط با رابطه را به صورت eager loading از پیش بارگذاری کند، یعنی داده‌ها با یک کوئری از دیتابیس به صورت همزمان خوانده می‌شوند. این کار معمولاً برای بهینه‌سازی عملکرد و کاهش تعداد کوئری‌ها به دیتابیس مفید است.

از طرف دیگر، load به ما اجازه می‌دهد که داده‌های یک رابطه را به صورت lazy loading، و تنها در صورتی که به آن‌ها نیاز داشته باشیم، بارگذاری کنیم. این متد به دلیل کارآمدی زمانی مناسب است که نیازمندیم که داده‌ها به صورت پویا و بسته به شرایط خاصی بارگذاری شوند.

خلاصه کلام:
متد with: برای بارگذاری eager loading که داده‌ها به صورت پیش‌فرض با یک کوئری از پایگاه داده درخواست می‌شوند.

متد load: برای بارگذاری lazy loading که داده‌ها فقط زمانی بارگذاری می‌شوند که به آن‌ها نیاز داریم و به صورت جداگانه از هر مدل فراخوانی می‌شود.

Anophel آنوفل

#لاراول #کد_نویسی #laravel #php
لاراول Macro چیست؟ آشنایی عمیق با Laravel Macro

🔺 لاراول یک فریمورک محبوب PHP است که به دلیل ظرافت و ویژگی‌های مناسب برای توسعه‌دهندگان شناخته می‌شود. یکی از این ویژگی‌ها که انعطاف‌پذیری لاراول را افزایش می‌دهد، ماکروها هستند. ماکروهای لاراول به شما این امکان را می دهند که متد های اصلی را گسترش دهید...

🌐 : لاراول Macro چیست؟ آشنایی عمیق با Laravel Macro

#لاراول #لاراول_ماکرو #laravel
کوئری های پیشرفته در لاراول با Laravel Scope

🔺 لاراول یک فریمورک محبوب PHP است که به دلیل مجموعه ای غنی از ویژگی هایش که توسعه وب را سریعتر و کارآمدتر می کند، شناخته شده است. یکی از این ویژگی ها، Laravel Scopes است که به توسعه دهندگان اجازه می دهد تا محدودیت های کوئری قابل استفاده مجدد و زنجیره ا...

🌐 : کوئری های پیشرفته در لاراول با Laravel Scope
در لاراول داده ها را با ()forPage به صورت Paginate در بیارید.

در لاراول، متد forPage روی Collections برای تقسیم داده‌ها به صفحات (pagination) استفاده می‌شود. این متد برای موقعیت‌هایی مناسب است که شما داده‌ها را به صورت Collection دارید و می‌خواهید آن‌ها را به صفحات کوچک‌ تر تقسیم کنید.



تفاوت forPage با Pagination

1. متد forPage
- این متد فقط روی مجموعه‌ها کار می‌کند.
- ساده و سریع برای تقسیم داده‌های موجود در حافظه به صفحات.
- مناسب برای داده‌هایی که قبلاً از دیتابیس دریافت شده‌اند و نیاز به تقسیم‌بندی دارند.

2. متد Pagination
- در Pagination استاندارد لاراول، داده‌ها مستقیماً از دیتابیس به صورت صفحه‌بندی شده دریافت می‌شوند.
- بهینه‌تر برای مجموعه‌های بزرگ داده که نیاز به صفحه‌بندی در سطح دیتابیس دارند.
- از متدهایی مانند paginate و simplePaginate روی کوئری بیلدر (Query Builder) استفاده می‌شود.

حالا کی از هرکدام استفاده کنیم؟

- متد forPage:
- زمانی که مجموعه داده‌ها کوچک است و قبلاً در حافظه وجود دارد.
- برای مواردی که داده‌ها را از منابعی غیر از دیتابیس (مثلاً فایل‌های JSON یا API‌های دیگر) دریافت کرده‌اید و نیاز به صفحه‌بندی دارند.

- متد Pagination استاندارد:
- زمانی که مجموعه داده‌ها بزرگ است و می‌خواهید مستقیماً از دیتابیس داده‌ها را به صورت صفحه‌بندی شده دریافت کنید.
- برای حفظ کارایی و جلوگیری از بارگذاری تمامی داده‌ها در حافظه.

#لاراول #laravel


Linkedin
Redux Toolkit Queries چیست؟ | بررسی کامل RTK Queries در ری اکت

🔺 در برنامه های کاربردی وب مدرن، مدیریت واکشی داده ها و مدیریت استیت به طور موثر برای ساخت برنامه های کاربردی مقیاس پذیر و قابل نگهداری بسیار مهم است. Redux Toolkit Queries (RTK Queries) یک راه حل قدرتمند است که این کارها را ساده می کند و مجموعه ای از...

🌐 : Redux Toolkit Queries چیست؟ | بررسی کامل RTK Queries در ری اکت

#ری_اکت #ریداکس
تفاوت دیزاین پترن Observer و Event در لاراول چیست؟

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

دیزاین پترن Observer
پترن Observer در لاراول برای نظارت بر تغییرات مدل‌ها استفاده می‌شود. این الگو به شما اجازه می‌دهد تا رویدادهای خاصی مانند ایجاد، به‌روزرسانی، یا حذف یک مدل را شناسایی کرده و به آنها پاسخ دهید. Observer ها به طور مستقیم با مدل‌های Eloquent ارتباط دارند و برای مدیریت رویدادهای خاص مدل‌ها بسیار مفید هستند.

کلاس Event
الگوی Event برای مدیریت رویدادها به صورت کلی‌تر در سراسر برنامه استفاده می‌شود. با استفاده از این الگو می‌توانید رویدادهای دلخواه خود را تعریف کرده و به آنها گوش دهید. این الگو بیشتر برای مدیریت رویدادهایی که مستقل از مدل‌های Eloquent هستند و به صورت عمومی در سطح برنامه اتفاق می‌افتند، استفاده می‌شود.

مثال:
فرض کنید یک سیستم داریم که وقتی یک کاربر جدید ثبت‌نام می‌کند، می‌خواهیم دو کار انجام شود:
1. ارسال ایمیل خوش‌آمدگویی به کاربر.
2. ثبت یک لاگ در دیتابیس.



خلاصه کلام:
پترن Observer و رویدادها اصلاً یک کار را انجام نمی دهند.

- دیزاین پترن Observer برای نظارت بر رویدادهای خاص مدل‌ها (مانند ایجاد، به‌روزرسانی، حذف) استفاده می‌شود و به طور مستقیم با مدل‌های Eloquent در ارتباط است.

- و Event برای مدیریت رویدادهای عمومی در سراسر برنامه استفاده می‌شود و به شما اجازه می‌دهد تا رویدادهای دلخواه خود را تعریف کرده و به آنها گوش دهید.

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

Anophel آنوفل

#لاراول #laravel #دیزاین_پترن
دیزاین پترن Observer در لاراول 11 | بررسی کامل با مثال

🔺 لاراول با مجموعه ای قوی از ویژگی های طراحی شده برای ساده سازی وظایف پیچیده، راه را برای توسعه وب هموار می کند. یکی از این ویژگی‌ها که اغلب نادیده گرفته می‌شود، اما فوق‌العاده قدرتمند است، کلاس Observer در لاراول است. Observer در لاراول به توسعه دهندگ...

🌐 : دیزاین پترن Observer در لاراول 11 | بررسی کامل با مثال

#لاراول #دیزاین_پترن #laravel #لاراول11 #laravel11
در لاراول دیزاین پترن Repository برای جداسازی لایه دسترسی به داده‌ها از لایه منطقی استفاده می‌شود. این پترن به توسعه‌دهندگان اجازه می‌دهد تا با استفاده از یک واسط مشترک به داده‌های مختلف دسترسی پیدا کنند و تغییرات در لایه داده را بدون تأثیر بر لایه منطقی مدیریت کنند.


دیزاین پترن Repository در لاراول از سه بخش اصلی تشکیل شده است:

اینترفیس Repository: این اینترفیس متد هایی را تعریف می‌کند که برای تعامل با مکانیسم ذخیره‌سازی داده استفاده می‌شوند. این یک لایه آبسترک بین کد برنامه و دیتابیس فراهم می کند.

کلاس Repository: این کلاس اینترفیس Repository را پیاده‌سازی می‌کند و شامل اجرای واقعی متد های تعریف‌ شده در اینترفیس است. برای انجام عملیات CRUD (ایجاد، خواندن، به‌روزرسانی و حذف) با مکانیسم ذخیره‌سازی داده تعامل دارد.

کلاس سرویس: این کلاس از کلاس Repository برای انجام عملیات لاجیک استفاده می کند. به عنوان یک واسطه بین Controller و Repository عمل می کند و لایه ای از آبسترک را بین لایه ارائه و لایه ذخیره سازی داده ارائه می دهد.


مزایای استفاده از Repository
1. جداسازی نگرانی‌ها (Separation of Concerns): لایه منطقی از جزئیات دسترسی به داده‌ها جدا می‌شود.
2.قابلیت تست بهتر: با جدا کردن منطق تجاری از منطق دسترسی به داده‌ها، تست واحد آسان‌تر می‌شود.
3. مدیریت بهتر تغییرات: تغییرات در ساختار داده‌ها یا منبع داده به سادگی مدیریت می‌شود.

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

Anophel آنوفل

#لاراول #دیزاین_پترن #laravel #design_pattern
7 اصول تست نویسی که هر توسعه دهنده ای باید بداند

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

🌐 : 7 اصول تست نویسی که هر توسعه دهنده ای باید بداند
ماژول فدراسیون Module Federation چیست؟
ماژول فدراسیون Module Federation یک ویژگی پیشرفته در Webpack است که راهی را برای یک برنامه جاوا اسکریپت برای بارگذاری پویا کد از یک برنامه دیگر فراهم می کند. این ویژگی به اشتراک گذاری کد و مدیریت وابستگی کارآمد اجازه می دهد. این ویژگی جذاب از وبپک 5 بعد در دسترس است.

چرا فدراسیون ماژول مهم است؟
این Module Federation یک ویژگی قدرتمند است که معماری جاوا اسکریپت و رویکرد micro-frontend را متحول کرده است. اگر به درستی از آن استفاده شود، می تواند مزایای بسیاری را برای سیستم برنامه شما فراهم کند.

قبل از معرفی Module Federation، به اشتراک گذاری کد، روند روانی نداشت. پیاده سازی Micro-frontend نیز پیچیده تر می شد.

این Module Federation یک معماری است که به این مسائل می پردازد و انقلابی را در استراتژی میکرو فرانت اند ایجاد می کند. با Module Federation، یک برنامه کاربردی کد را به صورت پویا از بسته یا ساخت دیگری با قابلیت اشتراک گذاری کد و مصرف عملکرد در طول زمان اجرا اجرا می کند، و مسیر استفاده موفق از فناوری micro-frontend را هموار می کند. علاوه بر این، استفاده از وابستگی های قابل اشتراک گذاری، فشرده بودن برنامه را بهبود می بخشد. Module Federation نیز به توسعه دهندگان احساس آشنایی می دهد، زیرا بخشی از اکوسیستم Webpack است که توسعه دهندگان ممکن است قبلاً از آن استفاده کرده باشند.

همه این معیارها، Module Federation را به یک ویژگی قدرتمند و ضروری تبدیل می کند که باید در پروژه های آینده از آن استفاده کنید.

Anophel آنوفل

#میکروفرانت_اند #microfrontend
Forwarded from Golden Code (@lix)
در لاراول ، بسته به محیطی که برنامه داخلش اجرا میشه ممکنه نیاز بشه عملیات های مشخصی رو فعال یا غیر فعال کنیم .

مثلا کانفیگ های مربوط به دیباگ پروژه نباید در محیط production فعال باشه (مشکل امنیتی میسازه).

📌 دو متود با نام های isProduction و isLocal در اختیارمون هست که میتونیم به راحتی بررسی کنیم آیا برنامه در محیط local هست یا production تا عملیات مورد نیاز برای محیط مدنظر اجرا بشه.
#لاراول
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1815461812457935220?t=1ATZevlJa5FeR5AP6aKVRw&s=35
مفهوم Docs as Code چیست؟
به طور سنتی، مستندسازی یک وظیفه مجزا بوده که اغلب نادیده گرفته می‌شود. با این حال، این رویکرد جدید به نام "داکیومنت به عنوان کد" این را تغییر می دهد.

داکیومنت به صورت کد چیست؟
داکیومنت به صورت کد یا Docs as Code روشی است که در آن با داکیومنت مانند کد رفتار می شود. این بدان معنی است که شما از همان ابزارها و فرآیندهایی برای مستندسازی استفاده می کنید که برای توسعه کد استفاده می کنید. با انجام این کار، داکیومنت را در فرآیند توسعه ادغام می کنید و آن را به شهروند درجه یک تبدیل می کنید.

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

یکپارچه سازی پیوسته: تست و استقرار داکیومنت را خودکار کنید، درست همانطور که با کد انجام می دهید.

بازبینی کد: داکیومنت ها را به همان فرآیندهای بازبینی کد می‌پردازد و از دقت و سازگاری اطمینان می‌دهد.

قالب‌های متن ساده: اسناد را در قالب‌های متن ساده مانند Markdown یا reStructuredText بنویسید. این امر مدیریت آن را در سیستم های کنترل نسخه آسان و سازگار با ابزارهای مختلف می کند.

چرا داکیومتت به عنوان کد؟
اتخاذ رویکرد Docs as Code چندین مزیت را به همراه دارد.

این Docs as Code همکاری بهبود یافته را به ارمغان می آورد
وقتی با داکیومنت مانند کد رفتار می کنید، همکاری را تشویق می کند. توسعه‌دهندگان، نویسندگان و سایر ذینفعان می‌توانند با استفاده از گردش کار مشابه در مستندسازی مشارکت کنند. این محیط مشارکتی تضمین می کند که داکیومنت به روز و دقیق باقی می مانند.

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

داکیومنت به عنوان کد اتوماسیون و کارایی را بهبود می بخشد
با Docs as Code، می‌توانید بسیاری از جنبه‌های داکیومنت را خودکار کنید. به عنوان مثال، می‌توانید به‌طور خودکار داکیومنتی را از کامنت های کد تولید کنید، تست هایی را برای اطمینان از کارکرد لینک ها اجرا کنید، و داکیومنت به‌روز شده را با هر نسخه منتشر کنید. این اتوماسیون باعث صرفه جویی در زمان و کاهش خطا می شود.

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

Anophel آنوفل

#داکیومنت_نویسی #docs_as_code #داکیومنت
صف ها و جاب ها در لاراول 11: بررسی عمیق

🔺 در دنیای شلوغ توسعه وب، لاراول به عنوان یک فریمورک قدرتمند PHP است که توسعه دهندگان را قادر می سازد تا برنامه های کاربردی پیچیده را با کارایی قابل توجه ایجاد کنند. در میان بسیاری از ویژگی‌های آن، سیستم صف (Queue) لاراول به عنوان ابزاری حیاتی برای رسی...

🌐 : صف ها و جاب ها در لاراول 11: بررسی عمیق

#لاراول #laravel #آنوفل