» » Refactoring for Software Design Smells: Managing Technical Debt

Download Refactoring for Software Design Smells: Managing Technical Debt epub

by Girish Suryanarayana

Awareness of design smells – indicators of common design problems – helps developers or software engineers understand mistakes made while designing, what design principles were overlooked or misapplied, and what principles need to be applied properly to address those smells through refactoring. Developers and software engineers may "know" principles and patterns, but are not aware of the "smells" that exist in their design because of wrong or mis-application of principles or patterns. These smells tend to contribute heavily to technical debt – further time owed to fix projects thought to be complete – and need to be addressed via proper refactoring.Refactoring for Software Design Smells presents 25 structural design smells, their role in identifying design issues, and potential refactoring solutions. Organized across common areas of software design, each smell is presented with diagrams and examples illustrating the poor design practices and the problems that result, creating a catalog of nuggets of readily usable information that developers or engineers can apply in their projects. The authors distill their research and experience as consultants and trainers, providing insights that have been used to improve refactoring and reduce the time and costs of managing software projects. Along the way they recount anecdotes from actual projects on which the relevant smell helped address a design issue.Contains a comprehensive catalog of 25 structural design smells (organized around four fundamental design principles) that contribute to technical debt in software projectsPresents a unique naming scheme for smells that helps understand the cause of a smell as well as points toward its potential refactoringIncludes illustrative examples that showcase the poor design practices underlying a smell and the problems that resultCovers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintain high-quality software in practicePresents insightful anecdotes and case studies drawn from the trenches of real-world projects
Download Refactoring for Software Design Smells: Managing Technical Debt epub
ISBN: 0128013974
ISBN13: 978-0128013977
Category: Technology
Subcategory: Programming
Author: Girish Suryanarayana
Language: English
Publisher: Morgan Kaufmann; 1 edition (November 17, 2014)
Pages: 258 pages
ePUB size: 1908 kb
FB2 size: 1660 kb
Rating: 4.8
Votes: 317
Other Formats: mobi rtf txt docx

I have read a lot of material and papers on Technical Debt in hopes of guiding our management that short-cuts will eventually have to be payed for in someway. There is always a cost in developing poorly structured software systems. This book presents a very good explanation of the cost and traps with designs that have deep Technical short comings embedded in it. If I had only one comment to make it would be to drop or replace the word Smells. It is not a good approach to use if you are trying to convince an audience to change strong embedded habits. practical
Essential for anyone looking to expand their design and code review skills. I wish more devs would learn this stuff.
I liked the way Technical debt concept was explained. In depth explanation of each object oriented principles and its smells (taking examples from JDK for most of the smells made me understand about each smell in detail since I already knew Java).

I like the hand-drawn figures as well. For example, I liked using Smiley to explain Abstraction principle - I felt anyone who is new to OOP also can relate and understand it easily.

Finally the appendix was really useful to evaluate various tools available in market to repay technical debt.

I felt 250 or so pages is not enough for a practical book of this kind - I wanted more!
I am currently following this book and I must admit that the book is too good.

The simple language, the examples and illustrations, the refactoring suggestions are easy to understand and implement. The case studies and anecdotes given in the book make it more interesting.

The concept of Technical Debt has been nicely explained. The design smells, their classification and details have been presented very well.
The appendix speaks about the tools that can be used for identifying design smells.
Most importantly, the book is very handy and I can carry it all the time with me.

After reading the book, when I analysed my code for design smells, I was surprised with the results :) Code Refactoring is the way to go for sure, but this book gives you a direction for that. I definitely feel benefited with the book. I feel I have been augmented with a better vision altogether.

My recommendation is that every developer should read this book at least once.

Lastly, I thank the esteemed authors who have done a brilliant job of sharing their knowledge in a simple yet very powerful and effective way.
Kudos to you guys and thanks a ton for writing this book!
The book itself provides a great and detailed explanation about design smells and the way each one of them can affect the software.
I would highly recommend it for reading in both industrial and academic context.
In this book, the complicated design concepts described in very easy way. Classification of design smell is very clear and informative. The explanation flow in each chapter is consistent for easy understanding. Each smell is explained with real examples. The hand-drawn diagrams look nice, powerful and easy to understand. Thank You authors, for the great job.
Refactoring for design smells is an excellent read. It's very comprehensive and covers most of the design smells and importantly, the book goes about its job in a very easy, understandable manner. The writing style along with the examples makes the concepts look simple and more understandable.