Friday 9 March 2018

استراتيجية إصدار الصابون


إستراتيجية إصدار الصابون
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
استراتيجيات لتحديث أو إصدار خدمات الويب؟
أنا مهتم بسماع أفضل الممارسات حول كيفية التعامل مع إصدارات مختلفة من خدمات الويب.
لتوضيح، إذا كنت قد حصلت على بعض أساليب الويب يتعرض كخدمة ويب، ثم كنت ترغب في إضافة ميزة / وظيفة وبالتالي تغيير توقيع تلك الطريقة يدعو، كيف يمكنك التعامل مع ذلك بطريقة لا كسر كل شيء من العملاء الذين يتصلون حاليا بالخدمة؟
هل تنشر الخدمة على عنوان ورل مختلف؟
هل وضع نسخة في اسم الأسلوب نفسه (ميميثود، MyMethodv2 الخ - أوغ ..)
هل تمر في نسخة كجزء من استدعاء الأسلوب جنبا إلى جنب مع قائمة المعلمة؟
هل يعرف أحد كيف يتعامل غوغل أو أمازون مع هذا السيناريو مع المكتبة الواسعة لخدمة الويب؟
إديت: حتى الآن وجدت بعض المعلومات الجيدة في هذه المقالة من أوراكل. كما كان هذا الإدخال بلوق على بعض تفاصيل جافا مفيدة. ما زلت غريبة أن أرى بعض النهج الأخرى.
الطريقة النموذجية لإصدار خدمة ويب هي أن يكون للعملاء تحديد الإصدار المطلوب. يمكنك السماح بقيود بسيطة، مثل "> 2.0" أو "لوت؛ 1.5" أو "= 1.1". بطبيعة الحال، كنت ترغب في تقليل عدد الإصدارات المعتمدة لالعقم الخاصة بك. إذا لم يحدد العميل إصدارا، فإنك تفترض أحدث إصدار.
تقنيات تقديم النسخة تختلف. يدافع البعض عن استخدام عنوان ورل، ويشجع الآخرون رؤوس، وقد يتضمن البعض ذلك كمعلمة لمكالمة أبي. تقريبا لا شيء سوف تغيير اسم الأسلوب، على الرغم من. هذا ما يعادل "حزمة" أو "مساحة الاسم" إصدار رابط أوسغي يتحدث عن. وستجعل عملية الترقية صعبة للغاية، وتعيق الأشخاص عن الترقية أكثر من أي تغييرات في الخدمة الفعلية.
كما يعتمد أيضا على كيفية الوصول إلى خدمات الويب. إذا كنت تستخدم ريست، فإن الحفاظ على رؤوس عناوين ورل النظيفة واستخدامها يجعلها الأكثر منطقية (ومن المفيد الإختراق بها كمعلمة طلب بحث، إذا لزم الأمر). إذا كنت تستخدم سواب / شملريك / واتيفر-ريك، فإن وضعه في عنوان ورل عادة ما يكون جيدا.
كيف يحدد العميل الإصدار هو عادة سهلة جدا. ما هو أكثر تعقيدا هو كيفية تشغيل كافة الإصدارات في وقت واحد. معظم اللغات ليس لديها طريقة لتحميل إصدارات متعددة من نفس المكتبة / وحدة / فئة / وظيفة في نفس بيئة التشغيل (سواء كان فم، عملية، أو ما لديك). رابط أوسغي الذي قدمته هو الحل جافا للسماح بذلك.
في الممارسة العملية، سوف أوسغي يكون مبالغا فيه لمعظم الحالات. وعادة ما يكون من الأسهل إلى الوكيل طلبات مهملة إلى خادم آخر أو عملية أخرى.
أفضل طريقة ل "إصدار" خدماتك، على الرغم من ذلك، هو بناء التمدد والمرونة فيها بحيث تبقى إلى الأمام ومتوافقة إلى الوراء. وهذا لا يعني أن جميع الإصدارات يجب أن تكون متوافقة مع بعضها البعض، ولكن يجب أن تكون الإصدارات المتتالية متوافقة مع بعضها البعض.
أستطيع أن أقول لكم أن حل خلق دوابيفونكتيون، doAPIFunctionV2، و DOAPIFunctionV3، وما إلى ذلك أنتجت شيئا ولكن الصداع في مكان أعمل فيه. إضافة إلى أن عدم وجود أسماء وظيفة وصفية بشكل واضح يعني كل أنواع الجنون.
تريد أسماء وظائف أبي واضحة، وإذا كان أبي يتغير، سيكون الهدف هو محاولة القيام بذلك في طريقة متوافقة مع الخلف ممكن. أود أن أقترح إصدار نقاط الدخول الخاصة بك حتى كل نقطة دخول تدعم أبي مستقرة و دو فونكتيون في example. org/api-1.0/ قد تكون مختلفة من example. org/api-2.0 إذا كان هناك سبب وجيه لتغيير الدلالات.
لست متأكدا مما إذا كنت فهمت سؤالك بشكل صحيح. ولكن بلدي 2 سنتا. إذا تغيرت طريقة التوقيع كمعلمة جديدة أخرى، فلماذا لا يمكن جعلها اختيارية؟ ولكن إذا تم تغيير نوع بيانات المعلمة الحالية فإنه لا ينطبق.
التصويت على هذا إذا كان من الخطأ. :)
كان من المفترض أن يكون أبسط عندما يكون لديك نفس اسم طريقة خدمة ويب، ومعلمات مختلفة، منذ سنوات. :)
بمجرد كتابة خدمة ويب، فإنك تقوم بعقد مع العملاء أن هذا هو ما سوف تدعمه.
بالنسبة للأساليب القديمة أود أن أقترح تسجيل لمعرفة ما إذا كانت يتم استخدامها، ومن قبل من، لمعرفة ما إذا كان يمكنك الحصول عليها لتحديث.
بخلاف أنك أفضل رهان هو مجرد كتابة طريقة جديدة، لذلك قد يكون لديك العديد من أسماء الوظائف المماثلة التي تختلف عن طريق إصدار.
المشكلة مع تمرير في رقم الإصدار هو أن لديك لضمان تمرير العملاء دائما في عدد صحيح، والتي، إذا كنت توليد ستابس العمل، ولكن إذا كنت لا ثم وهذا هو هش جدا.
يبدو أن وضع رقم الإصدار في الاسم يعمل بشكل أفضل بالنسبة لي، لأنه يجعل من الواضح ما هو القديم، ويمكنك استخدام أوب لتسجيل الإصدارات الأقدم بسهولة من طرق خدمة الويب.

