بازآرایی کد و الزامات کسبوکار
یک تجربه مشترک بین بسیاری از شرکتها در حوزه پشتیبانی از نرمافزار این است که زمان و تلاش مورد نیاز برای ساخت محصول سفارشی با افزایش عمر محصول بیشتر میشود. در ابتدای کار، سفارشیسازی ساده است زیرا تغییرات جدید یا به راحتی قابل ترکیب شدن با کد موجود است و یا کاملا جدید هستند و میتوان به سادگی آنها را به کد اضافه کرد. اما هر چه از عمر محصول میگذرد، تغییرات بر روی سایر قسمتهای سیستم تأثیر میگذارد، توسعه نرمافزار را کند میکند و مشکلاتی برای بخشهایی از محصول که به ظاهر بیارتباط هستند، میگذارد. خبر خوب این است که این فرایند نتیجه اجتنابناپذیر ایجاد یک نرمافزار نیست. شما میتوانید بسیاری از این مشکلات را با بازآرایی (Refactoring) منظم کد پشتسر بگذارید.
بازآرایی کد (Code Refactoring) عملیات تبدیل کد موجود به کد قابل فهمتر است. اگر چه میتوان هنگام بهبودسازی، قابلیتهایی را به کد اضافه کرد یا اشکالات آن را برطرف کرد، ولی عملیات بازآرایی کد یک فرایند مجزا از اینهاست.
چرا میخواهید بازآرایی کنید؟
فکر نوشتن کد مانند نوشتن یک کتاب است. در ابتدا لازم است نویسنده هر چه در فکر دارد را بر روی کاغذ بیاورد. کتاب ممکن است بعد از اولین نگارش غیرقابل فهم باشد و خواننده مجبور است زمان بیشتری صرف کند تا افکار نویسنده را بفهمد. برای جلوگیری از این اتفاق، نویسنده کتاب را بازخوانی میکند و در بسیاری از موارد بخشهایی از آن را بازنویسی میکند. ایده اصلی، تغییر محتوای کتاب نیست بلکه قابلفهمتر کردن کتاب برای دیگران است. یک ویرایشگر در نهایت کتاب را میخواند و تغییرات لازم را اعمال میکند تا ایده اصلی کتاب شفافتر شود.
بسیاری از محصولات نرمافزاری دارای کدهایی هستند که در وضعیت پیش از ویرایش هستند چرا که کاربران از کیفیت نامطلوب کد نهایی تأثیری نگرفتند. این وضعیت معمولا به دلایل زیر نادرست است:
1. در بسیاری موارد سایر برنامهنویسان نیاز دارند کد موجود را برای رفع اشکال و توسعه بازخوانی کنند. اگر کد بازآرایی/ویرایش شود، بازخوانی کد ارزانتر و سریعتر است.
2. دیباگ کردن کد سختتر است. هر کاری که برنامهنویس انجام میدهد تا کد خواناتر شود، برای آینده زمان و تلاش ذخیره میشود.
اما کارفرمایان میخواهند تغییراتشان به سرعت اعمال شود. زمانهایی وجود دارد که بهتر است بازآرایی را متوقف کنید تا ویژگیهای بیشتری را به نرمافزار اضافه کنید. این زمانها به ندرت و موقتی هستند. در بسیاری از موارد، اگر شما برای هر کارفرما توضیح دهید که برای چه کاری تلاش میکنید و چرا، با تمرکز بر اینکه تأخیر چه سودی برای آنها دارد( که درواقع شما میخواهید زیربنایی را ایجاد کنید که سیستم به راحتی قابل نگهداری باشد و هزینه و زمان را در آینده کاهش میدهد)، آنها موافقت خواهند کرد.
بسیاری از برنامهنویسان میخواهند همه چیز را بازآرایی کنند. آیا باید به آنها اجازه داد؟
بعضی برنامهنویسان، به ویژه آنها که بهتر هستند، تمایل دارند که همه چیز را بازآرایی کنند ولی این کار همیشه ضروری نیست زیرا بعضی کدها در طول عمر خود هرگز بازخوانی نمیشوند. پس چرا باید زمان را صرف آنهایی کرد که دیگر تغییر نمیکنند؟
در انتها پیشنهاد میکنم کد را زودتر بازآرایی کنید هنگامی که هنوز محتوای برنامه در ذهنتان تازه است.
منبع: سایت JavaWorld
پینوشت: اسلایدهای مربوط به بازآرایی نیز در سایت جاواکاپ در دسترس است. همچنین در سیر مطالعاتی پیشنهادی در سایت جاواکاپ، منابعی برای مطالعه موضوع بازآرایی (Refactoring) پیشنهاد شده است.