برنامه نویسی

معماری سطح برنامه: پایه های ساختمان برای نرم افزار

هنگامی که توسعه دهندگان در مورد “معماری” صحبت می کنند ، مکالمه معمولاً به سمت برنامه های سطح سیستم بزرگ می رود-استراتژی های کلود ، طرح های توزیع شده یا خطوط لوله DevOps.

اما قبل از ساختن قلعه ها در آسمان ، باید آجری را روی زمین جامد بگذارید.

این جایی است که معماری در سطح کاربرد قدم در

این طرح چکمه های روی زمین است که بر روی یک برنامه واحد متمرکز شده است. بدون مهندسی بیش از حد.

فقط طراحی عملی که اطمینان حاصل می کند که پایگاه کد شما قابل حفظ ، مقیاس پذیر است و تحت فشار فرو نمی رود.

دقیقاً چه است ، معماری برنامه؟

از معماری برنامه به عنوان فکر کنید آناتومی داخلی از برنامه شما

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

این فقط در مورد اجرای برنامه شما نیست. این در مورد پاسخ دادن به سؤالات مانند:

  • منطق پرداخت کاربر به طور زنده به کجا می رسد؟
  • چگونه داده ها از UI به پایگاه داده جریان می یابد؟
  • چه اتفاقی می افتد که چیزی شکسته شود؟

این یک تئوری انتزاعی نیست – این تصمیماتی است که شما هر روز هنگام سازماندهی پایگاه کد خود می گیرید.

چرا زحمت می کشید؟ مزایای درستی آن

بیایید واقعی باشیم – بیشتر Devs از نمودارهای معماری هیجان زده نمی شوند. اما در اینجا به همین دلیل است که باید اهمیت دهید:

با کشتن افزونگی ها هزینه را کاهش دهید

یک معماری خوب به شما کمک می کند تا قبل از تکثیر ، منطق مکرر یا خدمات غیر ضروری را مشاهده کنید.
در چهار مکان “SendEmailTouser” کپی بیشتر نیست. یک ماژول ، یک کار.

با پیدا کردن شکاف زودتر ، کارآیی را بهبود بخشید

معماری خوب ساختار یافته نوری را در قطعات گمشده یا پیوندهای ضعیف می درخشد-مانند تنگنا در خط لوله داده شما یا خدماتی با مسئولیت های بیش از حد.

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

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

الگوهای معماری در مقابل الگوهای طراحی

بیایید سردرگمی را پاک کنیم.

الگوی معماری الگوی طراحی
ساختار سطح بالا کل برنامه راه حل های بومی شده در کد
به عنوان مثال ، میکروسرویس ، لایه بندی شده ، رویداد محور به عنوان مثال ، Singleton ، Observer ، کارخانه
تصمیم گیری نحوه ساخت برنامه تصمیم گیری چگونه بخش هایی از برنامه رفتار می کنند

به طور خلاصه: معماری طرح است. الگوهای طراحی طرح مبلمان است.

انواع مشترک معماری های کاربردی

بیایید چند مورد را که توسعه دهندگان در واقع در طبیعت استفاده می کنند ، تجزیه کنیم.

1 معماری لایه ای (N-stier)

  • ساختار: ارائه → منطق کسب و کار → لایه داده
  • از مورد استفاده کنید: برنامه های وب سنتی
  • جوانب مثبت: جدایی نگرانی ها ، آزمایش آسان تر
  • منفی ها: لایه های محکم همراه می توانند تغییرات دردناک ایجاد کنند

مثال: یک برنامه Django با نمایش ، مدل و سریال ساز.

2 معماری یکپارچه

  • ساختار: یک پایگاه بزرگ ، همه چیز در داخل
  • از مورد استفاده کنید: استارتاپ ها ، محصولات اولیه
  • جوانب مثبت: ساده برای ساخت و استقرار
  • منفی ها: مقیاس یا جداسازی ناکامی سخت است

مثال: اولین ریل یا برنامه لاراول شما. همه چیز در app/بشر

3 معماری خدمات گرا (SOA)

  • ساختار: خدمات قابل استفاده مجدد از طریق یک شبکه
  • از مورد استفاده کنید: سیستم های سازمانی میراث
  • جوانب مثبت: قابلیت استفاده مجدد ، خدمات کاملاً مناسب
  • منفی ها: ارتباط پیچیده و کلامی

مثال: سیستم های بانکی که به طور جداگانه خدمات حساب ، پرداخت و وام را در معرض نمایش قرار می دهند.

4 معماری میکروسرویس

  • ساختار: خدمات مستقل از طریق API ارتباط برقرار می کنند
  • از مورد استفاده کنید: برنامه های مقیاس Netflix ، سیستم های زمان واقعی
  • جوانب مثبت: مقیاس پذیر ، انعطاف پذیر ، مستقل قابل استقرار
  • منفی ها: گزینه های پیچیده ، اشکال زدایی سخت

مثال: Netflix uth ، فیلم ، صورتحساب ، همه خدمات جداگانه.

5 معماری محور رویداد

  • ساختار: همه چیز به رویدادها/پیام ها واکنش نشان می دهد
  • از مورد استفاده کنید: سیستم های زمان واقعی مانند برنامه های چت یا تجارت
  • جوانب مثبت: جفت سست ، پاسخگو بودن زیاد
  • منفی ها: اشکال زدایی ، پیچیدگی async سخت

مثال: یک برنامه Slack مانند که در آن هر پیام یک رویداد است.

6 معماری برنامه وب پیشرو (PWA)

  • ساختار: برنامه های وب که مانند برنامه های تلفن همراه احساس می کنند
  • از مورد استفاده کنید: سیستم عامل های وب موبایل اول
  • جوانب مثبت: متقابل پلتفرم ، آفلاین آماده
  • منفی ها: دسترسی محدود به ویژگی های دستگاه بومی

مثال: توییتر lite.

نحوه انتخاب معماری مناسب

انتخاب معماری مناسب فقط یک تصمیم فنی نیست – این یک محصول است. در اینجا چه فکر می کنید:

چه ویژگی هایی مهم است؟

  • آیا این برنامه فقط crud است؟
  • آیا به همگام سازی زمان واقعی نیاز دارید؟
  • آیا کاربران انتظار دسترسی آفلاین را دارند؟

لیست ویژگی های شما باید معماری شما را شکل دهد – نه از طرف دیگر.

چقدر انتظار دارید مقیاس کنید؟

  • آیا شما در حال ساختن یک ابزار داخلی هستید یا فروشگاه بعدی؟
  • اگر مقیاس اهمیت داشته باشد ، مدولار بودن و جدایی مهم می شود.

از کجا میزبانی خواهد شد؟

  • مقدماتی؟ ابر بومی؟ ترکیبی؟
  • ابر به شما مقیاس پذیری می دهد ، اما گاهی اوقات انطباق شما را ملزم می کند که پایه و اساس بمانید.

چقدر سریع تغییر خواهد کرد؟

  • اگر ویژگی ها اغلب تغییر می کنند ، انعطاف پذیری بهینه سازی را به وجود می آورد.
  • خدمات میکروسرویس ممکن است کار کند. یکپارچه؟ نه خیلی زیاد

سطح مهارت تیم شما چقدر است؟

  • شما ممکن است خواستن یک تنظیم میکروسرویس خدمات مدیریت شده توسط Kubernetes-اما اگر تیم شما با عشایر راحت تر است ، بیش از حد مهندسی نکنید.

tl ؛ دکتر

  • معماری در سطح کاربرد نحوه ساخت برنامه شما در سطح زمین را مشخص می کند.
  • این بر هزینه ، قابلیت حفظ ، عملکرد و انعطاف پذیری تأثیر می گذارد.
  • معماری خود را بر اساس عملکرد ، تیم ، نیازهای مقیاس پذیری و دید بلند مدت انتخاب کنید.
  • برای اعتیاد به مواد مخدره معمار نکنید. معمار برای مورد استفاده شما.

من به طور فعال روی یک ابزار فوق العاده مناسب به نام LiveApi کار کرده ام.

LiveApi به شما کمک می کند تا در چند دقیقه تمام API های پس زمینه خود را ثبت کنید

با LiveApi ، می توانید به سرعت مستندات API تعاملی را تولید کنید که به کاربران امکان می دهد API ها را مستقیماً از مرورگر اجرا کنند.

شرح تصویر

اگر از ایجاد دستی برای API های خود خسته شده اید ، این ابزار ممکن است زندگی شما را آسانتر کند.

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

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

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

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