إستراتيجية إصدار الصابون
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
ويب أبي سيرفيسز أبي.
أقدم أبي خدمات الويب الصغيرة لعملائي التي كنت تخطط للتطور مع مرور الوقت. لذلك أنا بحاجة إلى نوع من الإصدار، ولكن لا أستطيع أن أجد أي معلومات حول كيفية القيام بشيء من هذا القبيل.
هل هناك أفضل الممارسات؟
كيف يمكنني الاستمرار في إضافة وظائف جديدة دون كسر التوافق مع المستهلكين على شبكة الإنترنت الخدمات؟
الإصدار هو موضوع معقد، لذلك أولا، تحتاج إلى تحديد أهدافك بطريقة أكثر وصفي. سيكون من الرائع أن أقول أن لديك واجهة يضمن أنك لن كسر التوافق، ولكن اعتمادا على ما هي وظيفة جديدة، قد لا يكون ذلك ممكنا. لذلك هناك حالات مختلفة ومختلف المفاضلات.
إذا كان هدفك هو توفير وظائف جديدة فقط للمستهلكين الجدد، وجميع المستهلكين هم المستهلكين مباشرة (لا وسطاء، أطر، وما إلى ذلك)، ثم نهج نقطة النهاية منفصلة هو الخيار الافضل. في كل مرة تقوم فيها بإضافة ميزة التي تنطوي على كسر، وخلق نقطة نهاية جديدة، وإعطائها رقم الإصدار الجديد ومن ثم السماح للمستهلكين يعرفون للتحقق من صحة ذلك والتبديل تكوينات بهم. هذه الاستراتيجية هي محاولة جميلة وحقيقية، ولكن لديها عيوب وضع العبء على المستهلكين للحفاظ على ما يصل إلى التاريخ. أيضا، إذا كان هناك تبعيات بين الخدمات يمكن أن تصبح واجبا لتتبع. يكون الاتجاه الصعودي إذا كسر الكود انها ليست (مباشرة) خطأ الخاص بك.
الاستراتيجية الرئيسية الأخرى هي واجهة قابلة للتوسيع. هناك ثلاثة أنواع مختلفة هنا أنا على بينة من. أولا، هو نوع الواجهة التي تحاول أن تصف بشكل جيد نطاق الخدمة الذي يمكن أن تضيفه كل ميزة ممكنة إلى حد ما نظرا للواجهة القائمة. إذا كان هذا يبدو من الصعب، هو عليه. يمكنك استدعاء هذا واجهة مثالية. يتم وصف كل شيء تماما، ولكن المجال بأكمله هو أيضا وصفها تماما. و "الكمال" هو حقا فقط على الورق على الرغم من.
الصنف الثاني هو النوع الذي يبدو وكأنه واجهة عادية ولكن إضافة نقاط الإرشاد العامة. في وسدل هذا يعني شس: أي، أزواج قيمة الاسم أو شيء مماثل. يمكنك استدعاء هذه الواجهة الأساسية القابلة للتوسيع. ليس من الصعب جدا القيام به، ولكن ليس من دون انها المضاعفات. قد تجعل نقاط التمديد الواجهة أكثر صعوبة في العمل مع بعض الأدوات (شس: أني)، أو تفقد بشكل واضح بعض قدرتك على التحقق من المدخلات والمخرجات (أزواج القيمة الاسمية). كما أنه من السهل جدا لإساءة استخدام تلك النقاط التمديد بطريقة تجعل من الإصدار 3 أو 4 من الصعب جدا للاستخدام.
الصنف الثالث هو النوع الذي يحول الواجهة إلى بايت-ستريم. يمكنك استدعاء هذه الواجهات الله. إنهم لا يخلوون من مبرراتهم، ولكن إذا كنت تستخدم واحدا، فقد تحتاج إلى السؤال عن سبب استخدامك لخدمات الويب على الإطلاق. ربما يجب أن تفكر في تكب / إب الخام، أو هتب الأساسي جيت / بوست. ولكن ربما كنت سئمت مع تعقيد وسدلز و شسدز وأنت تريد فقط أن تبدأ من الصفر ولكن كنت مرتبطة خدمات الويب لبعض أسباب البنية التحتية. ندرك أنه بمجرد أن تبدأ هذا المسار، سوف تحتاج إلى طريقة جديدة كاملة لوصف للمستهلكين الخاص بك كيفية / عدم استخدام الخدمة الخاصة بك، وإذا كنت تستخدم شسد لذلك .. حسنا كنت أساسا إلى حيث انت بدأت.
أفضل رهان هو معرفة كل هذه الخيارات ونهج تصميم الخدمة الخاصة بك عن طريق محاولة لأول مرة ل "واجهة مثالية"، ثم التخلي وإضافة نقاط التمدد العامة. في محاولة لتصميم واجهة مثالية سوف يجبرك على تعلم الأشياء التي من شأنها أن تجعل خدمتك أفضل، وليس فقط واجهة الخاص بك، ولكن الامر سيستغرق بعض الوقت، وإذا كنت لا تحد من ذلك الوقت بطريقة أو بأخرى، وسوف يستغرق إلى الأبد.
قليلا قصيرة من واجهة الله الحقيقية، وهناك واجهة المجمع. إذا كان النظام يحتوي على طبقات، فأنت تريد أن تكون الواجهة في طبقات أيضا. عند تغيير الطبقة B، تريد فقط تغيير الطبقة B، وليس كل المثيلات في الطبقة C.
الاستراتيجية الأكثر شيوعا التي رأيتها هي إصدار وسدل بإضافة تعريف الإصدار (عادة يي / مم [/ د]) إلى مساحة اسم الكائنات في ودل، بمعنى:
ويمكن القيام بذلك إما على مستوى نوع (أنواع / مخطط) أو على مستوى وسدل بأكمله - & لوت؛ ديفينيتيونس & غ؛ في 1.1 أو & لوت؛ دسكريبتيون & غ؛ في 2.0.
مؤرخة إلى حد ما، ولكن هذا الرابط من عب ديفيلوبر وركس يوفر الأساس المنطقي لهذا النهج، وتحديدا عندما تحتاج الإصدارات إلى زيادة:
النسخة السابقة التوافق / التغييرات غير كسر:
إزالة أو إعادة تسمية العمليات تغيير المعلمات إلى أسلوب تغيير نوع معقد.
وأضيف عموما سلسلة الإصدار إلى عنوان ورل لخدمة الويب، مما يتيح لي "نقاط النهاية التي تم إصدارها". يمكن أن تكون التعليمات البرمجية التي تنفذ تلك النقاط النهائية مشتركة، إذا كانت الاختلافات تافهة ويمكن التعامل معها من قبل نفس التعليمات البرمجية، أو يمكن استنساخ التعليمات البرمجية، أو في مكان ما بين.
يمكن أن تستخدم نقاط النهاية المختلفة التي تم إصدارها أيضا مخططات شمل المصورة، إذا كان هذا هو ما تحتاج إليه.
واحدة من الاحتمالات هي تصميم جميع عمليات خدمة ويب أن يكون لديك معلمة واحدة فقط من النوع الذي يرث من بعض نوع مجردة الذي يحمل رقم الإصدار. يتم تنفيذ هذا النهج من قبل موقع ئي باي منصة خدمات الويب. شيء مثل ما يلي:
بالإضافة إلى ذلك إذا كنت تعمل عبر هتب قد تحتاج إلى إضافة إصدار كمعلمة هتب جيت إلى عنوان ورل نقطة النهاية خدمة ويب، لذلك عليك أن تكون قادرا على الكشف عن الإصدار المطلوب بسهولة الخادم / الخدمة؟ الإصدار = 1.
أضف "رقم إصدار واجهة برمجة التطبيقات" كمعلمة في كل نمط إستراتيجية واجهة برمجة التطبيقات (أبي) ثم تطبيقه في شفرة خدمة الويب التي يحدد فيها رقم الإصدار الإستراتيجية التي سيتم استخدامها.

