Falcor چیست؟
Falcorچیست؟
Falcor یک کتابخانهی نوشته گشوده بدون پول می باشد که به وسیله نتفلیکس ( Netflix ) پخش شده است . Falcor به توسعهدهندگان این قابلیت و امکان را میدهد تا دادههای خویش را به صورت یک شی JSON در سرور خویش نوع نمایند . در صورتیکه با توسعهی برنامه سمت سرور آشنا باشید , میدانید که جور کردن شی ءها به صورت JSON زیاد پر کاربرد است . ساختار JSON با عملیاتهای جاوا اسکریپت نظیر Get , Set و Call سازگار است و تنها کافی است داده و API را بشناسیم . لذا Falcor بهعنوان واسطهای است که برای بهینهسازی رابطه در بین لایههای یک برنامهی تازه یا این که جان دار به کار گیری میشود . در صورت ذیل این رابطه نشان داده شدهاست :
Falcor چیست؟
تفاوت GraphQl با Falcor چیست؟
انگیزه Falcor و GraphQl یک چیز است و آن , رفع خلل مشقت فعالیت با ساختار داده در فعالیت با Web API است . با وجود تمامی APIهای RESTful , واکشی دادهها از سرور فراوان پرهزینه و پیچیده است , تأخیر دوچندان است و احتمال اینکه دادههای بیشتر از حد نیاز را اخذ فرمایید یا این که بفرستید موجود است . این جایی است که GraphQL و Falcor برای نجات میرسند .
فراگرفتن Falcor راحتتر و سریعتر از GraphQL است و مواقعی نظیر Caching و Query – merging را پشتیبانی میکند . با این حال به اندازهی GraphQL قوی نیست و برخلاف GraphQL فقط از جاوا اسکریپت پشتیبانی میکند . در غایت برای به کار گیری , هر دوی GraphQL و Falcor خط مش حلهای خیر میباشند و این که کدام یک خوبتر است به برنامه مربوط است . در شرایطی که به کارگیری از JSON سبب بالا رفتن سرعت و کیفیت عمل میگردد و تجهیزات بیشتری نیاز نیست , احتمالاً می بایست Falcor را تعیین کرد . در صورتی محافظت انعطافپذیری و به کارگیری از ویژگیهای قدرتمندتر اصلی است و قرار میباشد از زبانهای دیگری غیر از JavaScript به کار گرفت , GraphQL به احتمال فراوان شایسته ترین گزینش است .
چرا از Falcor به کار گیری میکنیم؟
یکیاز مهم ترین مشکلاتی که Falcor برطرف می کند این حقیقت است که HTTP بهطور ذاتی برای چگونگی التماس برنامههای اینترنت بهصورت ایدهآل از دادهها پباده سازی نشده است و در سود عملیات با صرفه نیست . با HTTP , هر التماس صرفا برای یک مبداء جواب داده میشود . ازآنجاکه برنامههای اینترنت نیاز به خواهش منابع کوچک متعددی داراهستند , اکثر اوقات درخواستهای HTTP برای آنها کاربردی نیستند و فقط برای بهدست آوردن کلیهی دادههای مایحتاج برنامه به کار گیری میشوند .
اختلال دیگری که Falcor حل میکند این است که غالبا شی ها , دادهها را بهصورت سلسله مراتبی و در ساختار درخت نشان میدهند , در حالی که دادهها اکثر اوقات به صورت نمودار است . به عبارت دیگر , دادههای یک برنامه مدام رابطهای دورازشوخی با پدر و مادر و فرزند ندارد و نیاز به ساختار درختی نیست , بلکه فقط به بخش اعظمی از دادههای دیگر دارای ارتباط است . ساختار JSON مورد به کار گیری در Falcor این رابطه در میان دادهها را خوب تر نشان میدهد .
چه افرادی نباید سراغ Falcor بروند؟
همانطور که در بخشهای قبل گفتیم , اکنون Falcor از زبانهای دیگر پشتیبانی نکرده و تمرکز خویش را روی جاوا اسکریپت گذارده است , پس درصورت به کار گیری از چیزی بهجز جاوا اسکریپت می بایست به سراغ بقیه ابزارها رفت . همینطور ممکن است ساختار داده با JSON متناسب نباشد و خوب تر است گذشته از آغاز عمل حتما یک بررسی ظریف روی گونه دادهی روی سرور داشت .
سازوکار Falcor چیست؟
برنامههای سمت کلاینت از سرور تقاضای یک JSON را داراهستند . سرور با ذیل تیم ای از اشیای JSON جواب می دهد و اندازه بازگشتی صرفا دربرگیرنده آن مقادیر است . نمونهای از این خواهش در کد پایین آورده شدهاست :
/model . json ? paths=[ ( user . name ( , ( user . surname ( , ( user . address ( ]
GET /model . json ? paths=[ ( user . name ( , ( user . surname ( , ( user . address ( ]
{
user : {
name : ( Frank ( ,
surname : ( Underwood ( ,
address : ( 1600 Pennsylvania Avenue , Washington , DC (
}
}
از طرفی برای بهبود عملکرد شبکه و سازوکار دربین درخواستهای ارسالی کلاینت و سرور نیاز می باشد تا تدابیری اندیشیده شود . برای مثال برگرداندن همهی دادهها پایین یک آدرس اینترنتی به کلاینت اذن میدهد تا تمام دادههایی که در یک شبکه به آن ها نیاز داراست را بهصورت یکجا از سرور التماس نماید . این میتواند منجر شود تا درخواستهای کوچک متواتر کاسته شده و در فیض تاخیر هم کمتر شود . در طی این عملیات نیاز می باشد تا سرور شرایط خویش را مراقبت نماید یا این که اصطلاحا Stateless بماند .
Falcorچیست؟
در صورت تمایل از سایت های دیگر ما استفاده کنید: