Refactoring

Improving the Design of Existing Code

Author: Martin Fowler,Kent Beck,John Brant,William Opdyke,Don Roberts

Publisher: Addison-Wesley

ISBN: 013306526X

Category: Computers

Page: 455

View: 8560

As the application of object technology--particularly the Java programming language--has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Code, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process. With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple--seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay. In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.

Refactoring

wie Sie das Design vorhandener Software verbessern

Author: Martin Fowler

Publisher: N.A

ISBN: 9783827322784

Category:

Page: 440

View: 2955

Refactoring to patterns

Author: Joshua Kerievsky

Publisher: Pearson Deutschland GmbH

ISBN: 9783827322623

Category: Software patterns

Page: 384

View: 483

Entwurfsmuster

Elemente wiederverwendbarer objektorientierter Software

Author: Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides

Publisher: Pearson Deutschland GmbH

ISBN: 9783827330437

Category: Agile software development

Page: 479

View: 747

Effektives Arbeiten mit Legacy Code

Refactoring und Testen bestehender Software

Author: Michael C. Feathers

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 395845903X

Category: Computers

Page: 432

View: 8398

Clean Architecture

Das Praxishandbuch für gutes Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturen

Author: Robert C. Martin

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 3958457266

Category: Computers

Page: 370

View: 3328

Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code

Deutsche Ausgabe

Author: Robert C. Martin

Publisher: MITP-Verlags GmbH & Co. KG

ISBN: 3826696387

Category: Computers

Page: 480

View: 8992

h2> Kommentare, Formatierung, Strukturierung Fehler-Handling und Unit-Tests Zahlreiche Fallstudien, Best Practices, Heuristiken und Code Smells Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code Aus dem Inhalt: Lernen Sie, guten Code von schlechtem zu unterscheiden Sauberen Code schreiben und schlechten Code in guten umwandeln Aussagekräftige Namen sowie gute Funktionen, Objekte und Klassen erstellen Code so formatieren, strukturieren und kommentieren, dass er bestmöglich lesbar ist Ein vollständiges Fehler-Handling implementieren, ohne die Logik des Codes zu verschleiern Unit-Tests schreiben und Ihren Code testgesteuert entwickeln Selbst schlechter Code kann funktionieren. Aber wenn der Code nicht sauber ist, kann er ein Entwicklungsunternehmen in die Knie zwingen. Jedes Jahr gehen unzählige Stunden und beträchtliche Ressourcen verloren, weil Code schlecht geschrieben ist. Aber das muss nicht sein. Mit Clean Code präsentiert Ihnen der bekannte Software-Experte Robert C. Martin ein revolutionäres Paradigma, mit dem er Ihnen aufzeigt, wie Sie guten Code schreiben und schlechten Code überarbeiten. Zusammen mit seinen Kollegen von Object Mentor destilliert er die besten Praktiken der agilen Entwicklung von sauberem Code zu einem einzigartigen Buch. So können Sie sich die Erfahrungswerte der Meister der Software-Entwicklung aneignen, die aus Ihnen einen besseren Programmierer machen werden – anhand konkreter Fallstudien, die im Buch detailliert durchgearbeitet werden. Sie werden in diesem Buch sehr viel Code lesen. Und Sie werden aufgefordert, darüber nachzudenken, was an diesem Code richtig und falsch ist. Noch wichtiger: Sie werden herausgefordert, Ihre professionellen Werte und Ihre Einstellung zu Ihrem Beruf zu überprüfen. Clean Code besteht aus drei Teilen:Der erste Teil beschreibt die Prinzipien, Patterns und Techniken, die zum Schreiben von sauberem Code benötigt werden. Der zweite Teil besteht aus mehreren, zunehmend komplexeren Fallstudien. An jeder Fallstudie wird aufgezeigt, wie Code gesäubert wird – wie eine mit Problemen behaftete Code-Basis in eine solide und effiziente Form umgewandelt wird. Der dritte Teil enthält den Ertrag und den Lohn der praktischen Arbeit: ein umfangreiches Kapitel mit Best Practices, Heuristiken und Code Smells, die bei der Erstellung der Fallstudien zusammengetragen wurden. Das Ergebnis ist eine Wissensbasis, die beschreibt, wie wir denken, wenn wir Code schreiben, lesen und säubern. Dieses Buch ist ein Muss für alle Entwickler, Software-Ingenieure, Projektmanager, Team-Leiter oder Systemanalytiker, die daran interessiert sind, besseren Code zu produzieren. Über den Autor: Robert C. »Uncle Bob« Martin entwickelt seit 1970 professionell Software. Seit 1990 arbeitet er international als Software-Berater. Er ist Gründer und Vorsitzender von Object Mentor, Inc., einem Team erfahrener Berater, die Kunden auf der ganzen Welt bei der Programmierung in und mit C++, Java, C#, Ruby, OO, Design Patterns, UML sowie Agilen Methoden und eXtreme Programming helfen.

JUnit

kurz & gut

Author: Kent Beck

Publisher: O'Reilly Verlag DE

ISBN: 9783897215078

Category: JAVA (Programming language)

Page: 94

View: 601

Visionäre der Programmierung

die Sprachen und ihre Schöpfer

Author: Federico Biancuzzi,Shane Warden

Publisher: O'Reilly Germany

ISBN: 3897219344

Category: Computer algorithms

Page: 485

View: 5495

In Visionare der Programmierung - Die Sprachen und ihre Schopfer werden exklusive Interviews mit den Entwicklern von historischen wie auch von hoch aktuellen Programmiersprachen veroffentlicht. In dieser einzigartigen Zusammenstellung erfahren Sie uber die Hintergrunde, die zu den spezifischen Design-Entscheidungen in den Programmiersprachen gefuhrt haben und uber die ursprungliche Ziele, die die Entwickler im Kopf hatten, als sie eine neue Programmiersprache entwarfen. Ebenso konnen Sie lesen, wieso Abweichungen zum ursprunglichen Design entstanden und welchen Einflu die jeweilige Sprache auf die heutige Softwareentwicklung noch besitzt. Adin D. Falkoff: APL Thomas E. Kurtz: BASIC Charles H. Moore: FORTH Robin Milner: ML Donald D. Chamberlin: SQL Alfred Aho, Peter Weinberger und Brian Kernighan: AWK Charles Geschke und John Warnock: PostScript Bjarne Stroustrup: C++ Bertrand Meyer: Eiffel Brad Cox und Tom Love: Objective-C Larry Wall: Perl Simon Peyton Jones, Paul Hudak, Philip Wadler und John Hughes: Haskell Guido van Rossum: Python Luiz Henrique de Figueiredo und Roberto Ierusalimschy: Lua James Gosling: Java Grady Booch, Ivar Jacobson und James Rumbaugh: UML Anders Hejlsberg: Delphi-Entwickler und fuhrender Entwickler von C#

Software-Engineering mit der Unified Modeling Language

Author: Bernd Kahlbrandt

Publisher: Springer-Verlag

ISBN: 3642566618

Category: Technology & Engineering

Page: 520

View: 9212

Die Unified Modeling Language (UML) ist die Standardnotation für objektorientierte Modelle. Unter durchgehender Verwendung der UML werden wesentliche Bestandteile der objektorientierten Software-Entwicklung dargestellt. Teil 1 führt in Objektorientierung und Grundprinzipien der Softwareentwicklung ein. In Teil 2 werden die Details der aktuellen Version der UML präsentiert. Teil 3 erläutert die Aktivitäten in der Software-Entwicklung entlang der Arbeitsschritte des Unified Process. Kapitel 16 erläutert den Einsatz objektorientierter Anwendungen mit relationalen Datenbanken. Alle benutzten Begriffe werden im Text erläutert. Im Glossar findet der Leser ggf. auch abweichende Verwendung von Begriffen.

Objektorientierte Analyse & Design von Kopf bis Fuss

Author: Brett D. McLaughlin,Gary Pollice,David West

Publisher: O'Reilly Germany

ISBN: 3955619478

Category: Computers

Page: 632

View: 423

