** ** ** الخيارات الفنية ** ** ** ** ** ** ** ** ** ** من قبل ** Feature Team **.
يجب أن يتصرف فريق الميزات ** بمسؤولية ** لتحديد الاختيارات التي تؤثر بشكل حصري والخيارات التي تؤثر على المؤسسة.
يجب أن تكون ** الاختيارات ** ** التي تتجاوز ** نطاق فريق الميزة (على سبيل المثال ، الترخيص ، لغة البرمجة النادرة) ** مصادق عليها ** من قبل المنظمة أو من خلال عملية التقارب بين الأقران .
تمثل الأداة المناسبة ** ** ** الاستخدام الجيد ** مصدرًا للوفورات.
** ** أداة سيئة ** مفروضة على الجميع ** خطر **. يمكن أن يؤدي ** سوء الاستخدام ** للأداة الجيدة ** ** إلى عواقب مؤذية **. على سبيل المثال ، الطرق رشيقة المستخدمة بشكل سيئ خطرة.
** ** يجب أن تكون ** أسئلة **.
** Excel ** غالبًا ما يكون خيارًا عقلانيًا ** ولكنه ليس ** أداة لفعل كل شيء ** (CRM ، ERP ، Datamart ، …)
امتياز ** Build ** للأعمال الأساسية.
خذ بعين الاعتبار ** اشتر ** للبقية ، كل حالة على حدة.
كلما زادت الأداة التي تحمل ميزة ** تميز ** للمؤسسة ، كلما كان الغرض منها ** تم بناؤه **. يجب أن تسمح الأعمال الأساسية بنوعية ** ** و ** تتكيف بسرعة وفي كثير من الأحيان **. بعض ** حزم البرامج ** ** تتكيف في بعض الأحيان ** مع هذه الحاجة.
** ** بقية **: SaaS، Open Source، Build أو Owner يجب دراستها ** حسب الحالة **.
** الاستفادة القصوى من المصدر المفتوح **.
يجب أن تكون الخيارات البديلة مدعومة.
تمثل ** الحلول الخاصة ** ** ** للمؤسسات التي يجب أن تكون قادرة على استئناف الصيانة إذا لزم الأمر.
هناك عدد قليل من أدوات الملكية التي لا تحتوي على ** بدائل مفتوحة المصدر **.
تستفيد المنظمة ** من ** مجتمع المصدر المفتوح ** ويمكن ** تسديد مساهماتها **.
تطوير ** قائمة بذاتها ** و ** خدمات مقترنة بشكل ضعيف **.
** يجب أن يكون الاقتران الضعيف هو القاعدة.
لكل خدمة مصغرة واجهة ** محددة بوضوح **.
تحدد هذه الواجهة ** ** ** الرابط ** بين ** الخدمات المصغرة **.
** يسمح لك Domained Designed ** ، خصوصًا مع ** Contrast Contexts ** ، بتوقع هذه المشكلة.
كل خدمة لها نظام تخزين بيانات خاص بها **.
A ** Data Store ** يُقصد به أن يكون ** مقترنًا ** فقط ** ** ** مع خدمة مصغّرة واحدة **.
يتم الوصول ** إلى البيانات ** من خدمة مصغرة إلى أخرى ** حصريًا عبر واجهتها **.
هذا التصميم يعني ** التناسق مع مرور الوقت ** عبر النظام الأساسي. يجب أن يتم القبض ** على جميع المستويات ** ، بما في ذلك UX.
يجب أن يكون لكل خدمة ميكروية محيط وظيفي معقول ، والذي ** "يتناسب في الرأس" **.
توفر الخدمة الصغيرة ** عددًا معقولًا من الميزات **.
** لا تتردد في خفض ** خدمة صغيرة عندما تبدأ في النمو.
خدمة ذات حجم معقول تجعل من الممكن ** النظر ** بهدوء ** إعادة الكتابة ** ، إذا دعت الحاجة إلى ذلك.
يفتح ** Reactive Manifesto ** الطريق نحو تصميم البنى التفاعلية.
** يركز برنامج ** مستجيب ** على تدفق البيانات ونشر التغير. ويستند إلى نمط "** Observer " خلافا للنهج " Iterator **" ، أكثر تقليدية.
يحدد البيان التفاعلي المحاور الأساسية: ** التوافر ** والسرعة ، ** المرونة * إلى الأعطال ، ** المرونة ** ، ** المرونة ** و ** توجيه الرسالة **.
** العمليات غير المتزامنة ** تفضل ** الفصل ** و ** التدرجية ** لصالح ** الأداء **.
يجب أن يكون التبادل بين التطبيقات ** غير متزامن ** أولاً.
التبادلات غير المتزامنة بشكل طبيعي ** تسمح ** بالاقتران ** الضعيف ، ** العزل ** و ** التحكم في التدفق ** (** الضغط الخلفي **).
** يجب اعتبار الاتصال المتزامن ** فقط ** عندما يتطلب الإجراء **.
يجب توجيه نظام المعلومات ** الأحداث **.
يسمح ** توجيه الحدث ** بتفضيل تنفيذ طرق مثل ** C ** ommand ** Q ** uery ** R ** esponsibility ** S ** egregation (** CQRS ** ) و ** Event Sourcing **.
امتياز ** رسالة بسيطة ، قوية وقوية ** سمسار إلى "الأنابيب الذكية".
** أظهر ** ESB ** حدود **: ** صيانة قابلة للتحديث ** هي ** حرجة ** ، من وجهة نظر ** تقني ** ** ** و ** ترتيبي **.
** ** ** ** رسائل الوسيط ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
** نقاط النهاية الذكية ** و ** المواسير البسيطة ** هي بنية تعمل على نطاق واسع: إنها ** الإنترنت **.
ينبغي التفكير في ** المزامنة الكاملة ** للنظام بمجرد تصميمه **.
إذا كان التزامن ** بين نظامين مضمونًا بتدفق الحدث ** ، فيجب أن يكون ** resynchronization ** الكلي لهذه الأنظمة ** مُخططًا في وقت التصميم **.
تدقيق تلقائي ** ** ** للتزامن ** (مثال: عن طريق العينات) يسمح بـ ** بقياس ** و ** كشف ** أي أخطاء محتملة ** للمزامنة **.
** ** ** ** ** ** ** ** ** من الخدمات ** ** ** ** ** ** ** ** ** ** ** ** يضمن ** ** **.
** ** ** ** ** الخدمات ** ** ** ** ** ** ** ** ** ** لجميع البيئات **.
يضمن ** دليل ** مركزي ** ** اكتشاف ديناميكي ** من ** خدمات مصغرة **.
** ** ** ** قابلية ** يعتمد على هذا ** الدليل **.
توفر الفرق المميزة ** sandboxed ** بيئة.
تحافظ فرق العمل على بيئة ** sandbox ** (الإصدار الحالي والإصدار القادم) للسماح للفرق الأخرى ** بزيادة حجمها **.
في ** بعض الحالات غير الاسمية ** ، ** قد تكون ** ميزات ** معطلة ** في بيئة ** التطوير **.
** سوف يتلف نظامك! **
صممه بحيث يكون متسامحًا.
سوف ينهار نظام ** الخاص بك ** ، إنه أمر لا مفر منه. يجب أن تكون مصممة لهذا (** تصميم للفشل **).
التنبؤ ** التكرار ** على جميع المستويات: ** الأجهزة ** (الشبكة ، القرص ، الخ …) ، ** التطبيقات ** (حالات متعددة من التطبيقات) ، ** الجغرافية ** المناطق ، ** مزودي الخدمة ** (على سبيل المثال: AWS + OVH).
توفير ** مجموعة أدوات ** ، لا تفرض أطر صارمة.
** الاهتمام بالمنازل الفنية والمساكن المستعرضة **! فهي مقيدة ومكلفة ومن الصعب صيانتها.
** مسرعات ** ، ** مجموعة أدوات ** ، ** مداخن تقنية ** يمكن أن تكون مجمعة ** ، ** مجانية ** فرق مميزة ، تتجنب النهج العقائدي.
عامة أو خاصة أو مختلطة ، فإن ** cloud ** (** IaaS ** أو ** PaaS **) هو المعيار القياسي للإنتاج.
** تتيح لك خدمات IaaS ** معالجة الحالات التي تتطلب مرونة أكبر ** ولكنها تتطلب المزيد من العمل التشغيلي.
لا تعد السحابة الخاصة بيئة افتراضية تقليدية ، بل تعتمد على ** الأجهزة السلعية **.
لا تقوم الفرق المميزة بإدارة البنية الأساسية ، وإنما يتم توفيرها من قبل المنظمة **.
مشاكل البنية التحتية ليست ضمن ** فرق العمل **. يجب توفير البنية التحتية ** ** و ** صيانتها ** عبر خدمة ** وظيفية.
** توفر الحاويات ** المرونة اللازمة للأدوات غير المتجانسة.
توفر الحاويات المرونة ** التي تحتاجها فرق العمل لتمكن الأدوات غير المتجانسة ** في سياق متجانس **.
استخدام ** الحاويات ** يجعل من الممكن التغلب على مشاكل ** البيئات التقنية **.
الحاويات (مثال: ** Docker **) تجعل من الممكن ** أن تتحرر ** من اختلافات البيئة.
يجب أن تكون ** عملية النشر ** ** معروضة ** على البيئة.
** يجب عدم نشر بعض المكونات ** مثل قواعد البيانات في الحاويات. انتشارها لا يزال الآلي.
يجب أن تكون التدابير ** ** ** و ** يمكن الوصول إليها ** للجميع.
** ** ** ** ** يمكن الوصول ** إلى كل شخص بمستويات مختلفة من الدقة: عرض تفصيلي لميزة الفريق ذات الصلة ، وتجمعات لأعضاء آخرين في المنظمة.
لا يعني الوصول إلى ** المقاييس الوصول إلى بيانات الوحدة ** ، بل يجب التحكم في الحفاظ على السرية.
** تتأثر جميع البيئات **.
** جودة البرمجيات ** هي ** عامل رئيسي **.
** مراجعات الكود ** هي ** منهجية **. يتم إجراؤها بواسطة أعضاء فريق الميزة أو أعضاء آخرين في المنظمة ، كجزء من ** التحسين المستمر **.
هذا ** لا يتم تدقيقك لكن كودك **: "أنت لست رمزك!".
** يمكن أن تكون * qualimetry ** مؤتمتة جزئيا ، ولكن لا شيء يتفوق على ** "العين الجديدة" **.
** اختبار تلقائي ** هو متطلب سابق غير قابل للتفاوض للنشر المستمر.
يضمن الاختبار التلقائي ** ** ** جودة المنتج ** مع مرور الوقت **.
هو ** شرط أساسي ** للنشر المستمر ، فهو يسمح ** ** التغييرات ** و ** النشر المتكرر **.
يصبح طرح ** الإنتاج ** ** حدثًا كاذبًا **!
** الاختبارات على جميع المستويات **: الوحدة ، والتكامل ، والوظيفية ، والمرونة ، والأداء.
تعتبر اختبارات ** الدمج ** و ** الوظيفية ** هي الأكثر أهمية ، ** تضمن ** ** ** فعالة **.
** اختبارات ** وحدة ** مناسبة لتطوير ** **.
** اختبارات الأداء ** تقيس الأداء ** مع مرور الوقت **.
** تساعد اختبارات المرونة ** على توقع ** حالات الفشل **.
** الغلاف ** هو مؤشر الهدف الأساسي لجودة الاختبار.
تُعد تغطية ** الكود ** بواسطة الاختبارات مقياسًا ** جيدًا ** لجودة الشفرة.
هذا ** شرط ضروري ** لكن ** غير كاف ** ، يمكن أن تكون تغطية إستراتيجية اختبار ** سيئة ** عالية بدون ضمان الجودة الجيدة للشفرة.
** الأمان ** هي ** عملية ** ، لا ينبغي أن تعالج استجابة للمشاكل.
** ** يمكن ** أن يكون خبراء الأمان ** متكاملة ** مباشرة في فرق العمل ** إذا لزم الأمر **.
** خبراء الأمن ** متاحون في المنظمة من أجل ** التدقيق ** ، ** الوعي ** و ** إلى الأمام **.