بایگانی برچسب‌ها : Source code

اسپاگتی کد Spaghetti Code

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

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

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

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

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

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

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

سورس کد Source Code

سورس کد یا Source Code چیست؟

سورس کد (Source Code) مجموعه‌ای از دستورالعمل‌های رایانه‌ای است که معمولا در قالب متن ساده و به یک زبان برنامه نویسی کامپیوتری نوشته می‌شود. در واقع برنامه نویسان با نوشتن سورس کد، اعمالی که باید توسط رایانه انجام شود را مشخص می‌کنند.

محتوای سورس کد توسط انسان‌ها قابل مطالعه است و معمولا پیش از اجرا توسط یک کامپایلر به کد ماشین تبدیل می‌شود تا توسط پردازنده رایانه قابل فهم شود و یا به صورت مستقیم توسط یک مفسر اجرا می‌شود.

اغلب نرم افزارها تنها در قالب یک فایل اجرایی برای استفاده کاربر منتشر می‌شوند اما در صورتی که سورس کد نرم افزار نیز منتشر شود و مطالعه، تغییر و توزیع آن توسط دیگران از سوی تولیدکننده نرم افزار مجاز دانسته شود نرم افزار را منبع باز (بخوانید: منبعْ باز یا Open Source) می‌نامند.

جالب است بدانید الزاما تمام سورس کد یک برنامه به یک زبان برنامه نویسی نوشته نمی‌شود. برای مثال ممکن است بخش‌هایی از یک برنامه به زبان C# نوشته شود و بخشی دیگر از آن برای اجرای بهینه‌تر به زبان C++ نوشته شده و در قالب یک فایل dll در سورس کد اصلی مورد استفاده قرار گیرد.

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

در تصویر زیر می‌توانید نمونه‌ای از سورس کدهای ساده برنامه سلام دنیا را به زبان‌های PHP و C++ همراه با کامنت‌های تک خطی (خطوط سبز رنگ) مشاهده کنید.

سورس کد Source Code
نمونه‌ای از Source Code ساده برنامه سلام دنیا به زبان‌های برنامه نویسی C++ (قطعه کد بالایی) و PHP (قطعه کد پایینی)

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

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