1C - الخير والشر. وضع نقاط في holivars حوالي 1C

صورة


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


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


تحت القصاص - الكثير من الرسومات السميكة لـ 1C ، والنقاد 1C ، و Java ، و .NET وبشكل عام ... المروحة تعمل ، مرحبًا بك!


عن نفسي


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


ثم كان هناك BK0011 و BASIC في المدرسة ، و C ++ ومجمعات في الجامعة ، ثم 1C ، ثم أصبح من الأسوأ جدًا أن نتذكره. على مدار الخمسة عشر عامًا الماضية ، شاركت بشكل رئيسي في 1C ، ليس فقط من حيث الترميز ، ولكن بشكل عام في 1C. تحديد الأهداف والإدارة و devops هنا. على مدار السنوات الخمس الماضية ، شاركت في أنشطة مفيدة اجتماعيًا فيما يتعلق بتطوير أدوات التطوير والأتمتة لألقاب الأخرى التي تحمل اسم 1C ، وأنا أكتب مقالات وكتبًا.


اتخاذ قرار بشأن موضوع المناقشة


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


العمارة رفيعة المستوى 1C: المؤسسة


أذكر عن علم كلمة "إطار". من وجهة نظر المطور ، فإن منصة 1C هي بالضبط الإطار. وتحتاج إلى التعامل معها تمامًا مثل الإطار. فكر في أنه Spring أو ASP.NET يتم تنفيذه بواسطة بعض وقت التشغيل (JVM أو CLR ، على التوالي). لقد حدث أنه في عالم البرمجة التقليدية ("ليس 1C") ، يكون الفصل بين الأطر والأجهزة الظاهرية وتطبيقات محددة أمرًا طبيعيًا ، نظرًا لحقيقة أن هذه المكونات يتم تطويرها عادةً بواسطة جهات تصنيع مختلفة. في عالم 1C ، ليس من المعتاد تخصيص إطار تطوير بشكل صريح ووقت تشغيل فعليًا ، بالإضافة إلى ذلك ، تم تطوير تطبيقات محددة مكتوبة باستخدام الإطار أساسًا بواسطة 1C نفسها. نتيجة لذلك ، ينشأ بعض الالتباس. لذلك ، في إطار المقالة ، سيتعين علينا النظر في 1C من عدة جهات في وقت واحد وتصنيفها وفقًا لعدة محاور إحداثية. وفي كل محور تنسيق نحن وضع مجرفة من المواد البني النظر في ميزات ومزايا وعيوب الحل الحالي.


وجهات النظر 1C


1C للمشتري


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


بالنسبة للمشتري ، فإن 1C هو وقت سريع للسوق. خيارات. أسرع من Java أو C # أو JS. في المتوسط. في المستشفى. من الواضح أن موقع بطاقة العمل في رد الفعل سوف يتحول بشكل أفضل ، لكن الواجهة الخلفية لنظام WMS ستبدأ بشكل أسرع في 1C.


1C كأداة


كل حل تقني له حدود للتطبيق. 1C ليست لغة للأغراض العامة ، ولا تعيش بشكل منفصل عن إطارها. من المستحسن تطبيق 1C عند الحاجة:


  • تطبيق الخادم
  • تطبيق التمويل
  • مع استعداد واجهة المستخدم ، ORM ، وتقديم التقارير ، XML / JSON / COM / PDF / YourDataTransferingFormat
  • مع دعم العمليات الخلفية والوظائف
  • مع الأمن القائم على الدور
  • مع منطق الأعمال النصي
  • مع النموذج الأولي السريع وانخفاض وقت السوق

1C لا تحتاج إذا كنت تريد:


  • تعلم الآلة
  • حسابات GPU
  • رسومات الحاسوب
  • حسابات الرياضيات
  • نظام CAD
  • معالجة الإشارات (الصوت والفيديو)
  • مكالمات HTTP ذات الحمل الكبير بمئات الآلاف من ملفات rps

