Learnira | لرنیرا – Telegram
Learnira | لرنیرا
347 subscribers
55 photos
21 videos
62 links
مطالب و منابع آموزشی در حوزه برنامه نویسی بک اند و فرانت اند

کانال یوتیوب : https://www.youtube.com/c/RezaAmini
Download Telegram
به همین راحتی میتونید قبل از ارسال نوتیفیکیشن ها با یک Listener اونارو بررسی کنید و یک کاری رو قبل از ارسالشون انجام بدید و حتی از ارسال اونا جلوگیری کنید.

پ ن: داکیومنت نشده بود که توی این PR#7420 اضافش کردم 😃

توضیحات بیشتر توی داکیومنت خود لاراول:
https://laravel.com/docs/8.x/notifications#notification-events
فرض کنید که داریم یه فروشگاه Scalable بالا میاریم و هزاران کاربر در لحظه دارن فروشگاه مارو چک میکنن (آمازون، یا دیجی کالا رو در نظر بگیرید).

حالا ما یه محصول داریم که کلا 100 تا ازش توی انباره و همزمان ده هزار کاربر درخواست خرید اون محصول رو میدن.

💡 چطور این موردو هندل میکنیم که بدون مشکل به 100 نفر محصول فروخته بشه و مشکلی پیش نیاد؟ (توی کامنتا راه حلتونو بگید که باهم خوبی و بدی هاشو چک کنیم)

پ‌ن: این سوالو توی مصاحبه فنی امروز که با یه شرکت بزرگ برای پوزیشن بک اند دولوپر داشتم پرسیدن و بزودی در خصوصش بحث میکنیم توی کانال 😃
Forwarded from Radio BiCode | رادیو بی‌کد (Mehran Askarnezhad)
• اپیزود اولِ رادیو بی‌کد منتشر شد! 🎉

• داستان هک شدن ناسا با اِچ‌تی‌اِم‌اِل

آنچه خواهید شنید :
بررسی دلایل هک شدن ناسا با اِچ‌تی‌اِم‌اِل
تغییر آی‌پی با اِچ‌تی‌اِم‌اِل وی‌پی‌اِن
تونل های انتقال دیتا و ...

کست‌باکس و توییتر رادیو بی‌کد

@RadioBiCode
این توییت سعید رو خیلی خیلی دوس داشتم، گاهی وقتا یه چیز ساده رو جوری میپیچونیم که خودمونم توش میمونیم و‌نتیجش میشه هدر دادن زمان.

در خصوص اون قائده KISS هم بخونید.
سعی کنید تا جای ممکن همه چیزو ساده نگه دارید تا براتون دردسر نشه در آینده.

@Learnira
فرض کنید یکسری مدل دارید و توی این مدل ها یکسری متد دارید.
حالا میخواید این مدل هارو تست کنید.

(مثلا یک مدل Article دارید که یک متد trending داره و میخواید براش تست بنویسید)

تست هایی که برای متدهای این مدل ها نوشته میشن از چه نوعی هستند؟ و چرا؟
Learnira | لرنیرا
Voice message
مشکل اصلی شناسایی موقعیت هستش.

خیلی از جاها ما انتظار اینو داریم که این مورد باید براش یک Unit test نوشته بشه (مثل حالت بالا) در صورتی که فرض ما از پایه اشتباه هست و در موقعیتی که باید یک Integration test نوشته بشه ما میایم و یک Unit test مینویسیم.

و نتیجه ی این انتظار نابجا و برداشت اشتباه این میشه که میایم و با استفاده از ماک کردن و استفاده از Fake و حالت های دیگه و سعی در ایزوله کردن قسمتی که ذات اون ایزوله بودن نیست و بدون وابستگی به بخش های مختلف نمیتونه کار کنه، یک تست پیچیده رو مینویسیم که عملا ممکنه مارو به هدفمون نرسونه و coverage بالایی نداشته باشه و از سمتی میایم و تستمون رو از اون حالت doc بود خارج میکنیم، صرفا برای اینکه ایزوله بشه و وابسته نباشه.
با زلف تو قصه ایست ما را مشکل / همچون شب یلدا به درازی مشهور

🍉 یلداتون مبارک باشه.

توی این شب قشنگ سرد یک دقیقه بیشتر فرصت داریم که قدر افرادی که کنارمون هستن و دوستشون داریم رو بیشتر بدونیم.

🤓 راستی امشب میتونید یه دیقه بیشتر کد بزنید و بیدار بمونیدا.
بنظرتون خوانایی کدوم بیشتره؟
Learnira | لرنیرا
بنظرتون خوانایی کدوم بیشتره؟
یکی از اهداف اصلی کلین کد این هست که ما یک کدی رو بنویسیم که علاوه بر خودمون برای بقیه افراد هم خوانا باشه.

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

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

یکی از روش های افزایش خوانایی یک شرط پیچیده این هست که ما اون رو به یک متد جداگونه انتقال بدیم (اون هارو extract کنیم توی یک متد) و حالا براساس API خودمون یک اسم مناسب برای متدمون انتخاب کنیم که این متد کارش صرفا برگشت یک مقدار boolean هستش و با فراخوانی اون توی شرطمون به جای یک سری or و and منطقی و ناخوانا میتونیم خیلی سریع تر یک دید کلی از کار کد رو توی ذهن برنامه نویس ایجاد کنیم.

