وقتی بچه بودم، روی تخت دراز می کشیدم و برای مدت طولانی به نقش و نگارهای یک فرش قدیمی شوروی خیره می شدم و حیوانات و چهره های خارق العاده را درون آنها می دیدم. اکنون، من بیشتر به کد نگاه می کنم، اما تصاویر مشابه هنوز در ذهن من ظاهر می شود. مانند روی فرش، این تصاویر الگوهای تکراری را تشکیل می دهند. آنها می توانند خوشایند یا دافعه باشند. امروز می خواهم در مورد یکی از این الگوهای ناخوشایند که در برنامه نویسی یافت می شود به شما بگویم.
سرویسی را تصور کنید که درخواست ثبت مشتری را پردازش می کند و رویدادی در مورد آن برای کافکا ارسال می کند. در این مقاله مثالی از پیاده سازی می زنم که آن را آنتی الگو می دانم و نسخه بهبود یافته را پیشنهاد می کنم.
گزینه 1: روش صدپا
کد جاوا زیر کدهای را نشان می دهد RegistrationService
کلاس که درخواست را پردازش کرده و رویداد را ارسال می کند.
public class RegistrationService {
private final ClientRepository clientRepository;
private final KafkaTemplate
ساختار کد را می توان به صورت زیر ساده کرد:
در اینجا، میتوانید ببینید که روشها یک زنجیره ناگسستنی را تشکیل میدهند که از طریق آن دادهها مانند رودهای طولانی و باریک جریان مییابند. متدهایی که در وسط این زنجیره قرار دارند نه تنها مسئول منطقی هستند که مستقیماً در بدنشان توضیح داده شده است، بلکه مسئولیت منطق روش هایی را که فراخوانی می کنند و قراردادهایشان نیز بر عهده دارند (مثلاً نیاز …