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

کانال یوتیوب : https://www.youtube.com/c/RezaAmini
Download Telegram
بنظر من یه برنامه نویس باید توی پروژه هاش این مواردو رعایت کنه:

- هندل کردن درست Exceptions
- لاگ گرفتن از ارور ها تا جای ممکن
- تست نویسی کافی و درست
- شناسایی درست پروژه (انالیز اینده ی پروژه و نوشتن براساس اون)
- برگشت دادن Status code درست
- آنالیز و طراحی اسکیمای مناسب برای دیتابیس
- کد زدن بر اساس بودجه (این بَده :)))) )
- فیچر تست های خوب و دل نبستن به یونیت تست
- آنالیز زمان مناسب پروژه
- تعصبی رفتار نکردن در خصوص ابزار های مورد استفاده توی پروژه
- گیت فلو مناسب
- معماری متناسب با حجم پروژه

نظر شما چیه؟
👍1
Learnira | لرنیرا
2 اپیزود جدید از دوره Eloquent Tricks در کانال یوتیوب آپلود شد. when() Method Magic of withDefault() 📍 سابسکریب و لایک رو هم فراموش نکنید.
😃 بنظرم هنوز موارد زیادی در خصوص Model و Eloquent و Query Builder مونده که گفته نشده.

نظر شما چیه، الکوئنت و کوئری هارو ادامه بدیم یا بریم سراغ دوره های بعدی؟
و در اخر پیشنهادتون برای دوره های آینده چیه؟
به همین راحتی میتونید قبل از ارسال نوتیفیکیشن ها با یک 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