سبک کدنویسی و ساختار Domain Driven Design (DDD) چیست؟

رای ساخت یک نرم افزار تجاری نباید به هر روشی و هر ترتیبی که شده برنامه را صرفا برای اجرا شدن پیاده سازی کرد چون ما به عنوان تولید کننده آن لازم داریم که گذشت زمان به روزرسانی های متعددی داشته باشیم و باید برنامه را برای سالها توسعه دهیم از این رو سبک کد نویسی Domain Driven Design (DDD) که به اختصار DDD هم شناخته میشود را در این مقاله میخواهم معرفی کنم.’

اصولا ساختارها در همه زبانها قابل اجرا هستند مثل PHP , JAVA و همه زبان ها . اما چرا باید از اصول خاصی تبعیت کنیم؟ همانطور که در بالا گفتم ما نیاز به این داریم که برنامه خودمان را به مرور آپدیت و توسعه دهیم و لذا ساختار مند بودن پروژه امری حیاتی است. در ساختارها ما به نحوه چیدمان CLASS ها بسیار توجه میکنیم و برنامه را بر اساس اصول SOLID هم پیاده سازی میکنیم. شرط به کارگیری توابع را انواع جاهای مختلف در نظر میگیریم و هر کلاس دقیقا یک کار مشخص را انجام میدهد را هم باید داشته باشیم. حتی در چیدمان فایل ها و پوشه ها هم باید توجه داشته باشیم اینها بخشی از DDD هستند. در واقع Domain Driven Design (DDD) کسب و کار و فناوری اطلاعات را نزدیک‌تر می‌کند و توسعه نرم‌افزار را حول داشتن بینش معتبر در مورد فرآیندهای خودکار متمرکز می‌کند.

کمی بیشتر با یک مثال آشنا شوید : به بیمارستان حیوانات فکر کنید. نمونه‌هایی از کارشناسان حوزه کسب‌وکار در این مورد، برای مثال، دامپزشک یا دستیار هستند. آنها می توانند اطلاعات عملی زیادی به شما بدهند، قرار ملاقات ها چگونه برنامه ریزی می شوند؟ یا مشتریان چگونه برای واکسیناسیون سالانه حیوان خانگی خود دعوت می شوند؟ نمای کلی درمان با هزینه های مرتبط با آن چگونه است؟ سپس کارشناسان حوزه IT می توانند جنبه فنی را ترسیم کنند. چه سیستم هایی در حال حاضر وجود دارند؟ و مشتریان چگونه وارد می شوند؟ این یک راه عالی برای ایجاد یک نمای کلی مشترک است.

“یک چرخ دنده خاص فقط زمانی خوب کار می کند که از قبل بدانید بقیه دستگاه چگونه کار می کند. همین امر در مورد توسعه نرم افزار نیز صدق می کند.”

جلسه(های) Big Picture (جلسات تحلیل و بررسی نیازمندی ها) متخصصان حوزه کسب و کار و فناوری اطلاعات را گرد هم می آورد و یک چشم انداز را به آنها ارائه می دهد، اما اغلب شاهد بروز بینش های جدید نیز هستیم. یک مثال از یک مسئله رایج در تجارت، ادغام بین سیستم مدیریت اطلاعات محصول (PIM) و فروشگاه اینترنتی است. یک سیستم PIM خوب اطلاعات محصول بدون خطا، ثابت و به روز را در فروشگاه شما تضمین می کند. سپس باید با فرآیندهای مربوط به مدیریت PIM، مدیریت فروشگاه اینترنتی و غنی سازی داده ها سر و کار داشته باشید. داده های PIM نیز باید در فروشگاه منتشر شود. توافقات روشن در مورد اینکه کدام سیستم مسئول چه موضوعی مهم است. به لطف جلسه تصویر بزرگ و گفتگو با همه کارشناسان حوزه درگیر، تنگناها شناسایی می شوند و درک روشنی از فرآیندها ایجاد می شود. نرم افزار بهتر با واقعیت و نیازهای واقعی کاربران واقعی مطابقت دارد.

