Defiant هو إطار تطبيق الويب Node.js يهدف إلى تسهيل بناء التكنولوجيا التخريبية.
تم تسمية Defiant لأن المبدعين لديهم آراء قوية حول كيفية تصميم نظام مثل هذا ، وكذلك إمكاناته للاستخدام. (كان يطلق عليه أيضًا "Defiant" لأنه بدا وكأنه العديد من الأطر الحالية كانت في الأساس استنساخًا لبعضها البعض ، وأردنا أن نفعل شيئًا مختلفًا تمامًا.)
التحدي ليس مشروعًا نهائيًا. ومع ذلك ، فهو عمل نشط قيد التقدم ، وسنرحب بمدخلاتك. تحقق من خريطة الطريق لمعرفة أين يمكنك القفز!
في الوقت الحالي ، لا يوجد سوى حفنة من الأشخاص الذين ينظرون إلى التحدي. إذا كنت ترغب في التحدث إلينا ، انضم إلينا على Slack هنا! مشاركتك لا تقدر بثمن بالنسبة لنا!
دعنا نستخدم البريد الإلكتروني كمثال. إذا كنت تريد عنوان بريدك الإلكتروني الخاص (على سبيل المثال ، @yourname.com) ، يكون لديك أحد الخيارين: إما إعداد خادم البريد الإلكتروني الخاص بك أو لديك شخص ما (مثل Google ، Zoho ، إلخ) ، استضفته لك ، ربما مقابل رسوم شهرية/سنوية. الإدارة الذاتية معقدة للغاية (إعداد جدران الحماية ، وصول IMAP/POP3/SMTP ، وسجلات الأمامية المستندة إلى الويب ، وسجلات DNS مع سجلات DKIM و SPF الصحيحة ، وشهادات SSL ، وتصفية البريد العشوائي ، ومضاد للفيروسات ، وإدارة المستخدم ، وما إلى ذلك) ، وإذا أخطأت ، يمكن أن تكون النتائج كارثة. ومع ذلك ، فإن دفع شخص آخر لإدارته ، يمكن أن يكون مكلفًا عندما تحتاج إلى حسابات مستخدمين متعددة ، ولا يسمح بتخصيص سوى القليل من التخصيص ، وأنت دائمًا تحت رحمة هذا الطرف الثالث (ومع ذلك قد يقررون التجسس عليك).
ما علاقة هذا بالتحدي؟ يمكن أن يوفر إطار Deveriant جميع الأجزاء المذكورة أعلاه ، ملفوفة في حزمة واحدة بسيطة (من منظور المستخدم النهائي). بمعنى ما ، تتمثل نية الإطار في تصميم تفاعل كل هذه الأنظمة الفردية المختلفة ، ووضعها في شكل يمكن لنا "مجرد البشر" تنفيذه بأمان. يريد Deviant منك أن تكون قادرًا على امتلاك هذه التقنيات وإدارتها (وبوصيك ، بياناتك الخاصة) من خصوصية خوادمنا الخاصة.
ما نوع الأنظمة التي يمكن بناؤها باستخدام Defiant؟
هذه الأنظمة غير موجودة بعد ، بل إنها تظهر النية وراء التحدي. نريد أن يكون لدينا إطار عمل آمن وسهل الاستخدام ومرن يمكن من خلاله بناء (مزيج ومطاردة ، حقًا) الأنظمة المذكورة أعلاه. نريد أن نعيد الإنترنت من الشركات الكبرى وإعادة التقنيات القوية إلى أيدي الناس العاديين.
بالمناسبة ، نحتاج إلى مساعدتك للقيام بذلك. يرجى التفكير في مساعدتنا على تطوير التحدي ، واستعادة الإنترنت. كن متحديًا!
يعتقد Defiant إيمانًا راسخًا أنك ، كمطور ، يجب أن تكون قادرًا على استخدام هذا الإطار وإضافة وظائفه أو تعديله دون اختراق الملفات الأساسية. وبالمثل ، إذا كنت تستخدم مكونًا إضافيًا من طرف ثالث لهذا الإطار ، وترغب في إضافة أو تعديل وظائف البرنامج المساعد ، فيجب أن تكون قادرًا على القيام بذلك دون الحاجة إلى اختراق المكون الإضافي نفسه. إذا كانت البنية لا تدعم هذه المرونة ، فيجب تفسير ذلك على أنه خطأ ويجب الإبلاغ عنه على هذا النحو. باختصار ، يجب تجاوز كل شيء.
لا يلتزم Defiant بإطار MVC صارم ، لأن هذا ليس مرنًا بما يكفي لما نضعه في الاعتبار.
كل إطار لديه آراء حول شيء ما. يهتم البعض بمكان وضع ملفاتك ، والبعض الآخر يريد فرض نماذج محددة. آراء Defiant تدور حول كيفية تفاعل الأجزاء المتباينة. توفر لغة JavaScript ومنصة Node.js مجموعة فريدة وقوية من الأدوات لمعالجة العديد من المشكلات المختلفة واستخدام الحالات تحت بنية موحدة.
نعتقد أن المصدر المفتوح يجب أن يكون فقط: مفتوح تمامًا. نحن لا نواجه عمومًا مع بعض أحكام GPL التي تضع مطالب على مشاريع أخرى ، وبالتالي ترخص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.
في عالم مثالي ، ستكون حقوق الطبع والنشر شيئًا يمكن أن نتجاهله من أجل الصالح الأكبر. لسوء الحظ ، فإن المحامين والسياسيين والجشع الشركات قد أدت إلى تعقيد أشياء ، لذلك يجب أن نعمل تحت العبء الذي أنشأوه. على هذا النحو ، فإن حامل حقوق الطبع والنشر للمشروع المتحدي هو Corey Pennycuff. أي مساهم في المشروع ، بحكم مساهمته المتعمدة ، يوافق بموجبه على تعيين حقوق الطبع والنشر للمساهمة في Corey Pennycuff ويؤكد أن لديهم السلطة القانونية للقيام بذلك. يُسمح باستثناء هذا الحكم في حالة تضمين مكتبات الطرف الثالث ، والتي يجب أن تكون موجودة بالكامل داخل دليلها الفرعي وتحتوي على معلومات ملكية حقوق الطبع والنشر المناسبة.
يشرح البيان المتحدي فلسفة المشروع المتحدي. هم:
اقرأ البيان (القصير) نفسه لفهم كيفية تطبيق هذه الأفكار.
حتى الآن ، قمت باختبار هذا فقط على Linux (على وجه التحديد ، Debian) والنظام الفرعي Windows لـ Linus (WSL) في Windows 10.
على الأقل ، تحتاج إلى تثبيت حزم python و sqlite3 . قد تحتاج أيضًا إلى build-essential .
apt-get install python sqlite3هذه مطلوبة لتركيب الوحدات النمطية التي تعتمد عليها. إنه ليس تبعية مباشرة لقاعدة الكود.
هذا سيستغرق بعض الوقت ...
npm install بشكل افتراضي ، يحاول Defiant تخزين المعلومات في الدليل /var/defiant . سيكون هذا قابلاً للتكوين في المستقبل. في الوقت الحالي ، قم بإنشاء الدليل ، وتأكد من أن لديك أذونات كتابة إلى الدليل.
const Defiant = require ( 'defiant' ) ;
new Defiant . Engine ( )
// Add Plugins.
// The Example Plugin is included with Defiant, and, of course, should not
// be included in production code.
. addPlugin ( Defiant . Plugin . Example )
// Explicitly set a directory where Defiant should look for the settings
// files. If no files exist, then appropriate defaults will be generated.
// This directory should be separate from your application code, and
// preferably under version control.
. defineBootstrapDirectory ( '/var/defiant/settings' )
// Initialize the Engine and its components.
// init() is the last call that should be made, as Defiant will now begin
// listening for connections.
. init ( ) ; يبدأ Deveriant في تشغيل المنفذ 8888 (سيكون هذا قابلاً للتكوين في المستقبل) ، لذلك يجب أن تكون قادرًا على الانتقال إلى http://localhost:8888 لرؤية الموقع يعمل. انظر إلى إخراج وحدة التحكم لاسم المستخدم وكلمة المرور للمسؤول.
Defiant لا يفعل الكثير في الوقت الحالي ، وليس مستعدًا للعمل الجاد على الإطلاق. لماذا؟ لأنه لا يزال يتم بناؤه ، بالطبع! أجزاء منه موجودة فقط في عقول ومحادثات المطورين. إذا كنت ترغب في المساعدة ، فأرسل لنا رسالة ومعرفة ماهية خريطة الطريق الحالية.
انظر إلى خريطة الطريق لترى ما الذي يعمل ، وما هو على رادارنا الفوري. والأفضل من ذلك ، اتصل بي واكتشف كيف يمكنك القفز والمساعدة في التطوير!
نكرر: هذا الرمز لم يكن مخصصًا بعد لأي عمل إنتاج على الإطلاق.
يمكن العثور على الوثائق هنا.
لا يوجد في واجهة برمجة التطبيقات في الحجر ، وهناك القليل جدًا من الوثائق الرسمية (على الرغم من أننا نحاول التعليق على الرمز بمسؤولية). علاوة على ذلك ، هذه هي المسودة الأولى ، ولم تكتمل حتى. عندما تنظر إلى الكود ، تذكر هذا: هناك اختراق وتودوس منتشرة في جميع أنحاء النظام. في بعض الأحيان يكون الاختراق هو مجرد عمل شيء حتى يمكن أن يتم تجسيد جزء آخر شبه مرتبط ، وهناك نية لإعادة النظر في الكود لاحقًا. في بعض الأحيان يكون TODO مجرد كعب يمثل فكرة ، أو يشير إلى مكان وجود شيء ما سيحتاج إلى التواصل مع النظام لاحقًا. في بعض الأحيان ، توجد الميزة فقط في أذهان المؤلفين. ESP سيكون مفيدًا هنا ...
قبل كل شيء ، نشجعك على جذب اتجاهات وحكمة الجماهير على أمل تجربة الترميز الطازجة والمجانية. إذا فشل ذلك ، فيمكنك أن تكون غريب الأطوار أيضًا. مهما كنت ، على الرغم من ... كن متحديًا!