PHP & MYSQL pinned «✨ هنگام شروع یک اپلیکیشن جدید Laravel، باید از Model::shouldBeStrict استفاده کنید. شما ایدهای برای اپ جدید دارید. شما Laravel را نصب میکنید و آماده شروع هستید. اولین کاری که باید انجام دهید چیست؟ برای من، من به app service provider میروم و به متد boot…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
✨ عملگر ارجاع (
عملگر ارجاع در PHP (
📖 استفاده از ارجاعات در PHP:
استفاده از ارجاعات در PHP میتواند در موارد زیر مفید باشد:
1️⃣ تغییر متغیرها در داخل توابع:
وقتی یک متغیر را به عنوان پارامتر به یک تابع پاس میدهید و میخواهید که تغییرات داخل تابع روی متغیر اصلی اعمال شود.
2️⃣ به اشتراک گذاری متغیرها بین چندین بخش از برنامه: برای جلوگیری از کپیکاری بیمورد و صرفهجویی در حافظه.
3️⃣ کار با آرایهها و اشیاء:
که معمولاً حجم بیشتری دارند و کپی کردن آنها میتواند منابع زیادی مصرف کند.
🔍 مثال عملی:
در این مثال،
💡 نکات کلیدی:
- استفاده از ارجاعات میتواند به بهینهسازی حافظه کمک کند، اما باید با احتیاط استفاده شوند چون ممکن است منجر به نتایج غیرمنتظره شود اگر به درستی مدیریت نشوند.
- ارجاع دادن به یک متغیر با استفاده از عملگر
🛠 مدیریت ارجاعات:
- هنگامی که دیگر به ارجاع نیازی ندارید، میتوانید با استفاده از تابع
- ارجاع دادن به یک متغیر فقط روی متغیرهایی که قابل تغییر هستند (مانند متغیرهای نوع Scalar، آرایهها، و اشیاء) امکانپذیر است، نه روی مقادیر Literal یا Expressions.
👩💻 بهترین شیوهها:
- توصیه میشود که قبل از استفاده از ارجاعات، مطمئن شوید که واقعاً به آن نیاز دارید.
- برای جلوگیری از سردرگمی، ارجاعات را به گونهای مدیریت کنید که کد شما خوانا و واضح باقی بماند.
📁 #PHP
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
&) در PHP چیست؟عملگر ارجاع در PHP (
&) یک عملگر مهم است که برای ارجاع دادن به محل حافظه یک متغیر به جای کپی ارزش آن استفاده میشود. به زبان ساده، وقتی شما از عملگر ارجاع استفاده میکنید، به جای اینکه یک نسخه جدید از متغیر ایجاد کنید، شما به همان نسخه اصلی متغیر دسترسی پیدا میکنید و هر تغییری که روی آن اعمال کنید، مستقیماً روی متغیر اصلی اثر میگذارد.📖 استفاده از ارجاعات در PHP:
استفاده از ارجاعات در PHP میتواند در موارد زیر مفید باشد:
1️⃣ تغییر متغیرها در داخل توابع:
وقتی یک متغیر را به عنوان پارامتر به یک تابع پاس میدهید و میخواهید که تغییرات داخل تابع روی متغیر اصلی اعمال شود.
2️⃣ به اشتراک گذاری متغیرها بین چندین بخش از برنامه: برای جلوگیری از کپیکاری بیمورد و صرفهجویی در حافظه.
3️⃣ کار با آرایهها و اشیاء:
که معمولاً حجم بیشتری دارند و کپی کردن آنها میتواند منابع زیادی مصرف کند.
🔍 مثال عملی:
function add_prefix(&$string) {
// Add a prefix to a string
$string = 'prefix_' . $string;
}
$myStr = 'name';
add_prefix($myStr);
echo $myStr;
// Output: prefix_nameدر این مثال،
myStr$ از طریق ارجاع به تابع add_prefix پاس داده شده است. بنابراین، هر تغییری که تابع روی پارامتر اعمال میکند، مستقیماً روی متغیر myStr$ اعمال میشود.💡 نکات کلیدی:
- استفاده از ارجاعات میتواند به بهینهسازی حافظه کمک کند، اما باید با احتیاط استفاده شوند چون ممکن است منجر به نتایج غیرمنتظره شود اگر به درستی مدیریت نشوند.
- ارجاع دادن به یک متغیر با استفاده از عملگر
& در هنگام ارسال آن به توابع، انتقال به آرایهها، یا در هنگام کار با متغیرهایی که به صورت (global) یا استاتیک (static) تعریف شدهاند، استفاده میشود.🛠 مدیریت ارجاعات:
- هنگامی که دیگر به ارجاع نیازی ندارید، میتوانید با استفاده از تابع
unset ارجاع را حذف کنید.- ارجاع دادن به یک متغیر فقط روی متغیرهایی که قابل تغییر هستند (مانند متغیرهای نوع Scalar، آرایهها، و اشیاء) امکانپذیر است، نه روی مقادیر Literal یا Expressions.
👩💻 بهترین شیوهها:
- توصیه میشود که قبل از استفاده از ارجاعات، مطمئن شوید که واقعاً به آن نیاز دارید.
- برای جلوگیری از سردرگمی، ارجاعات را به گونهای مدیریت کنید که کد شما خوانا و واضح باقی بماند.
📁 #PHP
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
❤4👍2
PHP & MYSQL pinned «✨ عملگر ارجاع (&) در PHP چیست؟ عملگر ارجاع در PHP (&) یک عملگر مهم است که برای ارجاع دادن به محل حافظه یک متغیر به جای کپی ارزش آن استفاده میشود. به زبان ساده، وقتی شما از عملگر ارجاع استفاده میکنید، به جای اینکه یک نسخه جدید از متغیر ایجاد کنید، شما به…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
✨ تعریف OKR
مخفف Objectives and Key Results است، یک سیستم مدیریتی است که به سازمانها و تیمها این امکان را میدهد که اهداف استراتژیک خود را به شکلی واضح تعیین کنند و سپس پیشرفت خود را نسبت به این اهداف به طور مداوم اندازهگیری کنند.
در این سیستم، "Objective" به اهداف بلندمدت و الهامبخشی اشاره دارد که سازمان میخواهد به آنها دست یابد، در حالی که "Key Results" به شاخصهای عملکردی و قابل اندازهگیری اشاره دارد که نشاندهنده پیشرفت سازمان در راه رسیدن به این اهداف است.
🎲 Objectives (اهداف)
اهداف باید الهامبخش، جسورانه و چالشبرانگیز باشند. آنها نشاندهنده آرمانها و اهدافی هستند که میخواهید به آنها دست یابید. اهداف باید به گونهای تعریف شوند که روحیه تیمی را بالا ببرند و آنها را به سمت دستاوردهای بزرگ هدایت کنند.
📈 Key Results (نتایج کلیدی)
نتایج کلیدی شاخصهای قابل اندازهگیری هستند که پیشرفت شما را به سمت رسیدن به اهداف نشان میدهند. این نتایج باید واضح، مشخص و قابل سنجش باشند تا بتوان به طور مداوم پیشرفت را ارزیابی کرد.
⚙️ پیادهسازی OKR
روش OKR برای اولین بار توسط اندی گروو، مدیرعامل اینتل، در دهه 1970 معرفی و به کار گرفته شد. این روش به اینتل کمک کرد تا با بهبود مدیریت اهداف و افزایش کارایی، به یکی از پیشگامان صنعت نیمههادی تبدیل شود.
🔄 چرخه OKR
چرخه OKR معمولاً شامل تنظیم اهداف برای دورههای زمانی مشخص (مانند سهماهه) است. پس از تنظیم اهداف و نتایج کلیدی، بررسیهای دورهای برای ارزیابی پیشرفت و تطبیق در صورت لزوم انجام میشود.
✅ مزایای OKR
- تمرکز و شفافیت: OKR به تمام اعضای سازمان کمک میکند تا بر روی اهداف مهم و اولویتدار تمرکز کنند.
- همراستایی و هماهنگی: اطمینان از اینکه همه تیمها و افراد در جهت اهداف مشترک پیش میروند.
- مسئولیتپذیری: با ارزیابی مداوم پیشرفت، افراد و تیمها مسئول دستیابی به نتایج کلیدی میشوند.
- انعطافپذیری: توانایی سریع برای تطبیق با تغییرات و چالشهای جدید.
🛠 نکات مهم برای موفقیت در OKR
برای موفقیت در استفاده از OKR، تعریف اهداف چالشبرانگیز اما دستیافتنی و نتایج کلیدی قابل اندازهگیری، ارتباط و شفافیت در سراسر سازمان و بررسیهای منظم برای ارزیابی پیشرفت ضروری است.
⚜️یک ابزار قدرتمند برای دستیابی به اهداف استراتژیک و تقویت همکاری درون سازمانی است. با پیادهسازی و اجرای صحیح، OKR میتواند به ایجاد یک فرهنگ متمرکز بر عملکرد و نوآوری در سازمان شما کمک کند.
📁 #OKR #TeamAlignment
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
مخفف Objectives and Key Results است، یک سیستم مدیریتی است که به سازمانها و تیمها این امکان را میدهد که اهداف استراتژیک خود را به شکلی واضح تعیین کنند و سپس پیشرفت خود را نسبت به این اهداف به طور مداوم اندازهگیری کنند.
در این سیستم، "Objective" به اهداف بلندمدت و الهامبخشی اشاره دارد که سازمان میخواهد به آنها دست یابد، در حالی که "Key Results" به شاخصهای عملکردی و قابل اندازهگیری اشاره دارد که نشاندهنده پیشرفت سازمان در راه رسیدن به این اهداف است.
🎲 Objectives (اهداف)
اهداف باید الهامبخش، جسورانه و چالشبرانگیز باشند. آنها نشاندهنده آرمانها و اهدافی هستند که میخواهید به آنها دست یابید. اهداف باید به گونهای تعریف شوند که روحیه تیمی را بالا ببرند و آنها را به سمت دستاوردهای بزرگ هدایت کنند.
📈 Key Results (نتایج کلیدی)
نتایج کلیدی شاخصهای قابل اندازهگیری هستند که پیشرفت شما را به سمت رسیدن به اهداف نشان میدهند. این نتایج باید واضح، مشخص و قابل سنجش باشند تا بتوان به طور مداوم پیشرفت را ارزیابی کرد.
⚙️ پیادهسازی OKR
روش OKR برای اولین بار توسط اندی گروو، مدیرعامل اینتل، در دهه 1970 معرفی و به کار گرفته شد. این روش به اینتل کمک کرد تا با بهبود مدیریت اهداف و افزایش کارایی، به یکی از پیشگامان صنعت نیمههادی تبدیل شود.
🔄 چرخه OKR
چرخه OKR معمولاً شامل تنظیم اهداف برای دورههای زمانی مشخص (مانند سهماهه) است. پس از تنظیم اهداف و نتایج کلیدی، بررسیهای دورهای برای ارزیابی پیشرفت و تطبیق در صورت لزوم انجام میشود.
✅ مزایای OKR
- تمرکز و شفافیت: OKR به تمام اعضای سازمان کمک میکند تا بر روی اهداف مهم و اولویتدار تمرکز کنند.
- همراستایی و هماهنگی: اطمینان از اینکه همه تیمها و افراد در جهت اهداف مشترک پیش میروند.
- مسئولیتپذیری: با ارزیابی مداوم پیشرفت، افراد و تیمها مسئول دستیابی به نتایج کلیدی میشوند.
- انعطافپذیری: توانایی سریع برای تطبیق با تغییرات و چالشهای جدید.
🛠 نکات مهم برای موفقیت در OKR
برای موفقیت در استفاده از OKR، تعریف اهداف چالشبرانگیز اما دستیافتنی و نتایج کلیدی قابل اندازهگیری، ارتباط و شفافیت در سراسر سازمان و بررسیهای منظم برای ارزیابی پیشرفت ضروری است.
⚜️یک ابزار قدرتمند برای دستیابی به اهداف استراتژیک و تقویت همکاری درون سازمانی است. با پیادهسازی و اجرای صحیح، OKR میتواند به ایجاد یک فرهنگ متمرکز بر عملکرد و نوآوری در سازمان شما کمک کند.
📁 #OKR #TeamAlignment
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
❤4👍1
PHP & MYSQL pinned «✨ تعریف OKR مخفف Objectives and Key Results است، یک سیستم مدیریتی است که به سازمانها و تیمها این امکان را میدهد که اهداف استراتژیک خود را به شکلی واضح تعیین کنند و سپس پیشرفت خود را نسبت به این اهداف به طور مداوم اندازهگیری کنند. در این سیستم، "Objective"…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
🚀 مقدمه به دنیای RabbitMQ
در دنیای پرسرعت تکنولوژی امروز، ارتباط و تبادل اطلاعات بین سیستمها و برنامهها از اهمیت ویژهای برخوردار است. RabbitMQ یکی از ابزارهای کلیدی در این زمینه است که به عنوان یک سیستم پیامرسانی میانافزاری (Middleware) عمل میکند. این سیستم قادر است پیامها را بین بخشهای مختلف یک برنامه، یا حتی بین برنامههای مختلف، در یک معماری مبتنی بر خدمات (Service-Oriented Architecture) یا معماری میکروسرویسها (Microservices) انتقال دهد.
🐇 RabbitMQ ?
یک بروکر پیامرسانی متن باز است که بر اساس پروتکل AMQP (Advanced Message Queuing Protocol) پیادهسازی شده است. این سیستم به توسعهدهندگان امکان میدهد تا به راحتی و با انعطافپذیری بالا، پیامها را بین اجزای مختلف یک برنامه یا سیستم منتقل کنند. RabbitMQ یک راه حل قدرتمند برای مسائل مربوط به هماهنگسازی و غیرهمزمانسازی در برنامهها است.
🛠 کاربردهای RabbitMQ
🔸انتقال پیامها در معماریهای مبتنی بر خدمات یا میکروسرویسها: RabbitMQ به عنوان یک سیستم میانافزاری، پیامها را بین سرویسهای مختلف در یک معماری پیچیده انتقال میدهد.
🔸توزیع کارها بین (Workers): در سیستمهایی که نیاز به پردازش موازی و توزیع شده دارند، RabbitMQ میتواند برای توزیع کارها بین نودهای پردازشی استفاده شود.
🔸تضمین دلیوری پیامها: RabbitMQ از تاییدات پیام و دوام پیامها پشتیبانی میکند تا از از دست نرفتن پیامها در صورت بروز خطا اطمینان حاصل شود.
🔸انعطافپذیری و مقیاسپذیری: RabbitMQ امکان افزایش ظرفیت و توسعهپذیری را با استفاده از کلاسترها و تعادلبارها (Load Balancers) فراهم میکند.
✅ مزایای RabbitMQ
- قابلیت اطمینان: ارائه مکانیزمهایی برای تضمین دلیوری پیام، شامل تایید پیام و ذخیرهسازی دائمی.
- انعطافپذیری: پشتیبانی از چندین الگوی پیامرسانی، از جمله publish/subscribe، request/reply و routing patterns.
- مقیاسپذیری و عملکرد: قابلیت مقیاسپذیری به صورت افقی و عمودی برای پشتیبانی از بار کاری سنگین.
- پشتیبانی از چندین زبان برنامهنویسی: کلاینتها و کتابخانههایی برای زبانهای برنامهنویسی مختلف مانند Python، Java، .NET، PHP و دیگران.
❌ معایب RabbitMQ
- پیچیدگی در پیکربندی و مدیریت: نیاز به دانش فنی برای پیکربندی صحیح و بهینهسازی عملکرد.
- مدیریت حافظه و منابع: در بار کاریهای بسیار بالا، مدیریت منابع و حافظه میتواند چالشبرانگیز باشد.
- وابستگی به زیرساخت: نیاز به زیرساخت قابل اعتماد و پایدار برای اجرای RabbitMQ.
⚙️ کجا از RabbitMQ استفاده میشود؟
در سیستمهایی با نیاز به انتقال پیام قابل اعتماد و انعطافپذیر، از استارتآپها تا شرکتهای بزرگ، مورد استفاده قرار میگیرد. از جمله کاربردها میتوان به سیستمهای تجارت الکترونیک، شبکههای اجتماعی، سیستمهای مالی و بانکی، و سیستمهای پردازش دادههای بزرگ اشاره کرد.
🔍 نتیجهگیری
به عنوان یک ابزار انعطافپذیر و قدرتمند در انتقال پیام بین بخشهای مختلف یک برنامه یا سیستم، با قابلیتهایی مانند تضمین دلیوری، مقیاسپذیری، و پشتیبانی از چندین الگوی پیامرسانی، امکانات گستردهای را برای توسعهدهندگان فراهم میکند. با وجود برخی چالشها در مدیریت و پیکربندی، RabbitMQ همچنان یکی از محبوبترین انتخابها در میان سیستمهای پیامرسانی است.
📁 #RabbitMQ #MessageBroker
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
در دنیای پرسرعت تکنولوژی امروز، ارتباط و تبادل اطلاعات بین سیستمها و برنامهها از اهمیت ویژهای برخوردار است. RabbitMQ یکی از ابزارهای کلیدی در این زمینه است که به عنوان یک سیستم پیامرسانی میانافزاری (Middleware) عمل میکند. این سیستم قادر است پیامها را بین بخشهای مختلف یک برنامه، یا حتی بین برنامههای مختلف، در یک معماری مبتنی بر خدمات (Service-Oriented Architecture) یا معماری میکروسرویسها (Microservices) انتقال دهد.
🐇 RabbitMQ ?
یک بروکر پیامرسانی متن باز است که بر اساس پروتکل AMQP (Advanced Message Queuing Protocol) پیادهسازی شده است. این سیستم به توسعهدهندگان امکان میدهد تا به راحتی و با انعطافپذیری بالا، پیامها را بین اجزای مختلف یک برنامه یا سیستم منتقل کنند. RabbitMQ یک راه حل قدرتمند برای مسائل مربوط به هماهنگسازی و غیرهمزمانسازی در برنامهها است.
🛠 کاربردهای RabbitMQ
🔸انتقال پیامها در معماریهای مبتنی بر خدمات یا میکروسرویسها: RabbitMQ به عنوان یک سیستم میانافزاری، پیامها را بین سرویسهای مختلف در یک معماری پیچیده انتقال میدهد.
🔸توزیع کارها بین (Workers): در سیستمهایی که نیاز به پردازش موازی و توزیع شده دارند، RabbitMQ میتواند برای توزیع کارها بین نودهای پردازشی استفاده شود.
🔸تضمین دلیوری پیامها: RabbitMQ از تاییدات پیام و دوام پیامها پشتیبانی میکند تا از از دست نرفتن پیامها در صورت بروز خطا اطمینان حاصل شود.
🔸انعطافپذیری و مقیاسپذیری: RabbitMQ امکان افزایش ظرفیت و توسعهپذیری را با استفاده از کلاسترها و تعادلبارها (Load Balancers) فراهم میکند.
✅ مزایای RabbitMQ
- قابلیت اطمینان: ارائه مکانیزمهایی برای تضمین دلیوری پیام، شامل تایید پیام و ذخیرهسازی دائمی.
- انعطافپذیری: پشتیبانی از چندین الگوی پیامرسانی، از جمله publish/subscribe، request/reply و routing patterns.
- مقیاسپذیری و عملکرد: قابلیت مقیاسپذیری به صورت افقی و عمودی برای پشتیبانی از بار کاری سنگین.
- پشتیبانی از چندین زبان برنامهنویسی: کلاینتها و کتابخانههایی برای زبانهای برنامهنویسی مختلف مانند Python، Java، .NET، PHP و دیگران.
❌ معایب RabbitMQ
- پیچیدگی در پیکربندی و مدیریت: نیاز به دانش فنی برای پیکربندی صحیح و بهینهسازی عملکرد.
- مدیریت حافظه و منابع: در بار کاریهای بسیار بالا، مدیریت منابع و حافظه میتواند چالشبرانگیز باشد.
- وابستگی به زیرساخت: نیاز به زیرساخت قابل اعتماد و پایدار برای اجرای RabbitMQ.
⚙️ کجا از RabbitMQ استفاده میشود؟
در سیستمهایی با نیاز به انتقال پیام قابل اعتماد و انعطافپذیر، از استارتآپها تا شرکتهای بزرگ، مورد استفاده قرار میگیرد. از جمله کاربردها میتوان به سیستمهای تجارت الکترونیک، شبکههای اجتماعی، سیستمهای مالی و بانکی، و سیستمهای پردازش دادههای بزرگ اشاره کرد.
🔍 نتیجهگیری
به عنوان یک ابزار انعطافپذیر و قدرتمند در انتقال پیام بین بخشهای مختلف یک برنامه یا سیستم، با قابلیتهایی مانند تضمین دلیوری، مقیاسپذیری، و پشتیبانی از چندین الگوی پیامرسانی، امکانات گستردهای را برای توسعهدهندگان فراهم میکند. با وجود برخی چالشها در مدیریت و پیکربندی، RabbitMQ همچنان یکی از محبوبترین انتخابها در میان سیستمهای پیامرسانی است.
📁 #RabbitMQ #MessageBroker
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
❤3👍1
PHP & MYSQL pinned «🚀 مقدمه به دنیای RabbitMQ در دنیای پرسرعت تکنولوژی امروز، ارتباط و تبادل اطلاعات بین سیستمها و برنامهها از اهمیت ویژهای برخوردار است. RabbitMQ یکی از ابزارهای کلیدی در این زمینه است که به عنوان یک سیستم پیامرسانی میانافزاری (Middleware) عمل میکند. این…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
✨ آشنایی با Heredoc در PHP
آیا تا به حال با مشکل تعریف رشتههای چند خطی در PHP مواجه شدهاید؟ 🤔 ممکن است در کار با متنهای طولانی یا فرمتهایی مانند JSON و HTML به دنبال راه حلی راحتتر از استفاده مکرر از نقل قولها و کاراکترهای اسکیپ باشید. اینجاست که Heredoc به کمک شما میآید!
📖 Heredoc ?
یک سینتکس در PHP است که امکان تعریف راحت و خوانای رشتههای چند خطی را فراهم میکند. این روش به شما اجازه میدهد متنهای بزرگ را بدون نگرانی در مورد اسکیپ کردن کاراکترهای خاص قرار دهید.
🧐 چگونه کار میکند؟
برای استفاده از Heredoc، کافی است عبارت
📌 مثال
🛠 نکات کاربردی:
- شناسهها میتوانند هر نامی باشند، اما باید معتبر و منحصر به فرد در متن شما باشند.
- اطمینان حاصل کنید که پس از شناسه پایانی و قبل از
- در واقع Heredoc برای قرار دادن HTML، SQL، JSON و هر نوع دادهی چند خطی دیگری در کد PHP ایدهآل است.
🔥 جمعبندی:
ابزاری قدرتمند در PHP است که به شما کمک میکند با راحتی بیشتری با رشتههای چند خطی کار کنید. با استفاده از این سینتکس، میتوانید کدهای خود را خواناتر و مدیریتپذیرتر نگه دارید.
📁 #PHP #Heredoc
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
آیا تا به حال با مشکل تعریف رشتههای چند خطی در PHP مواجه شدهاید؟ 🤔 ممکن است در کار با متنهای طولانی یا فرمتهایی مانند JSON و HTML به دنبال راه حلی راحتتر از استفاده مکرر از نقل قولها و کاراکترهای اسکیپ باشید. اینجاست که Heredoc به کمک شما میآید!
📖 Heredoc ?
یک سینتکس در PHP است که امکان تعریف راحت و خوانای رشتههای چند خطی را فراهم میکند. این روش به شما اجازه میدهد متنهای بزرگ را بدون نگرانی در مورد اسکیپ کردن کاراکترهای خاص قرار دهید.
🧐 چگونه کار میکند؟
برای استفاده از Heredoc، کافی است عبارت
<<< را دنبال شده با یک شناسه دلخواه (مثلا EOT) تایپ کنید. سپس، رشتهی مورد نظر خود را در خطوط بعدی قرار دهید و با همان شناسه در یک خط جدید به پایان ببرید. مهم است که شناسه پایانی باید در خط جدید و تنها محتوای آن خط باشد، بدون هیچ فضای خالی پیش یا پس از آن.📌 مثال
<<<EOT
Please inspect the following text and determine if it is spam.
EOT;
🛠 نکات کاربردی:
- شناسهها میتوانند هر نامی باشند، اما باید معتبر و منحصر به فرد در متن شما باشند.
- اطمینان حاصل کنید که پس از شناسه پایانی و قبل از
; هیچ کاراکتر اضافی وجود ندارد.- در واقع Heredoc برای قرار دادن HTML، SQL، JSON و هر نوع دادهی چند خطی دیگری در کد PHP ایدهآل است.
🔥 جمعبندی:
ابزاری قدرتمند در PHP است که به شما کمک میکند با راحتی بیشتری با رشتههای چند خطی کار کنید. با استفاده از این سینتکس، میتوانید کدهای خود را خواناتر و مدیریتپذیرتر نگه دارید.
📁 #PHP #Heredoc
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
❤3👍1
PHP & MYSQL pinned «✨ آشنایی با Heredoc در PHP آیا تا به حال با مشکل تعریف رشتههای چند خطی در PHP مواجه شدهاید؟ 🤔 ممکن است در کار با متنهای طولانی یا فرمتهایی مانند JSON و HTML به دنبال راه حلی راحتتر از استفاده مکرر از نقل قولها و کاراکترهای اسکیپ باشید. اینجاست که Heredoc…»
Forwarded from کانال آموزشی لاراول (PapiDon)
🎉 Laravel 11 😍
بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد.
🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد زیر اشاره کرد:
1️⃣ ساختار دایرکتوری بهینهشده: کدنویسی ماژولار و استفاده مجدد از کد را آسانتر میکند، که نتیجهاش افزایش کارایی در فرآیند توسعه است.
2️⃣ مدیریت تنظیمات: با رویکردی جدید که تمامی تنظیمات از یک منبع بالادستی به ارث میبرند، تنظیمات را میتوان به صورت سادهتر و متمرکزتری مدیریت کرد.
3️⃣ قابلیت
4️⃣ بهروزرسانیهای مربوط به مدیریت مسیریابی: تعداد فایلهای مسیر پیشفرض از چهار به دو فایل کاهش یافته و برای افزودن مسیرهای API به صورت انتخابی عمل میکنید، که منجر به ساختار برنامهای تمیزتر و سفارشیتر میشود.
📚 سعی خواهیم کرد موضوعات مهم را در کانال به اشتراک بگذاریم و حتماً درباره آنها مطلب منتشر کنیم. با ما حتما همراه باشید. 🫶😊
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد.
🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد زیر اشاره کرد:
1️⃣ ساختار دایرکتوری بهینهشده: کدنویسی ماژولار و استفاده مجدد از کد را آسانتر میکند، که نتیجهاش افزایش کارایی در فرآیند توسعه است.
2️⃣ مدیریت تنظیمات: با رویکردی جدید که تمامی تنظیمات از یک منبع بالادستی به ارث میبرند، تنظیمات را میتوان به صورت سادهتر و متمرکزتری مدیریت کرد.
3️⃣ قابلیت
Dumpable: تجربهی دیباگ کردن را با امکان استفاده از متدهای ()dd و ()dump درون کلاسها، بهبود میبخشد و دیباگ کردن را در سرتاسر فریمورک یکپارچه و مداوم میسازد.4️⃣ بهروزرسانیهای مربوط به مدیریت مسیریابی: تعداد فایلهای مسیر پیشفرض از چهار به دو فایل کاهش یافته و برای افزودن مسیرهای API به صورت انتخابی عمل میکنید، که منجر به ساختار برنامهای تمیزتر و سفارشیتر میشود.
📚 سعی خواهیم کرد موضوعات مهم را در کانال به اشتراک بگذاریم و حتماً درباره آنها مطلب منتشر کنیم. با ما حتما همراه باشید. 🫶😊
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
❤2🔥1
PHP & MYSQL pinned «🎉 Laravel 11 😍 بالاخره انتظارها به پایان رسید و نسخه ۱۱ فریمورک محبوب لاراول منتشر شد! این نسخه جدید با قابلیتهای نوآورانه و بهبودهای چشمگیری همراه است که تجربه توسعهدهندگان را به سطح جدیدی ارتقا میبخشد. 🔍 از مهمترین قابلیتهای این نسخه میتوان به موارد…»
Forwarded from کانال آموزشی لاراول (PapiDon)
🔧 راهنمای رفع مشکل اتصال به دیتابیس در لاراول 11
🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیشفرض DB_CONNECTION=sqlite، برخی از توسعهدهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند. یکی از رایجترین این خطاها مربوط به تنظیمات collation است.
برای مثال، خطای SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8mb4_0900_ai_ci' نشان میدهد که تنظیمات collation با نسخه فعلی سرور MySQL یا MariaDB شما سازگار نیست.
⛔️ علت خطا و راهحلها:
خطای Unknown collation: 'utf8mb4_0900_ai_ci به این دلیل رخ میدهد که سرور دیتابیس MySQL یا MariaDB شما از تنظیمات collation utf8mb4_0900_ai_ci پشتیبانی نمیکند. این collation برای نسخههای جدید MySQL معرفی شده است و به بهبود عملکرد و دقت مقایسه دادهها کمک میکند، اما در نسخههای قدیمیتر MySQL یا برخی نسخههای MariaDB پشتیبانی نمیشود.
🛠 راهحلها:
1️⃣ ارتقاء سرور MySQL/MariaDB:
اگر امکانپذیر است، سرور دیتابیس را به نسخهای ارتقاء دهید که از این
2️⃣ تغییر Collation در پروژه لاراول:
- به فایل
- در بخش اتصالات دیتابیس (
📝 فایل
⚙️ اجرای مایگریشنها
با استفاده از دستور php artisan migrate ، اطمینان حاصل کنید که جدولهای مورد نیاز در دیتابیس ایجاد شدهاند. این کار همچنین به حل مشکلات مربوط به عدم وجود جدولها کمک میکند.
⚜️برای اطمینان از اعمال تغییرات، دستورات php artisan config:cache و php artisan cache:clear را اجرا کنید تا تنظیمات کش شده پاک شود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیشفرض DB_CONNECTION=sqlite، برخی از توسعهدهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند. یکی از رایجترین این خطاها مربوط به تنظیمات collation است.
برای مثال، خطای SQLSTATE[HY000]: General error: 1273 Unknown collation: 'utf8mb4_0900_ai_ci' نشان میدهد که تنظیمات collation با نسخه فعلی سرور MySQL یا MariaDB شما سازگار نیست.
⛔️ علت خطا و راهحلها:
خطای Unknown collation: 'utf8mb4_0900_ai_ci به این دلیل رخ میدهد که سرور دیتابیس MySQL یا MariaDB شما از تنظیمات collation utf8mb4_0900_ai_ci پشتیبانی نمیکند. این collation برای نسخههای جدید MySQL معرفی شده است و به بهبود عملکرد و دقت مقایسه دادهها کمک میکند، اما در نسخههای قدیمیتر MySQL یا برخی نسخههای MariaDB پشتیبانی نمیشود.
🛠 راهحلها:
1️⃣ ارتقاء سرور MySQL/MariaDB:
اگر امکانپذیر است، سرور دیتابیس را به نسخهای ارتقاء دهید که از این
collation پشتیبانی میکند.2️⃣ تغییر Collation در پروژه لاراول:
- به فایل
config/database.php در پروژه لاراول خود بروید.- در بخش اتصالات دیتابیس (
mysql در این مورد)، collation را به یک مقدار سازگار با نسخهی MySQL/MariaDB سرورتان تغییر دهید. برای نسخههای قدیمیتر، utf8mb4_unicode_ci توصیه میشود:'mysql' => [
...
'collation' => 'utf8mb4_unicode_ci',
...
],
📝 فایل
env. پروژه خود را بررسی و اطمینان حاصل کنید که اطلاعات دیتابیس به درستی تنظیم شدهاند:DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
⚙️ اجرای مایگریشنها
با استفاده از دستور php artisan migrate ، اطمینان حاصل کنید که جدولهای مورد نیاز در دیتابیس ایجاد شدهاند. این کار همچنین به حل مشکلات مربوط به عدم وجود جدولها کمک میکند.
⚜️برای اطمینان از اعمال تغییرات، دستورات php artisan config:cache و php artisan cache:clear را اجرا کنید تا تنظیمات کش شده پاک شود.
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
❤4👍2
PHP & MYSQL pinned «🔧 راهنمای رفع مشکل اتصال به دیتابیس در لاراول 11 🔸با آغاز به کار نسخه جدید لاراول 11 و تنظیم پیشفرض DB_CONNECTION=sqlite، برخی از توسعهدهندگان که تمایل دارند از mysql به عنوان دیتابیس پروژه خود استفاده کنند، ممکن است با خطاهای اتصال دیتابیس روبرو شوند.…»
Forwarded from کانال آموزشی لاراول (PapiDon)
سلام رفقا
بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی🫶
⚡️ نگاهی به ویژگیهای جدید PHP 8.4
به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت.
📅 زمان انتشار PHP 8.4 چه تاریخی است؟
انتشار رسمی PHP 8.4 برای ۲۱ نوامبر ۲۰۲۴ برنامهریزی شده است. پیش از انتشار رسمی، این نسخه طی ۶ ماه مراحل پیشانتشار را از آلفا، بتا و کاندیداهای انتشار طی میکند.
💥 Property Hooks در PHP
از زبانهایی مثل Kotlin، C# و Swift الهام گرفته شده است. این ویژگی شامل دو نوع سینتکس متفاوت است که شبیه به closures کوتاه و چند خطی هستند:
🤓 در واقع Property hooks کمک میکنند تا از کدهای زائد مربوط به getter و setter های خاصیتها خلاص شویم و به یک خاصیت اجازه میدهد که دسترسی و بهروزرسانیها را با استفاده از hooks تعریف کند.
☄️ دسترسی به اعضای کلاس بدون پرانتز
از زمان معرفی دسترسی به اعضای کلاس هنگام نمونهسازی، شما باید ()new MyClass را در پرانتز قرار دهید، وگرنه با خطا مواجه میشوید. سینتکس پیشنهادی به شما این امکان را میدهد که به ثوابت، خصوصیات و متدها بدون نیاز به پرانتز اضافی دسترسی داشته باشید:
⌛ این بهروزرسانی مشکل کوچک دسترسی به اعضای کلاس را سادهتر میکند، بهطوری که نیازی به افزودن پرانتزهای اضافی یا استفاده از متد سازنده استاتیک نخواهد بود. این تغییر سینتکس PHP را بیشتر با زبانهای C مانند جاوا، #C و TypeScript همسو میکند که نیازی به پرانتزهای احاطهکننده ندارند.
🔗 برای مطالعه بیشتر PHP 8.4
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی
به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت.
📅 زمان انتشار PHP 8.4 چه تاریخی است؟
انتشار رسمی PHP 8.4 برای ۲۱ نوامبر ۲۰۲۴ برنامهریزی شده است. پیش از انتشار رسمی، این نسخه طی ۶ ماه مراحل پیشانتشار را از آلفا، بتا و کاندیداهای انتشار طی میکند.
از زبانهایی مثل Kotlin، C# و Swift الهام گرفته شده است. این ویژگی شامل دو نوع سینتکس متفاوت است که شبیه به closures کوتاه و چند خطی هستند:
class User implements Named
{
private bool $isModified = false;
public function __construct(
private string $first,
private string $last
) {}
public string $fullName {
// بازنویسی اکشن "خواندن" با منطق دلخواه
get => $this->first . " " . $this->last;
// بازنویسی اکشن "نوشتن" با منطق دلخواه
set {
[$this->first, $this->last] = explode(' ', $value, 2);
$this->isModified = true;
}
}
}
از زمان معرفی دسترسی به اعضای کلاس هنگام نمونهسازی، شما باید ()new MyClass را در پرانتز قرار دهید، وگرنه با خطا مواجه میشوید. سینتکس پیشنهادی به شما این امکان را میدهد که به ثوابت، خصوصیات و متدها بدون نیاز به پرانتز اضافی دسترسی داشته باشید:
// پرانتزهای اضافی برای دسترسی به اعضای کلاس مورد نیاز هستند
$request = (new Request())->withMethod('GET')->withUri('/hello-world');
// خطا PHP (<= PHP 8.3): syntax error, unexpected token "->"
$request = new Request()->withMethod('GET')->withUri('/hello-world');
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1
PHP & MYSQL pinned «سلام رفقا بعد از یه مدت نبودن، دوباره برگشتیم پر از انرژی 🫶 ⚡️ نگاهی به ویژگیهای جدید PHP 8.4 به زودی PHP 8.4 منتشر میشود و در این مطلب به بررسی ویژگیهای اعلامشده و امکانات جدید این نسخه خواهیم پرداخت. 📅 زمان انتشار PHP 8.4 چه تاریخی است؟ انتشار…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
CGroup (Control Group)
یکی از ویژگیهای مهم در سیستمعامل لینوکس است که به شما امکان مدیریت منابع سیستمی مانند CPU، حافظه، دیسک و شبکه را برای گروهی از فرآیندها میدهد. این ابزار برای کنترل و محدود کردن استفاده از منابع توسط برنامهها و سرویسها بسیار مفید است.
1️⃣ گروهبندی فرآیندها: CGroup به شما این امکان را میدهد که فرآیندهای مرتبط را در یک گروه قرار دهید. به عنوان مثال، میتوانید همه فرآیندهای یک برنامه خاص را در یک گروه بگذارید.
2️⃣ مدیریت منابع: بعد از گروهبندی فرآیندها، میتوانید منابع سیستمی را به آن گروه اختصاص دهید یا محدود کنید. مثلاً میتوانید تعیین کنید که این گروه از فرآیندها فقط از 20 درصد از CPU استفاده کنند یا بیش از 1 گیگابایت حافظه مصرف نکنند.
3️⃣ نظارت و کنترل: با استفاده از CGroup، میتوانید مصرف منابع توسط گروههای مختلف را نظارت کنید و در صورت نیاز تنظیمات را تغییر دهید تا از استفاده بیش از حد منابع جلوگیری کنید.
- محدود کردن منابع: برای جلوگیری از اینکه یک برنامه تمام منابع سیستم را مصرف کند و باعث کاهش کارایی دیگر برنامهها شود.
- بهبود امنیت: با محدود کردن دسترسی به منابع، میتوانید از رفتارهای مخرب جلوگیری کنید.
- مدیریت سرویسها: در سرورهای بزرگ و پیچیده، میتوانید سرویسهای مختلف را با استفاده از CGroup مدیریت و کنترل کنید تا هر کدام منابع مشخصی داشته باشند.
فرض کنید یک سرور دارید که چندین سرویس مختلف روی آن اجرا میشود. میخواهید اطمینان حاصل کنید که سرویس وب شما همیشه عملکرد خوبی دارد و تحت تاثیر سرویسهای دیگر قرار نمیگیرد. با استفاده از CGroup، میتوانید:
- گروهی برای فرآیندهای سرویس وب ایجاد کنید.
- محدودیتهایی برای استفاده از CPU و حافظه این گروه تعیین کنید.
- مطمئن شوید که حتی اگر سرویسهای دیگر منابع زیادی مصرف کنند، سرویس وب شما همچنان منابع کافی برای کار کردن دارد.
🐳 چگونه Docker از CGroup استفاده میکند؟
1️⃣ مدیریت منابع: Docker از CGroup برای مدیریت منابع استفاده میکند. به این معنا که میتواند منابع CPU، حافظه، دیسک و شبکه را برای هر کانتینر به طور جداگانه محدود کند.
2️⃣ ایزولهسازی: CGroup به Docker کمک میکند تا هر کانتینر را از کانتینرهای دیگر ایزوله کند. این ایزولهسازی به اطمینان از اینکه فرآیندهای یک کانتینر نمیتوانند منابع کانتینرهای دیگر را تحت تأثیر قرار دهند، کمک میکند.
3️⃣ نظارت و کنترل: Docker با استفاده از CGroup میتواند مصرف منابع هر کانتینر را نظارت کند و در صورت نیاز تنظیمات منابع را تغییر دهد تا از کارایی و پایداری سیستم اطمینان حاصل کند.
پس CGroup ابزاری قدرتمند در لینوکس است که به شما امکان مدیریت بهتر منابع سیستمی را میدهد. با استفاده از CGroup میتوانید فرآیندها را گروهبندی کنید، منابع را به صورت دقیق تخصیص دهید و از کارایی و پایداری سیستم خود مطمئن شوید.
📁 #Linux #Docker
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
PHP & MYSQL pinned «⭐️ مفهوم CGroup در لینوکس به زبان ساده CGroup (Control Group) یکی از ویژگیهای مهم در سیستمعامل لینوکس است که به شما امکان مدیریت منابع سیستمی مانند CPU، حافظه، دیسک و شبکه را برای گروهی از فرآیندها میدهد. این ابزار برای کنترل و محدود کردن استفاده از…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
yum نصب کنید، ممکن است با خطای زیر مواجه شوید:Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
این مشکل به دلیل پایان عمر (EOL) CentOS 8 و عدم دسترسی به مخازن پیشفرض CentOS به وجود میآید. زمانی که CentOS 8 به پایان عمر خود رسید، مخازن پیشفرض آن دیگر بهروزرسانی نمیشوند و دسترسی به آنها ممکن است محدود یا قطع شود. بنابراین نیاز است که از مخازن جایگزین مانند مخازن Vault استفاده کنیم.
1️⃣ ایجاد یا ویرایش فایل مخزن
ابتدا باید مخازن Vault را در یک فایل مخزن جدید تنظیم کنیم تا بتوانیم به بستههای مورد نیاز دسترسی پیدا کنیم.
- ایجاد یا ویرایش یک فایل مخزن جدید:
vi /etc/yum.repos.d/CentOS-Vault.repo
- اضافه کردن مخازن Vault:
محتوای زیر را در فایل قرار دهید:
[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://vault.centos.org/8.3.2011/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/8.3.2011/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/8.3.2011/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
2️⃣ غیرفعال کردن مخازن پیشفرض
باید مطمئن شویم که مخازن پیشفرض CentOS غیرفعال شدهاند تا تداخل ایجاد نشود.
- ویرایش فایلهای مخازن پیشفرض:
فایلهای مخازن پیشفرض در مسیر
/etc/yum.repos.d/ قرار دارند. به عنوان مثال، فایلهای زیر را ویرایش کنید:vi /etc/yum.repos.d/CentOS-Linux-AppStream.repo
vi /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
vi /etc/yum.repos.d/CentOS-Linux-Extras.repo
- غیرفعال کردن مخازن پیشفرض:
در هر کدام از این فایلها، خط
enabled را به 0 تغییر دهید. به عنوان مثال:[AppStream]
name=CentOS-$releasever - AppStream
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
همین تغییر را برای
BaseOS و Extras انجام دهید.3️⃣ پاک کردن کش YUM و بهروزرسانی
- پاک کردن کش YUM:
yum clean all
- بهروزرسانی لیست بستهها:
yum makecache
4️⃣ نصب بسته
tree- نصب بسته
tree:حالا باید بتوانید بسته
tree را بدون مشکل نصب کنید.yum install tree
متادیتا شامل اطلاعاتی در مورد بستهها، نسخهها، وابستگیها و سایر جزئیات مرتبط با مخازن نرمافزاری است.
yum از متادیتا برای جستجو و مدیریت بستهها استفاده میکند.متادیتا اطلاعاتی است که
yum از آن برای مدیریت بستهها استفاده میکند. این اطلاعات شامل:- لیست بستههای موجود
- نسخههای مختلف هر بسته
- وابستگیهای هر بسته
- اطلاعات مربوط به امنیت و بروزرسانیها
بدون دسترسی به متادیتا،
yum نمیتواند بستههای مورد نظر شما را پیدا و نصب کند.مخازن Vault شامل نسخههای قدیمیتر از بستههای نرمافزاری است که برای نسخههایی از سیستم عامل که به پایان عمر خود رسیدهاند (EOL) استفاده میشود. این مخازن به شما امکان دسترسی به بستههای نرمافزاری و بروزرسانیها را حتی پس از پایان عمر رسمی نسخه سیستم عامل میدهند.
مخازن Vault به شما اجازه میدهند تا به نسخههای قدیمیتر بستهها دسترسی داشته باشید که دیگر در مخازن اصلی موجود نیستند. این مخازن به ویژه برای سیستمهای قدیمی که به پایان عمر خود رسیدهاند (EOL) مفید هستند.
📁 #Linux #Docker
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1👏1
PHP & MYSQL pinned «🖥 حل مشکل دانلود متادیتا برای مخازن CentOS در کانتینر داکر با استفاده از مخازن Vault 🧐 هنگامی که تلاش میکنید بستهای را در داخل کانتینر CentOS-8 با استفاده از yum نصب کنید، ممکن است با خطای زیر مواجه شوید: Failed to download metadata for repo 'appstream':…»
Forwarded from اتاق برنامه نویسی </> (PapiDon)
یادگیری چیزهایی که تغییر نمیکنند.
در این پست، تلاش میکنیم بفهمیم چرا باید اصول پایه را به جای فریمورکها یاد بگیریم و این موضوع چه تاثیری دارد.
اینجا است که اثر Lindy وارد میشود. این اثر میگوید تکنولوژیها و نوآوریهایی که به مدت طولانی مورد استفاده قرار گرفتهاند، احتمال بیشتری دارند که در آینده نیز مورد استفاده قرار گیرند. به عبارت دیگر، هرچه یک آیتم بیشتر مورد استفاده قرار گرفته باشد، احتمال بیشتری دارد که همچنان استفاده شود.
ما توسعهدهندگان دوست داریم هرچه زودتر چیزهای جدید را یاد بگیریم. این چیزها عمدتا شامل فریمورکها و ابزارهای جدید است (مانند React، Angular، Spring، Web Forms و غیره). با این حال، این فریمورکها معمولاً عمر کوتاهی دارند، در بهترین حالت ۲ تا ۵ سال. به جای یادگیری فریمورکها، که تا حدی لازم است، باید بیشتر روی یادگیری اصول پایه تمرکز کنیم.
یادگیری اصول پایه توسعه نرمافزار به توسعهدهندگان کمک میکند اصول و مفاهیم زیرین که در فریمورکها و زبانهای برنامهنویسی مختلف مشترک هستند را بفهمند. این درک به انعطافپذیری و سازگاری بیشتر هنگام کار با تکنولوژیهای جدید یا مواجهه با مشکلاتی که یک فریمورک خاص ممکن است زمان ببرد تا حل شود، منجر میشود.
علاوه بر این، داشتن درکی قوی از اصول پایه میتواند به استفاده موثرتر و کارآمدتر از فریمورکها منجر شود، زیرا توسعهدهنده بهتر میتواند فریمورکها را برای برآورده کردن نیازهای خاص سفارشی و گسترش دهد.
مثالی از یک اپلیکیشن وب که به کاربران امکان آپلود و اشتراکگذاری تصاویر را میدهد در نظر بگیرید که مثلاً در Ruby on Rails و قابلیتهای آن برای پردازش تصاویر انجام شده است. اگر تعداد کاربران افزایش یابد، فقط میتوانیم با مسائل عملکردی کار کنیم اگر فریمورک را خوب بشناسیم. با این حال، اگر اصول پایه توسعه وب را بفهمیم، میتوانیم نقاط ضعف را شناسایی کرده و راهحلهای مختلفی مانند استفاده از CDN، بهینهسازی اندازه تصاویر، استفاده از راهحلهای مختلف ذخیرهسازی و غیره را امتحان کنیم.
🔸Algorithms
🔹Data
🔸Clean Code
🔹SOLID Principles
🔸OO Programming
🔹Design Patterns
🔸Distributed Computing
🔹 System Design
...
نوشته دیوید توماس و اندرو هانت.
دیوید فارلی
استیو مککانل
تیتوس وینترز، تام منشرک و هیروم رایت
عمو باب مارتین
اریک فریمن
مارتین فاولر
آدیتیا بارگاوا
📁 #Skills
✅ کانال تخصصی لاراول
📌 @PapiDon_state
☕️ اتاق برنامهنویسی
📌 @PapiDon_coding
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1