لماذا ، Bitrix؟ أو العالم الخيالي 1C

في أحد الأيام ، يوم الاثنين ، حدث لي هذا الفكر - "لكنني أحفر في النواة الجديدة" (جديد نسبيًا ، لكن المزيد حول ذلك لاحقًا). لم يظهر الفكر من اللون الأزرق ، ولكن الشروط المسبقة لذلك هي:


  • مهمة الاختبار ، من واحدة من الاستوديوهات الرئيسية للأم روسيا (التي ظهرت اختصار ORM) ،
  • فكرة كتابة وحدة بسيطة ،
  • رغبة أحد العملاء في المستقبل في إنشاء متجر.

لذلك ، أود أن أشارك قصة هذه الحملة في الغابة الاستوائية الكثيفة.


مقدمة قصيرة


أنا لا أعتبر نفسي معلم برمجة سواء على Bitrix أو على أي شيء آخر. المقال يعكس ملاحظاتي وتجربتي وأفكاري. النقد البناء هو موضع ترحيب ، وكذلك النزاعات المنطقية (كما ورث سقراط). سلطت الخلفية الضوء على ثلاثة مواضيع واسعة لن يتم تناولها. مثل الجانب الرئيسي - برمجة العمل مع البيانات في إطار Bitrix D7 kernel (ORM) ، على الرغم من أنه عامل أساسي لكتابتها.


في حمام السباحة مع الرأس


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


ما تحتاج لمعرفته حول الغابة أو قواعد البقاء على قيد الحياة


المادة رقم 1 - احذر من وكلاء السفر عديمي الضمير


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


  • الدورات ضعيفة التنظيم - لم يتم التفكير في ترتيب الدراسة ، يمكنك العثور على عدم وجود أي صلة بين الفصول ؛


  • permalinks - أنا لا أتحدث عن روابط إلى الوثائق ، لكن ارتباطات تجاوز سعة مكدس والفصول الأخرى (في نهاية الدورة ، التي يوجد فيها بحر من المعلومات) تشتيت الانتباه للغاية ، هذا ليس خطيرًا ؛


  • الماء والكلمات الشائعة - يمكنك التحقق من عدد الشخصيات.


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

  • لا يزال تفسير المفاهيم بطريقتها الخاصة موضوعًا قديمًا (API - Component - Template aka MVC) ؛


  • إدراج من الوثائق - نسخ ولصق الأجزاء الكاملة ، وأحيانًا فقط لملء مكان ؛


  • يقتبس من المطورين - ببساطة لا توجد كلمات -_- ، لماذا هذا النغمة ؛


  • فصول عفا عليها الزمن - يبدو أنه من المستحيل حذفها ؛ فهي تعزز الالتباس في بعض الأحيان.


    العلاقات بين الكيان (القديم) أو إعدادات خصم المنتج


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


المادة رقم 2 - حذار من غابة كثيفة


بعد أن قدمت بضع عينات بسيطة باستخدام الشريط الاسكتلندي الوثائق ، قررت أن أحاول الحصول على خصم على البضائع. ثم بدأ المطر. جوهر الزائفة وبيض الفصح:


  • نموذجان للخصومات - نعم ، نعم ، لقد فكرت لفترة طويلة - لماذا أضفت الخصم ، إنه موجود في المنتج ، لكن لا يمكنني الحصول عليه من خلال فئة كيان DiscountTable . كان علي أن أكتب في الدعم. الجواب كان هذا:

DiscountTable - خصومات على البضائع ، تنتمي إلى الوحدة التجارية كتالوج ، وظيفة عفا عليها الزمن وعدم استخدامها. نوصي باستخدام قواعد العربة.

  • نقص الوثائق - ولكن يمكنك الحصول على رابط للوثائق - طلب
    ط. تتوقع أنه من 2013-2015 ظهرت. الجواب هو:

لا تزال وثائق إنشاء قواعد السلة قيد التطوير.

  • لم يتم التفكير في سيناريوهات العمل - كان سؤالي التالي منطقيًا - كيف يمكنني الحصول على خصم؟ التي تلقيتها إجابة ساحرة وأنهيت التواصل مع الدعم:

للحصول على قواعد السلة التي تنطبق على المنتج ، ستحتاج إلى إنشاء كائن سلة وإجراء عملية حسابية للمنتج.

  • وظيفة غير مكتملة - قد تُرجع بعض أساليب الفصل رسائل خطأ مثل:

لإضافة خصومات المنتج ، استخدم المكالمة CCatalogDiscount :: Add ()

  • بنية معقدة - لإنشاء تحديد معقد من عدة جداول ، يتم استخدام كائنات علاقة خاصة ، والتي يجب إضافتها إلى الأسلوب SomeTable::getMap() . هذا ليس بالأمر السهل (يتم إنشاء بعض فئات وصف الكيانات تلقائيًا). أيضا ، يحزن حقيقة أنه من المستحيل الحصول على عينة معقدة ببساطة في شكل مجموعة متعددة الأبعاد. وبناء العلاقات يمكن أن يستغرق أكثر من عشرة خطوط.
  • متاهات الوظائف - في D7 ، توجد أماكن تتم إعادة كتابتها باستمرار وفي نفس الوقت يتم دعم جميع الاختلافات. يمكن تنفيذ كائنات العلاقة نفسها من خلال: Entity\ReferenceField || Bitrix\Main\ORM\Fields\Relations || runtime (عند الطلب)

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


المادة 3 - لعنة الحشرات


يحتوي Bitrix على عدد من الميزات الغريبة والمتطفلة التي تنساها دائمًا ، لكنها تومض أمام عينيك:


  • قواعد تسمية الفئات والملفات - الرافعة الشوكية الخاصة بك والتي تقلل من كل شيء إلى أحرف صغيرة ، أسماء مختلفة للفئات والملفات ؛
  • طرق لربط حلول الطرف الثالث - على سبيل المثال الملحن أو الصوت (التي يتم تضمينها ببساطة في مكتبة BX دون أي أسباب واضحة والوظائف الإضافية) .

محدث 1. تعديل ل Vue

بحث في السؤال.
في الواقع ، تطالب BX بفوائد برنامج Vue التالية:


  1. دعم تعدد اللغات (Bitrix Framework) - يمكنك إضافة بعض الوظائف من BX js إلى مكون Vue ، مع تعطيل التفاعل لها ؛
  2. Global Event Bus - للاتصال بين التطبيقات (إذا كان هناك العديد) ؛
  3. الميراث المكون - السكر النحوي ، يمتد بسيط.
  4. تخصيص المكون - السكر النحوي ، يشبه الاستبدال (مثل / بتريكس / مكونات / و / محلي / مكونات /) ؛
  5. نسخة واحدة من المكتبة (في إطار الموقع) - أنها منطقية ، لم أفكر على الفور (شكرا k0rinf ).

  • دعم الشفرة القديمة - مجموعة من الطبقات الزائدة غير الضرورية والارتباك المستمر ؛
  • المكونات المنسية - تم تحديث مكونات وحدة iblock فقط ؛
  • قوالب المكون - سيئة السمعة ومعروفة للجميع ، مع منطق الأعمال على أهبة الاستعداد ؛
  • المنطق الضمني ومشاكل التخصيص - بعد تغيير البرنامج النصي للطلب ، يمكنك التقاط خطأ خفي ومشاكل في الوحدات النمطية ؛
  • ثابت في كل مكان - تبدأ في التفكير في أن هذا أمر طبيعي ؛
  • لوحة الادارة المثيرة للجدل - في بعض الأحيان ليست مريحة وغير قابلة للتكيف ، ولكن لتطوير وحدات لذلك ... ط ط.

تفاهات ، لكنها دائما في مكان قريب.


المادة رقم 4 - الغرباء والسكان الأصليين خطرون


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


للعمل مع الحواجز ، استخدم النواة القديمة ، التي تعمل بشكل جيد وثابت.

أعتقد أنني سأفعل ذلك.


المادة رقم 5 - الحيوانات المفترسة في مكان قريب


المسوقين الثناء على المنتج. مقالات مقارنة حيث Bitrix هو الزعيم بلا منازع. حفنة الكلمة المبرمجين ، كما أنا. العديد من المواقع التي تطلب إنهاء عذابها. أيضا آفة المجتمع.


المادة رقم 6 - هل لديك الماء


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


المادة رقم 7 - الأمطار الاستوائية صعبة


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


حضارة الملقب الاستنتاجات


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


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


لنفسي ، قررت ، Bitrix - لا. بطبيعة الحال ، لن ينجح الفشل الكامل ، ولكن لتطوير منتج لم يكن فيه دعم لمدة 5 سنوات للوظيفة الأساسية والتوثيق الواضح للنواة الجديدة والمعلن عنها - لا أرى أي سبب. من الأفضل كتابة حل بسيط يتم استخدامه من مشروع إلى آخر على النواة القديمة وتعلم حل جديد.


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


ملحوظة: المقال مكتوب على عجل ، إذا لم تستطع بناء سلسلة متناسقة من الأفكار.

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


All Articles