اسپاگتی کد Spaghetti Code

اسپاگتی کد یا Spaghetti Code چیست؟

اسپاگتی کد (Spaghetti Code) یا کد درهم تنیده اصطلاحی در حوزه برنامه نویسی رایانه ای است و به سورس کدهایی گفته می‌شود که فاقد ساختار مناسب بوده و به علت پیچیدگی غیرضروری، فهم و نگه داری آن به امری دشوار تبدیل می‌شود. این درهم تنیدگی و پیچیدگی می‌تواند ناشی از عوامل مختلفی از جمله نبود قوانین مناسب برای استایل‌های برنامه نویسی و تجربه یا دانش ناکافی فرد برنامه نویس باشد.

استفاده از دستورات GOTO به عنوان روشی برای جهش (که زبان های برنامه نویسی قدیمی وابستگی بیشتری به آن داشتند و در بسیاری از زبان های امروزی نیز از آن پشتیبانی می‌شود) یکی از شایع ترین دلایل ایجاد کدهای درهم پیچیده و دارای جریان کنترلی (Control Flow) آشفته به شمار می‌رود. به این معنا که ترتیب اجرای دستورات در این سورس کدها برخلاف برنامه نویسی ساخت یافته استاندارد به شکلی واضح و قابل فهم نمی‌باشد و همانند یک بشقاب اسپاگتی دارای رشته‌هایی است که از ابتدا تا انتها با پیچ و خم‌های فراوان همراه می‌شود. طبیعتا دستکاری و تغییر قطعه‌ای از این کدها به گونه‌ای که باعث بروز مشکل در سایر بخش‌های آن نشود کار ساده‌ای نخواهد بود؛ درست مانند جدا کردن یک قاشق از اسپاگتی که معمولا باعث می‌شود رشته‌های دیگری که در بشقاب قرار دارد نیز قطع شوند!

با وجود اینکه امروزه دستور GOTO در سورس کدها کمتر دیده می‌شود و حتی برخی از زبان‌های برنامه نویسی از آن پشتیبانی نمی‌کنند اما همچنان وجود توابع طولانی، انشعابات متعدد و قطعه کدهای نوشته شده با ساختار ضعیف از جمله مواردی به شمار می‌روند که منجربه ایجاد اسپاگتی کد می‌شود. بد نیست بدانید تغییر نامناسب و مکرر سورس کدهایی که سال‌ها پیش نوشته شده‌اند نیز می‌تواند به شکل‌گیری چنین کدهایی بیانجامد.

اسپاگتی کد Spaghetti Code
نمایی مفهومی از روند اجرای دستورات در یک قطعه کد اسپاگتی مملو از جهش همانند رشته‌های موجود در یک بشقاب اسپاگتی!

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

واژه‌های مرتبط

سورس کد Source Code سورس کد یا Source Code چیست؟ سورس کد (Source Code) مجموعه‌ای از دستورالعمل‌های رایانه‌ای است که معمولا در قالب متن ساده و به یک زبان برنامه نویسی کام...
دستور GOTO دستور GOTO چیست؟ GOTO (به معنای "برو به ...") عنوان دستوری است که در بسیاری از زبان‌های برنامه‌نویسی به منظور انتقال کنترل به خط دیگری از کد مورد است...
کمینه سازی Minification کمینه سازی یا Minification چیست؟ کمینه سازی سورس کد یا به اختصار کمینه سازی (Minification) اصطلاحی در حوزه برنامه نویسی است و به فرایندی گفته می‌شود ...
نقشه سایت Sitemap نقشه سایت یا Sitemap چیست؟ نقشه سایت (Sitemap یا Site map) لیستی از صفحات یک وبسایت است که برای کاربران یا ربات‌های اینترنتی قابل دسترس می‌باشد و به ...
منبع باز Open Source منبع باز یا Open Source چیست؟ نرم افزار منبع باز یا متن باز (Open Source) به نرم افزارهایی گفته می‌شود که همراه با سورس کد عرضه می‌شوند و صاحب امتیاز...
کامپایلر Compiler کامپایلر یا Compiler چیست؟ کامپایلر (Compiler) یک برنامه‌ی رایانه‌ای است که سورس کد نوشته شده به یک زبان برنامه نویسی (زبان مبدأ) را به یک زبان دیگر ...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *