معرفی کتاب Refactoring - improving the Design of Existing Code

جلد روی کتاببیش از بیست سال است کتاب ریفکتورینگ مارتین فاولر توسط علاقه مندانی که میخواهند طراحی و پایداری نرم افزار خود را بهبود دهند خوانده شده است. مانند نسخه اول، این کتاب هم به شما کمک میکند تا اصول بازسازی کد را به خوبی درک کنید، کدهایی که نیاز به بازسازی دارند را به درستی تشخیص دهید و نحوه انجام بازسازی در شرایط مختلف را فرا بگیرید.از جمله مواردی که این کتاب به توانایی ها و قابلیت های یک برنامه نویس می افزاید، عبارتند از:بررسی و تشریح روند و اصول پایه بازسازی کداجرای سریع تغییرات مورد نیاز، برای درک بهتر کد و تغییرات راحت تر آن در آیندهقابلیت تشخیص نشانه هایی در کد که نیاز به تغییر را نمایان می کندتوضیح الگوهای بازسازی، شرایط مورد نیاز هر الگو، گام های اجرایی و بیان مثال جهت درک بهتردرک صحیح اصول نوشتن تست ها و اهمیت آنها در بازسازی کدارزیابی موانع و هزینه های بازسازی کد که به تصمیم گیری درست شما کمک میکندبخش مهم کتاب صد صفحه اول آن است و به نظر من دانستن این مطالب برای هر برنامه نویسی ضروری است. توجه کافی نویسنده به ابهاماتی که ممکن است برای برخی از برنامه نویسان به سبب آشنا نبودن با جاوااسکریپت ایجاد شود، و همچنین ارائه توضیح به اندازه و مورد نیاز برای رفع این ابهامات از ویژگی های مثبت این کتاب است. مرور این موارد برای برنامه نویسان جاوااسکریپت هم خالی از لطف نیست.تشریح بخش های مختلف به سادگی هر چه تمام تر انجام شده است و دلیل این موضوع را می توان در توانایی و مهارت مارتین فاولر در بحث آموزش یافت. هر چند که در بخش های پایانی، مثال هایی طولانی در نظر گرفته شده است که با وجود خسته کننده بودن و پیچیدگی زیاد، ارزش وقت گذاشتن را دارد. به شخصه فکر میکنم این کتاب ارزش حداقل دوبار خواندن و روزانه تمرین کردن را دارد.شفاف سازی حد و مرزهای بازسازی کد از ویژگی های دیگر این کتاب است. نویسنده سعی کرده این موضوع را برای علاقه مندان روشن کند که بازسازی کد، مفهومی معادل تمیز کردن کد (cleaning up code) نیست. تنها یک مجموعه تکنیک برای بهبود سلامت کد، شفافیت بیشتر و ریسک خطای کمتر است. همچنین مفهومی عمومی تر به نام بازطراحی (restructuring) وجود دارد که برای اشاره به تغییر ساختار کد است و فنون دیگری را در بر میگیرد.نمره متوسط این کتاب از نگاه خوانندگان، در سایت goodreads.com امتیاز 4.2 از 5 بوده است. این عدد نشان می دهد که درمجموع، کتاب با استقبال بسیار خوبی از سوی خوانندگان روبرو شده است. اما ایرادهایی نیز از سمت خوانندگان به این کتاب وارد شده است.از جمله ایرادهایی که به کتاب وارد شده است، نحوه داستان سرایی کتاب و جمله های طولانی نویسنده است. گویا این موضوع به مذاق بعضی از خوانندگان، به ویژه خوانندگان غیرانگلیسی زبان، خوش نیامده است. به تجربه من، بیان شیوا و شیرین و طنزهای گاه و بیگاه نویسنده ، از جذابیت های خواندن و یکی از نقاط قوت کتاب است.ایراد دیگری که برخی از خوانندگان کتاب به آن وارد کرده اند، به روز نبودن مطالب کتاب نسبت به امکانات محیط های برنامه نویسی (IDE) امروزی است. محیط های برنامه نویسی جدید یا همان IDEها، توانایی های فوق العاده ای به برنامه نویسان میدهند. بازسازی هایی مانند تغییر نام یک فیلد، جابجایی تعریف یک فیلد، حذف کدهای بلااستفاده و ... قابلیت هایی هستند که در محیط های جدید، به راحتی و با فشار دادن یه دکمه انجام میشوند. برخی از کاربران به این موضوع اشاره کرده و توضیح مفصل در مورد چنین بازسازی هایی را غیرضروری و به عنوان نقطه ضعف کتاب در نظر گرفته اند. در حالیکه نویسنده در متن کتاب، صراحتا به این موضوع اشاره کرده است که موضوعات را به شرایط یا محیط های برنامه نویسی خاصی محدود نکرده است و سعی شده همه شرایط در نظر گرفته شود.در پایان به این نکته اشاره کنم که مطالعه و تمرین این کتاب عادت فوق العاده مهمی را در ذهن خوانندگان جا می اندازد و آن انجام تغییرات کوچک و تست کارهای انجام شده است.