Kluge Bücher über Objektorientierte Analyse & Design gibt es viele. Leider versteht man die meisten erst, wenn man selbst schon Profi-Entwickler ist... Und was machen all die Normalsterblichen, die natürlich davon gehört haben, dass OOA&D dazu beiträgt, kontinuierlich tolle Software zu schreiben, Software, die Chef und Kunden glücklich macht - wenn sie aber nicht wissen, wie sie anfangen sollen? Sie könnten damit beginnen, dieses Buch zu lesen! Denn Objektorientierte Analyse & Design von Kopf bis Fuß zeigt Ihnen Schritt für Schritt, wie Sie richtige OO-Software analysieren, entwerfen und entwickeln. Software, die sich leicht wiederverwenden, warten und erweitern lässt. Software, die keine Kopfschmerzen bereitet. Software, der Sie neue Features spendieren können, ohne die existierende Funktionalität zu gefährden. Sie lernen, Ihre Anwendungen flexibel zu halten, indem Sie OO-Prinzipien wie Kapselung und Delegation anwenden. Sie lernen, die Wiederverwendung Ihrer Software dadurch zu begünstigen, dass Sie das OCP (das Open-Closed-Prinzip) und das SRP (das Single-Responsibility-Prinzip) befolgen. Sie lernen, wie sich verschiedene Entwurfsmuster, Entwicklungsansätze und Prinzipien zu einem echten OOA&D-Projektlebenszyklus ergänzen, UML, Anwendungsfälle und -diagramme zu verwenden, damit auch alle Beteiligten klar miteinander kommunizieren können, und Sie die Software abliefern, die gewünscht wird. Diesem Buch wurden die neuesten Erkenntnisse aus der Lerntheorie und der Kognitionswissenschaft zugrunde gelegt - Sie können davon ausgehen, dass Sie nicht nur schnell vorankommen, sondern dabei auch noch eine Menge Spaß haben!

Agile Software Development Quality Assurance

Author: Stamelos, Ioannis G.

Publisher: IGI Global

ISBN: 1599042185

Category: Computers

Page: 266

View: 6336

"This book provides the research and instruction used to develop and implement software quickly, in small iteration cycles, and in close cooperation with the customer in an adaptive way, making it possible to react to changes set by the constant changing business environment. It presents four values explaining extreme programming (XP), the most widely adopted agile methodology"--Provided by publisher.

Software Applications: Concepts, Methodologies, Tools, and Applications

Concepts, Methodologies, Tools, and Applications

Author: Tiako, Pierre F.

Publisher: IGI Global

ISBN: 1605660612

Category: Computers

Page: 3994

View: 8834

Includes articles in topic areas such as autonomic computing, operating system architectures, and open source software technologies and applications.

Langlebige Software-Architekturen

Technische Schulden analysieren, begrenzen und abbauen

Author: Carola Lilienthal

Publisher: dpunkt.verlag

ISBN: 3960882459

Category: Computers

Page: 304

View: 2706

Zu Beginn eines Projekts erarbeiten die Architekten und das Entwicklungsteam eine zugeschnittene Architekturblaupause für die anstehende Entwicklung. Aber während der Implementierung weicht das Team häufig ungewollt von dieser Vorgabe ab. Die Folge davon: Die Architektur des Systems erodiert, die Komplexität nimmt zu, und es werden technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer aufwendiger. In diesem Buch zeigt die Autorin, welche Fehler in Softwareprojekten bei der Umsetzung der Architektur vermieden werden sollten und welche Prinzipien eingehalten werden müssen, um langlebige Architekturen zu entwerfen oder bei bestehenden Systemen zu langlebigen Architekturen zu gelangen. Sie geht auf Muster in Softwarearchitekturen und Mustersprachen ein, erläutert verschiedene Architekturstile und zeigt, welche Vorgaben letztlich zu Architekturen führen, die für Entwickler noch gut durchschaubar sind. Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen werden schlechte und gute Lösungen verständlich und nachvollziehbar dargestellt. Empfehlungen und vielfältige Hinweise aus Praxisprojekten erlauben dem Leser einen direkten Transfer zu seiner täglichen Arbeit. Die 2. Auflage misst Microservices und Domain-Driven Design mehr Gewicht bei. Hinzugekommen sind die Themen Vergleichbarkeit von verschiedenen Systemen durch den Modularity Maturity Index sowie Mob Architecting. "Ihre langjährigen Erfahrungen auf dem Gebiet der Architekturanalyse von Systemen unterschiedlicher Technologien sind einzigartig. Dadurch stellt sie [Carola Lilienthal] in jedem Winkel dieses Buches den nötigen Praxisbezug her." Aus dem Geleitwort von Gernot Starke