لماذا لا تحتوي تطبيقات المركزية على الأخطاء؟

StackOverflow https://stackoverflow.com/questions/1503990

  •  19-09-2019
  •  | 
  •  

سؤال

يبدو أن الحديد القديم هو البرامج الصلبة الصخور. لماذا هذا؟ هل هو لأن البرنامج ينضج جدا، وقد تم وضع جميع الأخطاء بها؟ أم أنها لأن الأشخاص قد استخدموا مع الأخطاء التي لا تتعرف عليها وتتعامل بها؟ هل كانت المواصفات البرمجية مثالية من يوم واحد وبمجرد كتابة البرنامج، كل شيء يعمل فقط؟ أحاول أن أفهم كيف نأتي من أيام الحوسبة المركزية التي يتباطأ الجميع الآن بأنها تعمل فقط على الشعور بأن TDD هو الآن طريقة للذهاب.

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

المحلول

لماذا تعتقد أنهم ليس لديهم أخطاء؟

IBM لديه أ واسع دعم البنية التحتية لإعداد التقارير والقرار (PMRS، Apars و PTFS)، والتي تستخدم بشدة.

من المؤكد أن البرامج المركزية التي لم تمسها لسنوات عديدة ستكون مفهومة جيدا (على الأقل من حيث خصوصياتها)، ومن المرجح أن يكون لها العديد من الأخطاء إما ثابتة أو تعمل حولها. جميع الأشياء الجديدة التي يتم تطويرها في الوقت الحاضر في الوقت الحاضر تخطط بالفعل لعدد معين من الأخطاء والبقع من GA (توافر عام) إلى ما لا يقل عن 36 شهرا. في الواقع، كان مدرب سابقا من الألغام في IBM تستخدم إلى Baulk في إجباره على تقديم أرقام للحشر المخطط له الخط: "نحن لسنا كذلك تخطيط للحصول على أي أخطاء ".

يعمل المركزية الرئيسية مبادئ RAS (الموثوقية والتوافر وإمكانية الخدمة) وراء ما يمكن أن يطمح معظم أجهزة سطح المكتب وبرامجه إلى ذلك - هذا فقط رأيي بالطبع، لكنني على حق :-)

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

هناك قدر كبير من الجهد والتكلفة التي يتم إنفاقها على إطلاق برامج خالية من الأخطاء فقط ولكن حتى أنها لا تحصل عليه بشكل صحيح طوال الوقت.

نصائح أخرى

لا توجد أخطاء في برامج الإطار الرئيسي، فقط الميزات.

اعتدت العمل على تطبيقات المركزية. لم يكن لدى التطبيقات السابقة العديد من الأخطاء لأنها لم تفعل الكثير. كتبنا المئات إن لم يكن الآلاف من خطوط Fortran للقيام بما ستفعله بضعة صيغ في Excel الآن. ولكن عندما ذهبنا من البرامج التي حصلت على مدخلاتها عن طريق وضع قيمة واحدة في الأعمدة 12-26 من البطاقة 1، وقيمة أخرى في الأعمدة 1-5 من البطاقة 2، إلخ، إلى تلك التي تم إدخالها من شاشة ISPF التفاعلية أو الضوء القلم والإخراج على Calcomp 1012 الراسمة أو محطة Tektronix 4107، صعد عدد الأخطاء.

هناك الكثير من الأخطاء في البرامج المركزية، لا يتم نشرها فقط بسبب مجموعة صغيرة نسبيا من المطورين المتضررين. فقط اسأل شخصا يقوم بتطوير المركزية كم من المؤكد أنهم يرونهم يوميا!

تعلمت استخدام الصحافات وتحليل مقالب الأساسية على الأراضي المركزية الحديد الكبيرة. ثق بي جاء فقط بسبب الأخطاء. أنت مجرد خطأ عادي.

ومع ذلك، تم تصميم هياكل المركزات المركزية لتحقيق الاستقرار في ظل الإجهاد المرتفع (مقارنة بشكل جيد بقليل أنظمة غير مرتبطة)، لذلك ربما يمكنك أن تجادل أنها أفضل بهذه الطريقة. ولكن رمز الحكمة؟ علة ناه لا تزال هناك ...

تجربتي مع برنامج طلباتي المركزية (على عكس أنظمة التشغيل) قديمة قديمة جدا، ولكن تذكرتي هي أن غالبية التطبيقات هي تطبيقات دفعية هي، منطقيا، بسيط للغاية:

أ) قراءة ملف الإدخال
ب) معالجة كل سجل (إذا كنت تشعر بالجرأة، تحديث قاعدة البيانات)
ج) اكتب ملف الإخراج

لا توجد أحداث مدخلات للمستخدم تقلق بشأنها، فريق من المشغلين المؤهلين لمراقبة الوظيفة أثناء تشغيله، ضئيل تفاعل مع النظم الخارجية، إلخ، إلخ.

الآن قد يكون المنطق التجاري معقدا (خاصة إذا كان مكتوبا في COBOL 68 وقاعدة البيانات غير صحيحة) ولكن إذا كان هذا كل ما يتعين عليك التركيز عليه، فمن الأسهل إجراء برنامج موثوق به.

لم أعمل مطلقا في برنامج لأكافر نفسي، لكن والدي كان مبرمج كوبول في سبعينيات القرن العشرين.

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

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

تتعلم من أخطائك بسرعة بهذه الطريقة ...

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

على الرغم من أنني لا أملك خبرة في الإطارات المركزية، فأنا أظن أنها النقطة الأولى التي قمت بها: كان البرنامج موجودا منذ عقود. سيتم تشغيل معظم الأخطاء المتبقية.

الى جانب ذلك، لا تنسى fiascos مثل y2k. جميع الأخطاء التي تعثرت على عثر الناس عليها، وفي 20 عاما من المحتمل أن تكون معظم المواقف قد حدثت. ولكن كل مرة واحدة في حين، وضع جديد يفعل تمكن من المجيء إلى جانب ذلك يجعل البرنامج البالغ من العمر 20 عاما يتوقف عن العمل.

(مثال آخر مثير للاهتمام على هذا هو الخطأ الموجود في، أعتقد، BSD UNIX. تم العثور على سنة أو نحو ذلك، وقد كان حوالي 20 عاما دون أي شخص يركض فيه).

أعتقد أن البرمجة كانت مجرد حقل متقدم يمكن للمهندسين المختارين فقط أن يعمل فيه. يعد عالم البرمجة أكبر بكثير بكثير مع انخفاض حواجز الدخول في كل جانب.

أعتقد أنها بعض الأشياء. أولا هو أن دورة إصلاح الأخطاء الإصلاحية كانت أكثر تكلفة في الإطار الرئيسي عادة. هذا يعني أن المبرمج لا يستطيع فقط أن ينحدر رمز و "معرفة ما إذا كان يعمل". من خلال القيام بمحاكاة Compled و Runtime في الرأس، يمكنك اكتشاف المزيد من الأخطاء من السماح بالمترجم يمسكهم.

ثانيا، لم يكن الجميع وشقيقهم "مبرمجا". كانوا عادة متخصصين تدريبا عاليا. الآن تأتي البرامج من الرجال الذين يجلسون في الطابق السفلي مع دبلوم المدرسة الثانوية. لا حرج في ذلك !!! لكنه يميل إلى الحصول على المزيد من الأخطاء التي يقوم بها المهندس بذلك مهنيا لمدة 20 عاما.

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

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

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

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