المعلوماتية > برمجيات
كود المعكرونة Spaghetti code؛ الرِماز البرمجي المُتشابك
قد يتفاجأ مُحبّو معكرونة السباغيتي بأنّ مُهندسي البرمجيات قد يصفون نظامًا برمجيًّا ما بها، ليس على نحو إيجابي لأنها ذات طعم لذيذ، ولكن بدلالة سلبية على جودة النظام البرمجي؛ فعندما يُوصَف نظامك البرمجي بمعكرونة السباغيتي فهو يُوصَف بأنّه نظامٌ ذو جودة منخفضة، وغير مُهيكل (Unstructured)، ومليء بالحلقات المتداخلة (Nested Loops)، والشروط البرمجية المُعقدة والمتداخلة (Deeply Nested Condition)؛ أي إنّه شديد التشابك كالمعكرونة (1).
على الرغم من أنّ البرمجيات لا تَبلى مع الزمن؛ فهي غالبًا ما تُعدّل باستمرار.
فإذا أُجرِيَت عديدٌ من التعديلات بدون اتباع منهجيات هندسة البرمجيات، وعند وجود ضغط كبير مستمر لتسليم المنتج النهائي لهذه التعديلات من الإداريين؛ ستقل جودة البرمجية مع الزمن وتَحُول حالته إلى الرماز المتشابك Spaghetti code (كود معكرونة السباغيتي) (2).
هناك العديد من العوامل التي تسبب تحول النظام البرمجي إلى معكرونة السباغيتي، ومنها:
- أن تكون مُتطلبات الزبون غير كاملة ومتغيرة باستمرار.
- أن يكون هناك العديد من التغييرات ويجب أن تُنجَز في زمن قصير ضيق.
- الاستخفاف أو التساهل بتقدير تعقيد النظام الذي يُراد بناؤه.
- عدم وجود قواعد كتابة رِماز برمجي ضمن الفريق، وعدم وجود توثيق (Documentation) جيد للنظام.
- التأخر أو عدم إجراء اختبارات مؤتمتة (Automated tests) للنظام.
- تخلي قائد الفريق البرمجي عن المشروع على نحو مفاجئ واستقالته من الشركة.
- أن يكون الفريق البرمجي مؤلفًا من مبرمجين عديمي الخبرة (2).
هوامش:
لمعرفة المزيد عن البرمجة الغرضية التوجه: هنا
المصادر:
2. Pizka M. Straightening Spaghetti-Code with Refactoring? [Internet]. Citeseerx.ist.psu.edu. 2004 [cited 30 December 2020]. Available from: هنا
3. Moha N, Gueheneuc Y, Duchien L, Le Meur A. DECOR: A Method for the Specification and Detection of Code and Design Smells [Internet]. Citeseerx.ist.psu.edu. 2009 [cited 30 December 2020]. Available from: هنا