در این مقاله در مورد معماری پروژه صحبت نمی کنیم. این مقاله بدون توجه به معماری پروژه شما است. (معماری تمیز، برش عمودی، Nlayer، معماری شش ضلعی و…).
در این مقاله، بهترین روش ها و ابزارها برای شروع یک پروژه net. در سال 2023 را مورد بحث قرار می دهیم. همچنین یاد می گیریم که چگونه از ابزارها و تحلیلگرها برای بهبود کد استفاده کنیم.
آیا تا به حال فکر کرده اید که پروژه ای مانند AspCore در GitHub بیش از 1100 توسعه دهنده دارد، چگونه مدیریت می شود؟ چگونه دست خط یکسان است؟ بررسی کد چگونه انجام می شود؟ best practice ها یا موارد بهینه سازی چگونه مشاهده می شود؟
در سال های اخیر، پیشرفت های زیادی در net. انجام شده است. به خصوص ازnet 5. به بعد، می توانیم علاوه بر تحلیلگرهای نوشته شده دیگران، از آنالیزهای اختصاصی .net استفاده کنیم.
این مقاله تجربه شخصی من در تیم های بزرگ نرم افزاری و مقالات متعدد است.
در این مقاله سعی داریم از بهترین ابزارها و تنظیمات برای بهبود کد و حل مشکلات استفاده کنیم.
تجربه من نشان داده است که وقتی از این ابزارها استفاده می کنید.
به مثال های زیر توجه کنید:
همه موارد فوق را با چشم و خطای انسانی می توانیم درک کنیم. اگر به طور خودکار همه موارد بالا را بفهمیم و حتی به کد اجازه ندهیم چه می شود?
خب بریم سر کار
ابتدا ساختار فایل های ما باید اینگونه باشد
ابتدا در مورد Directory.Build.props صحبت خواهیم کرد.
در این فایل تنظیمات کل پروژه را مشخص می کنیم.
فایل زیر بر اساس تجربه من در تیم ها و پروژه های بزرگ است. در دنیای تحلیلگرها، اینها بهترین هستند.
انجام تمام تنظیمات در این مقاله یک کار طولانی و دشوار است. در اینجا در مورد برخی تنظیمات صحبت خواهیم کرد.
در <!-- third-party analyzers -->
ما شروع به اضافه کردن تحلیلگرهای شخص ثالث کردیم. این آنالایزرها به همراه net. به ما کمک می کنند تا کد بهتری داشته باشیم. در مورد معرفی آنالایزرها می توانید لینک nuget آنها را بررسی کنید.
می توانید تنظیماتی را در این فایل قرار دهید که در IDE بررسی می شود.
ما یک سری تحلیلگر را در بالا تعریف کردیم. ما می توانیم برخی از تنظیمات آنها را با این فایل تغییر دهیم.
به عنوان مثال، خطای ایجاد شده توسط هر یک از آنالایزرها را می توان به عنوان یک پیشنهاد در این فایل مطرح کرد. یا حتی آن را خاموش کنید. یا در اینجا یک خطای جدید ایجاد کنید.
فایل زیر بر اساس تجربه من و تقلید از پروژه های بزرگ مانند AspCore است. همچنین CodeMetrice به آن اضافه شده است که پیچیدگی کد را محاسبه می کند و در صورت بالا بودن پیچیدگی خطا ایجاد می کند.
پیشنهاد میکنم از این فایل استفاده کنید
در این فایل ما بسته های nuget را مدیریت می کنیم.
در این فایل می توانیم یک سری ویژگی های net. را به صورت غیرمجاز تعریف کنیم. این مانع از استفاده برنامه نویسان می شود.
در این فایل مواردی را که نیازی به اضافه شدن به source controle ندارند را مشخص می کنیم. این فایل حاوی best practice ها است.
در این فایل ما SDK پروژه را پیکربندی می کنیم. با این تنظیمات، ما مشخص می کنیم که پروژه ما از کدام نسخه SDK استفاده می کند و شما مجاز به ساخت با کدام نسخه هستید.
در این فایل مشخص می کنیم که از کدام repo برای بسته ها استفاده کنیم. در سازمان های بزرگ آدرس repo شرکت در اینجا مشخص می شود. اگر مخزن خاصی ندارید، به این فایل نیازی نیست.
در این فایل تنظیمات CLS را مشخص می کنیم.
با افزودن فایل ها و تنظیمات فوق، پروژه شما دارای تحلیلگرهای مفیدی خواهد بود که باعث کاهش باگ، بهبود کد، کیفیت بالاتر کد، کد قابل نگهداری و یکنواخت شدن دست خط برنامه نویسان مختلف می شود.
تجربه به من ثابت کرده است. اکثر آنالیزهایی که به برنامه نویسان اعلام می شد جدید بود و آنها از آن اطلاعی نداشتند و این تحلیل ها باعث یادگیری آنها شد.
با رشد تیم و افزایش تعداد افراد، این تنظیمات بهره وری کار را تا حد زیادی افزایش می دهد و کیفیت کار را بهبود می بخشد.
این تحلیل ها در سیستم هر برنامه نویس شروع به کار می کنند. اگر برنامه نویسی موارد خطا را مدیریت نکند، پروژه Build نخواهد شد. اگر کد خود را commit کند، در فرآیند CICD هنگام Build پروژه، تمام آنالیزها انجام می شود و باعث می شود CICD با خطا مواجه شود. و نیاز به اصلاح دارد.
اگر پروژه جدیدی ایجاد کرده اید، حتما از تنظیمات بالا استفاده کنید.
اگر در حال حاضر پروژه ای دارید می توانید تنظیمات فوق را در آن قرار دهید، توجه داشته باشید که با تنظیمات بالا خطاهای زیادی ایجاد می شود. اگر بتوانید خطاها را برطرف کنید، ارزشش را دارد. و در آینده سود خواهید برد.
زمانی که من سرپرست Backend شرکت SadadPSP بودم، تعداد برنامه نویسان دات نت 15 نفر بیشتر بود. من همیشه نگران نگهداری کد بوده ام.
من همیشه مسئول بالا بردن کیفیت کد، حفظ دستخط کد پروژه و استفاده از ابزارهایی برای بهبود کار بودم.
این مقاله حاصل تجربیات من در ابتدا در شرکت SadadPsp و اکنون در کارگذاری مفید است. امیدوارم استفاده کرده باشید.
لطفا با دوستان خود به اشتراک بگذارید