لن أتعلم لغة الاستعلام القمامة الخاصة بك

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


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


ومع ذلك ، بدلاً من ذلك ، يجب أن أتعلم مجموعة كاملة من "لغة استعلام القمامة" المختلفة لأن الناس لا يزالون يحاولون إعادة اختراع العجلة.


لنبدأ بـ ORM. ميزتها الرئيسية هي تقليل وقت التطوير. ولكن بدلاً من كتابة SQL مفهومة للجميع ، يجب أن أدرس وثائق ORM محددة لمعرفة كيفية كتابة استفساراتي عنها. بالإضافة إلى ذلك ، يجب أن أقضي بعض الوقت في تصحيح الأخطاء لمعرفة سبب ترجمة ORM هذا لطلب البحث إلى بعض SQL البشعة التي تنضم إلى 17 جدولًا باستخدام الفحص الكامل الخاص بها. بدلاً من الالتزام بـ SQL القياسي ، حيث يكون من السهل بما فيه الكفاية التحدث عن الكفاءة ("حاول استخدام الأعمدة المفهرسة في المسندات" ، "لا تبالغ في ذلك مع الصلات في استعلام واحد" ، وما إلى ذلك) ، يجب أن أتعامل مع طبقة موحلة إضافية ، والتي يخفي استعلام SQL الأصلي. في النهاية ، ستبقى لديك فئات بيانات منتفخة ذات مستوى أعلى ، بدلاً من التعامل مع هياكل قواعد البيانات التي يسهل فهمها ومعالجتها.


ناهيك عن وجود حوالي خمسة آلاف ORMs ، لذلك بدلاً من تعلم SQL ، بمجرد أن أتعلم 34 ORMs مختلفة. هذا لا يعني أن الناس يتعلمون ORM ، فهذا يعني أنهم ببساطة لا يتعلمون SQL.


وجميع منتجات SaaS هذه. لقد اخترت للتو عددًا قليلاً من مجموعة شركتي:



ما يمكن أن يكون أسوأ من تفريغ البيانات؟ تفريغ بيانات يخترع لغة الاستعلام الخاصة به.


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


بالإضافة إلى ذلك ، تحاول كل قاعدة بيانات أيضًا إعادة اختراع لغة الاستعلام. لدى Mongo لغة الاستعلام الرهيبة الخاصة بها ، والتي لم أفهمها أبدًا ، ولوسين لغة خاصة بها ، وما إلى ذلك.


ما الذي أطلبه؟ ليس كثيرًا حقًا:


  1. يجب أن يوفر كل منتج SaaS القدرة على نسخ جميع البيانات إلى قاعدة بيانات SQL الخاصة بي (في حالتي Postgresql / Redshift). لا أريد استخدام DSL الخاص بهم. ربما سيتمكن الاتحاد الأوروبي من إثبات ذلك باعتباره الشرط التالي بعد اعتماد التوجيه الخاص بالخدمات المصرفية المفتوحة PSD2 .
  2. هناك حاجة إلى وقف لمدة 30 عامًا لاختراع لغات الاستعلام الجديدة.
  3. نحن بحاجة إلى تبديد الأسطورة القائلة بأن ORMs تجعل الشفرة أنظف. قم بالتبديل إلى SQL خالص وستحصل على تفاعل أبسط وأكثر شفافية مع قاعدة البيانات الخاصة بك.

هذا كل شيء. أنا أفهم أنني مثل متذمر قديم ، لكنني أخاطر بهذه المخاطر على نفسي.


ملاحظة


تلقى هذا المنشور عددًا كافيًا من المشاهدات ، لذلك يجب أن يثير اهتمامًا كبيرًا بين الجمهور. تابع المناقشة على Hacker News والتعليقات على Reddit r / برمجة .

Source: https://habr.com/ru/post/ar422667/


All Articles