آنچه Domain Driven Design ارائه می دهد

چگونه یک جلسه تصویر بزرگ در Domain Driven Design ارزشی را برای توسعه نرم افزار ارائه می دهد؟ از نقش ما به عنوان یک شریک دیجیتال، در iO به این صورت به این موضوع نگاه می کنیم:

تجربه مشتری شماره 1: با مدل سازی نرم افزار در اطراف دامنه ها، کاربر در اولویت قرار می گیرد و می توانید سفرهای دیجیتالی سیال ایجاد کنید.

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

درک مشترک: با ایجاد یک زبان واضح که توسط همه متخصصان حوزه استفاده می شود، آنها به گفتگو تبدیل می شوند و می توانند نقاط شروع و علایق یکدیگر را بهتر درک کنند. این می‌تواند بسیاری از پیچیدگی‌های یک پروژه را حذف و ابهام کند.

راه حل های مقیاس پذیر: با بحث در مورد اهداف تجاری با هم، رویدادها و کمپین های احتمالی را می توان از قبل با جزئیات برنامه ریزی کرد. برای مثال، سیستم‌هایی را می‌توان طوری طراحی کرد که بتوانند با اوج بار با کمپین‌های Sinterklaas و کریسمس کنار بیایند.

پل بین کسب و کار و فناوری اطلاعات

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

با این کار، تمرکز توسعه برنامه از تمرکز بر یک موضوع فنی کاملاً تعیین‌شده، به توسعه قابلیت‌ها با ارزش افزوده لازم برای یک مدل تجاری تغییر می‌کند. این امر DDD را برای چالش‌های دیجیتال پیچیده‌تر، مانند توسعه راه‌حل‌های سفارشی‌سازی شده برای پلتفرم‌ها یا گسترش نرم‌افزار استاندارد، ایده‌آل می‌سازد. این اغلب شامل حوزه های مختلف در سراسر زنجیره می شود، با مهمترین مزیت این است که فرآیندهای توسعه می توانند کارآمدتر اجرا شوند (هزینه).

اجرای دستور sum روی ۱۰۰ رکورد اول در SQL

احتمالا اگر بخواهید از یک روش ساده برای دریافت ۱۰۰ رکورد اول استفاده کنید دستور زیر را وارد میکنید

select sum(amount) from orders limit 100

اما متاسفانه این دستور به درستی عمل نمیکند و ستون amount را در کل رکورد ها جمع میزند . راه حل این است که از sub query استفاده شود. به طور مثال

select sum(tmp.amount) from (
select * from orders limit 100
) as tmp

انواع روش های نامگذاری در کدنویسی

یکی از اصولی که باید در کدنویسی رعایت کرد نحوه تعریف متغییرها و کلاس ها و … است. با رعایت این اصول کدنویسی از یک شکل مشخصی تبعیت میکند به این صورت که اگر قرار است یک کلاس برای مدیریت کتاب داشت به چند شکل میتوان آن را تعریف کرد BookManager یا book-manager یا bookManager و چندین حالت دیگر به طور کلی هفت روش نامگذاری به صورت استاندارد تعریف شده که به شرح ذیل است.

پرکاربرد ترین آنها SNAKE و PASCAL و CAMEL می باشد.

TransformerEffect
SNAKEgo_sdk
KEBABgo-sdk
CAMELgoSdk
PASCALGoSdk
LOWERgo-sdk
UPPERGO-SDK
TITLEGo-Sdk

نرم افزار مدیریت پسورد متن باز

شاید اسم سایت های مدیریت پسورد مثل passpack و.. را شنیده باشید که به شکل رایگان و تجاری فعالیت میکنند اما امروزه میتوان از نسخه های متن باز و بسیار ایمن تر هم استفاده کرد البته روی سرور شخصی خودتان. برای خودم جالب بود که این سرویس در حال حاضر در دسترس است و به سادگی با کمک داکر در لینوکس و در سرور ویندوزی قابل نصب است.

Bitwarden نام پروژه ای است که هم دارای نسخه ابری به صورت رایگان و تجاری است و هم نسخه قابل دانلود و نصب روی سرور خصوصی شما به صورت نامحدود. جهت نصب این پروژه باید به صفحه github آن مراجعه کنید و مطابق دستور العمل های گفته شده این نرم افزار را نصب کنید. به نظر من از سرور لینوکسی استفاده کنید و لازم است که داکر را هم روی سرور لینوکسی خود نصب کرده باشید.

مشتری پسندی و جذب بازار بیشتر

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

توجه به اهمیت پشتیبانی مشتریان

نرم افزار صنعت پویا و چابکی است و مهم ترین دلیل رشد کسب و کارهای هم صنف ما هم توجه به موضوع پشتیبانی مشتریان خودشان است. ما به عنوان یک تولید کننده محصولات باید به اهمیت این نکته توجه داشته باشیم که مشتری که امروز راضی است میتواند مشتریان جدیدی را برای ما داشته باشد و برعکس مشتریان ناراضی نه تنها چیزی در آینده ندارند (قطع همکاری) بلکه با بد گفتن از برند میتوانند فرصت های بعدی را هم دست داد. تجربه ثابت کرده است که مشتریان راضی بعد از سالها با دیدن تبلیغات شما خیلی سریع و با اطمینان بالا شما را تایید میکنند و شما را به دوستان و همکاران خودشان پیشنهاد میکنند. این روش تبلیغاتی که به تبلیغات دهان به دهان معروف است صرفا ازطریق مشتریان راضی و خوشحال اتفاق خواهد افتاد. البته ارزش این نوع مشتریان هم بسیار بالاست و با داشتن دهها و یا صدها مشتری راضی میتوان بازار را در آینده تسخیر کرد.

استفاده از نرم افزارها برای جلب اعتماد بیشتر و افزایش رضایت مشتری

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

  • نرم افزار google keep
  • نرم افزار google calender

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

جدا از نرم افزارهای عمومی ابزارهای تخصصی وجود دارد که توسط کارشناسان با تجربه مورد استفاده قرار میگیرد این ابزارها مانند سیستم های CRM و نرم افزارهای پشتیبانی مانند نرم افزار تیکتینگ است. از طرفی میتوان از هوش تجاری BI هم برای پیشبینی ها و برنامه ریزی های بهتر کمک گرفت.

پشت هر سازمان موفق یک تیم موفق است

حقیقتا نمیتوان یک تیم موفق به خودی خود تشکیل شود قطعا مدیر آن شرکت تلاش و هزینه بسیاری را برای ساختن آن کرده است و در نهایت کل شرکت در هدف ارتقا آن تلاش می کنند. یاد تجربه سالها پیش افتادم. در گذشته خود من بسیاری از کارها را به تنهایی انجام میدادم حتی تبلیغات و کارهای مربوط به قرارداد و … امروز با خودم فکر میکنم که این کار برای مدتی خوب بود اما متاسفانه طولانی شد و به من ضرر وارد کرد.

برای داشتن مشتری موفق باید شرکتی موفق ساخت

شرکت موفق و مشتری موفق هر دو در کنار هم هستند . شرکت ها برای کمک به مشتریان خود تاسیس میشوند. و بدون وجود نیاز هیچ شرکتی تاسیس نمیشود اما به دلیل سهل انگاری و عدم توجه به ایم موضوع مهم حتی برعکس آن رخ میدهد و درواقع مشتریان از شرکت هایی که باید خدمات خوبی را ارایه کنند خدمات بد و ناراضی کننده ای خواهند گرفت. این افراد در حال کسب تجربه با شرکت های بی تخصص هستند و یا اصلا نمی دانند چه وظیفه ای دارند و چرا باید حضور داشته باشند.

کسب و کارهای موفق از افراد شاد تشکیل میشوند

شادی یعنی رشد و سر زندگی واقعا با روحیه بد نمیتوان قدم های بزرگی برداشت البته به شرطی که روحیه خود رویه پیش فرض زندگی باشد و بعد میتوان خدمات خوبی را هم به مشتریان عرضه کرد. برای داشتن یک مشتری راضی حتما صاحب کسب و کار هم راضی و خوشحال است. یکی از مواردی که من را سالها درگیر کرده بود دیر خوابیدن بود با بررسی سبک زندگی افراد موفق متوجه این شدم که آنها تا قبل از ساعت ۱۰ شب میخوابند و فردا از ساعت ۵ صبح بیدار هستند… این نکته بسیار مهمی است مخصوصا برای مدیران. اگر بخواهم تاثیر همین یک مورد (زود خوابیدن) را بگویم واقعا میتوانم قسم بخورم که در گذشته من نصف عمرم را به دلیل تمرکز پایین در فردا صبح و نداشتن تمرکز بالا و بی حوصلگی از دست داده ام. اما خدا را شکر با تلاش و برنامه ریزی و ایستادگی در تصمیم گیری که برای منظم کردم برنامه خوابم داشتم توانستم از شر این معضل خلاص شوم. متاسفانه در ایران بسیاری از مردم دچار اختلال خواب هستند و تاثیری بدی را روی کیفیت کاری و زندگی فردی و اجتماعی آنها گذاشته است.

در نهایت یک مشتری راضی میتواند چرخ کسب و کار شما را بچرخاند و مشتری ناراضی هم چرخ کسب و کار شما را پنچر خواهد کرد 🙂

بدون یادگیری داکر پروژه های خود را داکرایز کنید

اگر شما توسعه دهنده یکی از پلتفرم های Laravel, Symfony, Next, Nuxt, WordPress باشید برای مرحله Devops نیاز به یادگیری خیلی چیزها دارید که چطور بتونید پروژه خود را با کمک Docker راه اندازی کنید معمولا شاید در گوگل سرچ میزنید و یک نمونه آماده را پیدا میکنید و با کمی تغییر آن را اجرا میکنید و ممکن است انواع مشکلات امنیتی و خطاهای سطح دسترسی را هم داشته باشید و از طرفی هم گوشه ای از ذهنتان درگیر نگهداری آن باشد.

اما امروز من با یک ابزار جدید آشنا شدم که خیلی کار شما را در بخش داکر راحت میکند این ابزار میتواند برای شما در حالت های توسعه یا حالت عملیاتی به شکل کاملا بهینه و اصولی اجرا کنید. کافی است وارد سایت https://kool.dev شوید و دستور نصب آن را وارد کنید.

curl -fsSL https://kool.dev/install | bash

با اجرای این دستور ابزار kool برای شما نصب میشود و زین پس میتوانید زیرساخت و کدهای مربوط به داکر را برای انواع پروژه های خود به سرعت و دقت بالا اجرا کنید.

مثلا شما میخواهید پروژه لاراولی خود را داکرایز کنید البته یک نکته را هم بگم که خود لاراول یک پکیج برای داکر دارد که به laravel sail معرفی شده اما متاسفانه فقط برای وضعیت توسعه روی سیستم توسعه دهنده است و هیچ راهکاری را برای حالت production نمیدهد یعنی حتی ngnix را هم ندارد و کلیه تنظیمات بر اساس وضعیت تست و برنامه نویسی ساخته شده .

برای شروع البته باید قبلا این پست را خوانده باشید اگر در ایران و سرورهای ایران کار میکنید

$ kool create laravel my-project

سپس بعد از pull شدن میتوانید ساختار مورد نظر خود را مشابهه نمونه زیر کانفیگ کنید

