Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

5 تغريدة 1 قراءة Jan 20, 2023
كيف تصنع لغة برمجة خاصة بك و متوافقة مع مجالك Domain الذي تعمل به و بطريقة يمكن حتى لشخص غير مبرمج أن يغير فيها على مستوى الكود؟
لنأخذ مجال الLogistics او الشحن مثل DHL و البريد و Aramex و كيف يمكن حساب قيمة الشحنة لديهم بالFunctional Programming من خلال لغة خاصة DSL.
(سلسلة)
سعر الشحنات يعتمد على اين سترسلها Destination , حجمهما Size , وزنها Weight , و اشياء اخرى اضافية Addons هل هي مؤمنة Insured او مسجلة Registered و هكذا.
اولاً تخيل ان الكود في الApplication Service Layer مكتوب بهذه الطريقة :
ركز في السطر الأول , تم تعريف Operator اسمه To ليأتي بعده الوجهة ثم الوزن و الحجم و نضيف عليه الInsured.
هذا مثال بسيط لكيف يمكن تكوين لغتنا الخاصة قد نضيف Operator اخر مثل Via او WithSize او Of لاختيار الوزن.
هذا كل الكود للقيام بهذا و اللغة المستخدمة هي ال#F.
يمكن ايضاً عمل الشيء ذاته باستخدام LINQ في لغة #C. لكن فضلت عملها ب إف شارب لمن لم يسبق له التعامل معها او مع الFunctional Programming بشكل عام. و أعلم أن هذا الشيء ماهو إلا قشور بالنسبة للFP.
هذه نتيجة تنفيذ الكود

جاري تحميل الاقتراحات...