برنامه نویسی

توابع تناسب اندام – بررسی مداوم نرم افزار شما

مقدمه

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

توابع تناسب اندام چیست؟ 👋

در فصل 1 کتاب ، مفهوم توابع تناسب اندام ، که توسط کتاب معماری های تکاملی ساختمان (نیل فورد ، ربکا پارسونز و پاتریک کوا) محبوبیت یافت.

گزیده ای از کتاب

“آنها مفهوم عملکرد تناسب اندام یک معماری را تعریف کردند: هر مکانیزمی که ارزیابی عینی از یکپارچگی برخی از ویژگی های معماری یا ترکیبی از خصوصیات معماری را انجام دهد.”

این چیزی غیر از مکانیسم ها ، خودکار یا نه نیست ، که به طور مداوم کیفیت یک جنبه معماری یک سیستم را اندازه گیری می کند. ایده این است که معیارهایی را تعریف کنیم که اطمینان حاصل شود که معماری بدون کنترل ویژگی های اساسی ، کنترل می شود. بررسی های مداوم برای آزمایش اینکه آیا یک سیستم هنوز “تناسب اندام” در رابطه با معیارهایی مانند عملکرد ، ایمنی ، مدولار بودن ، در دسترس بودن از جمله دیگر انجام می شود ، انجام می شود.
فکر کردن در مورد عملکرد اصلی یا انتقاد سیستم.

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

در زیر مقوله هایی وجود دارد که می توان از توابع تناسب اندام استفاده کرد و نمونه های مشخصی را برای تسهیل درک و اجرای ارائه می دهد.

کیفیت کد

چرا توابع تناسب اندام می توانند در این مرحله کمک کنند؟ برای اطمینان از کیفیت نرم افزار ، کدام عملکردهای تناسب اندام را می توانیم ایجاد کنیم؟

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

فکر کردن در مورد عملکردهای تناسب اندام برای اطمینان از کیفیت کد ، می توانیم موارد زیر را ایجاد کنیم:

عملکرد تناسب اندام کیفیت کد

  • پوشش آزمون واحد هرگز زیر حد مشخصی نیست. ژاکوکو
  • آنالارها و آنالایزرهای کد استاتیک برای اطمینان از الگوهای نامگذاری و جلوگیری از پیچیدگی بیش از حد. فرمت جاوا Google
  • تست های واحد برای اطمینان از اینکه ماژول ها در یک پروژه وابستگی های دایره ای ایجاد نمی کنند یا حتی اتصالات ArchUnit غیر ضروری ایجاد می کنند.

وی در این کتاب به یک کتابخانه در جاوا اشاره می کند ، که من برای تأیید لایه ها یا حتی شیوه های برنامه نویسی خوب ، تست های واحد را انجام دادم. (یک قدم کمتر)

در زیر نمونه ای از کد جاوا است که برای تأیید اینکه درمان های خطا به درستی انجام می شود ، بدون استثنائات عمومی ، و اگر لایه های کنترلر ، USESCASES و دروازه ها رعایت می شوند ، آورده شده است:

@AnalyzeClasses(packages = "com.coelho.api")
public class ModuleTest {

  @ArchTest
  private final ArchRule no_throw_generic_exceptions = NO_CLASSES_SHOULD_THROW_GENERIC_EXCEPTIONS;

  @ArchTest
  static final ArchRule layer_dependencies_are_respected = layeredArchitecture()
      .consideringAllDependencies()
      .layer("Controllers").definedBy("com.coelho.api.controllers..")
      .layer("Usecases").definedBy("com.coelho.api.usecases..")
      .layer("Gateways").definedBy("com.coelho.api.gateways.")

      .whereLayer("Controllers").mayNotBeAccessedByAnyLayer()
      .whereLayer("Usecases").mayOnlyBeAccessedByLayers("Controllers")
      .whereLayer("Gateways").mayOnlyBeAccessedByLayers("Usecases");
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

امنیت

امنیت بخش مهمی است که ما نمی توانیم آنها و عملکردهای تناسب اندام را با فرآیندهای خودکار در آسیب پذیری ها فراموش کنیم.

امنیت تناسب اندام

  • آسیب پذیری در وابستگی ها. مدفوع
  • قرار گرفتن در معرض داده های حساس. گیتلیک
  • کد با خرابی ایمنی.

عمل

پرفروش یا سلامتی سیستم من از نظر من این نکته اصلی است اگر چیزی وجود نداشته باشد که کسی با شما تماس بگیرد !! و ما آن هاها را نمی خواهیم
این می تواند از بسیاری جهات مورد تجزیه و تحلیل قرار گیرد ، اما من روی ابزار Telemry باز تمرکز خواهم کرد ، که در پروژه بنیاد بومی ابر کاملاً منبع باز و به خوبی تلفیق شده است. در واقع آنها API ها را به صورت آنالوگ به طور استاندارد به نمایش گذاشته اند تا بتوانید ابزارهایی را که در آن داده ها را تجزیه و تحلیل می کنید تغییر دهید ، خواه Jaeger یا Zipkin ، Loki یا Kibana ، سرانجام … مشاهده می تواند به ما نشان دهد که آیا این برنامه سالم است یا خیر ، ما معیارهای زیادی برای تجزیه و تحلیل این کار داریم اما من برخی را به عنوان مثال می گذارم:

عملکرد عملکرد تناسب اندام

از راه دور باز

  • نظارت برای اطمینان از زمان پاسخ قابل قبول. (مثال: P95 <500ms)
  • کنترل نرخ خطا 5xx.
  • نظارت و حافظه CPU.
increase(http_server_request_duration_seconds_count{http_server_request_duration_seconds_count=~"5.."}[5m]) >= 1
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

histogram_quantile(0.95, rate(http_server_request_duration_seconds_bucket[5m])) > 0.5
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پایان

خوب ، پس از مثالهای فوق ، امیدوارم که شما ایده هایی داشته باشید که آنها را در پروژه های خود بگنجانید (امیدوارم که ههههه). ما قبلاً از این مفاهیم استفاده کرده ایم بدون اینکه به طور رسمی آنها را درک کنیم ، مانند هشدارهای اتوماتیک در مورد مشکلات بهداشتی کاربردی.

ایده آل شناسایی نکات مهم یک برنامه و ایجاد توابع تناسب اندام برای ارزیابی آنها است. همیشه اهداف و معیارهای روشنی داشته باشید. مثال: زمان پاسخ خدمات باید در 95 ٪ درخواست ها کمتر از 300ms باشد. مشاهده سیستم بسیار مهم است (این حتی اسپویلر محتوای بعدی است). با این حال ، ارزیابی موارد نیز مهم است ، ما نمی خواهیم توسعه پیچیده تری را در توسعه به ارمغان بیاوریم و چیزی را مصرف کنیم ، بنابراین فکر کردن خوب است.

امیدوارم این انتشار در مورد عملکردهای تناسب اندام برای شما مفید بوده باشد! اگر قبلاً از چیزی مشابه استفاده می کنید یا ایده های دیگری دارید ، در نظرات به اشتراک بگذارید! 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا