برنامه نویسی

اجرای پارادایم برنامه نویسی جریان – برداشت قدرت توابع باطل

Compose Flow Project Python Open-Source را بررسی کنید ، ابزاری که اجرای آن را تسهیل می کند جریان اعدام الگوی برنامه نویسی.

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

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

توابع باید آرگومان ها را تصویب کنند.

شکل 1. نمودار ساده ای که نحوه عملکرد توابع را نشان می دهد. جعبه های رنگی آرگومان های ورودی عملکرد را نشان می دهند.

آرگومان های ورودی تابع

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

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

انفجار تغییرات عملکرد

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

پیچیدگی پایگاه کد به صورت نمایی رشد می کند.

شکل 2. پیچیدگی پایگاه کد حتی با استفاده از اصلاح مداوم کد به صورت نمایی رشد می کند.

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

چرا نمی توان دوباره کمک کرد؟

میزان اصلاح مجدد پایگاه کد بی ربط است زیرا صرفاً اصلاح مجدد پیچیدگی را تغییر می دهد از یک شکل به شکل دیگر. این می تواند تعداد کمی از کارکردهای عظیم و انشعاب را کاهش دهد ، اما با این کار ، اغلب در تعداد عظیمی از عملکردهای کوچکتر و وابسته به هم منفجر می شود و یک نمودار اجرای پیچیده را تشکیل می دهدبشر

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

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

رسیدگی به تغییر کد

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

حفاری بحث

شکل 3. “حفاری استدلال” – یک جعبه قرمز آرگومان ورودی جدیدی را که مورد نیاز است نشان می دهد عملکرد 4بشر

متاسفانه ، حفاری بحث تأثیر قابل توجهی دارد ، زیرا نیاز به اصلاح نه تنها تمام کارکردهای زنجیره ای بلکه ایجاد تغییرات عملکرد جدید دارد.

میزان تغییر کد

شکل 4. بزرگی یک کد “ساده” در یک سیستم بزرگ تغییر می کند.

“تغییر کد ساده” در سیستم های بزرگ پیچیده می شود زیرا تعداد نقاط لمسی از نظر نمایی رشد می کندبشر

اجرای الگوی برنامه نویسی جریان

مزایای جریان اعدام الگوی برنامه نویسی از سه ویژگی اصلی ناشی می شود:

1) توابع هیچ بحثی نمی کنندبشر

2) توابع مخلوط هستندبشر

3) توابع از نام های نام مستعار استفاده می کنندبشر

بیایید هر یک از این موارد را با جزئیات بیشتری بررسی کنیم.

معرفی روش ها و خصوصیات به عنوان توابع باطل

اولین تفاوت مهم در جریان اعدام الگوی برنامه نویسی این است که یک تابع (به عنوان a گفته می شود روش) می تواند به هر نقطه داده دسترسی پیدا کند (به عنوان a گفته می شود دارایی) موجود در زمینه جریان.

روشها دسترسی مستقیم به خصوصیات دارند

_شکل 5 جریان اجرای ویژگی های داده را فراهم می کند (جعبه های رنگی) به روشهای آن مستقیماً از متن جریان ، نیاز به تصویب آنها را به عنوان استدلال از بین می برد.

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

روش ها و خصوصیات به عنوان میکس

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

روش ها و خصوصیات به عنوان mixins عملکرد

شکل 6. روش ها و خصوصیات به عنوان مخلوط کردن – یک نمونه واحد را می توان به چندین جریان اضافه کرد.

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

سومین جنبه اصلی میکسین ها – چه روش ها و چه از خصوصیات – این است که آنها با استفاده از یک میکس های دیگر را ارجاع می دهند نام مستعاربشر

به عنوان مثال ، روش 1-1 در شکل 6 فراخوانی روش 2، بدون مشخص کردن مستقیم روش 2-1 یا روش 2-2بشر در عوض ، جریان تعیین می کند کدام یک روش 2 استفاده خواهد شد: یا روش 2-1 یا روش 2-2بشر

زیرا:

1) روشها هیچ استدلالی در نظر نمی گیرند، کاهش وابستگی به داده های صریح.
2) روشها مخلوط هستند و می تواند به هر جریان اضافه شود.
3) روشها از نامهای نام مستعار استفاده می کنند برای دسترسی به سایر مخلوط ها به جای منابع مستقیم.

در نتیجه ، ما به دست می آوریم چندین مرتبه از بزرگی تغییرات کمتری دارند در پیاده سازی عملکرد.

حال ، بیایید بررسی کنیم که چقدر این پیچیدگی را کاهش می دهد.

پیچیدگی تغییر کد در الگوی برنامه نویسی جریان اجرا …

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

اضافه کردن یک ویژگی به جریان تغییر یک خطبشر

افزودن تغییر در جریان اجرا

شکل 7. جعبه قرمز نشان دهنده یک ویژگی داده جدید است که توسط آن استفاده می شود روش 4بشر

برای درک بهتر اینکه چگونه یک تغییر کد بومی سازی شده است ، بیایید بررسی کنیم که برای اصلاح چندین جریان که تغییرات یک مورد استفاده مشابه است ، چه چیزی لازم است.

اضافه کردن تغییر در بسیاری از جریان ها

شکل 8 اجرای تغییر در چندین جریان.

تغییر کد محدود به روش 4-1 و شامل اضافه کردن یک جدید است ترکیب املاک به جریانی که استفاده می کنند روش 4-1بشر

اضافه کردن مخلوط خاصیت به یک جریان تغییر کد یک خطبشر

پایان

با اتخاذ جریان اعدام پارادایم ، ما کاهش می دهیم پیچیدگی نمایی تغییر کد از o (kⁿ) به پیچیدگی ثابت O (1)بشر

به عنوان مثال ، تغییر کد نشان داده شده در شکل 8 نیاز به اصلاح فقط یک تک روش و اضافه کردن دارایی به تعداد ثابت جریان.

شما می توانید آهنگسازی Flow Project Python Open-Source را بررسی کنید ، ابزاری که اجرای آن را تسهیل می کند جریان اعدام الگوی برنامه نویسی.

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

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

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

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