أربعة ريست أبي إصدارات استراتيجيات.
توضح هذه المقالة أربعة ريست أبي استراتيجيات النسخ الشائعة ويشرح كيف نقوم بإصدار أبي ريست في زماترز.
في زماترز، ونحن نتابع مواصفات سيمفر & # 8211؛ نقوم بتحديث النسخة الرئيسية أبي كلما قدمنا ​​تغييرات كسر. داخليا، نقوم بتحديث إصدارات صغيرة وتصحيح كلما نضيف وظائف والتحديثات المتوافقة مع الخلف. عندما نطلق نسخة رئيسية جديدة من واجهة برمجة التطبيقات زماترز ريست، يمكن للعملاء اختيار إما الاستمرار في استخدام إصدار رئيسي موجود أو الانتقال إلى الإصدار الجديد.
ريست هو إلى حد بعيد النمط المعماري البارز المستخدمة اليوم لفضح الخدمات لأطراف ثالثة عبر الإنترنت. ويستخدم معيار هتب بدلا من بروتوكولات أكثر تعقيدا مثل سواب أو ريك. السبب ريست كان ناجحا جدا هو أنه يحاكي كيفية عمل الويب:
عديمي الجنسية: لا يحتفظ بسياق العميل بين الطلبات القابلة للتخزين المؤقت: يعتمد على قواعد التخزين المؤقت هتب العميل / الخادم المنحى: يفصل المخاوف بين العملاء والخوادم الطبقات: يستفيد نظام الطبقات وواجهة موحدة.
أربعة ريست أبي المشتركة استراتيجيات الإصدار.
هناك أربع طرق شائعة لإصدار أبي ريست.
1. الإصدار من خلال مسار أوري.
طريقة واحدة لإصدار واجهة برمجة تطبيقات ريست هي تضمين رقم الإصدار في مسار عنوان ورل.
يتم استخدام هذه الاستراتيجية من قبل زماترز وكذلك شركات أخرى مثل الفيسبوك، تويتر، إيربنب، وغيرها.
هذا الحل غالبا ما يستخدم توجيه أوري للإشارة إلى إصدار محدد من أبي. لأن مفاتيح ذاكرة التخزين المؤقت (في هذه الحالة أوريس) يتم تغييرها من قبل الإصدار، يمكن للعملاء بسهولة ذاكرة التخزين المؤقت الموارد. عند إصدار إصدار جديد من واجهة برمجة تطبيقات ريست، يتم اعتباره إدخال جديد في ذاكرة التخزين المؤقت.
يبدو الإصدار الداخلي من واجهة برمجة التطبيقات كما يلي:
النسخة الرئيسية: النسخة المستخدمة في عنوان أوري وتشير إلى حدوث تغييرات في واجهة برمجة التطبيقات. داخليا، يعني إصدار رئيسي جديد إنشاء واجهة برمجة تطبيقات جديدة ويتم استخدام رقم الإصدار للتوجيه إلى المضيف الصحيح.
إصدارات صغيرة وتصحيحات: هذه شفافة للعميل وتستخدم داخليا للتحديثات المتوافقة مع الإصدارات السابقة. وعادة ما يتم إبلاغها في سجلات التغيير لإعلام العملاء عن وظيفة جديدة أو إصلاح الأخطاء.
هذا الحل لديه بصمة كبيرة جدا في قاعدة التعليمات البرمجية كما إدخال تغييرات كسر يعني متفرعة أبي بأكمله.
2. الإصدار من خلال معلمات الاستعلام.
هناك خيار آخر لإصدار واجهة برمجة تطبيقات ريست هو تضمين رقم الإصدار كمعلمة طلب بحث.
هذه طريقة مباشرة لإصدار أبي من وجهة نظر التنفيذ. كما أنه من السهل التخلف عن أحدث إصدار إذا لم يتم تحديد معلمة طلب البحث.
العيب الرئيسي مقارنة بإصدار أوري هو صعوبة التوجيه. معلمات الاستعلام هي في الواقع أكثر صعوبة لاستخدام لتوجيه الطلبات إلى إصدار أبي المناسبة.
3. فيرسيونينغ من خلال رؤوس مخصصة.
يمكن أيضا إصدار واجهات برمجة التطبيقات ريست من خلال توفير رؤوس مخصصة مع رقم الإصدار المضمنة كخاصية.
والفرق الرئيسي بين هذا النهج والاثنين السابقين هو أنه لا فوضى أوري مع معلومات الإصدار.
4. الإصدار من خلال التفاوض المحتوى.
كورل - H & # 8220؛ أسيبت: أبليكاتيون / vnd. xm. device + جسون؛ فيرسيون = 1 & # 8221؛ مثال / المعهد / المنتجات.
وتتمثل آخر إستراتيجية نخاطبها في عملية الإصدار من خلال التفاوض على المحتوى.
هذا النهج يسمح لنا لنسخة تمثيل الموارد واحد بدلا من إصدار أبي بأكمله الذي يعطينا السيطرة أكثر دقة على الإصدار. كما أنه يخلق بصمة أصغر في قاعدة التعليمات البرمجية كما أننا لم يكن لديك لشوكة التطبيق بأكمله عند إنشاء نسخة جديدة. ميزة أخرى لهذا النهج هو أنه لا يتطلب تنفيذ قواعد توجيه أوري التي أدخلتها النسخة من خلال مسار أوري.
واحدة من عيوب هذا النهج هو أنه يمكن الوصول إليها أقل من واجهات برمجة التطبيقات التي تم إصدارها من قبل أوري: إن طلب رؤوس هتب مع أنواع الوسائط يجعل من الصعب اختبار واستكشاف واجهة برمجة التطبيقات باستخدام متصفح.
إن التفاوض على المحتوى هو نهج أكثر دقة لأنه يقوم بإصدار تمثيلات الموارد بدلا من إصدار أبي بالكامل، ولكنه يأتي أيضا بتكلفة تنفيذ عالية لكل من العملاء والمطورين. في كثير من الأحيان، تحتاج إلى التفاوض المحتوى من الصفر كما أن هناك عدد قليل من المكتبات التي تقدم ذلك من خارج منطقة الجزاء. النهج الأخرى هي أسهل لتنفيذ واستخدامها ولكن تحد من قدرة المطور على ريفاكتور بسبب التكلفة العالية لإدخال تغييرات على عقد أبي.
أي أفكار أو توصيات؟ ترك تعليق أدناه!
ورقة بيضاء مجانية: تعرف على ستاندارد + كيس.
تعلم المزيد عن اتخاذ نهج شمولي لتكنولوجيا المعلومات من روب انكلترا في بلوق له، وشك في تكنولوجيا المعلومات، ومن كتبه، بما في ذلك زائد! معيار + حالة النهج. لمزيد من المعلومات، اقرأ ورقة بيضاء جديدة من روب حول تحويل حالات إدارة الحالات غير المعرفة إلى نماذج استجابة قياسية جديدة، مكتوبة ل زماترز: ستاندارد + كيس: كيف نماذج استجابة تكنولوجيا المعلومات محرك العمليات الحديثة.
هل نحن بحاجة لجعل باكجينغ (مجلد) وفقا للنسخة الرئيسية؟
سؤال آخر هو، كيف يتطلب إصدار المخطط إذا تغيير أبي تغيير في جداول قاعدة البيانات. أي رابط؟
شيء واحد غير موثقة في كثير من الأحيان هو كيفية إدارة التعليمات البرمجية وجميع الإصدارات التي تدعمها أبي.
أنا & # 8217؛ م المهتمة للعثور على نمط جيد لإدارة التعليمات البرمجية وتجنب الكابوس الإصدار.
بلدي تنفيذ النهج 3 لربيع-ويبفك:
قد تكون أيضا مهتما ب.
كيف اخترقنا تجربة إيربنب مع أت & # 038؛ T و هب و إنتيل.
جديد سيرفيسينو التكامل يقلل الوقت لحل.
موغسوفت و زماترز التكامل يأخذ إدارة الحوادث إلى مستوى جديد.
غيبوبة جوبز يمكن & # 8217؛ ر توقفت عن طريق البث.
بحاجة إلى دعم؟
لدينا موقع المجتمع مخصص هو أفضل مكان للحصول على مساعدة على جميع المنتجات زماترز. لدينا فريق من الموظفين دعم الخبراء والمستخدمين داخل مجتمعنا يمكن أن تساعدك على الحصول على الجواب الصحيح.

لا تحتاج واجهات برمجة تطبيقات ريست إلى إستراتيجية إصدار & # 8211؛ فإنها تحتاج إلى استراتيجية التغيير.
التغيير في أبي أمر لا مفر منه مع المعرفة والخبرة الخاصة بك من نظام يحسن. إدارة تأثير هذا التغيير يمكن أن يكون تحديا كبيرا عندما يهدد بكسر التكامل العملاء الحالية.
غالبا ما يحاول المطورون اتخاذ قرار بشأن استراتيجية الإصدار بمجرد بدء العمل على واجهة برمجة التطبيقات. هذا أمر مفهوم ولكن ليس دائما أذكى طريقة للنظر في مشكلة إدارة التغيير. براندون بييرز لخص هذا عن طريق الاقتراض جيمي زاونسكي & # 8217؛ ق حفر في التعبيرات العادية:
بعض الناس، عندما واجهوا مشكلة، أعتقد & # 8220؛ وأنا أعلم، وأنا & # 8217؛ ليرة لبنانية استخدام الإصدار. & # 8221؛ الآن لديهم 2.1.0 المشاكل.
كيف يمكنك تحرير الموارد في ريست؟
ريست لا تنص على أي إصدار محدد ولكن النهج الأكثر شيوعا تقع في ثلاثة مخيمات: وضعه على عنوان أوري، باستخدام رأس طلب مخصص أو إضافته إلى رأس قبول هتب.
استخدام أوري هو النهج الأكثر مباشرة على الرغم من أنه يزعج ريست يدافعون الذين يصرون على أن أوري يجب أن تشير إلى مورد فريد من نوعه. ويضمن لك أيضا لكسر تكامل العميل عندما يتم تحديث إصدار مهما كنت تستثمر بكثافة في التوجيه الإبداعي والاتصال العميل.
يسمح لك رأس مخصص بالحفاظ على عناوين ورل الخاصة بك بين الإصدارات على الرغم من أنها مكررة بشكل فعال لسلوك التفاوض على المحتوى الذي يتم تنفيذه بواسطة رأس أسيبت الموجود. يمكن للعميل استخدام هذا الرأس لإرسال قائمة الإصدارات المعتمدة أثناء استجابة الخادم بالإصدار المستخدم في رأس نوع المحتوى.
قد تسمح لك مفاوضات المحتوى بالحفاظ على مجموعة نظيفة من عناوين ورل ولكن لا يزال يتعين عليك التعامل مع تعقيد خدمة إصدارات مختلفة من المحتوى في مكان ما. هذا العبء يميل إلى أن يتم نقل كومة إلى وحدات تحكم أبي الخاصة بك التي تصبح مسؤولة عن معرفة أي إصدار من الموارد لإرسالها. والنتيجة النهائية تميل إلى أن تكون أبي أكثر تعقيدا كما يجب على العملاء أن يعرف أي رؤوس لتحديد قبل طلب مورد.
رقم الإصدار ليس هو المشكلة.
نظرا للطبيعة المثيرة للجدل من ريست، عليك أن تكون دائما خاطئة في عيون شخص بغض النظر عن النهج الذي كنت تأخذ. النقطة هي أن النسخة ترقيم نفسها هي الرنجة الحمراء.
التحدي الحقيقي هنا هو إدارة قاعدة التعليمات البرمجية التي يمكن أن تصل إلى إصدارات متعددة من الموارد. إذا حافظت على كافة الإصدارات في نفس قاعدة التعليمات البرمجية، تصبح الإصدارات القديمة عرضة للتغيرات غير المتوقعة. إذا قمت بفصل قواعد التعليمات البرمجية ثم تتصاعد النفقات التشغيلية والدعم. في كلتا الحالتين، سخام الشفرات وزيادة التعقيد هي نتيجة حتمية.
إن اتباع نهج صارم في إصدار الإصدارات يمنحك اليقين الذي تشتد الحاجة إليه بشأن العقد ولكنه يميل إلى تقويض قدرة النظام على التغيير. يمكن أن يصبح الإصدار عائقا أمام التحسين حيث تتم مقاومة أي متطلبات تؤدي إلى تغييرات في الإصدار. لقد رأيت واجهات برمجة التطبيقات مع سياسات إصدار صارم عالقة على نفس الإصدار لسنوات بسبب المخاوف المشروعة على مقدار العمل والمخاطر التي ينطوي عليها التغيير.
ما هو البديل للإصدار؟
يجب أن تتناول إستراتيجية إصدار متماسكة كيفية إدارة التغيير في أبي مع توفير عقد مستقر للعملاء. وهذا لا يجب أن يتضمن إصدار إصدارات جديدة استجابة للتغييرات.
ويتمثل أحد النهج في بناء إمكانية التغيير من خلال توفير التوافق على الوراء في تغييرات واجهة برمجة التطبيقات. هذا النهج ينطوي على مخاطر كبيرة حيث لا يمكنك التأكد من أن التغيير لن كسر العملاء الحاليين حتى مع اختبار الانحدار الشامل.
يمكنك حتى اتخاذ التوافق الوراء خطوة أبعد من خلال إضافة ميزات مثل المعلمات الاختيارية وخصائص البدل التي تتوقع التغييرات المستقبلية. هذا النوع من "التوافق الآجل" يميل إلى إنتاج عقد خشن يضع عبئا كبيرا من المصادقة على العميل. والنتيجة النهائية هي في كثير من الأحيان مجموعة فوضوي من رموز التبديل والرموز المطلوبة لكل مكالمة.
يقترح مبدأ أوبين \ كلوسيد برتراند ماير أن الكيانات البرمجية يجب أن تكون "مفتوحة للتمديد، لكنها مغلقة للتغيير". عند تطبيقه على واجهات برمجة التطبيقات، فإن النتيجة تعني أنه يمكنك زيادة مواردك ولكن لا يتم تغييرها.
ويمكن أن يوفر هذا النهج اليقين من إصدار أكثر صرامة دون مخاطر الانحدار التي ينطوي عليها التوافق إلى الوراء. زيادة لا تخلو من مشاكلها على الرغم من أنها يمكن أن تؤدي إلى العقود المتضخمة. وبدون انضباط دقيق يمكن أن تصبح أبي متناثرة مع أساليب مكررة أو الموارد التي توفر عدة طرق مختلفة قليلا لتحقيق الشيء نفسه.
يمكنك مشاركة المسؤولية؟
يمكنك أن تفعل المزيد لتقاسم عبء التغيير بين أبي والعميل. قانون بوستيل، الذي يشار إليه غالبا بمبدأ المتانة، ينص على أنه يجب أن تكون "ليبراليا في ما تقبله وتحافظ عليه في ما ترسله". من حيث أبيس هذا ينطوي على التسامح معينة في الخدمات الاستهلاكية.
على سبيل المثال، يمكن أن تكون تقنيات التسلسل الصارمة غير متسامحة دون داع للتغيير. وينبغي أن يكون القارئ الأكثر تسامحا معنيا فقط بالبيانات التي يحتاج إليها ويتجاهل كل جزء آخر من الاستجابة. وهذا يعني أن غالبية التغييرات من غير المرجح أن تكسر التكامل.
وهناك نهج آخر يمكن للمستهلك أن يعلن البيانات التي يهمه كجزء من الطلب. ولا يحدد نمط العقد الذي يحركه المستهلك النموذج الذي يجب أن تتخذه هذه التأكيدات من قبل المستهلك، ولكن يمكن أن يسمح التنفيذ لواجهة برمجة التطبيقات باكتشاف متى يكون الطلب غير محدث.
ولسوء الحظ، لا يمكن تطبيق هذه النهج إلا على مجتمعات الخدمات المغلقة نسبيا. نادرا ما يكون واجهات برمجة التطبيقات التي تواجه الجمهور ترفا في أن تكون قادرة على تملي أسلوب التكامل العميل. يتكون العقد الوحيد القابل للتطبيق بين الخدمة والعميل من البيانات والبروتوكول.
هذا هو السبب في الانضباط الحذر هو في صميم أي استراتيجية تغيير معقولة. أبي جيدة لا تأتي إلى حيز الوجود عن طريق الصدفة. يجب أن تكون برعاية. وأيا كانت الطريقة التي تتخذها لإدارة التغيير، فستحتاج إلى حكم متسق ونشط على العقد المتطور.
أنا مهندس معماري مقره لندن الذي أمضى أكثر من عشرين عاما التنمية الرائدة عبر المبتدئة والوكالات الرقمية، ومكاتب البرمجيات والشركات. على مر السنين لقد بنيت الكثير من الاشياء بما في ذلك المواقع والخدمات على شبكة الإنترنت، وتطبيقات شاشات متعددة، تكامل النظم والوسيطة.
تركيزي الحالي هو على تمكين تسليم ادارة العلاقات مع تحجيم وتوفير القيادة المعمارية في بيئات رشيقة. أعمل حاليا من أجل ادارة العلاقات مع مزود الرابع يقودهم إلى السماء المؤسسة، خدمة واحدة في وقت واحد.
يمكنك متابعة لي على تويتر أو التحقق من لي على لينكيدين.
خدمات الكيان: عندما تكون الخدمات الميكروية أسوأ من المتجانسات.
ويبدو أن الخدمات القائمة على الكيان تبدو مدعومة من قبل بعض المصادر الموثوقة جدا. وهذا أمر مؤسف لأنه شيء من نمط مضاد يمكن أن تقوض العديد من فوائد تحلل متراصة إلى ميكروسرفيسز.
ننسى تغطية التعليمات البرمجية - تصميم الاختبار يجب أن يكون مدفوعا السلوكيات.
إحصاءات تغطية الاختبار هي محبوبة كثيرا من قبل فرق الإدارة وأدوات جودة التعليمات البرمجية. أنها تميل إلى ربط مستوى عال من التغطية مع قواعد رمز قوية، وإدارة جيدة. خطأ، كما اتضح.
الأحداث، ساجاس وسير العمل: إدارة العمليات طويلة المدى بين الخدمات.
يمكن للهيكل القائم على الحدث أن يؤدي إلى سلاسل معقدة من الأحداث التي يصعب إدارتها. ويمكن تخفيف هذه المشاكل من خلال التصميم الدقيق بدلا من اللجوء إلى قواعد بيانات الدولة المشتركة أو محركات سير العمل.
الدين التقني هو الاستعارة المفرطة والكسول.
قد يكون الدين التقني استعارة مفيدة لوصف كيفية تصميم سيئة للسوء يقوض الإنتاجية للجمهور غير الفني، ولكنه لا يساعد في فهم المشاكل على المدى الطويل التي تؤثر على قواعد التعليمات البرمجية.
كيف يمكن أن يساعد تصميم دريفن ديسين في تطوير رشيق واسع النطاق؟
فرق رشيقة قضاء برامج النمذجة الوقت سواء كانوا على استعداد لقبول ذلك أم لا. إن اعتماد تقنية مثل تصميم دريفن دريفن يمكن أن يساعد على جعل هذا أكثر كفاءة، وخاصة على نطاق واسع.
تشغيل تطبيق وحدة التحكم الأساسية كخدمة ويندوز.
على الرغم من أن كور لا تدعم مباشرة إنشاء ويندوز سيرفيسز هناك العديد من الطرق المختلفة لإنشاء التطبيقات التي يمكن تسجيلها وتشغيلها كخدمات.
متى تصبح إعادة بيعها إعادة كتابة؟
إعادة هيكلة يصف تقنية محددة جدا ومتحكم بها لتحسين التعليمات البرمجية. المشكلة هي أنه غالبا ما يستخدم لوصف تغييرات الجملة لقواعد التعليمات البرمجية التي ينبغي أن تعامل على أنها إعادة كتابة.
كتابة وحدات اختبار وظائف أزور باستخدام C #
يمكنك الآن كتابة وظائف أزور المترجمة في C # مع تغطية اختبار وحدة كاملة، على الرغم من أن هناك بعض العقبات على طول الطريق.

No comments:

Post a Comment