Refactoring with Relations. A New Method for Refactoring Object-Oriented Software

Refactoring with Relations. A New Method for Refactoring Object-Oriented Software

Author: Sergio Pissanetzky, Jr.

Publisher: SciControls.com

Published: 2006-07

Total Pages: 84

ISBN-13: 0976277549

DOWNLOAD EBOOK

This electronic book discusses refactoring with support from the relational model of computer programs. Code in all programming languages needs refactoring, and a multi-language refactoring engine is needed to refactor that code. Refactoring is about structure, and the book is about structure. The book proceeds to discuss the structure of code, argues that it needs to be identified, separated from language constructs, and encapsulated into a container. The encapsulated structure is preserved in a pristine state and serves as an invariant point of reference for the refactoring transformations.The book defines "bad" code as one with a damaged structure and "good" code as one with a properly encapsulated and logically sound structure. The book proposes the relational model as the container for the structure of the program and to serve as a language-independent, non-object-oriented repository with sufficient information to support refactoring. Relations are covered as a fundamental mathematical tool used to describe structure. The model can be created from existing code by a specialized parser, and a sparse matrix partitioning algorithm can create the refactored classes by recursively encapsulating user types. The combination of the model and the algorithm makes automatic polyglot refactoring of computer code possible. The model provides for integration of refactoring tools and development tools into one platform.The book also demonstrates that deep refactoring converts "bad" code into Strong Ownership code, a programming style described in the book, and demonstrates that the need for refactoring may be reduced by following the Strong Ownership prescriptions during development. The book includes many practical examples, presents experimental evidence, discusses various applications and possible implementations, and covers details of the process of refactoring with relational support, as well as the conversion from the model to final object-oriented code.Relational support for refactoring is a new concept. The production of tools will take time, meanwhile, developers are advised to mind Strong Ownership techniques. This is an 83-page eBook in PDF format presenting refactoring in a new light and a much larger scale. Downloads are provided and a page sample is available from SciControls.com. The page sample is a pdf file with the preface, table of contents, index, and some selected pages.


Refactoring

Refactoring

Author: Martin Fowler

Publisher: Addison-Wesley Professional

Published: 1999

Total Pages: 461

ISBN-13: 0201485672

DOWNLOAD EBOOK

Refactoring is gaining momentum amongst the object oriented programming community. It can transform the internal dynamics of applications and has the capacity to transform bad code into good code. This book offers an introduction to refactoring.


Refactoring for Software Design Smells

Refactoring for Software Design Smells

Author: Girish Suryanarayana

Publisher: Morgan Kaufmann

Published: 2014-10-31

Total Pages: 259

ISBN-13: 0128016469

DOWNLOAD EBOOK

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 designprinciples) that contribute to technical debt in software projects - Presents a unique naming scheme for smells that helps understand the cause of a smell as well as pointstoward its potential refactoring - Includes illustrative examples that showcase the poor design practices underlying a smell and the problemsthat result - Covers pragmatic techniques for refactoring design smells to manage technical debt and to create and maintainhigh-quality software in practice - Presents insightful anecdotes and case studies drawn from the trenches of real-world projects


The Art of Agile Development

The Art of Agile Development

Author: James Shore

Publisher: "O'Reilly Media, Inc."

Published: 2008

Total Pages: 436

ISBN-13: 0596527675

DOWNLOAD EBOOK

For those considering Extreme Programming, this book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience. While plenty of books address the what and why of agile development, very few offer the information users can apply directly.


Refactoring

Refactoring

Author: Jay Fields

Publisher: Pearson Education

Published: 2009-10-15

Total Pages: 555

ISBN-13: 0321604172

DOWNLOAD EBOOK

The Definitive Refactoring Guide, Fully Revamped for Ruby With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What’s more, they can do it one step at a time, through a series of simple, proven steps. Now, there’s an authoritative and extensively updated version of Martin Fowler’s classic refactoring book that utilizes Ruby examples and idioms throughout–not code adapted from Java or any other environment. The authors introduce a detailed catalog of more than 70 proven Ruby refactorings, with specific guidance on when to apply each of them, step-by-step instructions for using them, and example code illustrating how they work. Many of the authors’ refactorings use powerful Ruby-specific features, and all code samples are available for download. Leveraging Fowler’s original concepts, the authors show how to perform refactoring in a controlled, efficient, incremental manner, so you methodically improve your code’s structure without introducing new bugs. Whatever your role in writing or maintaining Ruby code, this book will be an indispensable resource. This book will help you Understand the core principles of refactoring and the reasons for doing it Recognize “bad smells” in your Ruby code Rework bad designs into well-designed code, one step at a time Build tests to make sure your refactorings work properly Understand the challenges of refactoring and how they can be overcome Compose methods to package code properly Move features between objects to place responsibilities where they fit best Organize data to make it easier to work with Simplify conditional expressions and make more effective use of polymorphism Create interfaces that are easier to understand and use Generalize more effectively Perform larger refactorings that transform entire software systems and may take months or years Successfully refactor Ruby on Rails code


Refactoring JavaScript

Refactoring JavaScript

Author: Evan Burchard

Publisher: "O'Reilly Media, Inc."

Published: 2017-03-13

Total Pages: 441

ISBN-13: 1491964898

DOWNLOAD EBOOK

How often do you hear people say things like this? "Our JavaScript is a mess, but we’re thinking about using [framework of the month]." Like it or not, JavaScript is not going away. No matter what framework or ”compiles-to-js” language or library you use, bugs and performance concerns will always be an issue if the underlying quality of your JavaScript is poor. Rewrites, including porting to the framework of the month, are terribly expensive and unpredictable. The bugs won’t magically go away, and can happily reproduce themselves in a new context. To complicate things further, features will get dropped, at least temporarily. The other popular method of fixing your JS is playing “JavaScript Jenga,” where each developer slowly and carefully takes their best guess at how the out-of-control system can be altered to allow for new features, hoping that this doesn’t bring the whole stack of blocks down. This book provides clear guidance on how best to avoid these pathological approaches to writing JavaScript: Recognize you have a problem with your JavaScript quality. Forgive the code you have now, and the developers who made it. Learn repeatable, memorable, and time-saving refactoring techniques. Apply these techniques as you work, fixing things along the way. Internalize these techniques, and avoid writing as much problematic code to begin with. Bad code doesn’t have to stay that way. And making it better doesn’t have to be intimidating or unreasonably expensive.


Refactoring to Patterns

Refactoring to Patterns

Author: Joshua Kerievsky

Publisher: Addison-Wesley Professional

Published: 2005

Total Pages: 408

ISBN-13:

DOWNLOAD EBOOK

Kerievsky lays the foundation for maximizing the use of design patterns by helping the reader view them in the context of refactorings. He ties together two of the most popular methods in software engineering today--refactoring and design patterns--as he helps the experienced developer create more robust software.


Information Systems Transformation

Information Systems Transformation

Author: William M. Ulrich

Publisher: Morgan Kaufmann

Published: 2010-02-04

Total Pages: 449

ISBN-13: 0080957102

DOWNLOAD EBOOK

Every major enterprise has a significant installed base of existing software systems that reflect the tangled IT architectures that result from decades of patches and failed replacements. Most of these systems were designed to support business architectures that have changed dramatically. At best, these systems hinder agility and competitiveness and, at worst, can bring critical business functions to a halt. Architecture-Driven Modernization (ADM) restores the value of entrenched systems by capturing and retooling various aspects of existing application environments, allowing old infrastructures to deliver renewed value and align effectively with enterprise strategies and business architectures. Information Systems Transformation provides a practical guide to organizations seeking ways to understand and leverage existing systems as part of their information management strategies. It includes an introduction to ADM disciplines, tools, and standards as well as a series of scenarios outlining how ADM is applied to various initiatives. Drawing upon lessons learned from real modernization projects, it distills the theory and explains principles, processes, and best practices for every industry. Acts as a one-stop shopping reference and complete guide for implementing various modernization models in myriad industries and departments Every concept is illustrated with real-life examples from various modernization projects, allowing you to immediately apply tested solutions and see results Authored by the Co-chair of the Object Management Group (OMG) Architecture-Driven Modernization (ADM) Task Force, which sets definitive systems modernization standards for the entire IT industry A web site supports the book with up to date coverage of evolving ADM Specifications, Tutorials, and Whitepapers, allowing you to remain up to date on modernization topics as they develop


Refactoring Databases

Refactoring Databases

Author: Scott W. Ambler

Publisher: Pearson Education

Published: 2006-03-03

Total Pages: 554

ISBN-13: 0321630173

DOWNLOAD EBOOK

Refactoring has proven its value in a wide range of development projects–helping software professionals improve system designs, maintainability, extensibility, and performance. Now, for the first time, leading agile methodologist Scott Ambler and renowned consultant Pramodkumar Sadalage introduce powerful refactoring techniques specifically designed for database systems. Ambler and Sadalage demonstrate how small changes to table structures, data, stored procedures, and triggers can significantly enhance virtually any database design–without changing semantics. You’ll learn how to evolve database schemas in step with source code–and become far more effective in projects relying on iterative, agile methodologies. This comprehensive guide and reference helps you overcome the practical obstacles to refactoring real-world databases by covering every fundamental concept underlying database refactoring. Using start-to-finish examples, the authors walk you through refactoring simple standalone database applications as well as sophisticated multi-application scenarios. You’ll master every task involved in refactoring database schemas, and discover best practices for deploying refactorings in even the most complex production environments. The second half of this book systematically covers five major categories of database refactorings. You’ll learn how to use refactoring to enhance database structure, data quality, and referential integrity; and how to refactor both architectures and methods. This book provides an extensive set of examples built with Oracle and Java and easily adaptable for other languages, such as C#, C++, or VB.NET, and other databases, such as DB2, SQL Server, MySQL, and Sybase. Using this book’s techniques and examples, you can reduce waste, rework, risk, and cost–and build database systems capable of evolving smoothly, far into the future.