در نهایت با وارد شدن به پروژه

cd my-project

مشاهده خواهید کرد که دو فایل docker-compose.yml و kool.yml به پروژه اضافه شده تا اینجا زیر ساخت ساخته شده و بعد باید تنظیمات .env پروژه را بر اساس داکر قرار دهید که به طور کامل در لینک زیر قابل دسترس است. البته داخل فایل kool.yml دستوراتی درج شده که در پایین توضیح دادم و شما میتوانید دستورات بیشتری را هم به آن اضافه کنید.

https://kool.dev/docs/presets/laravel#2-update-envexample

ضمنا kool به شما یکسری دستورات هم میده که دیگه نیاز به وارد شدن به shell container نداشته باشید چون وقتی شما اگر داکر استفاده میکنید مثل حالت عادی نمی تونید دستورات php artisan migrate را اجرا کنید حتما باید وارد container بشید و بعد اونجا واردش کنید اما با کمک kool دستورات به شکل زیر قابل استفاده هستند

kool run artisan migrate:fresh --seed

توضیحات بیشتر هم در ادامه لینک بالا قرار دارد اما دقیقا اینجاست

https://kool.dev/docs/presets/laravel#3-run-kool-run-setup

نتیجه کار افراد نتیجه گرا

نتیجه گراها همان افرادی هستند که قبل از اینکه شروع به کاری کنند ۱۰۰۰ بار آن کار را بالا پایین میکنند و کل روز خودشون را صرف بررسی و مقایسه میکنند. این افراد در تصمیم گیری های خودشان بسیار تردید دارند و فرصت های طلایی زندگیشان را هم به باد میدهند، آنها همیشه در یک دوراهی هستند که در نهایت قید همه این دو راه را هم میزنند و میروند سراغ راه سوم. بلاخره اینکه افراد نتیجه گرا افراد موفقی نیستند و پیش بینی ها و ترس از شکست ها باعث میشود افراد کمالگرا و نتیجه گرا شوند

افراد نتیجه گرا

برای یک فرد موفق بررسی کلی راه بسیار مهم است اما به شرطی که فقط ۲۰ درصد در شروع کار به این بررسی پرداخت و ۸۰ درصد ادامه را با سرعت ادامه داد.

بازیابی رمز ورود وردپرس بدون دسترسی به ایمیل ریست پسورد

معمولا به دلیل عدم کانفیگ بودن سرور ایمیل بعضا در هنگام ریست رمز ورود شما ایملیی دریافت نمیکنید! اگر شما نتوانید ایمیل را دریافت کنید باید چه کار کرد ؟ شما باید وارد phpMyadmin شود و در جدول wp_users کاربر مورد نظر را که مثلا admin است را ویرایش کنید و در ستون password معادل پسورد موقت ۱۲۳۴۵۶۷۸ را وارد کنید و بعد از اینکه وارد ادمین شدید مجددا آن را به یک رمز قوی تغییر دهید.

نکته ای که وجود دارد شما نمیتوانید مقدار ۱۲۳۴۵۶۷۸ را وارد فیلد password کنید و باید معادل hash شده را جایگزین کنید این معادل عینا برابر پسورد ۱۲۳۴۵۶۷۸ است در غیراینصورت وردپرس رمز را نمیتواند تطلبق دهد

مقدار hash زیر را جایگزین فیلد password با مقدار قبلی کنید . توجه کنید که حتی یک فاصله خالی هم میتواند hash را نامعتبر کند.

$2y$12$7GZgHNnnMStUUgsUkG4KC.MswaKH2yq8.N0wM/B.vfr6F5/SoPteC

روش ساخت hero در صفحه نخست سایت

با استفاده از flex ها میتوان کارهای قشنک و اصولی ساخت یک نمونه hero صفحه نسخت است که در این آموزش گفته میشود.

