کانال آموزشی لاراول
3.06K subscribers
120 photos
4 videos
38 links
📌 کانال اتاق برنامه نویسی
@PapiDon_coding
Download Telegram
کانال آموزشی لاراول
Photo
مفهوم Overlapping

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


🔹نگاهی به Laravel و جلوگیری از Overlapping

لاراول امکانات مختلفی را برای جلوگیری از تداخل فراهم می‌کند، به ویژه در زمینه Task Scheduling و Queue Handling.

1️⃣ مفهوم Task Scheduling:

اجازه می‌دهد تا وظایف (tasks) برنامه‌ریزی شوند (مثلا اجرای یک کار خاص هر روز). برای جلوگیری از تداخل، Laravel امکان استفاده از متد withoutOverlapping را در زمان برنامه‌ریزی یک وظیفه فراهم می‌کند. این متد اطمینان حاصل می‌کند که اگر یک وظیفه هنوز در حال اجرا باشد، نسخه جدید آن وظیفه شروع به کار نکند.


$schedule->command('emails:send')->daily()->withoutOverlapping();


2️⃣ مفهوم Queue Handling: در مدیریت صف (Queue) نیز، Laravel راه‌حل‌هایی برای جلوگیری از تداخل ارائه می‌دهد. این شامل تکنیک‌هایی مانند تعیین اولویت‌های صف، تعیین زمان انقضا برای وظایف و استفاده از سیستم‌های پیشرفته صف مانند Redis است.


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍54
اگر هنوز نمی‌دونی Redis چیه و چه کاربردهایی داره، یه سر به کانال دوم ما "اتاق برنامه نویسی </>" حتما بزن، یه مطلب درباره این موضوع انتشار دادیم که به طور جامع به بررسی مفهوم و کاربردهای Redis پرداخته‌ایم.

دمتون گرم از حماییتون و خیلی مخلصیم 🫶😊


☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍63
کانال آموزشی لاراول
Photo
How to handle Webhook in Laravel:

📌 اگر نمیدونی مفهوم وب‌هوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده.


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

1️⃣ ایجاد روت (Route):
- ابتدا یک روت در برنامه‌تان تعریف کنید که به عنوان نقطه پایانی وب‌هوک عمل کند. این روت باید قادر به دریافت درخواست‌های HTTP POST باشد.


   Route::post('/webhook', 'WebhookController@handle');


2️⃣ تعریف کنترلر (Controller):
- کنترلری بسازید که وظیفه پردازش درخواست‌های ورودی را بر عهده داشته باشد. در اینجا، منطق لازم برای پردازش داده‌های دریافتی از وب‌هوک پیاده‌سازی می‌شود.


   class WebhookController extends Controller
{
public function handle(Request $request)
{
// منطق پردازش وب‌هوک
}
}


3️⃣ تضمین امنیت:
- اطمینان حاصل کنید که درخواست‌ها از منبع معتبری آمده‌اند. برای این منظور، ممکن است نیاز به استفاده از توکن‌های امضا شده یا سایر روش‌های احراز هویت باشد.

4️⃣ لاگ برداری و خطایابی:
- برای ردیابی آسان‌تر مشکلات احتمالی، درخواست‌ها و پاسخ‌های وب‌هوک را ثبت کنید.

5️⃣ تست کردن:
- قبل از بهره‌برداری کامل، سیستم را با داده‌های واقعی یا شبیه‌سازی شده تست کنید تا از کارکرد صحیح آن اطمینان حاصل شود.

🔍 نکات اضافی:

🔸مدیریت خطاها: مطمئن شوید که سیستم شما در صورت بروز خطا به درستی واکنش نشان می‌دهد.

🔸مقیاس‌پذیری: برنامه‌ریزی کنید که چگونه سیستم‌تان با تعداد زیادی درخواست وب‌هوک کنار می‌آید.

🔸استفاده از بسته وب‌هوک Spatie به دلیل ویژگی‌های قدرتمند و امکان استفاده برای وب‌هوک‌های متعدد توصیه می‌شود.
مطالعه داکیومنت‌های رسمی Spatie برای کسب اطلاعات بیشتر.

🔗 https://github.com/spatie/laravel-webhook-client



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍51🔥1
کانال آموزشی لاراول
How to handle Webhook in Laravel: 📌 اگر نمیدونی مفهوم وب‌هوک چیه، در کانال اتاق برنامه نویسی </> توضیح داده شده. 💻 برای رسیدگی به وب‌هوک‌ها در لاراول، مراحل خاصی را باید دنبال کنید. لاراول امکانات زیادی برای تسهیل کار با وب‌هوک‌ها فراهم می‌کند. در…
🛠 منطق پردازش وب‌هوک در لاراول (Laravel):

- منطق پردازش وب‌هوک به کدی اشاره دارد که در داخل تابع handle در WebhookController نوشته می‌شود. این منطق بستگی به نوع وب‌هوک و کاربرد خاص آن در برنامه شما دارد.

1️⃣ تأیید اعتبار درخواست:
- اولین قدم تأیید اعتبار درخواست است، که شامل بررسی منبع درخواست و احتمالاً توکن‌های امنیتی یا امضاهای دیجیتال است.


if (! $this->isRequestValid($request)) {
return response('Invalid request', 403);
}



2️⃣ پردازش داده‌های دریافتی:
- پردازش داده‌های دریافتی بسته به نوع وب‌هوک، که ممکن است شامل خواندن و تجزیه این داده‌ها باشد.


$data = $request->input('data');
// انجام عملیات بر اساس داده‌های دریافتی



3️⃣ بروزرسانی پایگاه داده:
- بروزرسانی پایگاه داده بر اساس اطلاعات دریافتی، مثلاً به‌روزرسانی وضعیت سفارش در پایگاه داده.


Order::find($data['order_id'])->update(['status' => $data['status']]);



4️⃣ ارسال اطلاعیه‌ها:
- ارسال اطلاعیه‌هایی بر اساس وب‌هوک به کاربران یا سایر سیستم‌ها.

Notification::send($user, new OrderStatusUpdated($order));



5️⃣ لاگ‌گیری و خطایابی:
- لاگ‌گیری فرآیند پردازش وب‌هوک برای اهداف خطایابی یا حسابرسی.

Log::info('Webhook processed', ['data' => $data]);




کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍92🔥1
📖 آرکیلوخوس، شاعر یونان باستان، می‌گوید:

"ما به سطح انتظاراتمان بالا نمی‌رویم، بلکه به سطح آموزش‌هایمان سقوط می‌کنیم."

🎯 این جمله پیامی عمیق دارد:

موفقیت ما در لحظات سرنوشت‌ساز، نتیجه‌ی رویاها و آرزوهایمان نیست، بلکه بازتابی از ساعات، روزها و سال‌های تمرین و تلاش مستمر ماست. هرچه در آموزش و تمرین خود جدی‌تر باشیم، در شرایط دشوار بهتر عمل خواهیم کرد.


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
10👍4💯1
کانال آموزشی لاراول
Photo
🌐 معرفی FilamentPHP:
ابزاری قدرتمند برای توسعه‌دهندگان وب بر پایه Laravel

🛠 در واقع FilamentPHP، یک کتابخانه فوق‌العاده برای ساخت رابط کاربری (UI) و تجربه کاربری (UX) در برنامه‌های وب Laravel است. این ابزار با امکانات گسترده‌ای که ارائه می‌دهد، به توسعه‌دهندگان کمک می‌کند تا رابط‌های کاربری جذاب و کارآمد بسازند.

🤩 ویژگی‌های برجسته FilamentPHP:

1️⃣ داشبوردها و پنل‌های ادمین: ساخت داشبوردهای مدیریتی و پنل‌های کاربری با طراحی زیبا و کاربردی.

2️⃣ کامپوننت‌های قابل استفاده مجدد: مجموعه‌ای از عناصر UI مانند فرم‌ها، دکمه‌ها و جدول‌ها برای استفاده در پروژه‌ها.

3️⃣ طراحی واکنش‌گرا: رابط‌های کاربری سازگار با انواع دستگاه‌ها و اندازه‌های مختلف صفحه‌نمایش.

4️⃣ تنظیمات و افزونه‌های قابل گسترش: امکان اضافه کردن ویژگی‌های جدید به راحتی.

5️⃣ سهولت در توسعه: افزایش کارایی و کاهش زمان توسعه با استفاده از FilamentPHP.

🔍 جمع‌بندی:

پس FilamentPHP یک ابزار فوق‌العاده برای توسعه‌دهندگان Laravel است که به آن‌ها امکان می‌دهد تا رابط‌های کاربری پیشرفته و تعاملی را به سادگی ایجاد کنند. این ابزار برای هر توسعه‌دهنده‌ای که به دنبال ساخت UI‌های جذاب و کارآمد است، ایده‌آل است.

🔗 صفحه مستندات:
https://filamentphp.com/docs


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍152🔥1
Media is too big
VIEW IN TELEGRAM
این ویدیو در مورد پکیج "Laravel Pulse" است و به بررسی ویژگی‌های مختلف "Pulse" می‌پردازد.

🔹در این ویدیو، نحوه نصب و استفاده از "Pulse" در یک برنامه Laravel نشان داده می‌شود. توضیح داده می‌شود که چگونه "Pulse" می‌تواند داده‌های مختلف، کارهای در صف، کوئری‌های کند، استثناها، درخواست‌ها، و درخواست‌های خروجی را جمع‌آوری و نمایش دهد.

🔸همچنین، امکان سفارشی‌سازی داشبورد "Pulse" و افزودن کارت‌های سفارشی برای نمایش داده‌های دلخواه وجود دارد.

🔹ویدیو همچنین به برخی از ملاحظات عملکردی می‌پردازد، مانند استفاده از پایگاه داده جداگانه برای داده‌های "Pulse"، استفاده از Redis برای کاهش بار بر روی پایگاه داده اصلی، و نمونه‌برداری داده‌ها برای کاهش بار سرور در وب‌سایت‌های با ترافیک بالا.

🧩 در کل، این ویدیو یک معرفی جامع به "Laravel Pulse" و نحوه استفاده از آن برای بهبود عملکرد و نظارت بر برنامه‌های Laravel است.


کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🤩11👍5🔥2
کانال آموزشی لاراول
Video
فیلتر کردن پاسخ‌های API با Laravel Purity

بسته Laravel Purity یک پکیج فیلتر کردن و مرتب‌سازی زیبا و کارآمد برای Laravel است که برای ساده‌سازی منطق پیچیده فیلتر داده‌ها و مرتب‌سازی برای کوئری‌های eloquent طراحی شده است. با افزودن ساده ()filter به کوئری‌ Eloquent خود، می‌توانید امکان فیلتر کردن توسط کاربران frontend را بر اساس پارامترهای رشته کوئری‌ URL به آسانی فراهم کنید.

🔸 فرض کنید کنترلر شما مجموعه‌ای از کتاب‌ها را برمی‌گرداند و می‌خواهید اجازه فیلتر کردن بر اساس slug دسته‌بندی mystery را بدهید:

return Book::filter()->with('category')->get();


با استفاده از این بسته، حالا می‌توانید درخواستی ارسال کنید که هدف‌گیری slug دسته‌بندی یا هر فیلد دیگری که اجازه فیلتر شدن را می‌دهید:

/api/books?filters[category][slug][$eq]=mystery


پاسخ فیلتر شده اکنون تنها شامل کتاب‌هایی در دسته‌بندی با slug mystery خواهد بود. Purity انواع فیلترها را برای مواردی مانند in$ و lt$ یا gt$ و غیره ارائه می‌دهد.

🔹در واقع Purity ویژگی‌های اصلی زیر را برای تبدیل شدن به یک بسته قدرتمند فیلتر کردن و مرتب‌سازی داده‌ها برای مدل‌های Eloquent ارائه می‌دهد:

- پشتیبانی از Livewire
- تغییر نام و محدود کردن فیلدها
- روش‌های مختلف فیلتر
- نصب و استفاده آسان
- فیلتر بر اساس ستون‌های رابطه
- فیلترهای سفارشی
- مرتب‌سازی چند ستونه

🔗 برای دستورالعمل‌های استفاده و راه‌اندازی، صفحه مستندات Purity را بررسی کنید!



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍112🔥1
📊 Laravel Easy Metrics

🧐 معرفی:
لاراول ایزی متریکس، یک بسته قدرتمند برای ایجاد و مدیریت معیارها (متریک‌ها) در برنامه‌های نوشته شده با استفاده از فریمورک لاراول است. این بسته به شما کمک می‌کند تا به راحتی داده‌های مربوط به کاربران، تراکنش‌ها، و دیگر فعالیت‌ها را جمع‌آوری، تحلیل و نمایش دهید.

🔧 نصب و راه‌اندازی:
برای نصب Laravel Easy Metrics، از طریق Composer عمل کنید. کافی است دستور زیر را در ترمینال خود اجرا کنید:

composer require sakanjo/laravel-easy-metrics


پس از نصب، می‌توانید تنظیمات مورد نیاز را در فایل پیکربندی بسته انجام دهید.

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

👩‍💻 کدنویسی:
برای ایجاد یک متریک جدید، باید یک کلاس متریک ایجاد کنید و متدهای مورد نیاز برای جمع‌آوری و نمایش داده‌ها را پیاده‌سازی نمایید. Laravel Easy Metrics با ارائه ابزارهایی برای ساده‌سازی این فرآیند، کار شما را راحت‌تر می‌کند.

🔢 داده‌ها و گزارش‌ها:
پس از ایجاد متریک‌ها، می‌توانید گزارش‌های دقیق و مفیدی را بر اساس داده‌های جمع‌آوری شده ایجاد کنید. این گزارش‌ها می‌توانند در تصمیم‌گیری‌های کسب‌وکاری و تحلیل‌های استراتژیک به شما کمک کنند.

🔗 پیوندهای مفید:
برای کسب اطلاعات بیشتر و مشاهده مستندات کامل Laravel Easy Metrics



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍7👌21
🔗 Sushi: Eloquent’s Missing “Array” Driver

🍱 در واقع Sushi، ابزاری قدرتمند از Caleb Porzio، به شما اجازه می‌دهد که مدل‌های Eloquent را در Laravel بدون استفاده از دیتابیس واقعی بسازید. این به خصوص برای داده‌هایی که تغییر نمی‌کنند یا به ندرت تغییر می‌کنند، مفید است.

مثلاً، در مورد داده‌هایی مانند فهرست کشورها، که به ندرت تغییر می‌کنند، استفاده از Sushi امکان ذخیره این داده‌ها درون یک آرایه در کلاس مدل را فراهم می‌کند، به جای اینکه نیاز به جدول دیتابیس باشد.

🛠 این کار باعث ساده‌سازی و افزایش سرعت توسعه می‌شود، به ویژه در مواردی که استفاده از یک دیتابیس کامل ضروری نیست.

📚 برای مشاهده نحوه استفاده و مثال‌های بیشتر، به لینک GitHub زیر مراجعه کنید:

🔗 GitHub - calebporzio/sushi



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍82🔥1
کانال آموزشی لاراول
Photo
یادگیری به سبک T-Shape: راز موفقیت در عرصه‌های چندرشته‌ای

📝 چرا یادگیری T-Shape اهمیت دارد؟

در دنیای پرتغییر امروز، داشتن تخصص عمیق در یک حوزه کافی نیست. یادگیری T-Shape به شما کمک می‌کند تا علاوه بر تخصص در یک زمینه، دانش کافی در حوزه‌های مختلف داشته باشید تا بتوانید در محیط‌های کاری متنوع و پروژه‌های چندرشته‌ای بهتر عمل کنید.

🔸 بخش عمودی T (تخصص عمیق):

یادگیری T-Shape از این بخش شروع می‌شود. شما باید در یک حوزه خاص تخصص و مهارت عمیق داشته باشید. این می‌تواند هر چیزی از برنامه‌نویسی گرفته تا مدیریت، بازاریابی، یا حتی هنر باشد. تمرکز بر این حوزه باعث می‌شود که در آن زمینه یک متخصص واقعی شوید.

🔹بخش افقی T (دانش گسترده):

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

🎯 چرا این مدل یادگیری مفید است؟

- افزایش توانایی همکاری: با داشتن دانش در زمینه‌های مختلف، می‌توانید بهتر با افراد از حوزه‌های گوناگون همکاری کنید.

- تقویت خلاقیت: ترکیب دانش‌های مختلف می‌تواند منجر به ایده‌های نوآورانه شود.

- انعطاف‌پذیری در شغل: داشتن مهارت‌های متنوع، شما را برای فرصت‌های مختلف شغلی آماده می‌کند.

