Learnira | لرنیرا
📍 همیشه کار کردن با مایگریشن های لاراول توی محیط کامند لاین آزاردهنده س، خصوصا اگه هدفتون کار کردن با یک مایگریشن خاص باشه. به همین خاطر تصمیم گرفتم که یک پکیجی رو آماده کنم که به راحتی بتونید مایگریشن هاتون رو مدیریت کنید، اون هارو حدف کنید و مایگریشن جدید…
💡 حالت Safe migrate به پروژه اضافه شد، به این صورت که میاد و ابتدا مایگریشن هایی رو اجرا میکنه که توی مایگریشن های قبلی به اون تیبل رفرنس داده شده ولی هنوز مایگریشنش اجرا نشده تا دیگه به ارور خاصی نخورید.
دوستانی که قصد مشارکت دارن توی پروژه، این پروژه خیلی کد هاش سنگین نیست و به راحتی قابل درکه و اگر قصد توسعه دارید یک V2.0 path ایجاد شده که باید کارهایی که برای ورژن دو انجام بشه توش ذکر شده که اگر میتونید ازشون انجام بدید و به پروژه اضافه کنید حتما مطالعش کنید و Pull request بزنید و مارو خوشحال کنید.
لینک To Do:
https://github.com/rezaamini-ir/migrator/projects/1
دوستانی که قصد مشارکت دارن توی پروژه، این پروژه خیلی کد هاش سنگین نیست و به راحتی قابل درکه و اگر قصد توسعه دارید یک V2.0 path ایجاد شده که باید کارهایی که برای ورژن دو انجام بشه توش ذکر شده که اگر میتونید ازشون انجام بدید و به پروژه اضافه کنید حتما مطالعش کنید و Pull request بزنید و مارو خوشحال کنید.
لینک To Do:
https://github.com/rezaamini-ir/migrator/projects/1
بنظر من یه برنامه نویس باید توی پروژه هاش این مواردو رعایت کنه:
- هندل کردن درست Exceptions
- لاگ گرفتن از ارور ها تا جای ممکن
- تست نویسی کافی و درست
- شناسایی درست پروژه (انالیز اینده ی پروژه و نوشتن براساس اون)
- برگشت دادن Status code درست
- آنالیز و طراحی اسکیمای مناسب برای دیتابیس
- کد زدن بر اساس بودجه (این بَده :)))) )
- فیچر تست های خوب و دل نبستن به یونیت تست
- آنالیز زمان مناسب پروژه
- تعصبی رفتار نکردن در خصوص ابزار های مورد استفاده توی پروژه
- گیت فلو مناسب
- معماری متناسب با حجم پروژه
نظر شما چیه؟
- هندل کردن درست Exceptions
- لاگ گرفتن از ارور ها تا جای ممکن
- تست نویسی کافی و درست
- شناسایی درست پروژه (انالیز اینده ی پروژه و نوشتن براساس اون)
- برگشت دادن Status code درست
- آنالیز و طراحی اسکیمای مناسب برای دیتابیس
- کد زدن بر اساس بودجه (این بَده :)))) )
- فیچر تست های خوب و دل نبستن به یونیت تست
- آنالیز زمان مناسب پروژه
- تعصبی رفتار نکردن در خصوص ابزار های مورد استفاده توی پروژه
- گیت فلو مناسب
- معماری متناسب با حجم پروژه
نظر شما چیه؟
👍1
Learnira | لرنیرا
2 اپیزود جدید از دوره Eloquent Tricks در کانال یوتیوب آپلود شد. when() Method Magic of withDefault() 📍 سابسکریب و لایک رو هم فراموش نکنید.
😃 بنظرم هنوز موارد زیادی در خصوص Model و Eloquent و Query Builder مونده که گفته نشده.
نظر شما چیه، الکوئنت و کوئری هارو ادامه بدیم یا بریم سراغ دوره های بعدی؟
و در اخر پیشنهادتون برای دوره های آینده چیه؟
نظر شما چیه، الکوئنت و کوئری هارو ادامه بدیم یا بریم سراغ دوره های بعدی؟
و در اخر پیشنهادتون برای دوره های آینده چیه؟
Learnira | لرنیرا
😃 بنظرم هنوز موارد زیادی در خصوص Model و Eloquent و Query Builder مونده که گفته نشده. نظر شما چیه، الکوئنت و کوئری هارو ادامه بدیم یا بریم سراغ دوره های بعدی؟ و در اخر پیشنهادتون برای دوره های آینده چیه؟
دو قسمت جدید از دوره ی Eloquent Tricks توی کانال یوتیوب قرار گرفتند.
- Magic with aggregation
- Has one of many relation
💡 فراموش نکنید که کانالو سابسکرایب کنید و نظراتتونو بگید.
- Magic with aggregation
- Has one of many relation
💡 فراموش نکنید که کانالو سابسکرایب کنید و نظراتتونو بگید.
به همین راحتی میتونید قبل از ارسال نوتیفیکیشن ها با یک Listener اونارو بررسی کنید و یک کاری رو قبل از ارسالشون انجام بدید و حتی از ارسال اونا جلوگیری کنید.
پ ن: داکیومنت نشده بود که توی این PR#7420 اضافش کردم 😃
توضیحات بیشتر توی داکیومنت خود لاراول:
https://laravel.com/docs/8.x/notifications#notification-events
پ ن: داکیومنت نشده بود که توی این PR#7420 اضافش کردم 😃
توضیحات بیشتر توی داکیومنت خود لاراول:
https://laravel.com/docs/8.x/notifications#notification-events
Learnira | لرنیرا
دو قسمت جدید از دوره ی Eloquent Tricks توی کانال یوتیوب قرار گرفتند. - Magic with aggregation - Has one of many relation 💡 فراموش نکنید که کانالو سابسکرایب کنید و نظراتتونو بگید.
قسمت جدید توی کانال یوتیوب آپلود شد.
Prunable Models
💡 فراموش نکنید که کانالو سابسکرایب کنید و نظراتتونو بگید.
Prunable Models
💡 فراموش نکنید که کانالو سابسکرایب کنید و نظراتتونو بگید.
فرض کنید که داریم یه فروشگاه Scalable بالا میاریم و هزاران کاربر در لحظه دارن فروشگاه مارو چک میکنن (آمازون، یا دیجی کالا رو در نظر بگیرید).
حالا ما یه محصول داریم که کلا 100 تا ازش توی انباره و همزمان ده هزار کاربر درخواست خرید اون محصول رو میدن.
💡 چطور این موردو هندل میکنیم که بدون مشکل به 100 نفر محصول فروخته بشه و مشکلی پیش نیاد؟ (توی کامنتا راه حلتونو بگید که باهم خوبی و بدی هاشو چک کنیم)
پن: این سوالو توی مصاحبه فنی امروز که با یه شرکت بزرگ برای پوزیشن بک اند دولوپر داشتم پرسیدن و بزودی در خصوصش بحث میکنیم توی کانال 😃
حالا ما یه محصول داریم که کلا 100 تا ازش توی انباره و همزمان ده هزار کاربر درخواست خرید اون محصول رو میدن.
💡 چطور این موردو هندل میکنیم که بدون مشکل به 100 نفر محصول فروخته بشه و مشکلی پیش نیاد؟ (توی کامنتا راه حلتونو بگید که باهم خوبی و بدی هاشو چک کنیم)
پن: این سوالو توی مصاحبه فنی امروز که با یه شرکت بزرگ برای پوزیشن بک اند دولوپر داشتم پرسیدن و بزودی در خصوصش بحث میکنیم توی کانال 😃
Forwarded from Radio BiCode | رادیو بیکد (Mehran Askarnezhad)
• اپیزود اولِ رادیو بیکد منتشر شد! 🎉
• داستان هک شدن ناسا با اِچتیاِماِل
آنچه خواهید شنید :
بررسی دلایل هک شدن ناسا با اِچتیاِماِل
تغییر آیپی با اِچتیاِماِل ویپیاِن
تونل های انتقال دیتا و ...
کستباکس و توییتر رادیو بیکد
• @RadioBiCode
• داستان هک شدن ناسا با اِچتیاِماِل
آنچه خواهید شنید :
بررسی دلایل هک شدن ناسا با اِچتیاِماِل
تغییر آیپی با اِچتیاِماِل ویپیاِن
تونل های انتقال دیتا و ...
کستباکس و توییتر رادیو بیکد
• @RadioBiCode
Radio BiCode | رادیو بیکد
• اپیزود اولِ رادیو بیکد منتشر شد! 🎉 • داستان هک شدن ناسا با اِچتیاِماِل آنچه خواهید شنید : بررسی دلایل هک شدن ناسا با اِچتیاِماِل تغییر آیپی با اِچتیاِماِل ویپیاِن تونل های انتقال دیتا و ... کستباکس و توییتر رادیو بیکد • @RadioBiCode
این سری پادکست از رادیو بیکد رو اصلا از دست ندید.
محتوای بسیار سم و فان 😬
محتوای بسیار سم و فان 😬
این توییت سعید رو خیلی خیلی دوس داشتم، گاهی وقتا یه چیز ساده رو جوری میپیچونیم که خودمونم توش میمونیم ونتیجش میشه هدر دادن زمان.
در خصوص اون قائده KISS هم بخونید.
سعی کنید تا جای ممکن همه چیزو ساده نگه دارید تا براتون دردسر نشه در آینده.
• @Learnira
در خصوص اون قائده KISS هم بخونید.
سعی کنید تا جای ممکن همه چیزو ساده نگه دارید تا براتون دردسر نشه در آینده.
• @Learnira
فرض کنید یکسری مدل دارید و توی این مدل ها یکسری متد دارید.
حالا میخواید این مدل هارو تست کنید.
(مثلا یک مدل Article دارید که یک متد trending داره و میخواید براش تست بنویسید)
تست هایی که برای متدهای این مدل ها نوشته میشن از چه نوعی هستند؟ و چرا؟
حالا میخواید این مدل هارو تست کنید.
(مثلا یک مدل Article دارید که یک متد trending داره و میخواید براش تست بنویسید)
تست هایی که برای متدهای این مدل ها نوشته میشن از چه نوعی هستند؟ و چرا؟
Learnira | لرنیرا
فرض کنید یکسری مدل دارید و توی این مدل ها یکسری متد دارید. حالا میخواید این مدل هارو تست کنید. (مثلا یک مدل Article دارید که یک متد trending داره و میخواید براش تست بنویسید) تست هایی که برای متدهای این مدل ها نوشته میشن از چه نوعی هستند؟ و چرا؟
📍 چه نوع تستی برای مدل هامون بنویسیم؟
ایزوله بودن و سرعت تست ها همیشه قرار نیست اهمیت داشته باشه.
- @Learnira
ایزوله بودن و سرعت تست ها همیشه قرار نیست اهمیت داشته باشه.
- @Learnira
Learnira | لرنیرا
Voice message
مشکل اصلی شناسایی موقعیت هستش.
خیلی از جاها ما انتظار اینو داریم که این مورد باید براش یک Unit test نوشته بشه (مثل حالت بالا) در صورتی که فرض ما از پایه اشتباه هست و در موقعیتی که باید یک Integration test نوشته بشه ما میایم و یک Unit test مینویسیم.
و نتیجه ی این انتظار نابجا و برداشت اشتباه این میشه که میایم و با استفاده از ماک کردن و استفاده از Fake و حالت های دیگه و سعی در ایزوله کردن قسمتی که ذات اون ایزوله بودن نیست و بدون وابستگی به بخش های مختلف نمیتونه کار کنه، یک تست پیچیده رو مینویسیم که عملا ممکنه مارو به هدفمون نرسونه و coverage بالایی نداشته باشه و از سمتی میایم و تستمون رو از اون حالت doc بود خارج میکنیم، صرفا برای اینکه ایزوله بشه و وابسته نباشه.
خیلی از جاها ما انتظار اینو داریم که این مورد باید براش یک Unit test نوشته بشه (مثل حالت بالا) در صورتی که فرض ما از پایه اشتباه هست و در موقعیتی که باید یک Integration test نوشته بشه ما میایم و یک Unit test مینویسیم.
و نتیجه ی این انتظار نابجا و برداشت اشتباه این میشه که میایم و با استفاده از ماک کردن و استفاده از Fake و حالت های دیگه و سعی در ایزوله کردن قسمتی که ذات اون ایزوله بودن نیست و بدون وابستگی به بخش های مختلف نمیتونه کار کنه، یک تست پیچیده رو مینویسیم که عملا ممکنه مارو به هدفمون نرسونه و coverage بالایی نداشته باشه و از سمتی میایم و تستمون رو از اون حالت doc بود خارج میکنیم، صرفا برای اینکه ایزوله بشه و وابسته نباشه.