معرفی کتاب ریفکتورینگ: بهبود طراحی کد موجود، مارتین فولر

معرفی کتاب Refactoring: Improving the Design of Existing Code: ریفکتورینگ چیست؟ ریفکتورینگ یا بازسازی، فرآیند تغییر یک سیستم نرم افزاری است، به گونه‌ای که کارکرد کد را تغییر ندهد، اما ساختار داخلی کد را بهبود ببخشد.

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

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

مشخصات کتاب Refactoring Martin Fowler


کتاب Refactoring: Improving the Design of Existing Code برای اولین بار در سال 1999 توسط مارتین فولر و با کمک کنت بک (Kent Beck)  نوشته و منتشر شد. تمامی مثال‌های این کتاب با زبان برنامه نویسی جاوا نوشته شده است و به خوبی می‌تواند مفاهیم را به صورت عملی به شما آموزش دهد.

ویرایش اول این کتاب در 340 صفحه و 15 فصل منتشر شد. این کتاب بارها تجدید چاپ شد، تا اینکه در سال 2018 فولر، ویرایش دوم این کتاب را روانه‌ی بازار کرد. ویرایش جدید در 445 صفحه و 12 فصل منتشر شده است و برای تمامی مثال‌های کتاب از زبان برنامه نویسی جاوا اسکریپت استفاده شده است. این کتاب به زبان انگلیسی نوشته شده و تاکنون، هیچ ویرایشی از آن، به فارسی برگردانده نشده است.

جالب  است بدانید که مفاهیم کتاب Refactoring، برای همه‌ی زبان‌های برنامه نویسی قابل استفاده است.

مارتین فولر نویسنده کتاب Refactoring کیست؟


مارتین فولر (Martin Fowler)  متولد 1963 در بریتانیا است. او یک توسعه‌دهنده‌، مشاور، نویسنده و یک سخنران بین‌المللی در زمینه‌ی توسعه‌ی نرم افزار است. تخصص فولر در تجزیه و تحلیل و طراحی شی‌گرا، الگوهای طراحی، یوام‌ال (UML) و متد‌های توسعه‌ی نرم افزار اجایل است. مارتین فولر، یکی از بنیانگذاران توسعه‌ی نرم افزار اجایل است و تاکنون بیش از هفت کتاب در زمینه‌ی توسعه‌ی نرم افزار نوشته است و برای برخی از آن‌ها، موفق به کسب جوایز مختلفی شده است.

علاقه‌ی اصلی او درک چگونگی طراحی سیستم‌های نرم افزاری و به حداکثر رساندن بهره‌وری تیم‌های توسعه‌دهنده است. او در حال حاضر، به عنوان دانشمند ارشد، در شرکت نرم افزاری ThoughtWorkers مشغول به کار است.

برای کسب اطلاعات بیشتر: الگوی طراحی چیست؟

کتاب Refactoring چه موضوعاتی را آموزش می‌دهد؟


این کتاب، یک راهنمای Refactoring برای برنامه‌نویسان حرفه‌ای است. با این کتاب شما یاد می‌گیرید که چگونه با روشی کنترل شده و کارآمد، کدهای خود را بازسازی یا ریفکتورینگ کنید. خواننده‌ی این کتاب می‌آموزد که چگونه بدون اینکه باگ‌ها را وارد کد کند، ساختار کد را بهبود ببخشد.

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

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

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

کتاب ریفکتورینگ: بهبود طراحی کد موجود برای چه افرادی مناسب است؟


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

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

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

مطالعه‌ی کتاب Refactoring چقدر اهمیت دارد؟


برای آن که نقش و اهمیت ریفکتورینگ کردن کد در توسعه‌ی نرم افزار را درک کنید، کافی است این جمله‌ی مارتین فولر را بخوانید: “هر احمقی می‌تواند کدی بنویسد که رایانه بتواند آن را درک کند. اما برنامه نویسان خوب، کدی می‌نویسند که انسان‌ها بتواند آن را درک کند.”

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

برای استفاده از این کتاب، مهم نیست از چه زبان برنامه نویسی استفاده می‌کنید. برای آن که روند و اصول کلی ریفکتورینگ را درک کنید، خواندن این کتاب را شروع کنید. برای آن که ارزش مطالعه‌ی این کتاب را بدانید، این جمله از دیوید هاینمیر هانسن، سازنده‌ی Roby on Railes کفایت می‌کند:

“هر وقت که کتاب Refactoring را خواندید، وقت آن است که دوباره آن را بخوانید و اگر هنوز آن را نخوانده‌اید، لطفا قبل از نوشتن یک خط کد دیگر، شروع به خواندن آن کنید.”

خوشحال می‌شویم نظرات و تجربیات خود در رابطه با مطالعه‌ی کتاب Refactoring مارتین فولر را با ما و سایر کاربران به اشتراک بگذارید.

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۴ دیدگاه
m ۰۹ خرداد ۱۴۰۰، ۱۱:۳۷
باسلام .
لطفا ممکنه چندتا کتاب خیلی خوب برای یادگیری طراحی الگوریتم معرفی کنید به طوری که بتونیم تفکر الگوریتمی مون را قوی کنیم بیشتر هدفم این است که بتونم الگوریتمها را در بازار های واقعی به کار ببرم یا منی که طراحی الگوریتمم ضعیفه یا تفکر الگوریتمی بلد نیستم بتونم یاد بگیرم
نازنین کریمی مقدم ۰۹ خرداد ۱۴۰۰، ۱۳:۳۹
درود
توصیه میکنم از کتاب مبانی کامپیوتر و الگوریتم قمی شروع کنید و بعد به سراغ کتاب Introduction to Algorithms by Thomas H. Corman (که یکی از بهترین و معروفترینهای این حوزه هست) یا منابع موجود فارسی برای کنکور ارشد برید. اگر امکانش باشه حتما یه مقاله ازشون منتشر میکنیم.
M ۲۱ فروردین ۱۴۰۰، ۲۱:۰۵
ایا این کتاب به فارسی ترجمه شده است ؟
نازنین کریمی مقدم ۲۱ فروردین ۱۴۰۰، ۲۲:۵۴
سلام
خیر این کتاب به زبان انگلیسی نوشته شده و تاکنون هیچ ویرایشی از آن به فارسی برگردانده نشده است.