TestParallel.php
3.1 KB
این فایل رو میتونید بذارید داخل پوشه commands
و با دستور artisan test:parallel
تستهاتون رو به صورت موازی در ۳ رشته مجزا اجرا کنید.
البته در نظر داشته باشید که که باید سه فایل phpunit1.xml و phpunit2.xml , phpunit3.xml رو تعریف کنید و داخل شون تست سوییت های متفاوت برای پوشه های متفاوت بنویسید. (مثال ش رو در قسمت کامنت ها ببینید)
برای پروژه ما سرعت تست ها تقریبا ۲ برابر شد.
به هر حال یه نگاهی به محتوای فایل داشته باشید. آموزنده س.
@codino
و با دستور artisan test:parallel
تستهاتون رو به صورت موازی در ۳ رشته مجزا اجرا کنید.
البته در نظر داشته باشید که که باید سه فایل phpunit1.xml و phpunit2.xml , phpunit3.xml رو تعریف کنید و داخل شون تست سوییت های متفاوت برای پوشه های متفاوت بنویسید. (مثال ش رو در قسمت کامنت ها ببینید)
برای پروژه ما سرعت تست ها تقریبا ۲ برابر شد.
به هر حال یه نگاهی به محتوای فایل داشته باشید. آموزنده س.
@codino
❤13
Codino School
در نسخه v1.0.353 دستور: php artisan check:imports --folder=folder1,folder2 قابلیت این رو داره که چند تا فولدر رو بهش بدید و بین شون کاما , بگذارید. سایر دستورات هم این قابلیت رو دارند البته. https://github.com/imanghafoori1/laravel-microscope @codino
در نسخه ی v1.0.364 میتونید دستور زیر رو اجرا کنید:
تبدیل خودکار توابع بینام به معادل شون از نوع پیکانی
@codino
php artian check:arrow_functions --folder=appتبدیل خودکار توابع بینام به معادل شون از نوع پیکانی
fn () =>
@codino
🤓6❤2
👍1🥴1
آیا code coverage رو برای تست هاتون اندازه گیری میکنید؟
Anonymous Poll
20%
بله
40%
خیر
40%
تست نداریم
😁5👀4
▪️شاید باورتون نشه ولی با تغییر ترتیب اعضای این آرایه دستور check:import حدود ۳۰-۴۰٪ سریع تر اجرا شد.
▪️ منطق شم اینه:
اونایی که به لحاظ آماری تو کد پر تکرار هستند باید بالاتر قرار بگیرند و اونایی که به ندرت استفاده میشن باید برن پایین...
چون از بالا به پایین وقتی داره جستجو میکنه به محض پیدا شدن، ادامه لیست رو بررسی نمیکنه. پس چه بهتر که پرکاربردها بالا باشن که پایینی ها الکی بررسی نشن.
▪️ نسخه جدید هنوز منتشر نشده...
@codino
▪️ منطق شم اینه:
اونایی که به لحاظ آماری تو کد پر تکرار هستند باید بالاتر قرار بگیرند و اونایی که به ندرت استفاده میشن باید برن پایین...
چون از بالا به پایین وقتی داره جستجو میکنه به محض پیدا شدن، ادامه لیست رو بررسی نمیکنه. پس چه بهتر که پرکاربردها بالا باشن که پایینی ها الکی بررسی نشن.
▪️ نسخه جدید هنوز منتشر نشده...
@codino
👍9🔥3
قبل و بعد از این بهینه سازی
دستور نصب میکروسکوپ:
دستور بهینه سازی شده در نسخه جدید:
احتمالا در نسخه های بعدی سریع تر هم بشه 🙂
@codino
دستور نصب میکروسکوپ:
composer require imanghafoori/laravel-microscope --dev
دستور بهینه سازی شده در نسخه جدید:
php artisan check:import
احتمالا در نسخه های بعدی سریع تر هم بشه 🙂
@codino
👍8😁1
در بهینه سازی مجدد در نسخه
روش بهینه سازی این بار استفاده از hash table به جای عملگر
https://github.com/imanghafoori1/laravel-microscope
🔬🔬🔬
@codino
v1.0.366 این بار سرعت اجرا دستور زیر ۲ برابر شد.روش بهینه سازی این بار استفاده از hash table به جای عملگر
=== بود.php artisan check:importhttps://github.com/imanghafoori1/laravel-microscope
🔬🔬🔬
@codino
👍5
اگر میخواید از deep source استفاده کنید باید این متغیر رو بگذارید داخل github secrets تا بتونید گزارش code coverage رو براش ارسال کنید...
@codino
@codino
👍4
👌10👍3👀3
به نظرم هوش مصنوعی جای برنامه نویسها نمیگیره ولی احتمالا بتونه به عصر تاریک بیتستی پایان بده...
https://www.codium.ai/
@codino
https://www.codium.ai/
@codino
Qodo
[DS] Homepage
Qodo is an agentic code integrity platform for reviewing, testing, and writing code, integrating AI across development workflows to strengthen code quality at every stage.
👍10🔥3
تجربه و نظرتون رو در مورد repository pattern در قسمت نظرات بنویسید.
چرا این چیزی که به عنوان repository pattern که معروف شده انقدر نچسب و بدقلق هست؟!
(شایدم به ما غلط آموزش دادند... 😯)
👇👇👇
چرا این چیزی که به عنوان repository pattern که معروف شده انقدر نچسب و بدقلق هست؟!
(شایدم به ما غلط آموزش دادند... 😯)
👇👇👇
🥴3👍1🤓1
👌6🤔1
Codino School
در بهینه سازی مجدد در نسخه v1.0.366 این بار سرعت اجرا دستور زیر ۲ برابر شد. روش بهینه سازی این بار استفاده از hash table به جای عملگر === بود. php artisan check:import https://github.com/imanghafoori1/laravel-microscope 🔬🔬🔬 @codino
دستور check:import هم cache دار شد!
🔅 در نسخه جدید میکروسکوپ برای دستور check:import یک لایه cache هم بالاخره اضافه شد.
معمایی که بعد از چند سال بالاخره برام حل شد!
◾️ این که چطور میتونم برای این دستور کش پیاده کنم به طوری که دقت و صحت نتایج نمایش داده شده تحت شعاع قرار نگیره.
◾️ و فکر نکنید که نتایج دقیق کار آسونی هست. با استفاده از laravel/pint پروژه خودمونو اسکن کردم ولی در نهایت که ۹۰ مورد import بلا استفاده رو نتونست تشخیص بده.
بماند که ایمپورت های غلط رو هم به کلی نمیتونه تشخیص بده.
🔗 github.com/imanghafoori/microscope
🔬🔬🔬
@codino
🔅 در نسخه جدید میکروسکوپ برای دستور check:import یک لایه cache هم بالاخره اضافه شد.
معمایی که بعد از چند سال بالاخره برام حل شد!
◾️ این که چطور میتونم برای این دستور کش پیاده کنم به طوری که دقت و صحت نتایج نمایش داده شده تحت شعاع قرار نگیره.
◾️ و فکر نکنید که نتایج دقیق کار آسونی هست. با استفاده از laravel/pint پروژه خودمونو اسکن کردم ولی در نهایت که ۹۰ مورد import بلا استفاده رو نتونست تشخیص بده.
بماند که ایمپورت های غلط رو هم به کلی نمیتونه تشخیص بده.
php artisan check:import --folder=app/Models
🔗 github.com/imanghafoori/microscope
🔬🔬🔬
@codino
👍8🔥4❤2
CallbackController.php
2 KB
▪️این داستان: Repository Pattern
🤔 صورت مساله:
فرض کنید میخواهیم این فایل رو ریفکتور کنیم و ریپازیتوری پترن رو براش به کار ببریم.
(گر چه مثال ساده ای هست ولی موارد پیچیده تر رو هم با همین فرمون میشه رفت جلو)
🔅 پاسخ تشریحی در قسمت نظرات 👇👇👇
@codino
🤔 صورت مساله:
فرض کنید میخواهیم این فایل رو ریفکتور کنیم و ریپازیتوری پترن رو براش به کار ببریم.
(گر چه مثال ساده ای هست ولی موارد پیچیده تر رو هم با همین فرمون میشه رفت جلو)
🔅 پاسخ تشریحی در قسمت نظرات 👇👇👇
@codino
👌4🙏1
صدای خواب آلوده و خسته بنده رو پذیرا باشید.
وسع و بضاعت ما تازگیا محدود شده
نکاتی در مورد Repository Pattern که به شما نمی گویند.
@codino
وسع و بضاعت ما تازگیا محدود شده
نکاتی در مورد Repository Pattern که به شما نمی گویند.
@codino
❤18🙏4🤔1
Media is too big
VIEW IN TELEGRAM
▪️این داستان: آنچه درباره Repository Pattern نمیدانستید. (در قالب تصویر)
(رکورد طولانی ترین کلیپ کدینو هم شکسته شد.😏)
@codino
(رکورد طولانی ترین کلیپ کدینو هم شکسته شد.😏)
@codino
👍20❤7🙏2🤔1