چگونه کد قطعه‌بندی شده یا چانک‌شده (chunkable code) بنویسیم؟

راهکار یک: از الگوهای طراحی (design pattern) استفاده کنید
اگر می خواهید کدی بنویسید که به راحتی قطعه‌بندی (چانک‌شده)‌ شده باشد، از الگوهای طراحی استفاده کنید. یافته‌های والتر تیچی (Walter Tichy)، استاد علوم کامپیوتر در موسسه فناوری کارلسروهه‌ی آلمان به صورت اتفاقی ارتباط بین قطعه‌بندی کدها با الگوهای طراحی را مورد بررسی قرار داده است. او به دنبال بررسی الگوهای طراحی بود و به ویژه علاقه داشت تا بررسی کند که الگوهای طراحی تا چه میزان می‌تواند هنگام نگهداری کد (افزودن ویژگی جدید یا رفع خطا) (maintenance) به برنامه‌نویسان کمک می‌کند.

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

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

راهکار دو: توضیح (comment) بنویسید
آیا باید برای کد، توضیح (کامنت)‌ بنویسیم یا کد باید “خود بیان” (document itself) باشد؟ این پرسش یکی از پرسش‌های چالش‌برانگیز در دنیای برنامه‌نویسان است که نظرات متفاوت و متضادی درباره‌ی آن وجود دارد. محققان به این پرسش پرداخته‌اند و به یافته‌های جالبی رسیده‌اند.

تحقیقات نشان می‌دهد وقتی کدی حاوی توضیحات است، برنامه‌نویسان زمان بیشتری را برای خواندن آن صرف می‌کنند. ممکن است فکر کنید این یافته نشانه‌ی بدی است چون به این معنی است که خواندن توضیحاتِ همراه کد باعث کندی در خواندن و فهمیدن کد می‌شود. اما در واقع، این یافته نشان می‌دهد که وقتی برنامه‌نویسان کد را می‌خوانند به توضیحات همراه آن توجه می‌کنند و آن را می‌خوانند. به عبارت دیگر، این یافته نشان می‌دهد اضافه کردن توضیحات به کد، کار عبث و بی‌ارزشی نبوده است.  

مارتا الیزابت کرازبی (Martha Elizabeth Crosby)، محقق دانشگاه هاوایی، مطالعاتی روی روش کدخوانی برنامه‌نویسان و نقش توضیحات همراه کد در کدخوانی انجام داده است.  کار کرازبی نشان داد که برنامه‌نویسان مبتدی بیشتر از برنامه‌نویسان باتجربه و حرفه‌ای‌ به توضیحات کد توجه می‌کنند. یافته‌های کرازبی نشان می‌دهد افزودن توضیحات به کد می‌تواند روش خوبی برای کمک به برنامه‌نویسان تازه‌کار برای فهمیدن کد باشد.

پایان‌نامه کویین فن ( Quiyin Fan)  در سال 2010 در دانشگاه مریلند با عنوان “The Effects of Beacons, Comments, and Tasks on Program Comprehension Process in Software Maintenance,” نشان داد که توسعه‌دهندگان هنگام خواندن کد، وابستگی شدیدی به توضیحات کد دارند. به ویژه توضیحات کلانی مانند “این تابع یک درخت دودویی را چاپ می‌کند” می‌تواند به برنامه‌نویسان کمک کند تا قطعات بزرگتر کد را تکه‌تکه کنند و بفهمند. از سوی دیگر، توضیحات جزیی مانند “یکی به n اضافه می‌کنیم” پس از خطی که متغیر n را یکی افزایش داده است (n = n+1)،‌ نه تنها کمکی به خواندن و فهم کد نمی‌کند بلکه فرایند قطعه‌بندی (چانک‌سازی) را دچار اختلال و کندی می‌کند.

گزیده:

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

Share