Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Refactoring von Martin Fowler - Ein Überblick

David Tielke13:31 6.359 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 103 Zeilen
Herunterladen
  1. hallo und ein ganz wunderschönen tag und wieder einmal herzlich willkommen zu einem neuen lern video hier auf breiten kanal entwickler lieben ist und würden
  2. uns am liebsten den ganzen tag tun projektmanager auf der anderen seite mögen das meist überhaupt nicht um meiden wie der teufel das weihwasser
  3. die rede ist von einem refactoring ich zeige dir heute warum überhaupt eine factoring machen musst was das überhaupt ist und welche voraussetzungen dafür
  4. unbedingt haben muss in der anwendung danach zeige ich dir warum allein refactoring eigentlich kein weg vorbeiführt was die gefahr dabei ist und
  5. wenn du ganz bis zum ende dann bleibst verrate ich dir im profi tipp wie genau ich grocery factorings beim 1 auch in dieser woche sollte dabei nicht
  6. leer ausgehen und in kooperation mit dem rhein berg it verlag können wir wieder ein fachbuch aus deren umfangreichen entwickler programm verlosen in dieser
  7. woche habe ich dazu das buch entwurf muss er von matthias kairos ausgewählt wie du an dieser verlosung teilnehmen kannst das verrate ich dir wie immer am
  8. ende dieses videos mein name ist david ilka ich bin freiberuflicher berater coach und trainer für die themen softwarequalität softwarearchitektur und
  9. alles was spaß macht im bereich des software den weg auf die zum kanal möchte ich dir meinen wissen ja vermitteln dass mit den teilen und sich
  10. damit von video zu video ein kleines stückchen besser wenn dir das video gefällt wird ist mir mit einem like und einem abo sie dabei helfen noch mehr
  11. entwickler jeden tag ein kleines stückchen besser zu machen wie immer verlieren wir nicht noch mehr zeit und schaum das thema refactoring mal im
  12. detail [Musik]
  13. was ist so ein refactoring denn jetzt überhaupt wenn wir software entwickeln dann schreiben wir mit quellcode statements um die funktionalen
  14. anforderungen umzusetzen und erstellen aus verschiedenen arten von systemen eine modularisierung darum zum beispiel mit methoden passenden komponenten
  15. schichten diensten und natürlich der anwendung selbst damit werden dann die nicht funktionalen anforderungen einer anbindung umgesetzt
  16. jedes dieser angesprochenen systeme funktioniert dabei nachdem eva prinzip hat also an der eingabe eine verarbeitung und eine ausgabe für die
  17. betrachtung des factorings fassen wir an dieser stelle die eingabe und die ausgabe zu einem sammelbegriff zusammen den sogenannten verhalten und die
  18. verarbeitung taufen wir kurzerhand um wenn dem begriff innere struktur leicht andere begriffe die bedeutung bleibt aber unverändert ein refactoring führen
  19. wir jetzt immer dann durch wenn wir mit der inneren struktur eines systems nicht zufrieden sind und dieses ändern möchte das heißt wenn wir mit den methoden in
  20. einer klasse nicht zufrieden sind führen wir einen refactoring durch wenn wir mit den klassen einer komponente nicht zufrieden sind würden wir an effekt
  21. bringen durch und sind wir mit der gesamten struktur einer anwendung ich zufrieden führen wir auch unterbringen wie du siehst kann man solche wie
  22. factorings in vielen bereichen durchführt als entwickler auf ebene der software designs oder auch als architekt auf ebene der software architektur oder
  23. der systemarchitektur egal auf welcher ebene das treffen durchführen möchte ist entscheidend ist dabei dass beide änderung der struktur das äußere
  24. verhalten des betrachteten systems vollständig konstant bleibt zusammengefasst also ein refactoring ist eine strukturelle änderung in teilen
  25. eine software produkte ohne dabei jedoch funktionen zu ändern oder hinzuzufügen warum und vor allen dingen wann soll es jetzt also so ein refactoring
  26. durchführen sowohl entwickler als auch architekten kennen das eine lösung fand man am anfang noch gut und irgendwann dann gefällt an die
  27. lösung irgendwie nicht wirklich immer möchte gerne so ein refactoring durchführen oder es ändern sich die nicht funktionalen anforderungen in
  28. einem projekt und daraufhin muss ein struktureller umbau gemacht werden wichtig dabei ist so eine factoring ist meist unglaublich aufwendig und teuer
  29. hat muss also dem projektmanager vorgesetzt unser chef an mehrwert dafür geben dass dieses geld in das gewünschte effekt bringen investiert wird
  30. die eben schon angesprochen ändern wir beim refactoring nur die struktur damit die nicht funktionalen anforderungen somit und das ist ganz ganz wichtig
  31. arbeiten wir an den qualitäts attributen die lesbarkeit fahrbarkeit modifizierbar keiten austauschbarkeit testpaket und so weiter und so fort
  32. da musste immer dann ein refactoring durchführen wenn einer oder mehrere dieser qualitäts attribute nicht wie erforderlich umgesetzt wurden im mittel
  33. was er in der kommunikation nach oben zu eurem vorgesetzten und als totschlagargument verwenden könnt ist die so genannte technische schuld dazu
  34. haben wir auf dem kanal schon ein video gemacht falls das verpasst haben soll das denke ich das nochmal hier oben rechts in der ecke mit der technischen
  35. schuld wird die dauer beschrieben die benötigt wird um in einem projekt von allen ist zustand zu einem soll zustand zu kommen habt ihr also ein projekt
  36. entwickelt dann hat das an ist zustand wurde dies aber beispielsweise so entwickelt dass die lesbarkeit des quellcodes und damit die komplexität so
  37. hoch geworden ist dass du in dem projekt kaum noch arbeiten kannst so habt ihr durch gemachte fehler nicht in idealzustand also die sauber
  38. programmierte und strukturierte anwendung die technische schuld beschreibt also die zeit die ihr in einem reh factoring investieren müsst um
  39. von eurem soll zustand zu dem angestrebten ist-zustand zu re faktoren das ist dass pecik linke deutsche wort für refactoring zusammengefasst heißt
  40. dass ihr nutzt ein refactoring um angehäufte technische schulden zu reduzieren um damit die qualitativen attribute einer dann zu machen aber
  41. einfach so drauflos re faktor ihren ist meistens nicht es gibt eine wichtige voraussetzungen die du beachten musste bevor du einen refactoring angeht
  42. schauen wir uns mal an welcher das ist mit einem refactoring wird nur die struktur nicht aber das verhalten
  43. geändert mit anderen worten einen durchgeführtes refactoring ist immer dann erfolgreich wenn nachher mindestens ein qualitäts attribut besser geworden
  44. ist ohne dass dabei die funktionalität geändert wurde klingt einfach aber leider nur in der theorie
  45. jeder weiß dass bei der erweiterung oder dem verändern von funktionalitäten sehr schnell ein fehler also einen weg entstehen kann ohne dass das in
  46. irgendeiner art und weise von euch als entwickler bemerkt werden werden nun große teile der anwendung gebaut ist diese gefahr selbstverständlich
  47. ebenfalls da und wenn ihr mich fragt sogar noch wesentlich wahrscheinlicher als bei einer kleinen funktional änderung oder eine erweiterung laden wir
  48. bei unseren einleitenden abstrakten beispiel mit unseren systemen wenn einem refactoring bedeutet dass nur die innere struktur und nicht das
  49. verhalten geändert wird muss also am ende bewiesen werden mehr oder weniger dass eben dieses verhalten noch so ist wie vor und das mittel der wahl sind
  50. dabei natürlich sortiertes das heißt auf quellcode ebene könnten mehrere unitis auf dienst ebene mehrere services und auf anwendungsebene natürlich mehrere
  51. systemtest dafür sorgen dass nach dem refactoring die unversehrtheit des verhaltens gegeben ist und genau da liegt in der praxis oftmals
  52. der hund begraben oder er das rudel runde denn wie oft kommt es denn vor dass in einem system wirklich eine ausreichende
  53. testabdeckung vorherrscht und so eine verifikation tatsächlich möglich ist glaubt meine erfahrung ganz ganz ganz selten ganz ehrlich selbst wenn solche
  54. test geschrieben wurden ist es von großer wichtigkeit dass hier nur blackbox festgeschrieben worden also tests ohne jegliche annahme über die
  55. innere struktur welche jahr geändert werden sollen in der praxis ist es häufig an problemen und deshalb werden leider viele refactoring mit einem enorm
  56. hohen risiko betrieben oftmals ist die fehler situation nach einem refactoring extrem belastend für ein unternehmen und da kommt oftmals
  57. auch ja sein wirklich fürchterlich hoch besonders im management weil viele tests und schlechter hof hin oder her ein reh factorings sind in nahezu jedem projekt
  58. eigentlich unausweichlich neben gezeigt nutzt du einen refactoring immer dann wenn du technische schulden reduzieren möchte ist auch wenn der begriff schuld
  59. ist leider suggeriert es muss nicht immer zwingend die schuld eines entwicklers oder eines architekten sein dass diese entsteht oftmals entsteht sie
  60. beispielsweise weil im laufe des projektes plötzlich ein qualitäts attribut wie wiederverwendbarkeit austauschbarkeit oder testtag als
  61. plötzlich eine unglaublich hohe relevanz bekommen warum auch immer oder weil eine anwendung plötzlich skalieren muss partiell ausfallsicher
  62. sein muss oder in einzelnen bestandteilen unabhängig bereitgestellt werden kurz gesagt in jedem projekt existiert eine solche technische schuld
  63. und wächst von tag zu tag weiter an wie stark dieser anstieg ist hängt davon ab wie ernst ihr das thema software-qualität wird falls da noch
  64. nachholbedarf es flink ich dafür auch noch mal hier oben rechts in der ecke das entsprechende video zum thema software-qualität zusammengefasst werdet
  65. ihr also früher oder später um ein refactoring nicht herumkommen um einen oder mehrere qualitätsanbieter erfüllen zu können oder stärken
  66. aber so klar und einleuchtend dass aus sicht eines entwicklers oder eines architekten auch ist so problematisch ist es für das projektmanagement bzw für
  67. das unternehmen ansicht wie jetzt wiederholt erwähnt wurde wird in einem reflektor nur die struktur nicht das verhalten geändert da sich frings meist
  68. auf größere teile der anwendung beziehen meistens sind es wie gesagt sogar die ganze anwendung dauert so ein refactoring auch dementsprechend lange
  69. das heißt wenn ihr einen refactoring durchführt was mehrere monate oder gar jahre dauert in das tier sehr viele ressourcen ohne dass sie in dieser zeit
  70. dem kunden einen funktionalen mehrwert liefern können und das ist oftmals das tatsächliche problem und meistens auch das ko kriterium in einem praxisprojekt
  71. gut machen wir als halb refactoring und halb feature entwicklung ist das jetzt vielleicht denken ist aber auch nicht so einfach nahezu in jeder modernen
  72. entwicklung nutzt man einen quellcode verwaltung und darin enthaltene branches wer denn nun in einem branche einen modus komplett restrukturiert und in
  73. einem parallelen feature plant eine erweiterung oder eine veränderung daran durchführt zu bekommt die ernste probleme beim späteren virgin dieser
  74. brandschutz das heißt parallele entwicklung und gleichzeitig rief er krimis unglaublich schwer die welt also wohl oder übel entweder keine funktion
  75. mehr liefern oder euch eine andere strategie überlegen ist aber unterschätzt diesem aspekt bitte nicht darüber sind schon ganz ganz viele
  76. unternehmen gestolpert und sehr tief gefallen das könnt ihr mir glauben aber wie macht man das dann jetzt in der praxis schauen wir uns das mal an im
  77. praxis wenn du als entwickler oder als architekt ein refactoring anstrebt gibt
  78. es genau zwei probleme zum einen musst du deinen vorgesetzten davon überzeugen weil der die schließlich die zeit dazu einräumen muss ohne am ende einen
  79. funktionalen mehrere zu bekommen und dieser muss die kunden während dieser zeit in irgendeiner art machen selber laune halten und ihn erklären warum für
  80. eine längere zeit und kein funktionalitäten wer der zukunft überzeugungsarbeit bei deinem vorgesetzten ist dabei obwohl es
  81. zunächst komisch klingt das größere problem aber hier hilft die gezeigte argumentation über die qualitäts attribute und die technische schuld
  82. versucht transparent und ehrlich aufzuzeigen was ist die ursache für die technische schuld zum beispiel schlechte anforderungen oder versäumnisse von euch
  83. und zeigt gleichzeitig aber auch so transparent und ehrlich wie möglich die resultierenden konsequenzen auf beispielsweise das feature immer länger
  84. dauern oder bestimmte unternehmensziele wie eingang in die cloud mit der aktuellen struktur so nicht umsetzbar ist ein vorgesetzter ist von rhi
  85. factorings nie begeistert wenn aber die risiken aufgezeigt werden wenn es nicht gemacht wird es ist meistens das argument was diesem schalter genau
  86. umlegen kann und wenn alles nichts hilft und steht ihm am besten einfach ein link zu diesem video danach wie das ganze ja verstehen dass überzeugen der kunden was
  87. meist nur bei großen refactoring notwendig ist ist meistens wesentlich einfacher als alle beteiligten zum anfang an dem aus meiner langjährigen
  88. erfahrung kann ich euch hier nur raten das ganze ehrlich und transparent zu machen genau wie vor dem vorgesetzten wenn die probleme in großen teilen aber
  89. struktur haben dann ist das dem kunden meistens eh schon aufgefallen dann gibt es ganz bestimmt schon eine große unzufriedenheit bei der entwicklungszeit
  90. von funktionen der großen zahl von bugs oder irgendein anderes problem ist zudem durch gekommen erklärt ehrlich und transparenz dass sie dieses problem
  91. erkannt habt und in jetzt ja jetzt in seinem sinne an genau dieser verbesserung arbeiten wollte damit die anwendung in zukunft besser wird und
  92. seine zufriedenheit steigt wie schon gesagt damit habe ich in meiner karriere eigentlich immer sehr sehr gute erfahrungen macht und auch wenn das dann
  93. kein refactoring ist es hält euch ja auch niemand davon ab zusammen mit dem refactoring wenn die größte teil des co neu schreibt also nicht nur um baut das
  94. eine oder andere feature zu implementieren was die kunden ist schon lange haben wollen dann kann man oftmals dieses feature ebenfalls noch als
  95. treiber für genau dieses wie factoring verkauft ich stand am anfang des videos gesagt kannst du heute wieder etwas gewinnen
  96. und zwar das buch entwurfs muster von matthias kraus vom rhein berg vertiefen an dieser stelle nochmal herzlichen dank für ein werk für diese tolle unterstütze
  97. alles was du für diese teile machen muss ist das video hier zu liken wegen kanal zu abonnieren und dann unterhalb von diesem video einen kommentar zu
  98. schreiben aufpassen mit deinem job argument gegenüber dem vorgesetzten warum du ein refactoring machen und auch die
  99. antworten bin ich richtig richtig gespannt den gewinner des preises wo sich dann in einem monat aus und benachrichtigt
  100. diejenige oder denjenigen dann entsprechend darüber gewonnen hast du hoffentlich heute nach diesem video an wissen mit treuem motto konnte ich dich
  101. damit in diesem video wieder ein kleines stückchen besser machen wie immer hilfst du mir mit einem aber und einem like unter diesem video dabei noch mehr
  102. entwickler jeden tag ein kleines stückchen besser zu machen solltest du jetzt noch nicht genug haben und haben hier auf der rechten seite gibt es
  103. nochmal ein paar videos dazu ist wirklich die einen erfolgreichen tag viel spaß bei der arbeit bis zum nächsten mal

Zum Nachlesen