Paketzyklen – Diagnose, Therapie und Prophylaxe

Slides:



Advertisements
Ähnliche Präsentationen
Modellgetriebene Softwareentwicklung
Advertisements

Present Perfect – Strong and Mixed Verbs
Das Test-Framework JUnit
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
© 2005 Uwe Habermann Visual Extend 9.5 Technical Preview Uwe Habermann Visual Extend Product Manager
SOMA Service-Oriented Mobile learning Architecture.
Seminar Softwaretechnik SS2005 Radouane El Marjani ( ) Institut für Softwaretechnik und theoretische Informatik Fakultät IV -
Continuous Integration mit Jenkins
MDA – Framework AndroMDA
Aurich – Jonas Jacobi OSGi Tutorial Aurich – Jonas Jacobi Das OSGi Service Framework Dynamisches Modulsystem für Java Dynamische.
demo Kostenlos bis 5 Benutzer Entwickelt für kleine Teams Source Control Work Item Tracking Build Automation Mehr… Support für Visual Studio.
Starter Match up these future time markers!
Ist die Schule für sie positiv oder negativ?
Wortschatz angenehm comfortable anstrengend tiring ausgezeichnet outstanding bequem comfortable berühmt famous besser better blöd stupid einfach easy fantastisch.
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Visual Studio 2012 Pre-Launch Event Neno Loje Berater & MVP für Visual Studio ALM, TFS & Scrum, Hansjörg Scherer Microsoft Switzerland.
TEST - RECAP PRESENT PERFECT TENSE
Emergent Architecture Architektur in einer agilen Welt
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Wissen praktisch ablegen
Gruppe Wiederholung!. Man sitzt auf… Der Stuhl Man findet Staate, Länder, Stadte, usw. mit…
Das Leben an der Schule – was sagen die Schüler?
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
Do you know the names for all of the pieces of furniture on your table?
Preparation for Oral Quiz Test Shopping for Clothes By the end of the lesson: You should all be able to complete role plays dealing with buying clothes.
Kapitel 4 Alles für die Schule Lernziel: Talking about class schedules Translation Exercise Antworten.
Freitag den 4. Juli 2008 Guten Tag Herr Polizist, Ich bin einbisschen verloren Können Sie mir helfen? Ich suche das Schloss! Natürlich kann ich helfen,
Present Perfect – Strong and Mixed Verbs German 2.
The prepositions in and an Two way prepositions. What are two-way prepositions? 0 A set of prepositions can take the dative or the accusative case: "an",
Kapitel 4 Alles für die Schule Lernziel: Formation of Plural.
Die Fragen Wörter Wer? Was? Wann?.
Guten Morgen! Montag den Am Dienstag den Test on Unit 2 Aufgabe bis Mittwoch den IA3.1 / LB3.1A,C-D / GR3.1-2.

XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Wann hast du Geburtstag?
Interrogative Words. Interrogative words, also called question words are used to ask for information.
6 Prepositions with ACCUSATIVE
TENSES There are six tenses in English + German present tense: I sing. Ich singe. simple past: I sang. Ich sang. present perfect: I have sung. Ich habe.
The „Perfekt“ tense The German „Perfekt“ tense is a past tense that is similar to the English present perfect. For weak German verbs the rule for forming.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Continuous Integration
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Kapitel 7 Grammar INDEX 1.Comparison 2.Adjectives 3.Adjective Endings Following Ein-Words.
Westfälische Wilhelms-Universität Münster Westfälische Wilhelms-Universität Münster The University of Münster – Institute of Tax Law.
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
What’s the odd one out and why? TeeBananenBier Orangensaft WasserMilsch KaffeeFisch PizzaSalatSchokoladeSandwich SchokoladeOrangenZitronenApfel PizzaFischOrangeChips.
© 2013 TravelTainment Die Buildsysteme Ant und Maven im Vergleich Seminarvortrag von Janina Clever.
Technik und Informatik Project STUMR Team „olimination“ Datum 18. Januar 2011 Eine Präsentation von: Remo Albertani Oliver Burkhalter Steven Heller Thomas.
Folder checken Ratschläge (advice) für zukünftige (future) Schüler, wenn du die das letzte mal nicht gemacht hast (if you did not have time for this last.
EFFORTMANAGEMENT Jan Gerber Simon Hofmann Lukas Nonnenmacher.
EFFORTMANAGEMENT Jan Gerber Simon Hofmann Lukas Nonnenmacher.
Maven NetBeans Platform RCP Development Aljoscha Rittner Sepix GmbH, NetBeans Dreamteam Member
Warum es sich lohnt, eine neue BÖWE-Maschine zu kaufen! / Why it is worth to buy a new BÖWE machine! Ein Vergleich zwischen einer P532 und einer P18 /
Workshop 1 Getting Started 2016 Boris Wylutzki
Apache Camel Christian Schneider
Quantum GIS Kernfunktionen Erweiterungen
Deutsch 1 Die Familie Frau Spampinato
Investitionen sichern - wachse mit Forms in die neue Welt
Continuous Integration mit TeamCity
Senseo Wir erweitern die statischen Informationen mit Hilfe von Laufzeitinformationen. Einbindung in IDE resp. JDT.
Test.
ask where buildings are in a town understand where they are
Business IN THE FAST LANE
Practical Exercises and Theory
Continuous Integration (Kontinuierliche Integration)
TENSES There are six tenses in English + German
1. Wir geben THEM die T-Shirts
 Präsentation transkript:

Paketzyklen – Diagnose, Therapie und Prophylaxe Stefan Schürle Eclipse Demo Camp Mittwoch, 2. Januar 2019

Java 8 02.01.2019 Diagnose

Was ist ein Package Cycle? Java 8 02.01.2019 Was ist ein Package Cycle? Menge von Packages, wobei jedes Package (transitiv) von jedem anderen Package abhängt.

Package Cycle ≠ Class Cycle Java 8 02.01.2019 Package Cycle ≠ Class Cycle Package Cycle Nicht unbedingt ein Class Cycle

Package Cycles erschweren Refactorings Java 8 02.01.2019 Package Cycles erschweren Refactorings

Package Cycles erschweren Refactorings Java 8 02.01.2019 Package Cycles erschweren Refactorings

Package Cycles erschweren Refactorings Java 8 02.01.2019 Package Cycles erschweren Refactorings Testen von Klassen mit direkten Zyklen Explosion der transitiven Abhängigkeiten Erschwerte Möglichkeiten der Modularisierung Wiederverwendung von Teilen unmöglich Nur komplette Produktivnahme möglich Verwüsten u.U. Architektur, z.B. Schichten Unabhängiges Arbeiten an verschiedenen Stellen

Java 8 02.01.2019 Therapie

Algorithmus zur Entfernung von Package Cycles Java 8 02.01.2019 Algorithmus zur Entfernung von Package Cycles Visualisieren Verstehen Mögliche Lösungen ableiten Lösung ausprobieren Behoben? Einchecken oder gehe zu 2.

Usus – Metriken direkt in Eclipse Java 8 02.01.2019 Usus – Metriken direkt in Eclipse Open Source (EPL), http://www.projectusus.org

Usus – Metriken direkt in Eclipse Java 8 02.01.2019 Usus – Metriken direkt in Eclipse Plugin für Eclipse Misst Metriken während des Builds in Eclipse Sofortiges Feedback ohne Context Switch Direkter Hinweis auf verbesserte/verschlechterte Code-Stellen

Usus – Demo: Package Cycle Diagnose Java 8 02.01.2019 Usus – Demo: Package Cycle Diagnose

Algorithmus zur Entfernung von Package Cycles Java 8 02.01.2019 Algorithmus zur Entfernung von Package Cycles Hotspots Graphen Visualisieren Verstehen Mögliche Lösungen ableiten Lösung ausprobieren Behoben? Einchecken oder gehe zu 2. Layouts Filter Refactorings

Java 8 02.01.2019 Prophylaxe

Ziel: Verhindern neuer Package Cycles Java 8 02.01.2019 Ziel: Verhindern neuer Package Cycles automatisiert! automatisiert!

Java 8 02.01.2019 Maven Enforcer Plugin Überprüft Regeln während der Ausführung des Builds Konfiguration über pom.xml Standardregeln Selbst definierte Regeln https://flic.kr/p/Boiy7

NoPackageCyclesRule Selbst geschriebene Regel Verwendet JDepend Java 8 02.01.2019 NoPackageCyclesRule Selbst geschriebene Regel Verwendet JDepend https://github.com/andrena/no-package-cycles-enforcer-rule

Java 8 02.01.2019 Konfiguration

Java 8 02.01.2019 Fehlschlag [WARNING] Rule 0: de.andrena.tools.nopackagecycles.NoPackageCyclesRule failed with message: There are package cycles: Package-cycle found involving de.andrena.golf.course.client.ui.internal.editcourses, de.andrena.golf.course.client.ui.internal.listcourses, de.andrena.golf.course.client.ui.listcourses: de.andrena.golf.course.client.ui.internal.editcourses depends on: de.andrena.golf.course.client.ui.internal.listcourses (CourseEditor) de.andrena.golf.course.client.ui.internal.listcourses depends on: de.andrena.golf.course.client.ui.internal.editcourses (CourseListView$2, CourseListView$3) de.andrena.golf.course.client.ui.listcourses (CourseListView, ReloadCourseListAfterJobDone$1) de.andrena.golf.course.client.ui.listcourses depends on: de.andrena.golf.course.client.ui.internal.listcourses (ReloadCourseList) [ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.2:enforce (enforce-no-package-cycles) on project de.andrena.golf.course.client: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]

Links Project Usus Maven Enforcer Plugin Java 8 02.01.2019 Links Stefan Schürle Mail stefan.schuerle@andrena.de Project Usus http://www.projectusus.org Maven Enforcer Plugin http://maven.apache.org/enforcer/maven-enforcer-plugin/ http://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html No Package Cycles Enforcer Rule https://github.com/andrena/no-package-cycles-enforcer-rule JDepend http://clarkware.com/software/JDepend.html