سؤال

ما الذي تفضله (من وجهة نظر مطورك) عندما يتعلق الأمر بتنفيذ عملية تجارية؟

نظام إدارة العمليات التجارية (BPMS) أو فقط IDE المفضل لديك مع الأدوات والأطر المطلوبة (أداة إعداد التقارير على سبيل المثال)؟

ما هو من وجهة نظرك أكبر فائدة من BPMs مقارنة مع IDE مع أدواتك الشخصية وأطرك؟

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

هناك قواعد يمكنني من خلالها استخدام Java ، لكن حتى ذلك الحين يجب أن ألتزم بمحرر الأنظمة بدون Intellisense وما إلى ذلك.

لذلك هذا يقودني إلى إجابة سؤالي الخاص - أود استخدام الأدوات التي اعتدت عليها بدلاً من الاضطرار إلى تعلم كيفية العمل مع BPMS (على الأقل الشخص الذي أعرفه) لأنه يحدني أكثر مما يساعد . BPMs التي أعرفها هو إطار يصعب من الصعب الهروب منه! في هذا الوقت ، أفضل إطار عمل مثل Grail على أي BPMs أعرفه.

لذلك ربما يكون السؤال الأكثر تحديداً هو: هل تشعر بنفس الشيء أم أن هناك BPMSes تدعمك في Beeing مطورًا ويفكرون كمطور أو تجبرك بمعظمهم على القيام بعملك بطريقة مختلفة؟

هل كانت مفيدة؟

المحلول

لست متأكدًا مما تطلبه بالضبط ، لكن الاختيار BPM مقابل البرمجة العادية يعتمد على المتطلبات. يعد "عملية الأعمال" مصطلحًا غامضًا نسبيًا في هندسة البرمجيات.

فيما يلي بعض المعيار لتقييم احتياجاتك:

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

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

ما بين برمجة عادي و حل BPM الكامل (على سبيل المثال Oracle BPM Suite الذي يحتوي Bpel, محرك حكم, ، إلخ) ، هناك الحلول الوسيطة مثل JBPM أو Windows Workflow Foundation وربما الكثير من الآخرين. هذا الحل الوسيط في كثير من الأحيان مقايضة جيدة.

نصائح أخرى

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

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

لقد عملت مع BizTalk في الماضي ومؤخرا مع JBPM. رأيي متحيز ضد BPMS للأسباب التالية:

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

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

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

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

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

البرمجة العادية- فقط استخدم IDE لاختراق الكود. الجانب الإيجابي: مزيد من السيطرة. السلبية؟ يتم إنفاق في كثير من الأحيان على إعادة كتابة رمز Boilerplate. وعليك الحفاظ عليها.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top