🌱 چگونه می‌توانیم این مفهوم را در زندگی خود پیاده‌سازی کنیم؟

- ابتدا بر روی توسعه تخصص عمیق در یک حوزه تمرکز کنید.

- سپس، به دنبال فرصت‌های یادگیری در سایر حوزه‌ها باشید تا دیدگاه خود را گسترش دهید.

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

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

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

💠 نتیجه‌گیری:

یادگیری T-Shape به شما این امکان را می‌دهد که در یک حوزه متخصص شوید و همزمان درک گسترده‌ای از سایر زمینه‌ها داشته باشید. این ترکیب از تخصص عمیق و دانش گسترده به شما کمک می‌کند تا در محیط‌های کاری چندرشته‌ای برجسته شوید و مسیر حرفه‌ای خود را به سمت موفقیت‌های بزرگتر هدایت کنید.



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
🔥6👍31👏1
کانال آموزشی لاراول
Photo
🛡Encrypting and Decrypting Data in Laravel

🛡رمزگذاری و رمزگشایی داده‌ها در لاراول

رمزگذاری برای حفاظت از اطلاعات حساس ضروری است تا اطمینان حاصل شود که هم در زمان ذخیره‌سازی و هم در زمان انتقال امن باقی می‌مانند.

🔐 رمزگذاری در لاراول:

لاراول یک روش ساده برای رمزگذاری داده‌ها با استفاده از تابع encrypt فراهم می‌کند. این تابع برای انجام رمزگذاری از کتابخانه OpenSSL استفاده می‌کند و امنیت بالایی را تضمین می‌کند.

// رمزگذاری داده‌ها
$originalData = 'Hello, world!';
$encryptedData = encrypt($originalData);


تابع encrypt داده‌های اصلی را به نسخه‌ای رمزگذاری شده و کدگذاری شده با base64 تبدیل می‌کند. این به‌ویژه زمانی مفید است که نیاز دارید اطلاعات حساس را در پایگاه داده‌ها ذخیره یا به صورت امن انتقال دهید.

🔓 رمزگشایی در لاراول:

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

// رمزگشایی داده‌ها
$decryptedData = decrypt($encryptedData);


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

⚙️ مثال عملی:

بیایید یک مثال عملی در کنترلر لاراول در نظر بگیریم:

use Illuminate\Support\Facades\Crypt;

class EncryptionController extends Controller
{
public function encryptAndDecrypt()
{
// رمزگذاری داده‌ها
$originalData = 'Hello, world!';
$encryptedData = encrypt($originalData);
// رمزگشایی داده‌ها
$decryptedData = decrypt($encryptedData);
// نمایش نتایج
return [
'original_data' => $originalData,
'encrypted_data' => $encryptedData,
'decrypted_data' => $decryptedData,
];
}
}


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


💡 استفاده از encryptString و decryptString:

برای راحتی بیشتر، لاراول از طریق نمایه Crypt، متدهای encryptString و decryptString را فراهم می‌کند.

$encryptedString = Crypt::encryptString('Hello, world!');
$decryptedString = Crypt::decryptString($encryptedString);


این متدها یک نحو ساده‌تر را ارائه می‌دهند، که ادغام رمزگذاری و رمزگشایی را مستقیماً در کد شما آسان‌تر می‌کند.

🔔 نکات مهم:

- حفظ امنیت کلید رمزگذاری:

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

- سازگاری نسخه:

لاراول در حال تکامل است و syntax آن ممکن است در نسخه‌های مختلف متفاوت باشد. همیشه به مستندات رسمی برای نسخه لاراولی که استفاده می‌کنید مراجعه کنید.



کانال تخصصی لاراول
📌 @PapiDon_state

☕️ اتاق برنامه نویسی </>
📌 @PapiDon_coding
👍11🔥2
دوستان و همراهان عزیز، سلام! 👋

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

🔍 ما در کانال اتاق برنامه‌نویسی </> قصد داریم به این موضوعات مهم گاهی بپردازیم و با ارائه اطلاعات، تکنیک‌ها و راهکارهای کاربردی نگاهی به این مفاهیم داشته باشیم.

👀 ازینجا مسیر موضوع را دنبال کنید ...

👈🏻 🔗 هدفگذاری SMART
3🔥1👏1