القناة هي إطار عمل وحدات للغاية لإنشاء تطبيقات من جانب الخادم في clojure باستخدام بنية تعتمد على البيانات.
إنه مشابه في نطاق Arachne ، ويستند إلى متكامل. تقوم القناة ببناء تطبيقات حول تكوين غير قابل للتغيير يعمل بمثابة مخطط هيكلي. يمكن التلاعب بالتكوين والاستعلام عنه لإنتاج سلوك متطور.
انظر: الترقية.
لإنشاء مشروع قناة جديد مع Lininingen:
lein new duct < your project name >هذا سيخلق مشروع قناة الحد الأدنى. يمكنك تمديد هذا عن طريق إلحاق تلميحات الملف الشخصي لإضافة وظائف إضافية.
+api يضيف البرامج الوسيطة API والمعالجات+ataraxy يضيف جهاز التوجيه Ataraxy+cljs يضيف في تجميع clojurescript وتحميل ساخن+example يضيف معالج مثال+heroku يضيف التكوين للنشر إلى Heroku+postgres يضيف مكون postgresql ومكون قاعدة البيانات+site يضيف الوسيطة الموقع ، و favicon ، و webjars وأكثر من ذلك+sqlite يضيف مكون SQLite التبعية وقاعدة البياناتعلى سبيل المثال:
lein new duct foobar +site +example كما هو الحال مع جميع قوالب Lininingen ، ستقوم القناة بإنشاء دليل جديد يحمل نفس اسم مشروعك. للحصول على معلومات حول كيفية تشغيل وإنشاء مشروعك ، راجع ملف README.md الخاص بالمشروع.
يتم تعريف هيكل التطبيق بواسطة خريطة تكوين متكاملة.
في التنمية ، يستخدم القناة سير العمل المعاد تحويل ستيوارت سييرا.
في الإنتاج ، يتبع القناة منهجية تطبيق اثني عشر عامل.
تفضل الدولة المحلية على الدولة العالمية.
يجب أن تجمع مساحات الأسماء وظائفها حسب الغرض ، وليس عن طريق الطبقة.
يجب استخدام البروتوكولات لالتفاف واجهات برمجة التطبيقات الخارجية.
يضيف القناة طبقة من التجريد أعلى متكاملة. في متكاملة ، يتم بدء خريطة التكوين في خريطة نظام التشغيل.
┌────────┐ ┌────────┐
│ config ├──>│ system │
└────────┘ └────────┘
في القناة ، يبدأ التكوين مرتين. يتم بدء التكوين لأول مرة في تكوين وسيطة ، والذي بدوره يبدأ في النظام:
┌────────┐ ┌──────────────┐ ┌────────┐
│ config ├──>│ intermediate ├──>│ system │
└────────┘ └──────────────┘ └────────┘
بنفس الطريقة التي تتيح لنا بها وظائف الترتيب العالي تجريد أنماط شائعة من التعليمات البرمجية ، تتيح لنا تكوينات الطبقات في القناة التخلص من الأنماط الشائعة للتكوين.
من المتوقع أن تبدأ المفاتيح في تكوين القناة في وظائف تقوم بتحويل خريطة التكوين. هناك نوعان عريضان: الملفات الشخصية ، والتي تندمج قيمتها في التكوين ، والوحدات النمطية ، والتي توفر معالجة أكثر تعقيدًا.
يتم تنظيم مشاريع القناة على النحو التالي. يتم الاحتفاظ بالملفات التي تحمل علامة A * خارج نطاق التحكم في الإصدار.
حقوق الطبع والنشر © 2021 جيمس ريفز
موزعة تحت رخصة معهد ماساتشوستس للتكنولوجيا.