1C كشركة تصنيع


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


  • المحاسبة المالية
  • التخصيص السهل للمنطق الأعمال
  • فرص التكامل واسعة في المناظر الطبيعية غير المتجانسة تكنولوجيا المعلومات

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


يجب النظر في جميع المطالبات أو قائمة الأمنيات لـ 1C ، كإطار ، حصريًا من خلال هذا المنشور. يقول مطورو "نريد OOP في 1C". "كم ستكلف دعم OOP في المنصة ، هل سيساعدنا ذلك على زيادة مبيعات الصناديق؟" يقول 1C. يفتح "منظور" بيع حلول الأعمال:


"يا عمل ، هل تريد OOP في 1C الخاص بك؟"
"هل ستساعدني في حل مشاكلي؟"
- كيف تعرف ...
- ثم لا حاجة


قد يكون هذا النهج جيدًا أو سيئًا ، اعتمادًا على من ينظر إليه ، لكن الأمر كذلك. عند الحديث عن حقيقة أنه لا توجد ميزة X في 1C ، فأنت بحاجة إلى أن تفهم أنها ليست موجودة لسبب ما ، ولكن في سياق اختيار "تكلفة التنفيذ مقابل حجم الربح".


التصنيف التكنولوجي


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

كيف يختلف مطورو 1C عن نظرائهم الغربيين في العلاقات العامة. إنهم يحبون إعطاء اسم كبير لأي هراء والاندفاع به مثل كيس مكتوب ".
أ. أوريفكوف

تحتوي منصة 1C على بنية كلاسيكية ثلاثية المستويات ، في وسطها خادم تطبيق (أو مضاهاة مقابل القليل من المال لأصحاب المتاجر الصغيرة). باعتباره DBMS ، يتم استخدام MS SQL أو Postgres. هناك أيضًا دعم لـ Oracle و IBM DB2 ، لكن هذا أكثر من مقصور على فئة معينة ، لا أحد يعرف ماذا سيحدث إذا قمت بتطبيق 1C على هذه القواعد تحت تحميل متوسط ​​وعالي. أعتقد أن شركة 1C نفسها لا تعرف هذا أيضًا.


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


في وضع المتصفح ، يعمل حل 1C: Fresh cloud SaaS أيضًا ، حيث لا يمكنك شراء 1C ، ولكن يمكنك استئجار قاعدة صغيرة والاحتفاظ بسجل لمبيعات الشاورما هناك. فقط في المتصفح ، دون تثبيت أو تكوين أي شيء لنفسك.


بالإضافة إلى ذلك ، هناك عميل Legacy ، والذي يسمى في 1C "التطبيق العادي". Legacy ، إنه Legacy ، مرحبًا بك في عالم التطبيقات في عام 2002 ، لكننا ما زلنا نتحدث عن الحالة الراهنة للنظام البيئي.


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


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


صورة


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


سنبدأ مع اللغة.


1C لغة البرمجة


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


من وجهة نظر المطور ، لديه تحت تصرفه إطار مع الفئات الأساسية المعروضة على DBMS. يمكن للمطور أن يأخذ "الدليل" من الفئة الأساسية ويرث منه الدليل "العملاء". يمكنه إضافة حقول فئة جديدة إليها ، على سبيل المثال ، TIN والعنوان ، وكذلك ، إذا لزم الأمر ، يمكنه تجاوز أساليب الفئة الأساسية ، على سبيل المثال ، أسلوب OnWrite / Prizapisi.


