Learnira | لرنیرا
بنظرتون خوانایی کدوم بیشتره؟
یکی از اهداف اصلی کلین کد این هست که ما یک کدی رو بنویسیم که علاوه بر خودمون برای بقیه افراد هم خوانا باشه.
و از سمتی ما باید کدمون رو توی حالتی بنویسیم که هر فردی وقتی اولین بار با کد ما برخورد میکنه در سریع ترین زمان ممکن برداشت و یک درک کلی از کد رو پیدا کنه.
حالا از یک سمت هم ما مهم ترین قسمت های کدمون تقریبا میشه گفت شروطمون هست که هرچقد خوانایی این شروط راحت تر باشه، سریع تر به یک درک کلی از کد میرسیم، اگر هرچقدر شروط ما طولانی تر باشن در نتیجه ما یک کد ناخوانا تر داریم که درکش واقعا پیچیده میشه.
یکی از روش های افزایش خوانایی یک شرط پیچیده این هست که ما اون رو به یک متد جداگونه انتقال بدیم (اون هارو extract کنیم توی یک متد) و حالا براساس API خودمون یک اسم مناسب برای متدمون انتخاب کنیم که این متد کارش صرفا برگشت یک مقدار boolean هستش و با فراخوانی اون توی شرطمون به جای یک سری or و and منطقی و ناخوانا میتونیم خیلی سریع تر یک دید کلی از کار کد رو توی ذهن برنامه نویس ایجاد کنیم.
نام گذاری این متد ها هم باید به این صورت باشه که ما فقط انتظار این رو داشته باشیم که متد یک مقدار true یا false بیشتر بر نمیگردونه، برای مثال fileCanBeDeleted یا userCanCreateArticle.
که ما با خوندن اسم متد به این نتیجه میرسیم که جواب این یک بله یا خیر بیشتر نیست و همین باعث میشه خوانایی کد خیلی بیشتر بشه و اگر برنامه نویس نیاز به جزئیات بیشتری داشت که شرایط به چه صورته میتونه به متد مراجعه کنه و حالا وقت بیشتری بزاره برای خوندن متد.
💡 در اصل در حالت دوم برنامه نویس موقع برخورد با اون خط کد انگار با یک سری کامنت برخورد کرده تا یک سری شروط منطقی که طبیعتا درک یک جمله نسبت به یک سری شروط منطقی برای ذهن ما خیلی ساده تر و سریعتره.
- @Learnira
و از سمتی ما باید کدمون رو توی حالتی بنویسیم که هر فردی وقتی اولین بار با کد ما برخورد میکنه در سریع ترین زمان ممکن برداشت و یک درک کلی از کد رو پیدا کنه.
حالا از یک سمت هم ما مهم ترین قسمت های کدمون تقریبا میشه گفت شروطمون هست که هرچقد خوانایی این شروط راحت تر باشه، سریع تر به یک درک کلی از کد میرسیم، اگر هرچقدر شروط ما طولانی تر باشن در نتیجه ما یک کد ناخوانا تر داریم که درکش واقعا پیچیده میشه.
یکی از روش های افزایش خوانایی یک شرط پیچیده این هست که ما اون رو به یک متد جداگونه انتقال بدیم (اون هارو extract کنیم توی یک متد) و حالا براساس API خودمون یک اسم مناسب برای متدمون انتخاب کنیم که این متد کارش صرفا برگشت یک مقدار boolean هستش و با فراخوانی اون توی شرطمون به جای یک سری or و and منطقی و ناخوانا میتونیم خیلی سریع تر یک دید کلی از کار کد رو توی ذهن برنامه نویس ایجاد کنیم.
نام گذاری این متد ها هم باید به این صورت باشه که ما فقط انتظار این رو داشته باشیم که متد یک مقدار true یا false بیشتر بر نمیگردونه، برای مثال fileCanBeDeleted یا userCanCreateArticle.
که ما با خوندن اسم متد به این نتیجه میرسیم که جواب این یک بله یا خیر بیشتر نیست و همین باعث میشه خوانایی کد خیلی بیشتر بشه و اگر برنامه نویس نیاز به جزئیات بیشتری داشت که شرایط به چه صورته میتونه به متد مراجعه کنه و حالا وقت بیشتری بزاره برای خوندن متد.
💡 در اصل در حالت دوم برنامه نویس موقع برخورد با اون خط کد انگار با یک سری کامنت برخورد کرده تا یک سری شروط منطقی که طبیعتا درک یک جمله نسبت به یک سری شروط منطقی برای ذهن ما خیلی ساده تر و سریعتره.
- @Learnira
👍1
زمانی که برای تغییر یک ویژگی در برنامه ی خودتون مثل تغییر درگاه پرداخت، تغییر دیتابیس، تغییر سرویس پیامک مجبور شدید کدهای قبلیتون رو جراحی کنید و به حفاری وسط کدها مشغول شید تا اون هارو تغییر بدید بدونید که یه جای کار میلنگه.
و اون جایی هم که میلنگه قطعا داخلش SOLID و خصوصا Open-closed principle رعایت نشده.
این مشکل بیشتر وقتی رخ میده که حجم زیادی کدهای تو در تو داریم (if-else) و برای اضافه کردن ویژگی های جدید مجبور میشیم به این شروط شرط های دیگه ای رو هم اضافه کنیم.
وقتی Open-closed هم رعایت نشه عملا در مدیریت وابستگی ها دچار مشکل شدیم و باید توی طراحی سیستم تجدید نظر کنیم.
- @Learnira
و اون جایی هم که میلنگه قطعا داخلش 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 👌🏻
پست Laravel News در خصوص پکیج Migrator 👌🏻
🔥9👍4
💡 کنفرانس آنلاین کدفرانس برای برنامه نویسان جویای دانش با حضور افراد با تجربه حوزه IT
⏰ زمان برگزاری : 16 و 17 دی ماه (6 و 7 ژانویه)
جهت ثبت نام میتوانید از طریق سایت کدفرانس بصورت رایگان اقدام کنید.
- Codeference.ir
📍 فرصت محدود
⏰ زمان برگزاری : 16 و 17 دی ماه (6 و 7 ژانویه)
جهت ثبت نام میتوانید از طریق سایت کدفرانس بصورت رایگان اقدام کنید.
- Codeference.ir
📍 فرصت محدود
👍4🔥2
Learnira | لرنیرا
💡 کنفرانس آنلاین کدفرانس برای برنامه نویسان جویای دانش با حضور افراد با تجربه حوزه IT ⏰ زمان برگزاری : 16 و 17 دی ماه (6 و 7 ژانویه) جهت ثبت نام میتوانید از طریق سایت کدفرانس بصورت رایگان اقدام کنید. - Codeference.ir 📍 فرصت محدود
توضیحاتی در خصوص برگزاری کدفرانس
- دوتا از میتینگ ها هنوز تایم دقیقشون مشخص نشده و بزودی ثبت میشه ظاهرا(بهم اطلاع رسانی بشه میزارم همینجا خبرشو)
- میبینمتون 🤟🏻
- دوتا از میتینگ ها هنوز تایم دقیقشون مشخص نشده و بزودی ثبت میشه ظاهرا(بهم اطلاع رسانی بشه میزارم همینجا خبرشو)
- میبینمتون 🤟🏻
👍8🔥2
💡 الگوریتم یکی از مواردی هست که ما در شروع برنامه نویسی شاید زیاد متوجه نیاز بهش نشیم، اما تفکر الگوریتمی و دونستن در خصوص الگوریتم قطعا میتونه باعث رشد ما در این مسیر بشه.
از سمتی حل مسائل زیاد و مرتبط به الگوریتم توانایی تفکر مارو بالاتر میبره و اصطلاحا پرفومنس مغز ما بالاتر میره.
📍 الگوریتم و دیتا استراکچر یکی از پایه ثابت های مصاحبه های فنی خصوصا در شرکت های بزرگ هستند.
حالا من لیست یکسری از مواردی که شاید بتونه در این مسیر کمکتون کنه رو جمع آوری کردم و در لینک زیر قرار دادم:
Algorithm and Data Structure resources
- @Learnira
از سمتی حل مسائل زیاد و مرتبط به الگوریتم توانایی تفکر مارو بالاتر میبره و اصطلاحا پرفومنس مغز ما بالاتر میره.
📍 الگوریتم و دیتا استراکچر یکی از پایه ثابت های مصاحبه های فنی خصوصا در شرکت های بزرگ هستند.
حالا من لیست یکسری از مواردی که شاید بتونه در این مسیر کمکتون کنه رو جمع آوری کردم و در لینک زیر قرار دادم:
Algorithm and Data Structure resources
- @Learnira
👍8
🚀 توی آپدیت جدید پکیج ایزی پنل شما میتونید خیلی بهتر و حرفه ای تر مقادیر فیلد هاتون رو بسازید و اون هارو مدیریت کنید و به راحتی اونارو کاستومایز کنید.
شما میتونید بج های مختلف و شیک رو بسازید، به مقادیر فیلدهاتون کلاس های css بدید و تصاویر رو هم مدیریت کنید و عرض و ارتفاع اون هارو مشخص کنید (خلاصه که خیلی خفن تر شده 😁).
این قابلیت ها توی نسخه ی
یادتون نره که با ⭐️ از پروژه حمایت کنید.
https://github.com/rezaamini-ir/laravel-easypanel
- @Learnira
شما میتونید بج های مختلف و شیک رو بسازید، به مقادیر فیلدهاتون کلاس های css بدید و تصاویر رو هم مدیریت کنید و عرض و ارتفاع اون هارو مشخص کنید (خلاصه که خیلی خفن تر شده 😁).
این قابلیت ها توی نسخه ی
1.9.0 در دسترس هستند.یادتون نره که با ⭐️ از پروژه حمایت کنید.
https://github.com/rezaamini-ir/laravel-easypanel
- @Learnira
👍3
با نزدیک شدن به رلیز نسخه 2 پکیج ایزی پنل و اضافه شدن فیچر های باحال و کاربردی، لازم دونستم که یک داکیومنت نسبتا تر و تمیز برای پکیج آماده کنم که همگی بتونن به راحتی ازش استفاده کنند و از تمام ویژگی های پکیج مطلع بشن.
داکیومنت رو میتونید از لینک زیر ببینید:
https://easypanel.netlify.app/getting-started
آپدیتای جدید داره خیلی جذاب میشه 😍
- @Learnira
داکیومنت رو میتونید از لینک زیر ببینید:
https://easypanel.netlify.app/getting-started
آپدیتای جدید داره خیلی جذاب میشه 😍
- @Learnira
🔥6👍3
کار روی اپن سورس رو جدی بگیرید، تاثیر فوق العاده ای در روند استخدام، طرز فکر و سافت اسکیل هاتون داره و البته تاثیر تکنیکالش هم که جای خودشو داره و از نظر تکنیکال بسیار بسیار مفیده براتون.
- @Learnira
- @Learnira
👍17🔥1
🔅 لاراول 9 بلاخره با یک سری ویژگی های جدید اومد و توی این ویدئو تصمیم گرفتم که بیشتر ویژگی هایی که داکیومنت شده رو توضیح بدم.
این ویدئو نسبتا طولانی رو از دست ندید و اینکه یادتون نره سابسکرایب کنید :))
https://www.youtube.com/watch?v=KmRpGsLiXPc
- @Learnira
این ویدئو نسبتا طولانی رو از دست ندید و اینکه یادتون نره سابسکرایب کنید :))
https://www.youtube.com/watch?v=KmRpGsLiXPc
- @Learnira
👍13🔥2
برنامه نویس حوزه های مختلف مثل بک اند، فرانت اند و.. همیشه با انواع سرویس ها در لایه ی HTTP در ارتباط هستند و مهمه که انواع HTTP Request Method هارو بشناسند.
توی این دوتا تصویر یه معرفی مختصر از انواع متد های موجود داشته که میتونید بخونید.
- @Learnira
توی این دوتا تصویر یه معرفی مختصر از انواع متد های موجود داشته که میتونید بخونید.
- @Learnira
👍10🤩1
یه توییت یکم تند خویانه در خصوص دیتابیس :))
همینطور نگید مسلط، پشت این کلمه خیلی حرف هست و نیاز به تجربهی زیادی داره.
- @Learnira
همینطور نگید مسلط، پشت این کلمه خیلی حرف هست و نیاز به تجربهی زیادی داره.
- @Learnira
👍12👎2
ورژن 2 بتا ایزی پنل بلاخره رسید.
اگه نمیدونید ایزی پنل چیه، ایزی پنل یک سازنده ی پنل مدیریت برای پروژه های لاراولی عه که به شما قابلیت بسیار زیاد با شخصی سازی کاملی رو میده.
توی این نسخه چنتا از مهم ترین تغییرات اضافه شدن ویژگی های زیر بود:
- ACL feature for CRUDs 🔓
- Policy authorization for CRUDs 🔑
- GUI Admin manager
- Multi-language support
- GUI Translation manager
و لیست کامل تغییرات رو میتونید اینجا ببینید:
- https://github.com/rezaamini-ir/laravel-easypanel/releases/tag/2.0.0
⭐️ راستی یادتون نره که استار رو بزنید پای پروژه :))
اگه نمیدونید ایزی پنل چیه، ایزی پنل یک سازنده ی پنل مدیریت برای پروژه های لاراولی عه که به شما قابلیت بسیار زیاد با شخصی سازی کاملی رو میده.
توی این نسخه چنتا از مهم ترین تغییرات اضافه شدن ویژگی های زیر بود:
- ACL feature for CRUDs 🔓
- Policy authorization for CRUDs 🔑
- GUI Admin manager
- Multi-language support
- GUI Translation manager
و لیست کامل تغییرات رو میتونید اینجا ببینید:
- https://github.com/rezaamini-ir/laravel-easypanel/releases/tag/2.0.0
⭐️ راستی یادتون نره که استار رو بزنید پای پروژه :))
👍4🔥1