Table of Contents
لماذا تتطلب شركة API التصميم مبدأ الفصل بين الأوجه
(أ) إذا كنت تبني خدمة ثابتة، أو نقطة نهاية لشبكة البرمجيات الحديثة، أو مجموعة من المعارف الخاصة بالاستهلاك الداخلي، أو القرارات التي تتخذها في سلسلة تصميمات الوصلات البينية الخاصة بك إلى كل زبون يلمسهم، فمن أكثر الطرق فعالية للحفاظ على نظافة نظامك، وقابلية للاستمرار، وسهلة التطور، تطبيق [الشكل:]
(أ) [البرنامج الدولي للسلامة الكيميائية هو رابع مبادئ التصميم ذات الوجهة الموضوعية الخمسة [(FLT:0] SOLID ]، التي استحدثها أصلاً روبرت س. مارتن في أواخر التسعينات، وفي حين أن المبدأ قد أُعدّ لدروس ووصلات بينية بلغات مثل جافا أو C++، فإن توجيهه لا يعتمد بشكل مباشر على أساليب تطبيق المعايير التطبيقية.
وتترجم هذه المادة، من حيث المصطلحات، إلى تصميم نقاط نهائية وعقود ضيقة ومركزة بدلا من ربطات بينية واحدة، وكلها في واحدة، وبذلك تقلل من الانقلابات وتحسن الوضوح وتسمح لكل عميل بالتفاعل فقط مع أجزاء من الاتفاق المذكور، وتأخذ هذه المادة تنازلا عميقا في ما يعنيه نظام المعلومات الإدارية المتكامل بالنسبة لمصممي نظام المعلومات الإدارية المتكامل، وكيفية تنفيذه بفعالية، ولماذا يؤدي تجنب الوقوع في أوجه الوصل بينات الدهونية الطويلة الأجل.
فهم مبدأ الفصل بين الأوجه
Origins and Core Idea
وقد نشأ مبدأ الفصل بين الأوجه من ملاحظة مفادها أن الواجهات البينية الكبيرة " المزروعة " تنحو إلى تراكم المسؤوليات بمرور الوقت، وهي واجهة واحدة تعالج القراءة والكتابة والتحديث وحذف وتوثيق وتوثيق وتوثيق وتدقيق الحسابات، وتجبر كل مستهلك على أن يكون على علم بكل من هذه الأساليب، بل ويمكن أن ينفذها، حتى وإن كانت بحاجة فقط إلى عمليات قراءة.
وينادي برنامج دعم التنفيذ بتجزئة هذه الوصلات البينية المتضخمة إلى عقود أصغر حجماً، محددة بالزراعة ] بدلاً من واجهة واحدة لـ " DataManager ' ، قد يكون لديك `DataReader ' ، و ' DataDeleter`، و ' Auditor`، وكلاءات، يعتمدون عندئذ على التفاعلات الحد من التطور.
ISP in the Context of API Design
وعند تصميم تطبيقات التكيف الهيكلي، يمكن أن يصبح " وجها " العقد بين خدمتكم ومستهلكيها - سواء كانوا مستهلكين في المقدمة أو في خدمة صغيرة أخرى أو مطورين من أطراف ثالثة، كما أن موردا من مصادر المعلومات المسبقة عن علم، يحتوي على عشرات النقاط النهائية، أو على خصلة من طراز غرامي، مع نوع واحد من أنواع الطفرة الضخمة، يمكن أن يصبح " واجهة سريعة " لا يضطر العملاء إلى تجهيز الوثائق )وا أحيانا( )وا(
ويساعدكم نظام المعلومات الإدارية المتكامل على السؤال: " هل يمكنني أن أكسر هذا الأمر إلى عقود أصغر حجماً ومستقلة؟ " وكثيراً ما يؤدي الجواب إلى صيغ أنظف واختبارات أسهل وتحسين قابلية التصعيد، فعلى سبيل المثال، قد يعرض مؤشر الأداء المكثف للوزن العام واجهة مخففة للوزنات المتنقلة مع توفير واجهة كتابية أكثر ثراءاً للأدوات الداخلية المخصصة.
الفوائد الرئيسية لتطبيق نظام المعلومات الإدارية المتكامل في نظامك
تحسين خبرة المطورين (د-39)
فالوصلات بينية غير سارة هي أبسط ما يمكن تعلمه واستخدامها، إذ يمكن للمطورين الجدد في مكتب خدمات الرقابة الداخلية أن يعثروا بسرعة على نقاط النهاية أو العمليات ذات الصلة بمهمتهم دون أن يلوذوا بالوظيفة غير ذات الصلة، مما يقلل من الحمولة المعرفية ويسرع التكامل، فعلى سبيل المثال، فإن بوابة الدفع التي تكشف عن وجود وصلات بينية منفصلة للإذن، والقبض، وإعادة التمويل، وباطلة هي أكثر ملاءمة بكثير من نقطة " نهاية " واحدة تتطلب تمييزاً.
تعزيز المرونة والإمكانية
وعندما تكون الوصلات البينية صغيرة ومركزة، فإن التغييرات في جزء من النظام لها أثر ضئيل على الآخرين، وإذا ما احتجتم إلى إضافة قدرة جديدة إلى الوصلة البينية القراء - أي الرواسب أو التصفية - فإن واجهة الكتابة لا تزال غير ممسوحة، وبالمثل، إذا ما احتاجت نقطة نهاية معينة إلى تغييرات مُحدثة، فيمكنكم أن تُخدِّروا العقد الصغير أو تُنسخوه فقط بدلا من قائمة على قائمة الطلبات الإضافية.
تحسين القدرة على الحفظ والقابلية للاختبار
ومن الأسهل إجراء عمليات تفاعلية أصغر حجماً، واختبارات في العزلة، وهذا يعني بالنسبة للأفرقة الخلفية، أنه يمكنك اختبار كل عقد من مراحل العقد دون أن تُفسد مجموعة الطلبات بأكملها، وبالنسبة للأفرقة التي تعمل في جانب العملاء، فإن العقود الضيقة تقلل من المساحة السطحية لإجراء اختبارات التكامل، ونتيجة لذلك، فإن حلقات التغذية المرتدة أسرع، والأعياب الأقل.
انخفاض الازدواج والإعالة
فالتفاعلات السماوية تخلق معالين ضمنيين، فالتطبيق المتنقل الذي لا يحتاج إلا إلى قراءة بيانات المستخدمين ينبغي ألا يعتمد على مكتبة أو طبقة نقل تشمل القدرات الكتابية والحذفية، ويقلل نظام المعلومات المتكامل من هذا الانقلاب، مما يجعل من الأكثر أمانا تطوير كل من نظام تقييم الأداء ومستهلكيه بصورة مستقلة، وفي هياكل الخدمات الدقيقة، فإن هذا المبدأ بالغ الأهمية للمحافظة على استقلالية الخدمات.
تنفيذ نظام المعلومات الاستراتيجية الدولية في تصميم نظام تقييم الأداء: الاستراتيجيات العملية
1- تحديد دور العملاء
الخطوة الأولى هي فهم من هم عملاء مكتب التحقيقات الفدرالي وما هي العمليات التي يقومون بها فعلاً، وتشمل الأدوار المشتركة ما يلي:
- Read-only consumers] (مثل التطبيقات المتنقلة التي تظهر البيانات)
- [المستهلكون فقط] ] (مثل مجهزي الدفعات المستوردة للسجلات)
- Administrative consumers] (مثل لوحات السحب التي تحتاج إلى قدرات الحذف ومراجعة الحسابات)
- المطورون من الأطراف الثالثة الذين قد يحتاجون فقط إلى مجموعة فرعية من السمات
رسم خرائط لكل دور للعمليات المحددة التي يتطلبها الأمر، وهذا يكشف عن الحدود الطبيعية للعزل.
2 - استخدام نقاط نهاية مستقلة أو موارد مستقلة
في نظام ريست، إنشاء نقاط نهاية مكرسة للمسؤوليات المتميزة، بدلا من أن ينظر أحد " الموارد/المساعدين " في معالجة كل شيء، في تقسيم:
- " GET /api/orders ' - القائمة الأوامر (القراءة)
- " PST/api/orders ' - خلق النظام (الكتابة)
- ' جي تي/باي/أودر/ {ي}/المركز` - حالة التحقق (القراءة، المتخصصة)
- `PATCH /api/orders/{id}/cancel ' -إلغاء النظام (الكتابة، النطاق)
وكل نقطة نهاية تصبح واجهة صغيرة مع سائلها الذاتي، وهذا تطبيق مباشر لنظام المعلومات المتكامل على مستوى الموارد.
3 - تركيبة الغضب (عدم الإرث) للوجهات
عند تصميم عقود داخلية للمبادرة (مثلاً في مدفعية أو طبقة خدمات)، يفضل وصلات وصل صغيرة يمكن أن تتألف منها، مثلاً في نوع سكريبت أو جافا، يحدد ما يلي:
interface OrderReader {
getOrder(id: string): Promise<Order>;
listOrders(filter: OrderFilter): Promise<Order[]>;
}
interface OrderWriter {
createOrder(data: CreateOrderInput): Promise<Order>;
updateOrder(id: string, data: UpdateOrderInput): Promise<Order>;
}
// A composite interface for admin use
interface OrderAdmin extends OrderReader, OrderWriter {
deleteOrder(id: string): Promise<void>;
}
وهذا النمط يكفل للزبائن الاعتماد على ما يحتاجون إليه فقط، إذ لا يمكن للخدمات أن تنفذ إلا الوصلات البينية ذات الصلة، وتتجنب الارتطام غير المستخدم في الأساليب.
4- نماذج مستقلة للقراءة والكتابة (CQRS)
وبالنسبة للمجالات المعقدة، النظر في اعتماد الفصل المتعلق بمسؤولية القرآنيات المشمولة (CQRS) . CQRS هو أسلوب هيكلي يُنفِّذ عادة نظام الأفضليات المعمم بفصل نماذج (صكوك) عن نماذج الكتابة (الدعاوى) ويكشف نظامكم للتبرعات أو القنوات الخاصة بالاستفسارات والقيادات.
5- استخدام الانبعاثات الثانوية في الوصول إلى الموارد على أساس الأدوار
كما ينطبق على الأمن، فبدلاً من أن يكون هناك مفتاح وحيد واحد من عناصر مبادرة الحد من الفقر في العالم، يمنح جميع القدرات، ويصدر قوائم واسعة النطاق أو مفاتيح نظام المعلومات المسبقة عن علم التي تقيد الوصول إلى وصلات بينية محددة، مثلاً، لا يجوز للزبون العام أن يسمّي " جي تي/نتائج " ، في حين أن النظام الداخلي يمكن أن يطلق أيضاً " المنتجات/المنتجات " ، وهذا يُنفِّذ على نظام المعلومات الإدارية المتكامل في طبقة الأذونات ويمنع التعرض غير الضروري.
أمثلة عالمية حقيقية على برنامج العمل الدولي
RESTful APIs: GitHub, Twilio, Stripe
ويُعد كل مقدم من مقدمي مشروع القانون النموذجي أمثلة كبيرة على نظام المعلومات الإدارية المتكامل. GitHub’s API] لديه نقاط نهاية مخصصة لإعادة الحيازة، والقضايا، والسحب، والإجراءات - لا تحتاج أبداً إلى استهلاك طريقة لإدارة طلبات سحب الطلبات عندما تريد فقط إدراج القضايا.
Consider visiting Stripe’s API reference to see how they avoid fat interfaces.
GraphQL and ISP
وقد يبدو أن شركة غرامكيل قد انتهكت في البداية نظام الأفضليات المعمم لأن نقطة نهاية واحدة تكشف عن كامل الكيميائي، غير أن شركة غرافكيل المحدودة للمثليين تطبق نظام المعلومات الإدارية المتكامل على الصعيد الميداني، ويحدد هذا الكيميائي أنواعاً واستفسارات منفصلة لمختلف الشواغل، ولا يمكن للمستفيدين أن يطلبوا سوى المجالات التي يحتاجون إليها، كما أن أدوات مثل Apollo Federation تأخذ هذا السياق الإضافي من خلال تجميعها.
الخدمات البالغة الصغر والسيارات الأرضية
وفي هياكل الخدمات الصغرى، تعرض كل خدمة واجهة خاصة بها (API). ولا يلزم أن يعرف المناولة عن تحديثات المخزون، ومن خلال إبقاء الخدمات صغيرة ومركزة، تتمسكون بطبيعة الحال بنظام المعلومات المتكامل. ووفقاً للمادة من شركة Martin Fowler بشأن الخدمات الدقيقة ، فإن هذا التحلل هو مفتاح للنشر المستقل والقدرة على التكرار.
تصميم المكتبة
عندما تقدمين زبوناً من أجل مكتبك، تقدمين برنامج دعم التنفيذ في مكتبة مكتبة المدعي العام، على سبيل المثال، بدلاً من فصل مركزي واحد من فئة " مساعد " بمئات الطرق، تقدمين دروساً متخصصة مثل " أوردس كلينت " ، و " منتجي " ، و " خلايا العتاد " ، وهذا هو بالضبط ما يحصل عليه
الشلالات المشتركة وكيفية تجنبها
التجزؤ فوق القطاع
فالذهاب إلى جانب الجمبري يمكن أن يخلق الكثير من الوصلات البينية الصغيرة التي تخلط بين الملاحة والاستمرار، والهدف ليس إيجاد واجهة واحدة لكل طريقة، بل هو تجميع العمليات ذات الصلة منطقيا التي تتغير معا، وقاعدة جيدة من الإبهام: إذا كان هناك عمليتان يستخدمهما نفس العميل دائما، فمن المرجح أن يكونا في نفس الوصلة البينية.
التميز
لا تبالغ في تصميمها قبل أن تفهم احتياجات العملاء، بدءاً من واجهة أكبر قليلاً، وفقط أن تقسمها عندما ترى أدلة ملموسة على اختلاف أدوار العملاء أو الضغوط على التغيير، وقابلية الارتداد فيما بعد مقبولة - خاصة إذا كان لديك استراتيجيات للنسخ.
Ignoring Backward Compatibility
وعندما تتقاسمون واجهة قائمة، يمكن للعميلات الموجودة أن تكسر إذا كانت تعتمد على العقد القديم، وتستهلكون باستمرار تدريجيا، ويمكنكم، بالنسبة لوكالة ريست، أن تنسخوا نقاطكم النهائية (مثل " 5/أو رعد " ، و " 5/أو رعد/رصيد " )، وبالنسبة للوصلات البينية الداخلية، أنماط المكيِّف لربط بالعقود القديمة والجديدة.
النفقات العامة في مجال الأدوات والوثائق
ويقصد المزيد من الوصلات البينية المزيد من الوثائق: الاستثمار في أدوات وثائق جيدة (مثلاً في عمليات التفتيش المفتوحة/المتفجرة أو في إطار نظام غرافيل) وضمان وصف كل واجهة من الوصلات البينية بوضوح، وتدفع الجهود في مجال ثقة المطورين واعتمادهم.
ISP and the Other SOLID Principles
مبدأ المسؤولية الوحيدة
ويتفق نظام المعلومات الإدارية المتكامل بطبيعة الحال مع برنامج التدريب على الخدمات الاجتماعية، ويفيد بأن الوحدة ينبغي أن يكون لها سبب واحد للتغيير، ويكفل نظام المعلومات الإدارية المتكامل أن يكون للتفاعل بينية مسؤولية واحدة - خدمة دور زبون واحد، وعندما تتبع برنامج التدريب على مستوى الوحدات، ينتهي بك المطاف في كثير من الأحيان بوصلات بينية موزعة بالفعل.
Liskov Substitution Principle (LSP)
ولا تتعارض مع نظام الأفضليات المعمم، بل إن واجهات صغيرة تجعل من الأسهل إيجاد عمليات تنفيذ بديلة، وإذا كان للتفاعل بين الطرفين طريقتين فقط، فإن أي تنفيذ يفي بتلك الأساليب يمكن أن يُعاد صياغته بثقة، وكثيرا ما تغري واجهات سمينة المطورين برمي أساليب غير مُنفذة (مثلاً رمي " الاستبعاد غير المنفذ " )، وهو ما ينتهك نظام الأفضليات والأفضلية.
المبدأ المفتوح/المغلق
وتساند الوصلات البينية الموزعة مكتب المقارنات لأنكم تستطيعون إضافة سلوك جديد عن طريق إنشاء وصلات وصل جديدة بدلا من تعديل الوصلات القائمة، فعلى سبيل المثال، لا تتطلب إضافة عملية دفعة تغيير الوصلات البينية القائمة بين القراءة والكتاب - تخلقون واجهة جديدة يمكن أن يختار العملاء تنفيذها.
مبدأ الإعالة
ويعمل نظام المعلومات الإدارية المتكامل يدا بيد مع شعبة التحقيقات الجنائية: لا ينبغي أن تتوقف الخلاصات (الوجهات) على التفاصيل؛ وينبغي أن تتوقف التفاصيل على الخلاصات، وعندما تكون هذه الخلاصات متماسكة ومفصلة بدرجة كبيرة، تحقق أقصى قدر من المرونة في المعالين من الأسلاك.
اختبار تطبيقات تطبيقية مع نظام المعلومات المسبقة عن علم
تطبيق اختبارات نظام المعلومات المسبقة عن علم على مستويات متعددة:
- Unit tests:] Each small interface can be mocked easily. A test for a read-only client only needs to mock the reader interface, not the entire API.
- اختبارات الاندماج: يمكنك اختبار نقاط النهاية في عزلة، ولا حاجة لاختبار نقطة النهاية في نقطة النهاية للتمرين عند نقطة النهاية.
- Contract testing:] With narrow interfaces, contract tests (e.g., using Charter) become more focused. Each consumer pact covers only the interactions it uses, reducing the likelihood of false positives.
- اختبارات التحلل: [FLT: 1] ترجمة حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف حرف الحرف حرف الحرف حرف الحرف حرف الحرف الحرف حرف الحرف الحرف حرف الحرف الحرف الحرف الحرف الحرف الحرف الحرف الاص: 1]
قياس أثر نظام المعلومات الإدارية المتكامل
كيف تعرف إذا كان تصميمك الخاص بمؤشرات الأداء مجزأ جيداً؟
- منخفض " متوقف " - لا يلمس التكامل النموذجي بين العملاء إلا بضع نقاط نهاية أو وصلات بينية.
- وارتأى أن هناك تغييرات كبيرة في التفاعلات المشتركة - إذا تغيرت واجهة في كثير من الأحيان لأسباب لا تتصل بموكلها الرئيسي، فإنها ربما تكون واسعة للغاية.
- وقلة من الأساليب المهددة بالهلاك - إذا تراكمت لدى مكتب المدعي العام العديد من " @deprecated " التي هي بقايا من الواجهات السمينة، فإن الفصل كان ضعيفا.
- والوقت القصير المتاح للمطورين الجدد - من الأسهل تعلمه تطبيقات الحد الأدنى.
خاتمة
إن مبدأ الفصل بين الأوجه ليس مجرد مبدأ أكاديمي - بل هو أداة عملية لبناء أجهزة الاستعلامات المستقلة ذات الوقت، وبوضع واجهات صغيرة محددة الأدوار، وبخفض الانقلاب، وتحسين خبرة المطورين، وجعل نظامكم أكثر مرونة للتغيير، وسواء كنتم تصممون نقاط النهاية، أو شيمات غرافكيل، أو قرارات مهندسين معماريين أفضل، تطلبون من موكلي أن يقودوا هذه القرارات.
تذكر أن نظام المعلومات الإدارية المتكامل لا يتعلق بقواعد صارمة بل بالتعمد، إذ يبدأ بمنظور يركز على العملاء، ويرتعد على أنماط الاستخدام الحقيقية، ولا يخشي أن يصلح التفاعلات مع نمو فهمك، وستكون النتيجة مؤشراً للأفضليات يُحب المطورون العمل معه، وهو ما يمكن أن يتطور دون كسر العالم.
For further reading, explore the ISP article on Wikipedia] and ]Robert C. Martin’s writings on SOLID. These resources provide additional depth on how ISP relates to other design heuristics.