Probleme beim Einloggen
Christian Rehn LSP
Nächste Frage zu einem Prinzip. Es geht immer noch um die Design Cards. Diesmal wäre meine Frage wer LSP einsetzt und wie häufig.
LSP ist mir durchaus bekannt, ich kenne das Kreis-Ellipse-Problem, die verschiedenen Lösungen desselben, ich weiß, dass quasi jedes Problem, das mit Vererbung zusammenhängt, eine Spielart dieses Problems ist und dass man da also überall LSP bedenken kann. Und trotzdem: Ich selbst bedenke bzw. nutze LSP recht selten.
Meine These ist, dass LSP besonders wichtig für Entwickler von Frameworks und Libraries ist und ansonsten nur, wenn man ein komplexes Domänenmodell hat.
Also Hand aufs Herz: Wie sieht es mit praktischen Erfahrungen zu LSP aus?
Christian Rehn Stefan Lieser
+3 weitere Kommentare
Letzter Kommentar:
Alexander Orlovsky Such nach Jasmine Mentoren
Hi all, bei der Projekten wo überall Angular eingesetzt, wird ich stelle fest, dass sehr sehr schwierig es vernünftig zu testen, deshalb ich such die Mentoren die schon mit Jasmine folgendes getestet haben:
JaxRS mit NodesJs, testen von Routen , testen von Komponenten, Gute Richtlinien bei der Java Script Entwicklung, bitte einfach bei mir melden!
Christian Rehn Fragen zu PoMO
Ich hab ein paar Fragen zu PoMO. Im Großen und Ganzen ist mir das Prinzip klar. Ich erkenne, dass es zusammen mit IOSP zur IODA-Architektur führt, etc. Bei den Details hab ich aber noch Verständnisschwierigkeiten.
- Gibt es eine klare Definition des Prinzips? In Blogartikel (http://blog.ralfw.de/2012/12/prinzip-der-gegenseitigen-nichtbeachtung.html) wird eine -- meines Erachtens nicht ganz passende -- Analogie zu Motoren bemüht, um das Prinzip zu verdeutlichen. Das ermöglicht eine Art intuitives Verständnis des Prinzips. Eine wirklich greifbare Definition habe ich aber leider nicht gefunden.
- Insbesondere frage ich mich, was genau denn sich gegenseitig nicht kennen soll. Operationen im Sinne von IOSP? Module auf der selben Abstraktionsebene? Funktionen, Klassen, Komponenten, Systeme, ...?
- PoMO scheint kein Teil der CCD-Prinzipien zu sein. Was ist der Grund dafür?
- Angenommen man würde sich an IOSP, aber nicht an PoMO halten. Das Resultat wäre ähnlich wie die IODA-Architektur. Da Operationen ja eh nicht integrieren dürfen, wäre wohl der einzige Unterschied in den Integrationsbausteinen zu suchen. Richtig?
- Angenommen man hält sich an PoMO, aber nicht an IOSP. Es fällt mir gerade schwer, mir dieses Szenario vor zu stellen. Ist IOSP eine Voraussetzung für PoMO?
Stefan Lieser Denis Kuniss Ralf Westphal Maximilian Raab
+5 weitere Kommentare
Letzter Kommentar:
Ulrich Berntien
Tools über Pipes zu verbinden ist eine Stärke, doch mache ich diese Stärke nicht an dem Text-Format auf den Pipes fest. In der Liste der Nachteile sehe ich neben Effizienz/Performance auch Entwicklungszeit und Fehleranfälligkeit.
Bei bash oder dash Skripten wünsche ich mir oft die .Net Objekte der PowerShell. Zum Beispiel sind beim Text-Format die Items mal durch Leerzeichen, mal durch Tab, mal durch Komma, mal durch Semikolon getrennt. Dazu kommen Items, die auch Leerzeichen enthalten können, mal in Hochkomma, mal in Anführungszeichen, auch mal ohne Klammerung.
Interessant finde ich den Ansatz json Objekte auf der Pipe unter Unix zu transportieren. Einige Tools (lsblk, aa-status, bridge, lnstat) kennen den Switch json. Ich verrmute, wenn die json Option weiter verbreitet ist, können mit jq die Tools besser verbunden werden als nur mit dem Text-Format.
Ralf Westphal Produktiv - aber ausdrücklich
Wir kommen hier ja zusammen, weil wir finden, dass mehr Clean Code geschrieben werden sollte. Aber warum ist das? Warum gibt es davon noch nicht genug? Ich glaube, das liegt daran, dass das, was Clean Code bewirken soll, nicht gemessen wird. Deshalb merkt man nicht, dass da irgendwas verrutscht und steuert nicht gegen.
Clean Code soll gewährleisten, dass die Teamproduktivität dauerhaft hoch ist. Es geht um mittel- bis langfristige Produktivität. Dafür muss Code in geeigneter Weise strukturiert sein. Für anfängliche und kurzfristige Produktivität ist das nicht nötig.
Wenn es an Clean Code mangelt, dann ist sein Effekt unterhalb des üblichen Radars. Die Produktivität wird schlicht nicht gemessen und dem Kunden nicht fühlbar gemacht. Wäre das so, würde er dazu eine Meinung entwickeln und (An)Forderungen stellen, wenn sich etwas aus seiner Sicht ungünstig entwickelt.
Doch der Kunde sieht von alldem nichts. Er bekommt nur mit, was vor seiner Nase wieder und wieder geschieht. Ein big picture fehlt ihm.
Und wie könnte das anders aussehen? Dazu einige Gedanken: https://ralfw.de/2018/09/making-productivity-tangible/
Enjoy!
Ein weiterer Kommentar
Letzter Kommentar:
Ralf Westphal
Hi, Mike!
Nur für XING Mitglieder sichtbar

>* wie würdest du die issue sizes mit verrechnen? Oder würde sich das (ähnlich wie bei #noEstimates) irgendwann statistisch ausgleichen?
Die Einordnung eines Inkrements in eine Komplexitätskategorie S,M,L findet natürlich vor Beginn der Arbeit statt. Daraus wird aber erstmal nichts speziell abgeleitet.
Anschließend kann du die "historischen Daten" auswählen wir du magst für Berechnungen. Du kannst alle selektieren oder nur die mit Komplexität S oder nur die mit M usw.
Mit der Auswahl kannst du Histogramme malen oder Vorhersagen berechnen.
Inwiefern die Zuordnungen zu den Komplexitätskategorien überhaupt einen Unterschied macht, kannst du auch feststellen. Dann würden sich die Histogramme unterscheiden. Oder du könntest einen Scatterplot machen, bei dem du zb Cycle Time (X) gegen Komplexitätskategorie (Y) aufträgst. Da sollte sich ein Muster zeigen, wenn die Einschätzung einen Wert hat.
"Ausgleichen" tut sich da aber nichts, würde ich sagen. Im Gegenteil! Es soll sich nichts ausgleichen, sondern eben die Zuordnung von S,M,L einen Unterschied machen.
Beantwortet das deine Frage?
Nur für XING Mitglieder sichtbar

>* was ist mit Infrastrukturthemen? Das interessiert den Kunden ja nicht wirklich, ob man z.B. eine Woche für eine tolle CI/CD pipeline aufgewendet hat. Aber es ist ja trotzdem hilfreich bis notwendig ...
"Infrastrukturthemen"... Ich würde immer versuchen, ein "Infrastrukturthema" als Inkrement zu formulieren. Es sollte einen Unterschied für den Kunden machen, ob die Infrastruktur so oder anders ist. Wenn er das nicht spüren kann (Laufzeiteigenschaft), warum sollte dann an der Infrastruktur geschraubt werden? Warum sollte er Geld bezahlen, wenn du etwas tust, wovon er keinen Effekt sieht?
Wenn sich gegen diese Sicht Widerstand erhebt/das nicht machbar erscheint, dann - so glaube ich - würde ich "Infrastrukturthemen" entweder gar nicht tracken oder gesondert kennzeichnen. Dann gibt es Feature, Bug Fix - und Infrastructure als Inkrementtypen.
Wenn du nicht trackst oder für Vorhersagen zb einer Liste anstehender Features nur nicht-Infrastruktur Inkremente auswählst, dann gibt es eben Lücken in der Timeline, dann gibt es Zeiten mit sehr wenig Throughput in Bezug auf Features - und das schlägt sich in der Vorhersage nieder. Das ist ja nur gerecht.
Eine CI-Pipeline würde ich allerdings vor Start der Inkrementproduktion aufsetzen und eher gar nicht mitzählen. Du hast eben "Rüstzeit" für ein Projekt, die etwas anderes ist als die Produktionszeit.
Nur für XING Mitglieder sichtbar

>viele Grüße
>Mike

Moderatoren

Infos zu den Moderatoren

Über die Gruppe "Clean Code Developer"

  • Gegründet: 11.03.2009
  • Mitglieder: 5.088
  • Sichtbarkeit: offen
  • Beiträge: 498
  • Kommentare: 3.009