در JavaScript، «لنز» یک مفهوم در برنامهنویسی تابعی است که به شما امکان میدهد به دادهها به شکلی ماژولار و تغییرناپذیر دسترسی داشته باشید و آنها را تغییر دهید. لنزها در واقع جفتهایی ترکیبپذیر از توابع خالص گیرنده و تنظیمکننده هستند که روی یک فیلد مشخص درون یک شیء تمرکز میکنند.
از لنزها میتوان برای سادهسازی کد، افزایش قابلیت استفادهی مجدد از آن و پرهیز از خطاهای رایج برنامهنویسی استفاده کرد. برای مثال، میتوان از لنزها برای موارد زیر استفاده کرد:
برای بهروزرسانی رکوردهای تودرتو از lensها استفاده کنید (مخصوص زبانهایی که دادههای تغییرناپذیر دارند).
بهروزرسانی فیلدهای رکوردهای تودرتوی تغییرناپذیر تا حدی آزاردهنده است.
کد چنین مواردی به همان اندازه که ساختار عمیق است، دستوپاگیر میشود.
فرض کنید یک Person دارید که شامل یک Address است، آن هم یک Street دارد که یک Number دارد؛ بهروزرسانی Number نیازمند ساختن یک Street تازه با Number تازه است، بعد یک Address تازه با Street تازه و در نهایت یک Person تازه با Address تازه.
گیج شدهاید؟
یکی از راهحلهای این مسئله استفاده از lenses است.
چند تابع برای دسترسی به رکوردها را با استفاده از lensها پیادهسازی کنید. مجموعهی testها هم به شما این امکان را میدهد که اصلاً از lensها استفاده نکنید و با روشهای متفاوت آزمایش کنید.
در Exercism ثبتنام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.