معرفی کتاب برنامهنویس عملگرا: نخستین گام به سوی اندیشه حرفهای
اندرو هانت و دیوید توماس در کتاب برنامهنویس عملگرا: نخستین گام به سوی اندیشه حرفهای، به بررسی رفتار و طرز تفکر برنامهنویسها پرداختهاند.
کتاب برنامهنویس عملگرا (The Pragmatic Programmer: From Journeyman to Master) ذهنیت و زیرساخت فکری ما را به چالش میکشد. ما را با بنیاد تفکر «عملگرا» آشنا میکند: به ما میگوید، چگونه فکر کنیم تا از کارمان لذت ببریم و سرنوشت زندگی حرفهایمان را به دست خودمان رقم بزنیم و پلهپله تعالی پیدا کنیم. این کتاب در فضای مجازی در فهرست «کتابهایی که هر مهندس نرمافزار باید بخواند» The must read books for SE قرار دارد.
اندرو هانت (Andrew Hunt) و دیوید توماس (David Thomas) در این کتاب، نه به تعریفهای کلیشهای مهندسی پرداختهاند و نه سعی دارند که آن را به شکلی جدید تعریف کنند. آنچه در این کتاب میخوانیم، مهمترین اصول و قواعد تولید نرمافزار است.
وجه تمایز کتاب برنامهنویس عملگرا با دیگر کتابها، مثالهای واقعی است که تجربهٔ عملی نویسندگان را به ما منتقل میکند. برنامهنویسها باید مسیری طولانی را طی کنند تا چنین تجربهای را به چنگ آورند. در این کتاب، نویسندهها از واقعیتهایی حرف میزنند که خودشان در دل توسعۀ نرمافزار تجربه کردهاند.
در بخشی از کتاب برنامهنویس عملگرا میخوانیم:
چگونه بازسازی میکنید؟
در اصل، بازسازی همان باز طراحی است. هر چیزی را که شما یا همکارانتان طراحی کردهاید، میتوان از منظری دیگر، با درک عمیقتر، تغییر نیازمندیها و… باز طراحی کرد. اگر با عجله و بدون تأمل بخشهایی از کد را تغییر دهید، خواهید دید که در پایان، کد وضعیت بدتری پیدا کرده است.
بازسازی، فعالیتی است که نیاز دارد با دقت، از روی آگاهی و به آهستگی انجام شود. مارتین فاولر نکات زیر را پیشنهاد میدهد تا از وارد شدن آسیبهای بیشتر به کد جلوگیری شود:
1. سعی نکنید که بازسازی و اضافه کردن توانایی و کارکردهای جدید را همزمان انجام دهید.
2. پیش از شروع، مطمئن شوید که آزمونهای مناسبی در اختیار دارید. تا جایی که امکان دارد آنها را انجام دهید. به این شیوه به محض اینکه چیزی را خراب کنید از آن مطلع میشوید.
3. گامهای کوتاهِ آگاهانه بردارید؛ فیلدی از یک کلاس را به کلاس دیگر انتقال دهید، دو تابع مشابه در دو کلاس را در کلاس والد درهم ادغام کنید. بازسازی اغلب اوقات، شامل تغییرها محدود محلی است که نهایتاً، منجر به تغییر در مقیاس بزرگتر میشود. اگر گامهایتان را کوچک بردارید و پس از هر گام، کد را بیازمایید، دیگر لازم نخواهد بود که اشکالزداییهای طولانی مدتی انجام دهید.