پلاگین canada در الکسیر DSL برای مدیریت permissions (دسترسی ها) الکسیر


#1

با درود خدمت شما در توییتر یکی از برنامه نویسان مطلبی را به اشتراک قرار دادند به شرح زیر

در این مطلب موارد زیادی مطرح شد که یک از این موارد نظر بنده رو خیلی جذب کرد اون هم

برام سوال شده بود چرا اسم این کتابخانه را DSL قرار دادند

A DSL for declarative permissions

و همینطور دوستان تجربه کار کردن با این کتابخانه را دارند به نظر چیز جالبی می یاد ولی گیج کننده


#2

سلام شهریار جان، بنظرم اسم کتاب خونه DSL نیست، Canada هست. اما این کتاب خونه یک DSL به سیستم اضافه میکنه که شبیه CanCan در روبی عمل میکنه.
راستش من استفاده نکردم اما حالا که مطرح کردی بنظرم جالب اومد و باید یه نگاهی بندازم.
من با کتاب خونه های declarative permissions دیگه کار کردم و خودم هم دوتا یا بیشتر پیاده کردم. اگر در حالت کلی نیاز به تجربه اینطوری داری شاید بتونم کاری بکنم اما در مورد Canada هنوز چیز زیادی نمیدونم، هرچند در نگاه اول خیلی ساده و روان بنظر میاد. اگر فیت خوبی با Guardian باشه شاید خیلی به کار بیاد.

اول گفتم یکی بعد یادم اومد بیشتر بوده😁

برای کسانی که این مطلب رو خوندن و با DSL آشنایی ندارند؛
DSL = Domain-Specific Language


#3

خوندن این سوال و جوابهایی که بهش داده شده هم خیلی خوبه.


#4

درود توماج جان. بیشتر منظورم این بود که چرا چرا در توضیحاتش کلمه DSL رو آورده . احتمالا چون تقریبا ساختار خودشو در آورده مثل یک زبان برنامه نویسی در توضیحات خودش DSL رو آورده. همون منظور metaprogramming فکر کنم باشه !


#5

راستش متاپروگرمینگ میتونه برای نوشتن DSL کمک کنه اما لازم ملزوم هم نیستند، DSL در واقع زبانیه که ما برای موضوع خاص و در دامنه کاربردی کاملا مشخصی میسازیم. مثلا در همین پروژه ای که معرفی شد، الیکسر زبان جنرال این پروژه هست ولی لایه ای که این پروژه برای ساختن permisson ها اضافه کرده در واقع زبان کوچکی هم در خودش که همون DSL هست.
به عنوان مثال Plug ها مجموعه ای از DSL ها هستند، مثلا برای routing در phoenix شما از زبان Plug.Router استفاده می کنید حتی اگر در بطن elixir باشه.
https://hexdocs.pm/plug/Plug.Router.html

یا HTML و SQL هم DSL هایی هستند برای کار کاملا مشخص خودشون


#6

سلام
برای مدیریت دسترسی ها میشه از کتابخونه canary که از کتابخونه CanCan روبی الهام گرفته شده استفاده کرد .

همچنین میشه این کتابخونه را با گاردین استفاده کرد

این کتابخونه خوبی برای تعریف کردن مجوز هست


#7

متاسفانه Canary مدتهاست که توسعه داده نمیشه و نمیتونه گزینه قابل اعتمادی باشه.
آخرین کامیت ۲۷ جون ۲۰۱۷ بوده و از اون زمان تا حالا هم الیکسر و هم فینکس چندتا ریلیز داشتند اما مثلا آخرین کامیت CanCan همین دیروز بوده. راستش من شخصا خیلی علاقه ای به این جور کتابخونه ها ندارم چون پیاده کردنشون خیلی کار سختی نیست.