Two Fer

Two Fer

آسان

مقدمه

در برخی لهجه‌های انگلیسی، وقتی «two for» را تند می‌گویید، شبیه «two fer» به گوش می‌رسد. «two-for-one» یعنی اگر یکی بخرید، یکی دیگر را هم رایگان می‌گیرید. پس عبارت «two-fer» اغلب به پیشنهاد دو به قیمت یک اشاره دارد.

یک قنادی را تصور کنید که برای تعطیلات پیشنهادی دارد: می‌توانید دو شیرینی را به قیمت یکی بخرید («two-fer one!»). شما این پیشنهاد را می‌پذیرید و (بسیار سخاوتمندانه) تصمیم می‌گیرید شیرینی اضافه را به کس دیگری در صف بدهید.

دستورالعمل‌ها

وظیفه‌ی شما این است که مشخص کنید هنگام بخشیدن کوکی اضافه چه می‌گویید.

اگر اسم آن شخص را بدانید (مثلاً اسمش Do-yun باشد)، می‌گویید:

One for Do-yun, one for me.

اگر اسم آن شخص را ندانید، به‌جایش you می‌گویید.

One for you, one for me.

چند مثال:

اسم گفت‌وگو
Alice One for Alice, one for me.
Bohdan One for Bohdan, one for me.
One for you, one for me.
Zaphod One for Zaphod, one for me.

پیاده‌سازی

پیش از شروع، مطمئن شوید که می‌دانید چطور باید codeای بنویسید که در موردهای test موفق شود. برای اطلاعات بیشتر، این آموزش را ببینید.

بیشتر تمرین‌های Java چندین مورد test دارند. این موردها طوری ساختار یافته‌اند که از یک فرایند مفید به اسم توسعه‌ی آزمون‌محور (TDD) پشتیبانی کنند. این چرخه را می‌توان این‌طور توصیف کرد:

  1. یک test اضافه کنید که بخشی از قابلیت موردنظر را توصیف می‌کند و code شما در حال حاضر ندارد.
  2. testها را اجرا کنید تا بررسی کنید که این test تازه‌اضافه‌شده شکست می‌خورد.
  3. code موجودتان را به‌روزرسانی کنید تا:
    • همه‌ی testهای قبلی همچنان موفق شوند؛
    • test جدید هم موفق شود.
  4. code خود را تمیز کنید و مطمئن شوید که همه‌ی testها همچنان موفق می‌شوند. این کار معمولاً شامل تغییر اسم متغیرها، حذف تکه‌های تکراری منطق، حذف لاگ‌های جامانده و از این قبیل است.
  5. به گام ۱ برگردید تا همه‌ی قابلیت‌های موردنظر ساخته شوند!

فایل‌های test در این مسیر شامل همه‌ی testهایی است که راه‌حل شما برای معتبر شمرده شدن باید در آن‌ها موفق شود. در ظاهر، این با چرخه‌ای که بالا توصیف شد سازگار نیست؛ چرخه‌ای که در آن testها یکی‌یکی نوشته می‌شوند. با این حال، ابزاری که برای نوشتن testهایمان به کار می‌بریم، یعنی JUnit، حاشیه‌نویسی @Disabled را در اختیار می‌گذارد که می‌توان با آن یک test نوشته‌شده را موقتاً نادیده گرفت. با استفاده از این حاشیه‌نویسی، مطمئن می‌شویم که فایل‌های testی که به شما تحویل می‌دهیم این قواعد را رعایت می‌کنند:

  • اولین test در هر فایل test به‌طور پیش‌فرض نادیده گرفته نمی‌شود.
  • همه‌ی testهای هر فایل test به‌جز اولین test به‌طور پیش‌فرض نادیده گرفته می‌شوند.

این به شما امکان می‌دهد با پیگیری این گام‌های کمی تغییریافته، چرخه‌ی TDD را شبیه‌سازی کنید:

  1. testها را اجرا کنید تا بررسی کنید که در حال حاضر حداکثر یک test شکست می‌خورد.
  2. code موجودتان را به‌روزرسانی کنید تا همه‌ی testهای نادیده‌گرفته‌نشده موفق شوند.
  3. code خود را تمیز کنید و مطمئن شوید که همه‌ی testهای نادیده‌گرفته‌نشده همچنان موفق می‌شوند.
  4. بالاترین حاشیه‌نویسی @Disabled را در فایل test حذف کنید.
  5. به گام ۱ برگردید تا دیگر هیچ testی نادیده گرفته نشود و همه‌ی testها موفق شوند!

منبع

منبع این تمرین را بررسی کنید.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Java Exercism

آماده‌اید Two Fer را شروع کنید؟

در Exercism ثبت‌نام کنید تا Java را همراه با 26 مفهوم158 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.