تم تصميم هذا الإطار بطريقة نادراً ما يكون الميراث الأعمق مطلوبًا ، والقيد في OOP ، في رأيي ، منطقي. يركز 1C على التطوير المدفوع بالمجالات ويجعلك تفكر أولاً وقبل كل شيء في موضوع موضوع الحل الجاري تطويره ، وهذا جيد. لا يوجد فقط إغراء ، ولكن هناك أيضًا حاجة لكتابة 10 DTO و ViewModel مختلفة فقط لإظهار بعض البيانات من المجال في مكان ما. يعمل المطور 1C دائمًا مع كيان واحد ، دون انسداد سياق الإدراك مع عشرات الفئات ذات الأسماء المتشابهة التي تمثل نفس الكيان ، ولكن من الجانب الآخر. أي تطبيق .NET ، على سبيل المثال ، سوف يحتوي بالضرورة على خمسة أو اثنين من ViewModel و DTO للتسلسل في JSON ونقل البيانات من العميل إلى الخادم. وحوالي 10-15 ٪ من التعليمات البرمجية في التطبيق الخاص بك سيتم نقل البيانات من فئة إلى أخرى مع الأقلام أو العكازات مثل AutoMapper. يجب كتابة هذا الرمز ويجب على المبرمجين دفع تكاليف إنشائه وصيانته.


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


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


  • إمكانية الكتابة على مستوى ، على سبيل المثال ، TypeScript (نتيجة لذلك ، وسائل أكثر تطوراً لتحليل الكود في بيئة تطوير متكاملة ، إعادة التوطين ، عضادات أقل هجومية)
    وجود وظائف ككائنات من الدرجة الأولى. مفهوم أكثر تعقيدًا قليلاً ، ولكن يمكن تقليل عدد رموز الشفرات من تلك القياسية بشكل كبير. إن فهم الكود بواسطة الطالب ، IMHO ، سيزداد بسبب انخفاض الحجم
  • حرفية مجموعات عالمية ، بادئ. نفس الشيء - تقليل مقدار الكود الذي يجب كتابته و / أو مشاهدته من خلال العيون. تعبئة المجموعات تزيد عن 9000٪ من وقت البرمجة لـ 1C. كتابتها بدون سكر نحوي طويلة ومكلفة ومعرضة للخطأ. بشكل عام ، يتجاوز عدد LOCs في حلول 1C جميع الحدود التي يمكن تصورها مقارنةً بالأُطر المفتوحة المتاحة ، وبشكل عام ، جميع مشاريع Java المدمجة. اللغة مطوّلة ، وتتحول إلى حجم بيانات ، ذاكرة ، فرامل IDE ، وقت ، مال ...
  • أخيرا الإنشاءات لدي فرضية أن هذا البناء مفقود بسبب حقيقة أنهم لم يلتقطوا ترجمة ناجحة إلى اللغة الروسية :)
  • أنواع البيانات الخاصة (بدون OOP) ، اكتب نظائرها من VB6. يتيح لك عدم كتابة الهياكل باستخدام التعليقات في BSP والأساليب السحرية التي تبني هذه الهياكل. نحصل على: رمز أقل ، تلميح من خلال النقطة ، حل أسرع للمشكلة ، أخطاء أقل في الأخطاء المطبعية وخصائص البنية المفقودة. الآن تكمن بنية المستخدم تمامًا في فريق التطوير التابع لمكتبة النظم الفرعية القياسية ، والتي ، حسب تقديري ، تكتب بعناية التعليقات على الخصائص المتوقعة لهياكل المعلمة المنقولة.
  • نقص السكر عند العمل مع المكالمات غير المتزامنة على عميل الويب. يعد رد اتصال الجحيم في شكل Alert Processing عكازًا مؤقتًا ناجم عن تغيير مفاجئ في واجهة برمجة التطبيقات للمتصفحات الرئيسية ، ولكن لا يمكنك العيش هكذا طوال الوقت ، وفائدة "فهم الطالب" للرمز غير المتزامن تفقد المزيد والمزيد. أضف أي دعم لهذا النموذج في IDE الرئيسي هنا وسوف تسوء الأمور.

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


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


بيئة التطوير


كل شيء هنا ليس سلسا أيضا. هناك نوعان من بيئات التطوير. الأول هو "مكون" المضمنة في التسليم. والثاني هو بيئة أدوات تطوير المؤسسات ، التي تم تطويرها على أساس Eclipse ، اختصار EDT.