نام گذاری این متد ها هم باید به این صورت باشه که ما فقط انتظار این رو داشته باشیم که متد یک مقدار true یا false بیشتر بر نمیگردونه، برای مثال fileCanBeDeleted یا userCanCreateArticle.
که ما با خوندن اسم متد به این نتیجه میرسیم که جواب این یک بله یا خیر بیشتر نیست و همین باعث میشه خوانایی کد خیلی بیشتر بشه و اگر برنامه نویس نیاز به جزئیات بیشتری داشت که شرایط به چه صورته میتونه به متد مراجعه کنه و حالا وقت بیشتری بزاره برای خوندن متد.

💡 در اصل در حالت دوم برنامه نویس موقع برخورد با اون خط کد انگار با یک سری کامنت برخورد کرده تا یک سری شروط منطقی که طبیعتا درک یک جمله نسبت به یک سری شروط منطقی برای ذهن ما خیلی ساده تر و سریعتره.

- @Learnira
👍1
زمانی که برای تغییر یک ویژگی در برنامه ی خودتون مثل تغییر درگاه پرداخت، تغییر دیتابیس، تغییر سرویس پیامک مجبور شدید کدهای قبلیتون رو جراحی کنید و به حفاری وسط کدها مشغول شید تا اون هارو تغییر بدید بدونید که یه جای کار میلنگه.

و اون جایی هم که میلنگه قطعا داخلش SOLID و خصوصا Open-closed principle رعایت نشده.

این مشکل بیشتر وقتی رخ میده که حجم زیادی کدهای تو در تو داریم (if-else) و برای اضافه کردن ویژگی های جدید مجبور میشیم به این شروط شرط های دیگه ای رو هم اضافه کنیم.

وقتی Open-closed هم رعایت نشه عملا در مدیریت وابستگی ها دچار مشکل شدیم و باید توی طراحی سیستم تجدید نظر کنیم.

- @Learnira
👍13🔥6🤩1
https://laravel-news.com/migrator-gui-migration-manager-for-laravel

پست Laravel News در خصوص پکیج Migrator 👌🏻
🔥9👍4
💡 کنفرانس آنلاین کدفرانس برای برنامه نویسان جویای دانش با حضور افراد با تجربه حوزه IT

زمان برگزاری : 16 و 17 دی ماه (6 و 7 ژانویه)

جهت ثبت نام میتوانید از طریق سایت کدفرانس بصورت رایگان اقدام کنید.

- Codeference.ir
📍 فرصت محدود
👍4🔥2
Learnira | لرنیرا
💡 کنفرانس آنلاین کدفرانس برای برنامه نویسان جویای دانش با حضور افراد با تجربه حوزه IT زمان برگزاری : 16 و 17 دی ماه (6 و 7 ژانویه) جهت ثبت نام میتوانید از طریق سایت کدفرانس بصورت رایگان اقدام کنید. - Codeference.ir 📍 فرصت محدود
توضیحاتی در خصوص برگزاری کدفرانس

- دوتا از میتینگ ها هنوز تایم دقیقشون مشخص نشده و بزودی ثبت میشه ظاهرا(بهم اطلاع رسانی بشه میزارم همینجا خبرشو)

- میبینمتون 🤟🏻
👍8🔥2
💡 الگوریتم یکی از مواردی هست که ما در شروع برنامه نویسی شاید زیاد متوجه نیاز بهش نشیم، اما تفکر الگوریتمی و دونستن در خصوص الگوریتم قطعا میتونه باعث رشد ما در این مسیر بشه.

از سمتی حل مسائل زیاد و مرتبط به الگوریتم توانایی تفکر مارو بالاتر میبره و اصطلاحا پرفومنس مغز ما بالاتر میره.

📍 الگوریتم و دیتا استراکچر یکی از پایه ثابت های مصاحبه های فنی خصوصا در شرکت های بزرگ هستند.

حالا من لیست یکسری از مواردی که شاید بتونه در این مسیر کمکتون کنه رو جمع آوری کردم و در لینک زیر قرار دادم:

Algorithm and Data Structure resources

- @Learnira
👍8
🚀 توی آپدیت جدید پکیج ایزی پنل شما میتونید خیلی بهتر و حرفه ای تر مقادیر فیلد هاتون رو بسازید و اون هارو مدیریت کنید و به راحتی اونارو کاستومایز کنید.

شما میتونید بج های مختلف و شیک رو بسازید، به مقادیر فیلدهاتون کلاس های css بدید و تصاویر رو هم مدیریت کنید و عرض و ارتفاع اون هارو مشخص کنید (خلاصه که خیلی خفن تر شده 😁).

این قابلیت ها توی نسخه ی 1.9.0 در دسترس هستند.

یادتون نره که با ⭐️ از پروژه حمایت کنید.

https://github.com/rezaamini-ir/laravel-easypanel

- @Learnira
👍3
با نزدیک شدن به رلیز نسخه 2 پکیج ایزی پنل و اضافه شدن فیچر های باحال و کاربردی، لازم دونستم که یک داکیومنت نسبتا تر و تمیز برای پکیج آماده کنم که همگی بتونن به راحتی ازش استفاده کنند و از تمام ویژگی های پکیج مطلع بشن.

داکیومنت رو میتونید از لینک زیر ببینید:

https://easypanel.netlify.app/getting-started

آپدیتای جدید داره خیلی جذاب میشه 😍

- @Learnira
🔥6👍3
💡 یه چیت شیت خیلی ساده و باحال از مراحل یک SQL Query

- @Learnira
👍9