چگونه TDD با توسعه Agile مطابقت دارد؟
توسعه چابک نیازمند بازخورد منظم برای توسعه محصول مورد انتظار است به زبان ساده، می توان توسعه چابک را به عنوان توسعه مبتنی بر بازخورد نیز نامید.
احتمال زیادی وجود دارد که الزامات پروژه در طول چرخه توسعه سرعت تغییر کند . برای رویارویی با این موضوع و ساخت محصولاتی مطابق با نیازهای در حال تغییر مشتری، تیم ها به بازخورد دائمی نیاز دارند تا از پخش نرم افزارهای غیرقابل استفاده جلوگیری کنند.TDD برای ارائه چنین بازخوردی در اوایل ساخته شده است.
رویکرد آزمایش اول TDD همچنین به کاهش تنگناهای حیاتی که مانع از کیفیت و تحویل نرم افزار می شود کمک می کند بر اساس بازخورد مداوم، رفع اشکالات و افزودن ویژگیهای جدید، سیستم تکامل مییابد تا اطمینان حاصل شود که همه چیز همانطور که در نظر گرفته شده است کار میکندTDD همکاری بین اعضای تیم از هر دو تیم توسعه و QA و مشتری را افزایش می دهد. علاوه بر این، از آنجایی که آزمایشها از قبل ایجاد میشوند، تیمها نیازی به صرف زمان برای بازآفرینی اسکریپتهای آزمایشی گسترده ندارند.
توسعه رفتار محور BDD (Behavior Driven Development)
توسعه مبتنی بر رفتار (BDD) یک متدولوژی توسعه نرم افزار چابک است که در آن یک برنامه کاربردی حول رفتاری که کاربر انتظار دارد هنگام تعامل با آن تجربه کند، مستند و طراحی می شود با تشویق توسعه دهندگان به تمرکز بر روی رفتارهای درخواستی یک برنامه ، BDD به جلوگیری از کد بیش از حد، ویژگی های غیر ضروری یا عدم تمرکز کمک می کند این روش، شیوه های مورد استفاده در توسعه مبتنی بر آزمون ( TDD ) و آزمون پذیرش را ترکیب، تقویت و اصلاح می کند .
یک پروژه معمولی که از توسعه مبتنی بر رفتار استفاده میکند، با گفتگو بین توسعهدهندگان، مدیران و مشتری آغاز میشود تا تصویری کلی از نحوه عملکرد یک محصول ایجاد کند سپس انتظارات مربوط به رفتار محصول به عنوان اهداف برای توسعه دهندگان تعیین می شود و پس از گذراندن تمام تست های رفتاری، محصول نیازهای خود را برآورده کرده و برای تحویل به مشتری آماده می شود.
BDD توانایی بزرگ کردن مجموعه ورودی و بازخورد را برای کلیه ذینفعان تجاری و کاربران نهایی که ممکن است دانش کمی در زمینه توسعه نرم افزار داشته باشند را ارائه می دهد با توجه به این حلقه بازخورد گسترده، تیم های توسعه ممکن است با سهولت بیشتری از BDD در محیط های یکپارچه سازی مداوم و تحویل مداوم استفاده کنند.
تستهای رفتاری خاص را میتوان زمانی که یک پروژه شروع میشود، زمانی که محصول در حال توسعه است و زمانی که یک محصول تکمیل میشود، اجرا کرد.
طراحی دامنه محور (DDD (Domain Driven Development
ساختن نرم افزاری که نیازها و انتظارات کسب و کارها و کاربران را در دنیای فناوری پویا و همیشه در حال تغییر برآورده کند، می تواند چالش برانگیز باشد شرکتهای نرمافزاری به تدریج به روشی کاربردی برای شفافتر کردن ارتباط بین کسبوکار و تیم محصول نیاز دارند رویکرد طراحی دامنه محور (DDD) با تقویت درک عمیق از موضوع و همکاری مستمر بین توسعه دهندگان و کارشناسان تجاری به حل این مشکل کمک می کند در واقع، توسعه دهندگان از طریق ارتباط مستمر، درک عمیق تری از حوزه زیربنایی و قوانین کسب و کار به دست می آورند. در عین حال، ذینفعان درک بهتری از قابلیت ها و محدودیت های فنی به دست می آورند.
اصول اصلی طراحی دامنه محور
طراحی دامنه محور بر چندین مفهوم کلیدی استوار است که امکان ایجاد نرم افزار دامنه محور را فراهم میکند.
با ترکیب مدلسازی، زبان و تکنیکهای مبتنی بر زمینه، DDD امکان ایجاد سیستمهایی را فراهم میکند که نه تنها بر الزامات فنی بلکه بر مفاهیم اصلی دامنه تمرکز دارند.
بانک منابع رویدادها (Event Sourcing)
یک سیستم منبع رویداد، دادههای شما را بهعنوان مجموعهای از رویدادهای تغییرناپذیر در طول زمان ذخیره میکند و یکی از قویترین گزینههای پیگیری را فراهم میکند همه تغییرات حفظ می شوند، بنابراین می توان سیستم ها را در زمان به عقب و جلو برد که برای اشکال زدایی و تجزیه و تحلیل “چه می شود اگر” بسیار ارزشمند باشند.
Event Sourcing یک ابزار قدرتمند در معماری نرم افزار است یک رویداد، نشان دهنده واقعیتی است که در کسب و کار شما رخ داده است Event Sourcing اشاره داردکه با ذخیره وقایع، زمینه رویدادها را نیز حفظ می کنید در سایر الگوهای ذخیره سازی، زمینه عملیات تجاری معمولاً گم می شود، یا گاهی اوقات در جای دیگری ذخیره می شود هر تغییر ایجاد شده به عنوان یک رویداد نشان داده می شود و به گزارش رویداد اضافه می شود وضعیت فعلی یک موجودیت را می توان با پخش مجدد همه رویدادها به ترتیب وقوع ایجاد کرد همانطور که رویداد اتفاق افتاده است به آن اشاره می شود منبع اطلاعات سیستم، از انبار رویدادها تشکیل شده اند.
رویدادهای تجاری را می توان به رویدادهای منشأ آنها گره زد که قابلیت ردیابی و مشاهده کل گردش کار را از ابتدا تا انتها فراهم می کند یک رویکرد رویداد محور می تواند با واکنش فوری به اطلاعات منتشر شده جدید کارآمدتر باشد جریانهای رویداد میتوانند اعلانهایی درباره رویدادهای جدید ایجاد کنند و با اشتراک در جریان، کسبوکار میتواند به این تغییرات در زمان واقعی واکنش نشان دهد این امکان مدلسازی آسانتر و ایجاد جریانهای کاری پیچیده تجاری را فراهم میکند.
سیستم های منبع رویداد برای حداقل میزان تعامل همزمان تلاش می کنند تا الزامات کسب و کار برآورده شوند این منجر به سیستم های پاسخگو، با کارایی بالا و مقیاس پذیر می شود اگر سرویسی از کار بیفتد، سرویسهای وابسته می توانند «پیشگیری» کنند از آنجایی که رویدادها در یک توالی در جریان ذخیره می شوند، زمانی که هر سرویس دوباره آنلاین شد، می توان همگام سازی را به دست آورد.
مجموعه ای از رویدادها در یک جریان را می توان برای ارائه بینش و تجزیه و تحلیل جدید بازپخش کرد و تغییر داد، به عنوان مثال، جریان رویداد را می توان تا یک نقطه از زمان بازپخش کرد و می توان از تحلیل “چه می شد اگر” برای پیش بینی نتایج بالقوه آینده استفاده کرد.
از آنجایی که گزارشی از تمام تغییرات وضعیت یک برنامه وجود دارد، می توان از آن در سناریوهای سیستمی که گهگاهی متصل می شوند استفاده کرد هنگامی که یک دستگاه قطع می شود، می تواند روی داده های خود به صورت محلی کار کند و پس از اتصال همگام سازی شود.
مقالات مرتبط:
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.