دانلود کتاب Refactoring: Improving the Design of Existing Code
by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
|
عنوان فارسی: فاکتورگیری مجدد: اصلاح طراحی کد های موجود |
دانلود کتاب
جزییات کتاب
Refactoring، فرآیند تغییر یک سیستم نرم افزاری است به گونه ای که رفتار خارجی کد عوض نشود در حالی که ساختار داخلی آن بهبود پیدا کند. این یک راه اصولی برای تمیز سازی کد است که شانس پدید آمدن باگ را به حداقل میرساند. در اصل زمانی که شما refactor میکنید دارید طراحی کد را بهبود میبخشید پس از آن که کد را نوشتید.
"بهبود طراحی کد پس از نوشتن آن". این عبارت به نوبهی خود، عجیب و غریب است. در درکی که از توسعهی نرم افزار داریم، ما معتقدیم که ابتدا طراحی میکنیم و پس از آن شروع به کد نویسی میکنیم. ابتدا یک طراحی خوب انجام میشود، و به دنبال آن کد نویسی صورت میگیرد. در طول مدت زمانی که کد و یکپارچگی سیستم تغییر خواهد کرد، ساختار آن با توجه به طراحی اش، به تدریج محو میشود.
با Refactoring میتوانید یک طراحی بد و حتی شلخته را بردارید و آن را به یک کد به خوبی طراحی شده تغییر دهید و هر گامی ار آن ساده است. یک فیلد را از کلاسی به کلاسی دیگر انتقال میدهید، قسمتی از کد را از یک متد برداشته و برای آن متدی مجزا مینویسید و کدی را به پایین یا بالا انتقال میدهید. مجموع تاثیرات این تغییرات کوچک میتواند طراحی را به طور اساسی بهبود بخشد. این دقیقا برعکس مفهوم معمول پوسیدگی نرم افزار است.
با فاکتور گیری مجدد، پی میبرید که تعادل کارها تغییر میکند. شما در مییابید که طراحی بیش از اینکه یک بار رخ دهد، به طور مداوم در طول توسعه طراحی مجددا انجام میشود. شما از ساخت یک سیستم یاد میگیرید که چگونه طراحی را بهبود بخشید. نتیجهی این تعامل منجر به برنامه ای میشود که طراحی آن در طول توسعه نیز خوب باقی میماند.
این کتاب راهنمایی برای انجام refactoring است که برای برنامه نویسهای حرفه ای نوشته شده است. هدف من نشان دادن این است که چگونه فاکتور گیری مجدد را به شیوه ای کنترل شده و کارآمد انجام دهید. شما یاد خواهید گرفت که به گونه ای refactor انجام دهید که باگی در کد باقی نگذارید.
Frankly, the reason I bought this book was because Kent Beck was a co-author. His book "Smalltalk Best Practice Patterns" is a classic, even though it is tough to read. Beck knows software development from practical experience, not only theoretical concepts.
I've been programming for 35 years, and this book reaffirmed what I had learned from working on many projects, writing many tens of thousands lines of code, and maintaining millions of lines of code. Write tiny methods. Each method should do one thing and do it well. Avoid duplicate code for many reasons.
I practice the principles in this book everyday. If you understand and practice them too, you will be a better software developer.