امید رضایی هنجنی

امید رضایی هنجنی

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

اشکالات استفاده از queryهای Linq به شکل عادی

جمعه, ۲۹ آذر ۱۳۹۲، ۰۱:۵۱ ب.ظ

فرض کنیم ما میخواهیم از لیست اشخاص (personsList) اونایی که اسمشون "امید" هست رو پیدا کنیم و برای این کار از linq استفاده می کنیم:

personsList.Where(p => p.Name == "امید")

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

personsList.Where(p => p.Name == "نوید")

در بعضی مواقع هم میخوایم یه جستجوی ترکیبی داشته باشیم مثلا اونایی که اسمشون "امید" یا "نوید" هست رو پیدا کنیم.

personsList.Where(p => p.Name == "نوید" || p.Name == "امید")

مشکل اینجاست که منطق این کدها یکی هست و ما داریم اونو تکرار میکنیم که برخلاف اصل DRY می باشد و علاوه بر این قابلیت نگهداری (Maintenance) این کدها هم خیلی پایینه!

همچنین امکان نوشتن Unit Test برای این queryها نیست. (اگر هم باشد، خیلی پیچیده است و کد را ناخوانا می کند)

با استفاده از الگوی Specification این مشکلات حل خواهد شد که در مطالب جداگانه به معرفی و تشریح این الگو می پردازیم.

  • امید ره

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

نظر دادن تنها برای اعضای بیان ممکن است.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.