كتاب مجاني عن التزامن في Go يشرح ما لا يكتشفه الـ race detector
اجتياز الاختبارات والـ race detector لا يعني أن الكود المتزامن صحيح، لأن الأداة ترى نوعًا واحدًا فقط من أخطاء التزامن.
وسم
اجتياز الاختبارات والـ race detector لا يعني أن الكود المتزامن صحيح، لأن الأداة ترى نوعًا واحدًا فقط من أخطاء التزامن.
عمل كان يتطلب كتابة assembly لكل معمارية أصبح ممكنًا داخل أدوات Go الرسمية، والحل جاء من إزالة معلومة من نظام الأنواع لا من إضافة أنواع جديدة.
بدل أن تحتفظ الشركة بحق إغلاق المشروع لاحقًا، قلبت السؤال: كيف يصبح من ساهم شريكًا فيما يُكسب، لكن النسبة وجدول الدفع لم يُحددا بعد.
حين يكون المنطق سليمًا والأداء بطيئًا، يكمن البطء غالبًا في الـ syscalls التي تنفذها المكتبات خلف الكود، وأداة مثل strace تكشف ذلك بسرعة.
تسرب الـ goroutines لا يظهر في أي benchmark، بل في خدمة تثقل بعد أسابيع من التشغيل ويُعاد تشغيلها دوريًا، والآن صار الـ runtime نفسه يشير إليه.