يمكن لأبي في B ، أو إنشاء رمز بسيط وأنيق لـ SQLite

صورة



قريبا جدا، في 4 نوفمبر و 5، سنبدأ تيارات جديدة من SQL الدورات لتحليل البيانات و المطور C ++ ، خاصة بالنسبة للبداية، وقمنا بإعداد هذه الترجمة من بلوق الفيسبوك الهندسة مع لمحة عامة عن أداة مفيدة.



يتم استخدام SQLite على نطاق واسع ، ولكن كتابة طبقات الوصول إلى البيانات التي تم اختبارها ودعمها جيدًا يمكن أن تكون صعبة في أحسن الأحوال. تستخدم العديد من الأوامر نوعًا من إنشاء الكود لتجنب الاضطرار إلى تغيير عشرات الأرقام التسلسلية في كل مرة يتم فيها إضافة عمود ، ولكن هذا الأسلوب يؤدي إلى حدوث أخطاء. يسمح لك مترجم CQL إلى CG / SQL بإنشاء إجراءات مخزنة معقدة مع استعلامات كبيرة ، كما أن مجموعات من مساعدي بناء الجملة والكتابة القوية تجعل الحصول على هذه الإجراءات وتخزينها أسهل بكثير. يمكن أن يوفر الجمع بين الكتابة القوية في اللغة وأداة الاختبار الجيد للوحدة الثقة في صحة المنطق المعقد للغاية.






ما هذا



CG / SQL هو نظام لتوليد التعليمات البرمجية لمكتبة SQLite الشهيرة والذي يسمح للمطورين بكتابة الإجراءات المخزنة في متغير Transact-SQL (T-SQL) وتجميعها إلى كود C الذي يستخدم SQLite API لأداء عمليات C. يسمح CG / SQL للمهندسين بإنشاء إجراءات مخزنة معقدة مع استعلامات كبيرة دون مراجعة التعليمات البرمجية اليدوية التي تتطلبها الطرق الحالية.



يشتمل النظام بأكمله أيضًا على وظائف لإدارة وتحديث المخطط ، وإنشاء كود اختبار للإجراءات المخزنة ، والحصول على خطط استعلام عن الإجراءات ، والتفاعل مع الإجراءات المخزنة من لغات أخرى مثل Java و Objective-C. يسمح إخراج JSON بالتحليل أو كود الواجهة الأمامية. تحتوي الحزمة على وثائق شاملة للغة والنظام.



ماذا تفعل الأداة



يقوم مترجم CQL بمعظم الأعمال القذرة. يقرأ المخطط والإجراءات ، ويوفر لغة مكتوبة بقوة مع مئات من أخطاء الترجمة المصممة لمنع مشاكل وقت تشغيل SQLite. يقوم المترجم بمراقبة أنواع البيانات المتغيرة وأنواع المخططات بعناية ، والإبلاغ عن حالات عدم الاتساق ، مثل محاولة تعيين أعمدة قابلة للقياس إلى متغيرات الإخراج غير القابلة للإلغاء ، والتأكد بخلاف ذلك من استخدام واجهات برمجة تطبيقات SQLite بشكل ثابت وصحيح



يتحقق الكود الذي تم إنشاؤه دائمًا من رموز الإرجاع ، ويستخدم دائمًا الأرقام الترتيبية وأنواع الأعمدة الصحيحة عند ربط البيانات أو قراءتها من SQLite أو منه. هذا هو بالضبط ما يصعب الحصول عليه والاحتفاظ به بشكل صحيح. بالإضافة إلى ذلك ، تسمح التعليقات التوضيحية للمخطط للنظام بإنشاء الإجراءات المخزنة تلقائيًا لتحديث قاعدة البيانات من أي إصدار سابق من المخطط إلى الإصدار الحالي. لجعل هذا ممكنًا ، يتم إجراء عشرات الفحوصات.



يمكن أيضًا استخدام التعليقات التوضيحية للإجراء للإشارة إلى رغبتك في الاحتفاظ برمز الاختبار لإنشاء أجزاء المخطط وإدخال البيانات في هذا المخطط. يسمح لك هذا النهج باختبار الإجراءات دون أي ضجة تقريبًا ، ولا يعتمد أيضًا على النظام الجاري نشره. وبالمثل ، يمكن لهذه الأدوات إنشاء مخططات تتحقق من صحة خطط الاستعلام في وقت الترجمة.



لماذا هذا مطلوب؟



يتم استخدام SQLite على نطاق واسع ، ولكن كتابة طبقات الوصول إلى البيانات التي تم اختبارها ودعمها جيدًا يمكن أن تكون صعبة في أحسن الأحوال. تستخدم العديد من الأوامر نوعًا من إنشاء الكود لتجنب الاضطرار إلى تغيير العشرات من أرقام التسلسل في كل مرة تتم فيها إضافة عمود ، ولكن هذا الأسلوب يؤدي إلى حدوث أخطاء. يسمح لك مترجم CQL إلى CG / SQL بإنشاء إجراءات مخزنة معقدة مع استعلامات كبيرة ، كما أن مجموعات من مساعدي بناء الجملة والكتابة القوية تجعل الحصول على هذه الإجراءات وتخزينها أسهل بكثير. يمكن أن يمنح الجمع بين الكتابة القوية في اللغة والأداة لاختبار الوحدة الجيد الثقة في أنه حتى المنطق المعقد للغاية صحيح. يقوم المساعدون النحويون بتحويل الشفرة الآمنة إلى لغة SQL الأساسية ، لذلك يكتب المهندسون كودًا أقل ، لكن الكود أكثر صحة ويعمل في كل مكان.لنلقي نظرة على مثال:



create procedure insert_a_row(like your_table)
begin
  insert into your_table from arguments;
end;


ينشئ هذا الرمز إجراءً للإدراج في أي جدول (ها هو your_table) ، وسيطاته هي بالضبط أعمدة الجدول. لن تنسى الأعمدة ، ولن تضع عشرات الحجج بالترتيب الخاطئ. التركيبات موجزة وقوية ، مما يسهل على المهندسين إنشاء التعليمات البرمجية دون الحاجة إلى التحقق يدويًا من كل جزء منها.



يعد CG / SQL على Github



CG / SQL أمرًا مفيدًا بالتأكيد ، ولكن رمز الخصم HABR لا يقل فائدة ، فهو يمنحك 10٪ إضافية للخصم الموضح على الشعار.



صورة








مقالات مقترحة






All Articles