قبل عيد جميع القديسين، والكامل كومة المطور ويس بوس بالتغريد مبرمجين آخرين لتبادل قصص الرعب إزاء WEBDEV. إليكم بعضًا منهم ...
@ DimitroffPeter :
وظيفتي الأولى وأول مساهمة لي في الإنتاج. أحتاج إلى إصلاح أداة خادم العميل. وظيفتها بسيطة: لدينا جهاز محلي الصنع من جهاز توجيه وجهاز كمبيوتر. يحتوي جهاز التوجيه على CLI ويجب أن يعرض معلومات حول حالة الكمبيوتر. أشياء مثل systemctl ، top ، free. يتم إرسال الأمر كنص ، ويتم تنفيذه ، ويتم استلام النتيجة كنص. ومع ذلك ، تم ذلك بأبشع طريقة ممكنة ...
أوامر CLI محددة في XML. يستدعيون نص Bash مع وسيطات محددة. يقوم البرنامج النصي بإنشاء PIPE في نظام الملفات ويمرر الأوامر إليه. الخادم مكتوب بلغة C (هذه هي بالضبط الطريقة التي يقدم بها الخادم الطلبات إلى العميل ، وليس العكس). تتكون جميع أسماء المتغيرات على خادم C من حرف واحد (x ، a ، b ، q) أو لها نموذج عام (mem ، data). كما أنه يحتوي على مجموعة من أنابيب الكتابة pthreads واستقصاءها على نظام الملفات مع تحكم خيط صفر تمامًا. لا شيء من هذا القبيل.
لذلك ، يقوم مؤشر ترابط C-server باستقصاء المسار الأول وتنفيذ البرنامج النصي الذي يفتح جلسة SSH مع جهاز الكمبيوتر وينفذ الأمر المطلوب. يتم وضع النتيجة في أنبوب واحد آخر في نظام الملفات. يحتوي خادم C على مؤشر ترابط آخر يقوم باستقصاء هذا الأنبوب. وآلاف المشاكل ذات الصلة. على سبيل المثال ، لا يمكنها معرفة ما إذا كانت النتيجة كاملة ، ولا تنتظر وصول المزيد من البيانات عبر الأنبوب. بمجرد أن يقرأ شيئًا ما ، يعرضه على الفور. وبسبب هذا ، تم الحصول على العديد من النتائج الجزئية ، وتم لصق الأجزاء المتبقية منها على نتيجة الأمر التالي ...
لكن هذا ليس كل شيء. وقد تناثرت رمز C
fprintf(s). إذا كنت معتادًا على مجموعة الوظائف printf، فسوف تدرك أن هذا ببساطة يطلب تجاوز سعة المخزن المؤقت. وقاموا بزيارتنا. مرات عديدة.
دعنا نلقي نظرة أخرى على بنية / كومة هذا الاختراع الرائع:
> CLI
> script sh
> PIPE
> الأنبوب استدعاء pthread
> البرنامج النصي استدعاء pthread
> SSH script
> SSH session للاتصال بجهاز الكمبيوتر
> PIPE 2
> pthread قراءة الأنبوب الآخر
I استبدلت كل شيء بعد CLI بـ 30 سطرا من Bash باستخدام ncat.

MichaelDClaar
أرسل المشروع السابق جميع تقارير الأخطاء كرسائل بريد إلكتروني إلى المطورين. لقد أرسل لنا خطأ بسيط رسائل بريد إلكتروني كثيرة لدرجة أن مزود خدمة البريد الإلكتروني لدينا قام بتثبيت حسابنا. لمدة نصف يوم ، لم يتمكن أحد من إرسال بريد إلكتروني إلى العملاء. نحن نرسل إلى أنفسنا حوالي 5000 رسالة بريد إلكتروني في الدقيقة.
dev__adi :
لقد قمت بإنشاء وضع مظلم لموقعنا ، لكنني لم أضف قيمًا افتراضية لمتغيرات CSS. كان من المفترض أن نضيف ملف سمة CSS في مكان واحد ويجب أن يكون كل شيء على ما يرام. اتضح أنه في مشروع آخر لم نقم بتضمين ملف متغيرات السمة وكل شيء تحول إلى اللون الأبيض. لحسن الحظ ، تم اكتشاف المشكلة استعدادًا للإنتاج.
Abdullah_Mzaien :
في مشروع التخرج الخاص بي ، كنت منزعجًا جدًا من حجمه ، لذلك قمت بإعادة ترتيب الملفات.
تم إنشاء أحد أغرب أوامر git ، والذي سيعيد الالتزام بجميع الالتزامات من البداية.
لا حرج في ذلك ، لكن كل هذه الأعمال أرعبت فريقي.
MathiasaurusRex :
منذ حوالي 10 سنوات ، ارتكبت خطأ مطبعيًا في متغير علامة الارتساء في شركة تجارة إلكترونية من أعلى 5. لنفترض أن عنوانها هو ABC dot com ، وكانت جميع علامات الارتساء تشير إلى AC dot com. انتشر الخطأ إلى قسم الخصم اليومي / الأسبوعي بالموقع. استغرق الأمر بضع ساعات لإصلاحه.
خرج مكلفة للغاية "عفوا".
FcoGT : FcoGT
تترك الصحف أخبارًا مهمة قد يتم نشرها بمجرد حدوث الحدث. عندما كان غابرييل غارسيا ماركيز مريضًا جدًا ، تركوا بالفعل خبر وفاته على الصفحة الرئيسية. صديق لي أخطأ في الشرط وتم نشره!
ryanfiller_ :
لقد نفذت مرة واحدة
npm publishمن المجلد الخطأ ودفعت مستودع العمل الخاص إلى npm كحزمة عامة. لحسن الحظ ، هناك فريق npm unpublish، إذا رصدته بسرعة كافية (خلال 72 ساعة). وإلا فإنه سيبقى هناك إلى الأبد ...
perlilja :
بمجرد إعادة تثبيت النظام على جهاز الكمبيوتر الخاص بي. اعتقدت أنني قمت بإنشاء نسخة احتياطية من الكود الخاص بي ، لكن اتضح أنها لم تكن كذلك. ضاع شهر من العمل. هناك أيضًا جانب جيد لهذا: أعتقد أن الكود الجديد أفضل.
petetasker : أجريت
مسابقة لبرنامج إذاعي. إنشاء نموذج يمكن للمستخدمين من خلاله إرسال إجابات للأسئلة الأسبوعية. كانت هناك فاصلة عليا في الإجابة على أحد الأسئلة الأسبوعية. لم يتم إنشاء أي مشاركات هذا الأسبوع ...
davigiroux_ :
ليست قصتي ، بل هي أيضًا قصة مخيفة: قام الرجل الذي عمل معي بتحديث قاعدة البيانات بدون "أين" ، ولهذا السبب تم اختيار كل مستخدم اشترك في الدورات بنفس الدورة التدريبية. قضيت صباحًا كاملًا في الاتصال بالجميع لإدخالهم في المسار الذي يريدونه ، وقال ذلك الرجل إنه مريض.
jonicious :
في الأسابيع الأولى من وظيفتي الأولى كمطور ، قمت أنا ومبتدئ آخر بإزالة جميع مفاتيح SSH العامة من الجهاز الذي يشغل إحدى الخدمات الأكثر أهمية.
أنا مختلطة أيضا الأعلام
trueو falseإيقاف حملة إعلانية مع خصم 50٪ لجميع العملاء.
PatZawa :
كنت أكتب دالة regex للتحقق من صحة رقم الضمان الاجتماعي قبل تجزئته في قاعدة البيانات. ومع ذلك ، قبل إجراء الفحص ، نسيت عكس فك التشفير ، ولهذا السبب تم حذف ما يقرب من 10 آلاف رقم مريض من قاعدة البيانات قيد الإنتاج. أمضى اليومين التاليين يتعافى ويعيد إدخاله.
nishant_ch :
في بداية مسيرتي المهنية ، اتصلت مرة واحدة بطريق الخطأ عبر Filezilla بالخادم الخطأ وقمت بتحميل موقع الويب الخاص بشخص آخر إلى مجال يعمل ، ثم ذهبت للراحة. بعد بضع ساعات ، رأيت أن التغييرات التي أجريتها لم تنعكس على الموقع ، وأدركت ما فعلته.
pjately :
تم إيقاف تشغيل الخادم عن طريق الخطأ في اليوم الأول من العمل في المكتب. لم أكن أدرك ذلك حتى قمت بتشغيل المفتاح مرة أخرى وأصدر الخادم صوت إقلاع ، بينما استدار المدير الفني وسأل: "هل كان ذلك خادمًا؟" كان اليوم الثاني في العمل أفضل بكثير ... لا يمكن أن يكون أسوأ بكثير.
rrrrrrichard : لقد
كتبت موقعًا إلكترونيًا للمال في أوائل العقد الأول من القرن الحادي والعشرين. لقد قمت بتصحيح صفحة الاتصال ، معتقدًا أنني قد عطلت التسليم نفسه. في ذلك اليوم ، تلقى العميل مجموعة من الرسائل الإلكترونية من "Adolf G." و "Joseph S." إلخ بعد بضع ساعات ، طلب مني بأدب التوقف. وجه الفتاة.
في البداية ، من جانب العميل ، ظنوا أنهم تعرضوا لهجوم من قبل مختل عقلي غاضب ، لأن جسد الرسائل يتألف من الابتذال. ثم اتضح لهم أن شخصًا ما قد وصل إلى موقع الويب الخاص بهم واتصلوا بي. تم تقديم الاعتذارات والدروس المستفادة.
spencer_carli :
قاعدة بيانات جديدة بالنسبة لي. كنت أعمل على تحرّي الخلل وإصلاحه في إشعارات الدفع وفي هذه العملية اعتقدت أن هناك فرقًا بين النظام المحلي ونظام الإنتاج. لقد أرسلت عشرات الإخطارين التجريبيين بدرجة متزايدة من الانزعاج ...
واتضح أنني لست وحدي ، بل الفريق بأكمله كان يتلقى الرسائل. قيل لي أن جميع أعضاء الفريق تلقوا رسائل الاختبار. فطيرة! حسنًا ، حسنًا ... الشركة تقنية ، الجميع يفهم كل شيء.
ولكن بعد ذلك ، بدأت التغريدات ورسائل البريد الإلكتروني من المستثمرين في الوصول - لم يتم نقل الرسائل داخل الفريق فحسب ، ولكن أيضًا إلى قاعدة المستخدمين بأكملها.
عفوًا ...
ثم للمرة الأخيرة في حياتي ، كتبت رسائل اختبار قذرة / روح الدعابة / رافضة لإشعارات الدفع.
jeroenheijmans :
"من فضلك اجعل مربعات الاختيار دائرية ، لكن يمكنك اختيار عدة خيارات."
endlife :
في عام 2005 ، كنت أعمل على تطبيق ويب لسلسلة من متاجر تأجير أقراص DVD - كان ينتقل من تطبيقات العميل / الخادم المطلوبة للاتصال الهاتفي إلى تطبيق واحد عبر الإنترنت. في يوم الإطلاق ، اكتشفت أن قاعدة البيانات المركزية المتزامنة من قواعد بيانات العميل قد دمرت تمامًا. لم يختبر أحد سلامة البيانات.
اتصل بي موظفون من الفروع: "نرى أشخاصًا من مدن أخرى في نظامنا ، لكن نظامنا ليس موجودًا فيه".
قضيت يومًا في الاتصال عبر VNC بأجهزة الكمبيوتر المحلية ، وإنشاء مقالب لقاعدة البيانات باستخدام مسؤولي MySQL المحليين ، وبناء قاعدة بيانات مركزية يدويًا. وكل هذا بعد تكليف مؤلم استمر يومين للنظام.
في تلك الأيام الثلاثة ، استمعت إلى أغنية Let's Dance لسبعين مرة لديفيد بوي.
sillywampa :
لقد قمت مرة واحدة بتحديث كلمة مرور المستخدم في قاعدة بيانات MySQL للإنتاج ، لكنني نسيت إضافة بنية
WHERE، لذلك تم تغيير كل كلمات مرور المستخدم. بعد 15 دقيقة ، بدأنا في تلقي المكالمات ورسائل البريد الإلكتروني من عملاء الشركات الذين لم يتمكنوا من تسجيل الدخول.
sygint :
أعد كتابة النموذج لتنظيف واجهة المستخدم ، مما حال دون إضافة بطاقات ائتمان جديدة على موقع الهاتف المحمول لشركة Fortune 500 لمدة شهر. وربما لم يضفها أحد من التطبيق لأننا لم نتلق أي شكاوى. تم ملاحظة المشكلة من قبل مطور مبتدئ ، حتى قسم ضمان الجودة لم يكن يعلم عنها.
مرة أخرى ، عصى العميل لي ودفع قالبًا مكسورًا إلى الخادم قيد التشغيل. لقد خسروا 70 ألف دولار في الساعة. هذه المرة الخطأ لم يكن حتى قريبًا من لي ، لول.
marcelcutts :
في الأيام الحارة عند بدء التشغيل ، أنشأت لعبة تسمى Zombies، Run! والتي كانت شائعة جدًا ولديها عدة ملايين من اللاعبين الذين يدفعون. ذات مرة ، بعد أن تراكمت ديونًا تقنية لا تُحصى ، قمت بنسخ ولصق الإصدار الخاطئ من ملف تكوين Django وفقدت سر قاعدة البيانات.
بالطبع ، لقد فعلت ذلك في الإنتاج ولم يكن لدي أي نسخ احتياطية. بعد أن أدركت ما حدث ، أخبرت الرئيس التنفيذي بذلك وغادرت المكتب للتو. لم أكن أعتقد أنه يمكننا إنقاذ الشركة من خلال إرسال رسالة نصية إلى كل مستخدم "مرحبًا ، ادفع مرة أخرى" ، وقد سئمت من الجدل حول ديون التكنولوجيا. اتضح أنني كنت على حق.
في صباح اليوم التالي ، استلقيت في سريري أفكر في طرق لتقليل إنتروبيا السر ، ووجدت أنه منذ أن ارتكبت خطأ آخر وأدخلت السر في محطتي ، فقد كان ذلك في تاريخ zsh الخاص بي طوال الوقت. سلبيتان تؤيدان.
علق على التغريدة: لقد لعبت هذه اللعبة ذات مرة ، كانت بها مجموعة من الأخطاء الغريبة.
marcelcutts : لست متفاجئًا ، فأنا مطور سيء .
JosDeBerdt :
كان لدي نظام متعدد المواقع حيث يمكن نقل المحتوى من موقع إلى آخر. أثناء الاختبار ، لم ألاحظ أنني اتبعت الرابط المؤدي إلى الإنتاج وأطلقت "تحديث المحتوى" دون تحديد معرف الصفحة ... ثم تتكون كل الصفحات على كل موقع من كلمة واحدة "اختبار". كان هذا في الأيام التي سبقت وجود أنظمة التحكم في الإصدار وتم نقل التغييرات على الفور عبر FTP إلى خادم الإنتاج.
chrisalesant :
في وظيفتي الأولى في الواجهة الأمامية ، طُلب مني تصميم قائمة طويلة من رسائل البريد الإلكتروني ، لذلك قمت بإنشاء كل شيء باستخدام divs والرسوم المتحركة و flexbox. بعد حوالي أسبوعين ، أجرى قسم التسويق مراقبة الجودة وقالوا إنهم سيفعلون كل شيء من البداية على الطاولات والأنماط المضمنة في ثلاثة أيام.
Cherry on the cake: كان من المفترض أن يحتوي التصميم على تخطيط مثالي للبكسل لعميل Outlook.

johnhutch :
لقد عملت على منصة تجارة إلكترونية مخصصة لشركة Fortune 500. يعمل المئات من المطورين على عشرات النسخ الدولية للعديد من العلامات التجارية ، ويعمل الرمز بدون توقف طوال اليوم.
لذا تخيل رعبي ...
عندما تلقيت رسالة مفادها أنني كسرت فرع / بيئة git بالكامل. اتضح أنه عند إجراء الدمج ، أفسدت الفرع الذي أستخدمه (لا تستخدم "." أيها الرجال. قم دائمًا بتضمين أسماء الفروع بشكل صريح).
MongooseDoom :
أستخدم جهاز Wacom اللوحي بدلاً من الماوس ، لأن هذا مريح أكثر بالنسبة لي. في أحد الأيام ، سحبت مجلدًا عن غير قصد إلى مجلد آخر على خادم الإنتاج. لم تكن هناك سجلات لما فعلته ، لذلك استغرق الأمر من شخص آخر وقتًا طويلاً لمعرفة ذلك. وفعلتها مرتين.
في ليلة جمعة ممطرة أخرى ، حذفت عن طريق الخطأ جدول SQL.
بالطبع ، اكتشفت أن إستراتيجيتنا الاحتياطية معطلة.
لحسن الحظ ، كان هذا قبل عصر التحميل البطيء ، وانتهى بي الأمر بعلامة تبويب واحدة مفتوحة مع 400 قيمة ، والتي قمت بعد ذلك بإدخالها يدويًا.
عادةً ما أكون محايدًا ، لكنني أتذكر الصلاة في ذلك اليوم حتى لا يتعطل Firefox حتى ألتقط لقطات شاشة لجميع القيم في هذه الصفحة!
إعلان
تقدم VDSina خوادم آمنة على Linux أو Windows - اختر أحد أنظمة التشغيل المثبتة مسبقًا ، أو قم بالتثبيت من صورتك الخاصة.