يوفر المكون مجموعة كاملة من مهام التطوير ، ويدعم جميع الميزات وهو البيئة الرئيسية في السوق. كما أنها عفا عليها الزمن أخلاقيا ، لا تتطور ، وفقا للشائعات - بسبب حجم الديون الفنية داخل نفسه. يمكن أن يؤدي فتح واجهة برمجة التطبيقات الداخلية إلى تحسين الموقف (في شكل صداقة مع Snegopat A. Orefkov أو على أساس مستقل) ، ولكن هذا ليس كذلك. أظهرت الممارسة أن المجتمع سوف يقدم نفسه ميزة في IDE ، إذا لم يتدخل البائع فقط. ولكن لدينا ما لدينا. كان المُكون مكونًا جميلًا في 2004-2005 ، وكان مشابهًا تمامًا لبرنامج Visual Studio في تلك الأوقات ، في الأماكن كان أكثر برودة ، لكنه توقف في تلك الأوقات.


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


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


إذا نظرت إلى الموقف من خلال "المنشور 1C" المذكور ، فستحصل على شيء مثل هذا: لا يؤدي إصدار IDE الجديد إلى زيادة مبيعات الصناديق ، ولكن يمكن تقليل التدفق الخارجي لـ DEVELOPERS. من الصعب تحديد ما ينتظر النظام الإيكولوجي من وجهة نظر راحة المطورين ، لكن Microsoft سبق أن قامت بتطوير مطوري الأجهزة المحمولة من خلال تقديم خدماتهم لهم بعد فوات الأوان.


إدارة التطوير


, , , , , 1 git, blame, code-review, , etc. , . , , , . -, KDiff- . gitconverter , , , gitsync , -. open-source 1 . API , , IDE.


, 1 git Jira, Crucible, Allure 1 SonarQube — , , , 1.


إدارة


. -, , - ( 1). , , , , — highload — , " ". , , 1 - . , , . .


, . , 1: , , . , , ELK , , — . . , 1 — . , . , , , 1- , , . SAP. , , , - . . SAP . - 1 , . هذه مغالطة.


1


— . , , . . — , . 1 , — . , , 1 — , .. . , , , , .


, 1 , , .


عامل ميناء


1 . , , highload — . , +1 . , , .



— 1 - . 1 Reporting, , -, , , , .. , , . , UI , , .
1, , , , .


, PDF . .NET , . , . , PDF. , . - , , dto- JSON, , , , — PDF. 1, , .


- / 3. , , , , - . , , 3 , .


.NET visual studio ? ? هذا هو نفسه.


1,


1 - . , . , 1. . , , . -, , — . :


  1. Unicode. , , ? 2019 ASCII ( legacy). . . - - varchar . 2015 gitlab LDAP- - , JetBrains IDE . 1 . . , , . , - . Java- . . ? .
  2. /. 1 . — . identity ( ", "), , , ( ). , , , — , , , .
  3. . 1 — . . - identity ( !), GUI, ( ). ? ?
  4. . 1 () . — ! , : ( ), . , . , — , .
  5. . , - . . — . : , .
  6. . , . , -, , , — . ( UI) — .
  7. Reporting. BI- ETL-. , . , , .. 1 , , . , . -- , --. : reporting, , , .
  8. . - .NET PDF . . PDF? 1- PDF +1 . + 40 , . 1 , . , , 1 , 3D OpenGL. ?

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


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


أنا لا أقول أن 1C سوف تحل جميع الحالات ، ولكن بالنسبة لتطبيق الشركات الداخلي ، عندما لا تحتاج إلى العلامة التجارية UI ، ما هو المطلوب؟


يطير في مرهم


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


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

دعنا نقطة


  • 1C هو إطار لتطوير التطبيقات السريعة (RAD) للأعمال وهو مصمم لهذا الغرض.
  • ثلاثة ارتباط مع دعم لنظام إدارة قواعد البيانات الرئيسية ، واجهة المستخدم العميل ، ORM جيدة جدا وإعداد التقارير
  • فرص وافرة للتكامل مع الأنظمة التي يمكنها القيام بما لا يفعله 1C. إذا كنت تريد التعلم الآلي ، احصل على Python ، ودمج النتيجة في 1C عبر http أو RabbitMQ
  • لا تحاول أن تفعل كل شيء في 1C ، فأنت بحاجة إلى فهم نقاط قوتها واستخدامها لأغراضك الخاصة
  • المطورين الذين يميلون إلى البحث في الأطر التكنولوجية - الأدوات ، وإعادة كل N سنوات على محرك جديد - يشعرون بالملل في 1C. كل شيء محافظ للغاية هناك.
  • يشعر المطورون بالملل بسبب قلة الاهتمام بهم من الشركة المصنعة. لغة مملة ، وضعف IDE. أنها تتطلب التحديث.
  • من ناحية أخرى ، فإن المطورين الذين لا يستطيعون إيجاد تسلية من خلال تطبيق ودراسة التقنيات الأخرى التي يحبونها هم مطورو سيئون. سوف أنين والذهاب إلى نظام بيئي آخر.
  • أرباب العمل الذين لا يسمحون لألقابهم الخاصة بـ 1C بتهمة شيء ما في بيثون هم أرباب عمل سيئون. سوف يفقدون الموظفين بعقل استفساري ، وسيأتي مبرمجو القرود في مكانهم ، والذين سيوافقون ، بعد الاتفاق مع كل شيء ، على سحب برامج الشركة إلى المستنقع. لا يزال يتعين عليك إعادة كتابته ، لذا ربما سيكون من الأفضل الاستثمار في بيثون قبل ذلك بقليل؟
  • 1C هي شركة تجارية وتنفذ الميزات فقط على أساس مصالحها ونفعيتها. لا يمكن إلقاء اللوم عليها ، يجب أن تفكر الشركة في الربح ، هذه هي الحياة
  • 1C تجني المال من خلال بيع حلول لمشاكل العمل ، وليس مشاكل مطور فاسيا. يرتبط هذان المفهومان ، لكن الأولوية هي بالضبط تلك التي قلت. عندما يكون المطور Vasya جاهزًا للدفع مقابل ترخيص شخصي لـ 1C: Resharper - سيظهر بسرعة كبيرة ، "Resharper" A. Orefkova يؤكد هذا. إذا قام البائع بدعمه ، لكن لم يقاتل معه ، فستظهر أنه سيكون هناك سوق للبرمجيات للمطورين. الآن هناك لاعب واحد ونصف في هذا السوق مع نتائج مشكوك فيها ، وكل ذلك لأن التكامل مع IDE هو سلبي ويتم كل شيء على العكازات.
  • ممارسة أخصائي متعدد الأدوات ستذهب إلى عالم النسيان. تعتبر التطبيقات الحديثة ضخمة جدًا بحيث لا يمكن تذكرها من جانب الكود ومن جانب الاستخدام التجاري. أصبح Server 1C أكثر تعقيدًا ، ولن يكون من الممكن الاحتفاظ بجميع أنواع الخبرة في موظف واحد. يجب أن يستلزم ذلك الطلب على المتخصصين ، مما يعني جاذبية مهنة 1C وزيادة الرواتب. إذا عملت قبل Vasya ثلاثة في واحد مقابل راتب واحد ، الآن تحتاج إلى استئجار اثنين Vasya والمنافسة بين Vasya يمكن أن يحفز النمو العام لمستواهم.

استنتاج


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


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


انتبه إلى أن الإطار المثالي غير موجود واعتن بنفسك.
جيد للجميع!


ملاحظة: شكرا جزيلا لك على المساعدة في هذا المقال.

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


All Articles