<header class="hero">
  <div class="center-content">
    <h1>An Article Title</h1>
    <h3>A longer subtitle but still important</h3>
    <a href="#" class="button">Some Action Here</a>
  </div>
</header>
.hero {
  background-image: url("https://unsplash.it/1500?random");
  background-size: cover;
  background-position: center;
  width: 100wh;
  height: 100vh;
  display: flex;
}

.center-content {
  width: 400px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: auto;
}
.center-content h1, .center-content h3 {
  color: white;
  line-height: 1;
}
.center-content h1 {
  text-transform: uppercase;
  font-size: 3em;
  margin-bottom: 0;
  text-align: center;
}
.center-content h3 {
  margin-bottom: 40px;
  font-size: 1.5em;
  font-weight: normal;
}

.button {
  text-transform: uppercase;
  color: white;
  padding: 20px;
  border: 1px solid white;
  text-decoration: none;
}
.button:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
  color: white;
}

جهت نمایش نسخه لایو

تغییر سورس های هاست در vs code

سلام احتمالا برای تغییر در سورس های سایت خود مجبورید وارد direct admin بشید و از طریف file manager فایل سورس سایت را تغییر میدید . این یک روش سریع است اما اگر مجبورید سورس هایی که در لوکال نیستند را توسعه بدید باید از قابلیت SFTP در vs code استفاده کنید با این پلاگین شما به پورت 22 (ممکنه از طریق هاست تغییر کرده باشه که باید از فروشنده هاست آن را سوال کنید) وصل بشید . طبق مراحل زیر ابتدا پلاگین Natizyskunk.sftp را نصب کنید.

ext install Natizyskunk.sftp

بعد با اجرای دستور CTRL + shift + p کامند پالت را باز کنید و دستور SFTP: config را وارد کنید و enter

در صفحه باز شده باید به نسبت هر سایت تنظیمات هاست را قرار بدید

{
    "name": "My Site",
    "host": "000.000.000.000",
    "protocol": "sftp",
    "port": 22,
    "username": "siteusername",
    "remotePath": "/home/mysite/domains/mysite.com/public_html",
    "uploadOnSave": true
}

در صورتی که مقدار remotePath را برابر اسلش / قرار بدید root را در نظر میگیرد و باید وارد مسیری که پروژه نصب شده وارد بشید ولی طبق مدل نمونه به صورت پیش فرض در مسیری که پروژه نصب شده وارد میشوید (مثال دایرکت ادمین است )

طبق تصویر زیر هم از منو سمت چپ روی ایکن SFTP کلیک کنید و با زدن روی نام سایت و وارد کردن پسورد هاست میتوانید دایرکتوری هاست را مشاهده کنید . البته برای ویرایش فایل ها باید با کلیک روی نام فایل و انتخاب گزینه Edit in local از این به بعد خیلی ساده با تغییر کد و ذخیره به صورت آنی روی هاست به روز میشود

افزونه vs code برای کار با laravel

برای کار با لاراول در vs code باید یکسری از افزونه را به صورت تکی جستجو کنید و نصب کنید که امروز به افزونه ای آشنا شدم به عنوان Laravel Extension Pack که لیستی از افزونه های زیر را به صورت گروهی همراه خودش نصب میکند.

Laravel Blade Snippets
Laravel Snippets
Laravel Artisan
Laravel Extra Intellisense
Laravel goto view
laravel-jump-controller Laravel controller
laravel-goto-components
Laravel Blade formatter
Laravel Create View Create
Laravel Blade Wrapper
DotENV .env

سایزهای استاندارد در bootstrap 5

کلیه کلاس های margin و padding در bootstrap 5 بر اساس rem تقسیم بندی میشوند به طور مثال

rempadding و margin
0.25m-1 , p-1
0.5m-2 , p-2
1m-3 , p-3
1.5m-4 , p-4
3m-5 , p4

فاصله بین هر col برابر با 1.5 rem یا 24 px است.