Working Draft

Wöchentlicher Podcast für Frontend Devs, Design Engineers und Web-Entwickler:innen. Mal mit, mal ohne Gast begeben wir uns in die Tiefen von HTML, CSS, JavaScript oder auch Frameworks wie React, Vue und Angular. Wir diskutieren über gute UX, Web Performance und Barrierefreiheit, sowie ab und an auch über Browser und Webstandards. Supported uns bei Patreon: https://patreon.com/workingdraft

https://workingdraft.de

subscribe
share






Revision 553: State of JS2, Framework Boogaloo


Nachdem sich Vanessa und Peter in ihrem ersten Anlauf noch um ein strukturiertes Abarbeiten des Fragenkatalogs der 2022er State of JS-Umfrage bemüht hatten, ergehen wir uns dieses Mal in eher freier Assoziation, schaffen es dabei aber auch, die verbleibenden 98% der Umfrage in einer Revision abzufertigen.

Schaunotizen [00:00:58] State of JS Die zweite Hälfte des State of JS befasst sich mit Tools und Frameworks, die wir eher abstrakt diskutieren. Zu den relevanten Fragen zählt die von State of JS getroffene Unterscheidung zwischen Frontend- und „Render-Frameworks“ (Next, Nuxt, Gatsby etc.), die Frage inwiefern Frontend-Frameworks eher ein Management als ein Entwickler-Tool sind und wie Web Components dazu passen. Ob wir jemals weniger Frameworks haben (oder werden haben wollen) und ob uns der framework-industrielle Komplex überhaupt lässt, bleibt trotz des kreativen Einsatzes von Auto-Analogien (u.A. zur Pistolenschaltung) ungeklärt. Zu Sinn und Zweck von Mobile Frameworks haben wir eher wenig beizutragen, feiern aber Browser-Devtools wie DOM-Breakpoints (Chrome, Firefox), Hover-State-Enforcing (Chrome, Firefox), Resource Overrides (Chrome-Extension) und In-Devtools-Suchfunktionen gründlich ab (und anwesende Performance-Päpste finden darüber hinaus an an Chromes Trace-Tools gefallen). Weitere ehrenswerte Nennungen erfahren Sentry, die (einigermaßen) gute alte Formularvalidierung, <dialog> und <details>, die View Transition API und generell alles aus der Revision 552 zu Frontend Development im Jahr 2023. Transkript WEBVTT 00:00.000 --> 00:04.000 WorkingDraft Revision 553. 00:31.000 --> 00:36.000 Diese Revision von WorkingDraft wird euch präsentiert von Hörerinnen und Hörern wie euch. 00:36.000 --> 00:40.000 Auf patreon.com slashworkingdraft könnt ihr uns ein paar Euro in den Hut werfen. 00:40.000 --> 00:47.000 Aus euren Beiträgen und unseren gelinglichen Werbeeinnahmen bezahlen wir allerlei teure Software-Abus und das Honorar unserer Audio-Produceren. 00:47.000 --> 00:52.000 Wenn ihr euch auch beteiligen wollt, könnt ihr das unter patreon.com slashworkingdraft sehr gerne machen. 00:52.000 --> 01:01.000 Wir danken euch tausendfach für die Unterstützung und fürs weitere Zuhören. 01:22.000 --> 01:30.000 Ich habe meine Weihnachtsbrille leider nicht gefunden, die ich noch schnell anziehen wollte. 01:30.000 --> 01:34.000 Die liegt unerreichbar für mich. 01:34.000 --> 01:42.000 Ich bin der Schepp und es steht ja noch aus, den zweiten Teil oder vielleicht den zweiten von noch viel mehr Teilen des State-of-JS aufzunehmen. 01:42.000 --> 01:45.000 Und das machen wir heute. 01:45.000 --> 01:52.000 Ich war bei der letzten bei der ersten Ausgabe ja nicht dabei. Ich habe mir die aber wohl angehört. 01:52.000 --> 01:55.000 Das heißt, so ein bisschen im Bilde bin ich schon. 01:55.000 --> 02:01.000 Wie das halt beim State-of-JS so ist, gibt es ja so verschiedene thematisch kopierte Kapitel. 02:01.000 --> 02:12.000 Und ich glaube, ihr seid zuletzt, ihr habt viel Zeit in den ersten drei Kapiteln verbracht und musstet dann bei den Frameworks das Handtuch werfen. 02:12.000 --> 02:16.000 Zeitliche Handtuche. 02:16.000 --> 02:23.000 Ich glaube, wenn wir neben Tempo weitermachen schaffen, das heute auf jeden Fall auch nicht. Aber wir gucken mal, wie weit wir kommen. 02:23.000 --> 02:28.000 Ich bin mir ziemlich sicher, dass ich zu AngularJS weniger zu sagen habe als zu Proxies. 02:28.000 --> 02:33.000 Jetzt habe ich auch schon wieder AngularJS gesagt. Aber dazu habe ich wirklich wenig zu sagen. 02:33.000 --> 02:44.000 Genau, die haben das hier aufgeteilt in Front-End-Frameworks und danach kommen die Rendering-Frameworks. Ich weiß nicht ganz genau, wo die da den Unterschied sehen. 02:44.000 --> 02:50.000 Was aber auch da liegt, dass ich jetzt gerade Front-End-Frameworks auf habe und noch nicht in Rendering-Frameworks reingeschaut habe. 02:50.000 --> 03:02.000 Rendering-Frameworks sind so die Next-JS-Dinger, die halt irgendwie festgestellt haben, dass Single-Page-Application als alleiniges Konzept vielleicht nicht ganz so tragfähig ist, wie man zwischenzeitlich mal dachte. 03:02.000 --> 03:07.000 Also sie rendern dann die Webseite nicht nur und also sie surfen die dann auch. 03:07.000 --> 03:13.000 Ich schätze mal, dass es alle sind, die ihren eigenen Server noch dazu brauchen, wahrscheinlich alle so ein bisschen auf Node.js. 03:13.000 --> 03:16.000 Die quasi alle Stages abdecken und nicht nur denen. 03:16.000 --> 03:28.000 Genau, dass du dann auch einmal das Statische HTML raus rendern kannst, falls du eine Statische Webseite möchtest oder halt eine dynamische Webseite aber eben mit JavaScript Server auch ausliefern. 03:28.000 --> 03:33.000 Dementsprechend hat man dann auch definitiv einen getrenntes Front-End und Back-End. 03:33.000 --> 03:39.000 Ist ja definitiv so der Trend der letzten, weiß ich gar nicht, wie viele Jahre schon länger. 03:39.000 --> 03:49.000 Jetzt sehe ich fast auch wieder den Trend auf der anderen Seite, dass man Back-End und Front-End teilweise auch wieder zusammen ausliefert. 03:49.000 --> 04:04.000 Oder so ein Mischmasche von allem ein bisschen macht, dass man halt quasi seine eigene Webseite durch verschiedene Technologien eben ausliefert. 04:04.000 --> 04:15.000 Dann hat man den Statischen Teil, aber dann gibt es eben eine Front-End-Back-End-Applikation zusammen, ein Full-Stack-Framework oder es gibt dann wieder einen anderen Bereich, der dann wieder eine Single-Page-Application ist. 04:15.000 --> 04:20.000 Das ist quasi immer das passende für die Aufgabe aus so einem Ganzen. 04:20.000 --> 04:23.000 Ob es das passende dann immer ist, ist die andere Frage. 04:23.000 --> 04:26.000 Aber ich glaube, das hat sich da immer so mal entwickelt. 04:26.000 --> 04:28.000 Das ist immer das Ziel. 04:28.000 --> 04:36.000 Aber ich glaube, wir hatten auch letztens schon mit Joe darüber gesprochen, dass Micro Front-Ends zum Beispiel klingen ja in der Theorie ganz toll. 04:36.000 --> 04:42.000 Ich habe mit ihnen geantwortet, ich habe mit vielen gesprochen, die damit arbeiten und es hat viele Vorteile. 04:42.000 --> 04:47.000 Aber meistens ist die Praxis nicht ganz so supergeil wie die Theorie. 04:47.000 --> 04:57.000 Und ich glaube auch dieses, wir suchen immer die richtige Technologie für den richtigen Bereich aus, ganz egal ob Micro Front-Ends oder nicht, hat da ähnliche Problemchen. 04:57.000 --> 05:09.000 Eigentlich wäre, glaube ich, auch Bereiche, wo ich an der Stelle vielleicht nicht Vue.js hätte einsetzen müssen, sondern L-Pine.js hätte gereicht. 05:09.000 --> 05:14.000 Aber das ganze Team kennt halt Vue.js und es ist schon installiert und es wird schon gemaintaint. 05:14.000 --> 05:20.000 Und wollen wir uns dann noch ein Framework mehr ans Bein binden, ist dann auch die andere Frage. 05:20.000 --> 05:26.000 Aber das könnte man ja auch so laufen lassen unter das richtige Framework für den richtigen Einsatzzweck. 05:26.000 --> 05:36.000 Also der Einsatzzweck ist dann bei dir eben auch, irgendwie jeder sollte sich damit auskennen und nicht noch mal zusätzlich was sich drauf schaffen müssen. 05:36.000 --> 05:42.000 Und vielleicht muss das auch noch gut korrexistieren. Also ich weiß nicht, ob L-Pine.js gut mit Reakt leben kann zusammen, wahrscheinlich eher nicht. 05:42.000 --> 05:45.000 Weil das eine manipuliert Dom, das andere den State. 05:45.000 --> 05:54.000 Also so wie wenn man so zu Anfangszeiten der reaktiven Frameworks immer noch so, hey, aber das kann ich nochmal mit jQuery schnell machen und dann so, ja, nee, geht nicht. 05:54.000 --> 06:05.000 Also wenn, dann musst du nur State machen, weil das State getriebene, reaktive Framework dann einfach das alles wieder zurückrollt, was jQuery da im Dom rum fummelt. 06:05.000 --> 06:14.000 Die Frage ist halt tatsächlich, sucht man das richtige Werkzeug für den richtigen Einsatzzweck, also für das Problem, das es zu lösen gilt? 06:14.000 --> 06:19.000 Oder braucht man eher ein Framework, das zur restlichen Gesamtsituation passt? 06:19.000 --> 06:27.000 Weil also ich bin mir jetzt nicht wirklich so sicher, ob man heutzutage da wirklich irgendwie einen Unterschied bezüglich Fähigkeiten machen kann. 06:27.000 --> 06:32.000 Weil ich meine, man kann ja so ziemlich jedes Problem mit jedem Framework auf die ein oder andere erschlagen. 06:32.000 --> 06:35.000 Und das geht sicherlich mal besser, mal weniger gut. 06:35.000 --> 06:40.000 Aber es gibt ja zumindest für alles irgendwie den offiziellen Weg, das irgendwie gebacken zu bekommen. 06:40.000 --> 06:46.000 Und da frage ich mich halt eben, ob so die alles überschattende Überlegung nicht eher sein sollte, was man sonst so da hat. 06:46.000 --> 06:52.000 Also irgendwie keine Ahnung, ich will irgendwie ein Problem lösen und ich habe irgendwie ein Hochhaus voller Leute, die reakt können. 06:52.000 --> 07:00.000 Dann wäre das ja wahrscheinlich irgendwie sinnvoll, Reakt auch dann zu nehmen, wenn es vielleicht für ein gewisses Problem die weniger gute Lösung wäre, 07:00.000 --> 07:05.000 wenn es nicht eine Vollkatastrophe wird, aber dann kriege ich es halt eben einigermaßen, sagen wir berechenbar umgesetzt, 07:05.000 --> 07:10.000 weil ich halt eben das institutionelle Wissen darum habe, wie man es denn machen würde. 07:10.000 --> 07:15.000 Also hier so klassischer Fall ist halt irgendwie so, okay, wir brauchen jetzt irgendwie für so eine interne Anwendung, 07:15.000 --> 07:18.000 einfach nur ein Haufen Formulare, die das irgendwie eine Datenbank reinschreiben. 07:18.000 --> 07:22.000 Wo ich ja normalerweise so spontan sagen würde von so dem Use Case her. 07:22.000 --> 07:26.000 Und man nimmt halt irgendwie so ein althergebrachtes Backend Framework, so Ruby on Rails-mäßig, 07:26.000 --> 07:31.000 dann einfach nur hin deklariert, das ist meine Datenbankstruktur und das Ding setzt einem das automatische ein okayes Formular um. 07:31.000 --> 07:35.000 Speichert das weg, Machtvalidierung und Block in bla bla bla und ich habe null Arbeit. 07:35.000 --> 07:37.000 Nützt mir halt nichts, wenn ich niemanden da habe. 07:37.000 --> 07:42.000 Mit Reakt muss man das ja quasi irgendwie von Grund auf neu aufbauen oder sich halt irgendwie 9000 Dependencies installieren, 07:42.000 --> 07:47.000 aber dann kriegt man es halt irgendwie in einem berechenbaren Zeitrahmen zuverlässig hin. 07:47.000 --> 07:54.000 Ja, ich bin ja auch so jemand, der das bevorzugt, also zu wissen, was da passiert. 07:54.000 --> 07:58.000 Lieber mehr Arbeit und zu Fuß und dann genau wissen, was wo passiert, 07:58.000 --> 08:05.000 um damit ich eben auch quasi Garantie, Garantien aussprechen kann, dass wir irgendwie was schaffen. 08:05.000 --> 08:11.000 Und dass ich auch, wenn irgendwas ist, weiß so, ah, das ist an der Stelle, muss ich die Motorhaube öffnen 08:11.000 --> 08:18.000 und rein fassen und das irgendwie anzupassen, als eben auf irgendeine Magic zu setzen. 08:18.000 --> 08:24.000 Webpack ist ja auch so ein Kandidat, die halt vielleicht das gut macht, 08:24.000 --> 08:27.000 aber wo ich im Grunde gar nicht weiß, wie das im Hintergrund funktioniert 08:27.000 --> 08:30.000 und wo ich auch nicht gerade stehen kann für. 08:30.000 --> 08:34.000 Ja, außerdem von Peter grad genannten Fall mit den internen Tools. 08:34.000 --> 08:38.000 Da ist mir eigentlich egal, wie viel Magic da jetzt mit geliefert wird, 08:38.000 --> 08:43.000 hat es funktioniert schnell und da ist natürlich dann die Voraussetzung, 08:43.000 --> 08:49.000 dass wir an diesem Interface dann möglichst wenig rumschrauben müssen. 08:49.000 --> 08:54.000 Da ist egal, ob der Button jetzt eckige oder runde Border Radius hat oder ähnliches, 08:54.000 --> 08:57.000 also gerade auch was CSS Frameworks dann angeht. 08:57.000 --> 09:00.000 Verwend ich für solche Falle immer noch gerne, 09:00.000 --> 09:03.000 wo immer, weil ich die Klassennamen einfach immer noch auswendig kenne. 09:03.000 --> 09:07.000 Und was jetzt der Button da für Style ist, also die klasse Button da, 09:07.000 --> 09:13.000 was wirklich für Style es ran macht, ist egal. Und das einzige Feedback, 09:13.000 --> 09:19.000 was kommen kann, ist tatsächlich, das finde ich super interessant, 09:19.000 --> 09:24.000 wenn dann an den Link eine Buttonklasse ran gehängt wird. 09:24.000 --> 09:27.000 Also dann, weil das ist so tief in den Leuten drin, 09:27.000 --> 09:31.000 das kann ich ja nicht im neuen Tab öffnen. 09:31.000 --> 09:36.000 Und dann habe ich dann nochmal nachgeschaut, 09:36.000 --> 09:38.000 aber guck mal, das schaut aus wie ein Button. 09:38.000 --> 09:41.000 Wieso haben wir dann einen Button? Ja, das schaut schön aus. 09:41.000 --> 09:47.000 Aber da, wie gesagt, der Button ist round, irgendwas wird schon funktionieren. 09:47.000 --> 09:52.000 Wie ich da jetzt das richtige Margin einstelle, das Style geht schon auch. 09:52.000 --> 09:56.000 Ja, es ist also worauf basiert dein Business in erster Linie. 09:56.000 --> 09:59.000 Also das, was so deine Kernkompetenz ist, 09:59.000 --> 10:02.000 da solltest du am besten die Größekontrolle darüber haben. 10:02.000 --> 10:09.000 Also dann wählst du eben Technologien aus, die du einfach gut beherrschst, 10:09.000 --> 10:11.000 weil du lebst ja davon. 10:11.000 --> 10:15.000 Und vielleicht diese anderen zusätzlichen Tools, die du dir so rundrum aufbaust. 10:15.000 --> 10:19.000 Also das ist ja genauso, die kannst du auch theoretisch auslagern 10:19.000 --> 10:22.000 in die Cloud, an irgendwelche Anbieter als Software, 10:22.000 --> 10:25.000 es ist Service oder sowas, weil so egal. 10:25.000 --> 10:29.000 Aber so dein Kernprodukt da, also das willst du, 10:29.000 --> 10:33.000 willst du einfach unter Kontrolle haben, so gut es geht. 10:33.000 --> 10:37.000 Ja, ich denke, das ist halt so das Ding. 10:37.000 --> 10:40.000 Wir hatten ja mal vor ewig langer Zeit, also hier, 10:40.000 --> 10:43.000 die Accelerated Mobile Pages noch was waren. 10:43.000 --> 10:46.000 Da haben wir ja mal irgendwann mal herausgearbeitet, 10:46.000 --> 10:49.000 dass das ja weniger ein technisches Ding ist, 10:49.000 --> 10:51.000 als vielmehr so ein Management Tool, 10:51.000 --> 10:53.000 um irgendwie die Leute darauf einzunorden, 10:53.000 --> 10:56.000 dass man halt gewisse Best Practices befolgt. 10:56.000 --> 10:59.000 Und ich glaube, ich tendiere mittlerweile dazu, 10:59.000 --> 11:01.000 diesen ganzen Frontend Framework, 11:01.000 --> 11:04.000 wo heia auch so ein bisschen in diese Richtung zu schieben. 11:04.000 --> 11:06.000 Weil das ist halt eben ein schwieriges Problem, 11:06.000 --> 11:09.000 da irgendwie so eine Frontend-Applikation aufzuziehen. 11:09.000 --> 11:12.000 Und wenn man zumindest irgendwie einen Weg eingeschlagen hat, 11:12.000 --> 11:15.000 und sei es, dass er über drei, weiß ich nicht, 11:15.000 --> 11:17.000 Umfahrungen und Umleitungen führt, 11:17.000 --> 11:19.000 wenn er am Ende zum Ziel führt, 11:19.000 --> 11:21.000 mit Werkzeugen, wie man so einigermaßen drauf hat, 11:21.000 --> 11:23.000 dann nimm's halt und mach dir halt bloß nichts drauf, 11:23.000 --> 11:25.000 wenn irgendwie deine Codebase ein bisschen all aussieht 11:25.000 --> 11:27.000 und halt nicht mehr Hippe ist. 11:27.000 --> 11:30.000 Solange da irgendwie noch einigermaßen Pflege 11:30.000 --> 11:33.000 und Aktivität hinter ist, nimm's halt. 11:33.000 --> 11:35.000 Man müsste halt nur vielleicht noch überlegen, 11:35.000 --> 11:37.000 wie das so mit der Risikoabwägung ist bezüglich, 11:37.000 --> 11:40.000 was machen wir denn, wenn dem Ding so eine Art 11:40.000 --> 11:43.000 AngularJS2Angular bevorsteht? 11:43.000 --> 11:45.000 Irgendwie solche Migrationen. 11:45.000 --> 11:47.000 Und da gibt's ja im Prinzip auch zwei Strategien, 11:47.000 --> 11:49.000 wo man halt irgendwie sagen kann, 11:49.000 --> 11:52.000 entweder ist das jetzt nicht so kern oder nicht so wichtig, 11:52.000 --> 11:54.000 oder wir machen da irgendwie einen anderen Trade-Off, 11:54.000 --> 11:56.000 wo wir rausgehen, dass dieses Fronten so lange überlegt, 11:56.000 --> 11:58.000 dass man halt eben sagt, solche größeren Migrationsschritte, 11:58.000 --> 12:00.000 die ja im Prinzip von außen an uns herangetragende Arbeit sind, 12:00.000 --> 12:02.000 die wir nicht bestellt haben, die uns ja auch nicht weiterbringt, 12:02.000 --> 12:04.000 die gehen wir nicht mit oder die gehen wir mit. 12:04.000 --> 12:07.000 Das sind, glaube ich, eigentlich die interessanteren Dimensionen, 12:07.000 --> 12:10.000 worauf man diese Framework-Frage diskutieren muss, 12:10.000 --> 12:13.000 als irgendwie errendert jetzt irgendwie React oder Angular 12:13.000 --> 12:15.000 das Ding irgendwie eine halbe Millisekunde schneller. 12:15.000 --> 12:17.000 Ich glaube, das ist wirklich fast immer egal. 12:17.000 --> 12:19.000 Ja, ist es auch. 12:19.000 --> 12:21.000 Genau, für das andere, was du gesagt hast, 12:21.000 --> 12:23.000 da kann man vielleicht schauen, 12:23.000 --> 12:28.000 dass man es schafft, sein Framework für vielleicht eben da 12:28.000 --> 12:30.000 nur einzusetzen, wo es wirklich nötig ist, 12:30.000 --> 12:35.000 dass man vielleicht irgendwie Business-Logic in JavaScript-Modulen hat, 12:35.000 --> 12:40.000 die man theoretisch sowohl in React rein importieren kann, 12:40.000 --> 12:44.000 wie auch in Angular Business-Logic. 12:44.000 --> 12:47.000 Und dass du nach vorn raus, möglicherweise, dann sagst du, okay, 12:47.000 --> 12:51.000 ich nutze Web-Components, die kann ich auch wieder andocken 12:51.000 --> 12:54.000 an so eine Middleware, egal welche das ist, also ob das, 12:54.000 --> 12:57.000 also egal welche das ist, geht natürlich bei React jetzt, 12:57.000 --> 12:59.000 glaube ich, nicht. 12:59.000 --> 13:01.000 Ja, ich wollte gerade auch. 13:01.000 --> 13:04.000 Genau, aber an Preact kannst du das ja andocken. 13:04.000 --> 13:08.000 Was ja, was ein Ersatz sein könnte für React, 13:08.000 --> 13:11.000 aber im Grunde, also trotzdem gilt das ja, 13:11.000 --> 13:14.000 also du kannst es an so ziemlich alles andocken. 13:14.000 --> 13:16.000 Das gilt, aber there's no free lunch, das ist halt das Ding. 13:16.000 --> 13:19.000 Das ist halt schon Aufwand, den du halt irgendwie rechtfertigen musst. 13:19.000 --> 13:23.000 Ja, ja, aber wenn du dich wappnen willst, 13:23.000 --> 13:26.000 und ich glaube, das passiert ja immer, also ich meine, 13:26.000 --> 13:30.000 Vanessa hat erzählt, dass ihr habt dann von View2 auf View3 13:30.000 --> 13:33.000 migriert, also irgendwie so kramert man ja ständig. 13:33.000 --> 13:38.000 Und ich glaube, die mehr man da auf irgendwelche Web-Standards 13:38.000 --> 13:44.000 auslagert, die bleiben ja stabil oder stabil leer 13:44.000 --> 13:48.000 und also desto weniger muss man dann migrieren. 13:48.000 --> 13:51.000 Ja, aber dafür machst du dir halt dann den Alltag kaputt. 13:51.000 --> 13:54.000 Also wenn du jetzt wirklich Web-Components auf dem Stand von heute nimmst 13:54.000 --> 13:57.000 und die schmeißt du in deinen React TypeScript rein, 13:57.000 --> 14:01.000 dann hast du extrem viel mehr Aufwand für wenig wirklich spürbaren Zugewinnen, 14:01.000 --> 14:04.000 weil ja im Prinzip an dieser Web-Component-Boundary, 14:04.000 --> 14:08.000 wo ja im Prinzip du sprichst halt im wesentlichen HTML, 14:08.000 --> 14:09.000 du sprichst im wesentlichen String, 14:09.000 --> 14:12.000 da geht dir ja im Prinzip sämtlicher TypeScript-Vorteil flöten. 14:12.000 --> 14:15.000 Und du hast halt ein komplett anderes Entwicklungsparadigma, 14:15.000 --> 14:18.000 du musst halt irgendwie eine komische Klasse schreiben und du hast ja auch das Konzept 14:18.000 --> 14:21.000 von irgendwelchen Life-Cycles, aber funktioniert dann alles einfach komplett anders 14:21.000 --> 14:24.000 und du hast halt gewaltigen mentalen Overload. 14:24.000 --> 14:29.000 Ja, aber nur weil du den, wenn du die anderen Frameworks gewohnt bist, oder? 14:29.000 --> 14:33.000 Und mir ist TypeScript übrigens wurscht, weil ich es ja nicht benutze. 14:33.000 --> 14:37.000 Das ist ja auch völlig valide, aber das ist halt so, 14:37.000 --> 14:39.000 zumindest wenn du ja zum Beispiel von Angular redest, 14:39.000 --> 14:42.000 wo das ja im Prinzip de facto der Standard ist, 14:42.000 --> 14:45.000 und auch bei React gibt es das relativ häufig. 14:45.000 --> 14:47.000 Okay, lassen wir den TypeScript-Faktor raus. 14:47.000 --> 14:51.000 Es ist trotzdem so, du hast halt immer noch, ja, es ist halt mehr auffand. 14:51.000 --> 14:54.000 Und diesen mehr auffand könntest du dir sozusagen ersparen, 14:54.000 --> 14:58.000 indem du einfach so sagst, ach komm, wird schon nicht schief gehen. 14:58.000 --> 15:00.000 Wir nehmen jetzt einfach hier die React-Komponente, 15:00.000 --> 15:03.000 die das schon irgendwie macht mit irgendwelchem Krams, 15:03.000 --> 15:04.000 und dann passt das schon. 15:04.000 --> 15:06.000 Also zumindest ist das jetzt meine Erfahrung, 15:06.000 --> 15:09.000 wo ich letztens das ganze Jahr im Prinzip damit gerungen habe, 15:09.000 --> 15:13.000 irgendwie CodeMirror in einer selbst gebastelten Art und Weise 15:13.000 --> 15:16.000 in eine React-Aplikation zu integrieren mit TypeScript on top. 15:16.000 --> 15:19.000 Und das war ausgesprochen unintuitiv und sehr viel Arbeit. 15:19.000 --> 15:21.000 Und ich hätte es sehr viel leichter haben können, 15:21.000 --> 15:25.000 aber dann hätte ich halt nicht Business-Logik von dem ganzen Kern isoliert. 15:25.000 --> 15:28.000 Und das wollte ich in dem Fall haben, aber hätte ich es nicht gemacht, 15:28.000 --> 15:31.000 hätte ich mir wirklich viele, viele Wochen des Rumgewirges ersparen können. 15:31.000 --> 15:34.000 Jetzt nicht Vollzeitarbeit, aber halt so, 15:34.000 --> 15:36.000 wo man halt am Feierabend nochmal dran schraubt, 15:36.000 --> 15:38.000 da hätte ich viele Wochen was anderes schrauben können. 15:38.000 --> 15:41.000 Ja, ich habe da die identische Erfahrung gemacht. 15:41.000 --> 15:46.000 Also das ist, ich sage auch die Argumente und ich bringe auch die Argumente ein, 15:46.000 --> 15:50.000 wie maintainable ist das Ganze, dann müssten wir das alles mal migrieren und etc. 15:50.000 --> 15:53.000 Dennoch ist es genau dieser Alltag. 15:53.000 --> 15:58.000 Das merke ich jetzt immer, wenn man immer so seit 2, 3 Jahren eine Codebase hat 15:58.000 --> 16:03.000 und dann aber irgendwie für einen Side-Projekt oder für was auch immer, 16:03.000 --> 16:07.000 für eine Demo, einfach mal wieder das Neuste hernimmt 16:07.000 --> 16:11.000 und da zum Beispiel sind die Seiten laden schon automatisch, 16:11.000 --> 16:15.000 haben da schon so ein Ladebalken drin, die Error-Cases werden schon automatisch für dich. 16:15.000 --> 16:18.000 Irgendwie, da kommt es schon eine ganze Notification bei dem Framework dabei 16:18.000 --> 16:21.000 oder bei Umstellungen auf Webpack zu Vite, 16:21.000 --> 16:25.000 wenn man einmal damit Vite eine Applikation installiert hat, 16:25.000 --> 16:29.000 dann will man da eigentlich nicht wieder sein Webpack-Projekt starten. 16:29.000 --> 16:33.000 Und das ist der Alltag, um schnell Features zu liefern 16:33.000 --> 16:38.000 und schnell Sachen zu ändern und mit dem CSS-Framework der eigenen Wahl, 16:38.000 --> 16:41.000 was auch immer die Design jetzt sei, schnell zu sein 16:41.000 --> 16:46.000 und mehrere User damit glücklich zu machen. 16:46.000 --> 16:49.000 Versus ich brauche halt jeden Tag ein bisschen länger, 16:49.000 --> 16:52.000 weil da muss ich Tesla machen und da muss ich hier noch machen, 16:52.000 --> 16:55.000 weil ich möchte das jetzt halt gerade nicht migrieren. 16:55.000 --> 16:57.000 Ich glaube, Testing ist da auch ein gutes Beispiel, 16:57.000 --> 17:02.000 weil vielleicht auch nur in meiner Welt aber Testing am unliebsten migriert wird. 17:02.000 --> 17:07.000 Unliefer als jetzt irgendwie das Front-and-App-Code-Framework-Per-See 17:07.000 --> 17:12.000 und dann handiert man eben da noch mit dem Framework vom letzten Jahr noch herum 17:12.000 --> 17:14.000 und weiß, dass man eben da Stolpersteine hat. 17:14.000 --> 17:17.000 Und dann ist halt die Frage, wie man damit umgeht. 17:17.000 --> 17:21.000 Ich glaube, das Wichtige ist, so feste Entscheidungen zu treffen und zu sagen. 17:21.000 --> 17:24.000 Also, das wird migriert, das wird nicht migriert, 17:24.000 --> 17:27.000 aber wir versuchen vielleicht im Konzept des besseren Frameworks 17:27.000 --> 17:30.000 gerade dem Konzept einfach zu folgen 17:30.000 --> 17:32.000 und haben eben noch die andere Sonntags. 17:32.000 --> 17:38.000 Die Frage, die ich mich nur generell stelle, ist schon, 17:38.000 --> 17:42.000 warum haben wir denn zu viele Auswahlmöglichkeiten? 17:42.000 --> 17:46.000 Also, es gab ja die Zeit, da hatten wir, hatte im L&J Query gefühlt. 17:46.000 --> 17:50.000 Und plötzlich kamen andere Screensizes 17:50.000 --> 17:52.000 und plötzlich gab es andere Geräte 17:52.000 --> 17:54.000 und wir müssen alles für alles optimieren, 17:54.000 --> 17:58.000 für iPhone XS Größe zu ultra-wide-screen 17:58.000 --> 18:01.000 und wir brauchen das alles sehr performant, 18:01.000 --> 18:03.000 weil wir jetzt so viel Logik auch im Frontend haben. 18:03.000 --> 18:07.000 Und da habe ich gesehen, da kamen unfassbar viele Libraries 18:07.000 --> 18:11.000 und unfassbar viele so kleine Helfer-Line mit raus, 18:11.000 --> 18:15.000 ob das jetzt Gulp ist oder Browser-Refy oder dann eben Webpack war. 18:15.000 --> 18:18.000 Aber ich habe auch das Gefühl, das hört einfach nicht auf. 18:18.000 --> 18:22.000 Und da frage ich mich schon, gibt es nicht irgendwann 18:22.000 --> 18:29.000 nur noch Framework X, Rendering Framework Y, 18:29.000 --> 18:33.000 CSS-Modul von mir aus A und B. 18:33.000 --> 18:37.000 Oder bewegen wir uns wirklich in diesem Ökosystem, 18:37.000 --> 18:41.000 wo wir immer 20 verschiedene Frameworks benutzen könnten 18:41.000 --> 18:45.000 und ein Survey haben, wo 20 Frameworks aufgelistet werden, 18:45.000 --> 18:47.000 über die wir lieber im Podcast nicht genau darüber gehen, 18:47.000 --> 18:50.000 weil sonst müsste ich bei 90 Prozent davon sagen, 18:50.000 --> 18:52.000 ja, schon mal gehört, keine Ahnung, schon mal gehört, 18:52.000 --> 18:55.000 keine Ahnung, schon mal gehört, keine Ahnung. 18:55.000 --> 18:58.000 Ich würde auf letzteres Tippen einfach nur, 18:58.000 --> 19:02.000 weil der Problemkreis, den du im Prinzip mit Frontend erschlagen willst, 19:02.000 --> 19:05.000 derart umfangreich ist, dass sich da, glaube ich, 19:05.000 --> 19:09.000 nicht einfach Formfaktor rausbilden wird, der irgendwie so die Lösung ist. 19:09.000 --> 19:12.000 Wo dann es irgendwie so zwei, drei Varianten gibt, 19:12.000 --> 19:14.000 aber letztlich sind es ja alle die gleichen. 19:14.000 --> 19:16.000 Also irgendwie, weiß ich, Personenkraftwagen. 19:16.000 --> 19:18.000 Das ist halt im Prinzip ein ausentwickeltes, gelöstes Problem. 19:18.000 --> 19:20.000 Die sind alle ungefähr gleich groß. 19:20.000 --> 19:22.000 Sie machen alle ungefähr das Gleiche. 19:22.000 --> 19:25.000 Und ich glaube, irgendwie Frontend-Framework ist mehr so Computing-Device, 19:25.000 --> 19:29.000 wo du halt so von deinem Server-Rack bis zu deinem Desktop-Rechner, 19:29.000 --> 19:32.000 zu deinem Laptop, zu deinem Telefon irgendwie all so kramas, 19:32.000 --> 19:34.000 die alle komplett unterschiedliche Sachen wollen, 19:34.000 --> 19:37.000 die unterschiedliche Prioritäten bedienen. 19:37.000 --> 19:40.000 Ich glaube nicht, dass es da irgendwie das eine Framework gibt, 19:40.000 --> 19:42.000 sie alle zu knechten. 19:42.000 --> 19:46.000 Ich meine, selbst in homogenerem, besser designten, sagen wir mal, Räumen, 19:46.000 --> 19:49.000 wenn ich jetzt mal irgendwie mir so, keine Ahnung, 19:49.000 --> 19:51.000 das Java-Universum hernehme. 19:51.000 --> 19:54.000 Selbst da hat sich ja nicht irgendwann mal so ein Equilibrium eingestellt, 19:54.000 --> 19:56.000 dass es so den einen Weg gibt, das alles zu machen, 19:56.000 --> 19:59.000 sondern auch da gibt es halt diverse Möglichkeiten, 19:59.000 --> 20:01.000 Dinge umzusetzen. 20:01.000 --> 20:03.000 Weniger, weil ich halt einfach glaube, dass das einfach, 20:03.000 --> 20:05.000 weil es sich irgendwer mal überlegt hat und nicht so, 20:05.000 --> 20:07.000 wie das Wett mehr oder minder passiert ist, 20:07.000 --> 20:10.000 wo es einfach sehr viel aufgeräumter ist als hier, 20:10.000 --> 20:13.000 aber hier bei dem Chaos, da können, ich glaube, das bleibt so. 20:13.000 --> 20:15.000 Das ist mein Take. 20:15.000 --> 20:21.000 Kann ich jetzt, also ich finde, was der Peter sagt, eindeutend. 20:21.000 --> 20:24.000 Vielleicht ist es bei Java auch so, dass es da weniger Lösungen gibt, 20:24.000 --> 20:28.000 weil jetzt da, weil das Ziel weniger beweglich ist, also so. 20:28.000 --> 20:33.000 Aber das spricht ja auch nur für Peters These. 20:33.000 --> 20:37.000 Ja, also man möchte eben so viele auf einmal abdecken. 20:37.000 --> 20:41.000 Es ist bei Android und iOS Geräten genauso. 20:41.000 --> 20:44.000 Also ich weiß, es gibt jetzt eben Objective C 20:44.000 --> 20:48.000 und es gibt Swift und es gibt Java und es gibt Kotlin. 20:48.000 --> 20:53.000 Aber ich habe nicht das Gefühl, dass es da jetzt noch so 10 20:53.000 --> 20:55.000 Verschiedenes Date Management Tools gibt, 20:55.000 --> 21:00.000 sondern vielleicht zwei oder drei. 21:00.000 --> 21:03.000 Ja, das kann sein, aber die müssen halt eben auch nicht 21:03.000 --> 21:06.000 potenziell auf irgendeinem Server in der Cloud existieren. 21:06.000 --> 21:10.000 Sondern das ist halt einfach ein sehr viel abgegrenzteres, 21:10.000 --> 21:12.000 sehr viel abgegrenzterer Problembereich, würde ich behaupten. 21:12.000 --> 21:17.000 Dann meistens gewinnen doch da auch die, sagen wir mal, 21:17.000 --> 21:20.000 Frameworks und Lösungen, die die Hersteller dieser 21:20.000 --> 21:23.000 Ökosysteme selbst anbieten oder entwickeln. 21:23.000 --> 21:28.000 Also weil die einfach gut integriert sind und dann sagt man halt so, 21:28.000 --> 21:32.000 also dann, also ich mein Kotlin wurde zwar nicht von Google 21:32.000 --> 21:36.000 erfunden, aber von Google sozusagen auf den Thron gehoben. 21:36.000 --> 21:40.000 Dann, ich glaube, so Firebase wird ja auch viel verwendet 21:40.000 --> 21:45.000 im Android-Umfeld. Also ich würde sagen... 21:45.000 --> 21:48.000 Hat das was damit zu tun, dass das die Hersteller sind 21:48.000 --> 21:51.000 oder hat das damit zu tun, dass das gewaltig große Firmen sind, 21:51.000 --> 21:54.000 die sich leisten können, in die Entwicklung von solchen 21:54.000 --> 21:56.000 Sachen einfach enorme Summen reinzuprobieren? 21:56.000 --> 22:01.000 Auch, aber ich meine, es könnte ja auch ein Amazon-Framework sein 22:01.000 --> 22:03.000 oder sowas, aber ist es nicht. 22:03.000 --> 22:06.000 Es gibt ja ein sehr, sehr erfolgreiches Facebook-Framework 22:06.000 --> 22:10.000 und diesen kein Hersteller von irgendwas. 22:10.000 --> 22:13.000 Trotzdem nutzt das irgendwie jeder und sein Hund, 22:13.000 --> 22:17.000 weil ich glaube tatsächlich, dass das, was da auch so ein bisschen 22:17.000 --> 22:20.000 mit so einem Framework industriell im Komplex irgendwie zu tun haben, 22:20.000 --> 22:23.000 wo man das halt eben einfach so... 22:23.000 --> 22:25.000 Ich meine, es ist halt einfach riesig aufwendig. 22:25.000 --> 22:27.000 Und auch deshalb wird es halt immer ewig viele Dinger geben, 22:27.000 --> 22:29.000 weil halt immer irgendein Entwickler sagen wird, 22:29.000 --> 22:31.000 Boah, das ist mir jetzt so anstrengend 22:31.000 --> 22:33.000 und ich mache jetzt mal was Neues. 22:33.000 --> 22:35.000 Und das ist leicht gewichtig und schön. 22:35.000 --> 22:37.000 Das ist wirklich der ganze Zirkus von vorne los. 22:37.000 --> 22:39.000 Das ist einfach auch unglaublich schwierig, 22:39.000 --> 22:41.000 da was Rundes, Performance oder sonst wie, 22:41.000 --> 22:42.000 irgendwie hinzukriegen. 22:42.000 --> 22:43.000 Also, ne? 22:43.000 --> 22:44.000 Auf der einen Seite irgendwie dieses... 22:44.000 --> 22:46.000 Da nehmen wir hier irgendwie mal React her, 22:46.000 --> 22:49.000 wo halt irgendwie ja wirklich massiv viel Gehirnpower 22:49.000 --> 22:51.000 von sehr schlauen Leuten reinläuft. 22:51.000 --> 22:53.000 Und selbst wenn man halt davon wirklich so ein leichtgewichtigen 22:53.000 --> 22:56.000 Abzug baut, sowas wie Preact, 22:56.000 --> 22:58.000 die hatten wir ja in der Sendung mehr als einmal, 22:58.000 --> 23:01.000 wo die ja auch äußerst anspruchsvolles Zeug machen, 23:01.000 --> 23:03.000 um ihr Ziel umzusetzen. 23:03.000 --> 23:05.000 Ich glaube nicht, dass du wirklich was mit den Herstellern zu tun hast, 23:05.000 --> 23:07.000 sondern wirklich bis eine direkte Funktion davon, 23:07.000 --> 23:09.000 wie viel Energie und Kapital du da reinpumst, 23:09.000 --> 23:12.000 um halt Entwicklung und Propaganda zu befeuern. 23:12.000 --> 23:14.000 Genau, ich meinte aber also so, 23:14.000 --> 23:16.000 weil Vanessa die Frage gestellt hat, 23:16.000 --> 23:19.000 wie das eben auf mobilen Plattformen ist, 23:19.000 --> 23:22.000 also Android und Apple. 23:22.000 --> 23:24.000 Und die haben halt so... 23:24.000 --> 23:26.000 Die haben halt ihre eigenen Lösungen 23:26.000 --> 23:28.000 und die werden eben gepusht 23:28.000 --> 23:30.000 und werden besonders gut integriert 23:30.000 --> 23:32.000 und supportet und dokumentiert. 23:32.000 --> 23:34.000 Und dann liegt das ja auf der Hand, 23:34.000 --> 23:37.000 dass man diese Lösungen nimmt und nicht was anderes. 23:37.000 --> 23:39.000 Ja, es kann schon auch sein, 23:39.000 --> 23:41.000 weil einfach die Problembereiche ein bisschen kleiner sind. 23:41.000 --> 23:43.000 iOS muss dann zumindest... 23:43.000 --> 23:47.000 oder Swift muss dann zumindest nur auf iOS-Geräten laufen. 23:47.000 --> 23:49.000 Ich glaube, bin mir jetzt nicht 100% nicht sicher, 23:49.000 --> 23:51.000 aber ich bin mir... 23:51.000 --> 23:54.000 ob Swift jetzt sowohl auf MacOS, iPadOS oder wie das heißt. 23:54.000 --> 23:56.000 Und iOS läuft. 23:56.000 --> 23:59.000 Während ja JavaScript muss halt überall laufen. 23:59.000 --> 24:03.000 Das muss im Endeffekt sogar auf der Apple Watch noch laufen. 24:03.000 --> 24:07.000 Und auf Android und auf iOS-Geräten 24:07.000 --> 24:11.000 und auf Nintendo Switch-Geräten und auf der PlayStation. 24:11.000 --> 24:14.000 Und auf SpaceX. 24:14.000 --> 24:16.000 Und das auch noch. 24:16.000 --> 24:18.000 Die Frage ist nur, 24:18.000 --> 24:20.000 wir hatten jetzt schon mehrfach darüber gesprochen, 24:20.000 --> 24:22.000 wie entscheidet man sich jetzt so ein bisschen dafür 24:22.000 --> 24:24.000 und wir haben schon durchhören lassen. 24:24.000 --> 24:27.000 Es ist halt auch von dem Team abhängig, 24:27.000 --> 24:29.000 welche Personen da drin sind 24:29.000 --> 24:32.000 und was hat man gerade schon am Maintainen 24:32.000 --> 24:34.000 und wie viel mehr möchte man... 24:34.000 --> 24:37.000 Also wo entscheidet man sich jetzt dafür? 24:37.000 --> 24:41.000 Ich möchte hier das richtige Problem mit der richtigen Lösung erschlagen 24:41.000 --> 24:43.000 oder ich möchte... 24:43.000 --> 24:45.000 Wir haben schon zwei, drei verschiedene Frameworks, 24:45.000 --> 24:47.000 mit denen kriegen wir das auch gelöst, 24:47.000 --> 24:49.000 also entscheiden wir uns für eins der bisherigen. 24:49.000 --> 24:51.000 Was wir jetzt noch nicht besprochen hatte, 24:51.000 --> 24:54.000 sind die Menschen, die das dann im Endeffekt benutzen. 24:54.000 --> 24:58.000 Die Endkunden, die End-User. 24:58.000 --> 25:00.000 Haben wir dazu... 25:00.000 --> 25:03.000 Habt ihr dazu Performance-Grunden oder eben anderes, 25:03.000 --> 25:05.000 dass ihr euch mal sagt, 25:05.000 --> 25:08.000 wir benutzen hierfür jetzt Quick, 25:08.000 --> 25:13.000 weil da, da, da besser für unsere Endkunden und Kundinnen? 25:13.000 --> 25:16.000 Ich glaube, das kommt darauf an, 25:16.000 --> 25:18.000 wie du das selber gewichtest. 25:18.000 --> 25:21.000 Also ein paar der Frameworks sind bestimmt entstanden 25:21.000 --> 25:25.000 wegen der Google Web-Vitals, die es ja jetzt seit ein paar Jahren gibt, 25:25.000 --> 25:30.000 die dann eben vor allem im Bereich total Blocking-Time, 25:30.000 --> 25:33.000 Time-to-Interaction und so Zeugs 25:33.000 --> 25:36.000 die ganze Zeit sich ausheulen, 25:36.000 --> 25:39.000 immer wenn man eben eines dieser klassischen JavaScript-Frameworks 25:39.000 --> 25:41.000 einen Start gebracht hat. 25:41.000 --> 25:45.000 Und viele der neuen Lösungen, 25:45.000 --> 25:48.000 die verkaufen sich ja als entweder, 25:48.000 --> 25:52.000 hey, du arbeitest mit React, aber wir schippen nichts, 25:52.000 --> 25:59.000 oder du arbeitest mit deinem Lieblings-Templating-Engine 25:59.000 --> 26:03.000 und wir hydraten und machen lebendig, 26:03.000 --> 26:07.000 also nur einzelne Teile deines gesamten Frontends. 26:07.000 --> 26:09.000 Und damit lösen wir dein, 26:09.000 --> 26:15.000 das Problem, das du eben bei den Core Web-Vitals hast. 26:15.000 --> 26:18.000 Gleicher Geschmack, aber 0% Zucker. 26:18.000 --> 26:24.000 Genau. Die Frage ist halt, ob das für deine Userin und Userrelevant ist. 26:24.000 --> 26:27.000 Also es gibt ja quasi, das ist ja erstmal ein Laborwerte, 26:27.000 --> 26:31.000 die du messen kannst und dann hast du ja über den Chrome Experience, 26:31.000 --> 26:35.000 Chrome User Experience Report, hast du ja dann quasi deine, 26:35.000 --> 26:38.000 die echten Daten, die also, 26:38.000 --> 26:40.000 ist denn bei deinen Usern das so, 26:40.000 --> 26:42.000 dass der Mainstread viel zu lange blockiert wird, 26:42.000 --> 26:46.000 weil was Google im Lab misst, ist ja so ein Low-End-Device, 26:46.000 --> 26:50.000 mit das langsam ist und das auch langsam angebunden ist 26:50.000 --> 26:53.000 und das sieht ja immer ganz schlimm aus. 26:53.000 --> 26:56.000 Und wenn man dann den Report kriegt von den echten Besuchern, 26:56.000 --> 26:59.000 dann ist es ja meistens gar nicht so dramatisch. 26:59.000 --> 27:02.000 Und ich glaube, das hängt dann wirklich davon ab, 27:02.000 --> 27:04.000 was ist denn deine Zielgruppe? 27:04.000 --> 27:07.000 Sind das nur so reiche US-Amerikaner und Europäer, 27:07.000 --> 27:10.000 dann ist das vielleicht alles nicht so wild. 27:10.000 --> 27:12.000 Und wenn du den globalen Markt bedienst 27:12.000 --> 27:15.000 und vielleicht auch so emerging markets, 27:15.000 --> 27:17.000 dann ist das vielleicht wichtiger. 27:17.000 --> 27:20.000 Oder du hast irgendwelche reichen Leute zwar, 27:20.000 --> 27:22.000 aber die arbeiten für dich als Sachbearbeiter 27:22.000 --> 27:24.000 und sind deswegen egal, die nehmen die Software, 27:24.000 --> 27:26.000 fertig ist die Geschichte. 27:26.000 --> 27:28.000 Ja, aber es ist sehr interessant, Schepp, 27:28.000 --> 27:31.000 weil du bist sofort auf die Schiene gesprungen 27:31.000 --> 27:33.000 von der Performance, 27:33.000 --> 27:35.000 wie solltet man jetzt den Framework benutzen, 27:35.000 --> 27:37.000 was eben nicht so viele Kilobytes ausdiefert 27:37.000 --> 27:41.000 und irgendwas lazy loaded oder diese ganzen klugen Sachen macht, 27:41.000 --> 27:45.000 damit man im Endeffekt eine bessere Performance hat. 27:45.000 --> 27:48.000 Gut, ich stimmt, ich habe da vorher Performance gesagt. 27:48.000 --> 27:52.000 Aber was wären denn noch für unsere User wichtige Sachen? 27:52.000 --> 27:55.000 Weil da frage ich mich schon bei so Rendering Frameworks. 27:55.000 --> 27:57.000 Wäre das nicht sogar gut, 27:57.000 --> 27:59.000 so wie dann nach dem Motto wie vor zehn Jahren 27:59.000 --> 28:01.000 yet another bootstrap Webseite zu haben, 28:01.000 --> 28:04.000 wäre das nicht gut, wenn wir alle die gleiche UI benutzen 28:04.000 --> 28:08.000 für Fehlermeldungen oder für Notifications. 28:08.000 --> 28:12.000 Also ich glaube, man erkennt immer ganz gut eine Rails-Website, 28:12.000 --> 28:14.000 wenn da oben so ein Banner kommt. 28:14.000 --> 28:17.000 Ich glaube, jeder hat den gleichen Hex-Coder drinnen 28:17.000 --> 28:20.000 und die gleiche Schreibweise von Error-Messages. 28:20.000 --> 28:22.000 Aber müssen wir immer wieder von vorne 28:22.000 --> 28:24.000 alle das Rad neu erfinden, 28:24.000 --> 28:26.000 wie jetzt unsere Fehlermeldung ausschaut 28:26.000 --> 28:28.000 oder wie unser Loading-State ausschaut 28:28.000 --> 28:31.000 und eigentlich haben wir wahrscheinlich alle vor fünf Jahren 28:31.000 --> 28:34.000 bereits gelernt, dass man in den ersten, 28:34.000 --> 28:36.000 das heißt jetzt mal 300 Millisekunden 28:36.000 --> 28:38.000 oder wie viel auch immer, 28:38.000 --> 28:40.000 noch gar kein Loading-State anzeigen sollte, 28:40.000 --> 28:42.000 weil das dann nur so für unser Menschen, 28:42.000 --> 28:44.000 für unser langsames Menschen-Auge nur so kurz aufflickert 28:44.000 --> 28:46.000 und eher ablenkend wirkt. 28:46.000 --> 28:48.000 Also eigentlich hätten wir diese Probleme schon gelöst, 28:48.000 --> 28:51.000 aber irgendwie müssen wir doch wieder alle von vorne schreiben, 28:51.000 --> 28:57.000 Time-out, 300 Millisekunden und dann machen wir dieses und jenes. 28:57.000 --> 29:01.000 Naja, einmal ist es natürlich auch so, du willst das ja 29:01.000 --> 29:03.000 gerne selber auch lernen 29:03.000 --> 29:06.000 und deswegen gehst du manchmal durch diese ganzen Sachen durch 29:06.000 --> 29:08.000 und erst wenn du es dann alles kapiert hast, 29:08.000 --> 29:10.000 dann sagst du dann, kommt mir meistens zu dem Schluss, 29:10.000 --> 29:14.000 eigentlich ist das ja blöd, wenn wir das immer alle machen müssen. 29:14.000 --> 29:18.000 Also danach ist so, ja, jetzt weiß ich wie es geht, bitte, 29:18.000 --> 29:21.000 aber jetzt möchte ich es nicht wieder machen, 5.000-mal. 29:21.000 --> 29:23.000 Ich glaube, das ist so der eine Antrieb, 29:23.000 --> 29:27.000 dass jeder das irgendwie oder jedes nochmal machen möchte 29:27.000 --> 29:29.000 und auch die Framework-Macher vielleicht alle nochmal so, 29:29.000 --> 29:31.000 ich weiß es besser ist. 29:31.000 --> 29:34.000 Da sind nicht 300 Millisekunden, weil am optimalsten sind 200. 29:34.000 --> 29:37.000 Und genau, aber eigentlich macht das Sinn 29:37.000 --> 29:39.000 und wir machen das ja auch, wenn wir jetzt ein Auto kaufen, 29:39.000 --> 29:41.000 ist das ja auch nichts anderes. 29:41.000 --> 29:43.000 Also es ist ja immer gleich. 29:43.000 --> 29:46.000 Da wird nur im CSS halt die Custom Property 29:46.000 --> 29:49.000 für die Autolackierung einmal die Farbe geändert 29:49.000 --> 29:51.000 und dann habe ich einen Schaltknopf oder nicht 29:51.000 --> 29:55.000 und es habe ich weißes Leder drin oder irgendwie dunkles Plüsch. 29:55.000 --> 29:58.000 Und da, das interessiert ja auch keinen. 29:58.000 --> 30:00.000 Also da ist jetzt ja keiner, der sich darüber beschwert, 30:00.000 --> 30:03.000 dass der, also mein Golf sieht ja echt fast aus wie dein Golf. 30:03.000 --> 30:05.000 Das ist ja echt total nervig. 30:05.000 --> 30:07.000 Ich wollte mal was irgendwie zu mir besser passt. 30:07.000 --> 30:09.000 Ah, Moment. 30:09.000 --> 30:12.000 Schreibt jetzt wieder beim Kraftfahrzeug, 30:12.000 --> 30:14.000 wo ich wieder behaupten würde, 30:14.000 --> 30:17.000 viel kleinerer Problembereiche als Webfrontend, 30:17.000 --> 30:19.000 wo einfach dem Inherent ist, 30:19.000 --> 30:22.000 dass man irgendwie viel genauer justieren will. 30:22.000 --> 30:25.000 Speziell, wo die theoretische Möglichkeit ja definitiv besteht. 30:25.000 --> 30:27.000 Damit man wie du ja vorhin mal sagt, 30:27.000 --> 30:29.000 dass die Motorhaube bei Bedarf aufmachen kann 30:29.000 --> 30:31.000 und man wirklich was customisen oder hacken muss, 30:31.000 --> 30:33.000 kann wo es mal wirklich nötig ist. 30:33.000 --> 30:35.000 Und das besteht die Möglichkeit 30:35.000 --> 30:37.000 und man kann sich dann individuell abgrenzen 30:37.000 --> 30:39.000 und es gibt da möglicherweise valide Use Cases 30:39.000 --> 30:41.000 für wegen einfach der unglaublichen Vielfalt 30:41.000 --> 30:43.000 der Art von Frontend, die du da machen kannst. 30:43.000 --> 30:46.000 Desktop, Rechner, Telefon oder irgendwie Anzeige, Bildschirm im ICE. 30:46.000 --> 30:48.000 Das ist ja alles Webfrontend. 30:48.000 --> 30:50.000 Ja, das gibt es ja dann, da kannst du ja dann SUV 30:50.000 --> 30:52.000 oder Kleinwagen kaufen. 30:52.000 --> 30:54.000 Das sitzen am Ende trotzdem auf der gleichen Plattform 30:54.000 --> 30:56.000 und sehen nur anders aus. 30:56.000 --> 30:58.000 Das ist wirklich viel, viel, glaube ich, standardisierbar. 30:58.000 --> 31:00.000 Aber das ist ja das, was Vanessa sagt. 31:00.000 --> 31:02.000 Also, dass sie einfach bestimmte Dinge, 31:02.000 --> 31:04.000 die sich etabliert haben. 31:04.000 --> 31:06.000 Also, wenn du jetzt irgendwie vor 20 Jahren 31:06.000 --> 31:08.000 noch ein Citroen gekauft hast, 31:08.000 --> 31:10.000 dann hat er noch so diese Pistolen-Schaltung 31:10.000 --> 31:12.000 oder vielleicht vor 30, 40 Jahren, 31:12.000 --> 31:14.000 dann hatte er seine Pistolen-Schaltung. 31:14.000 --> 31:16.000 Genau, die gibt es halt nicht mehr. 31:16.000 --> 31:18.000 Die Franzosen, die waren eigentlich, 31:18.000 --> 31:20.000 ja, die haben wirklich 31:20.000 --> 31:22.000 abgefahrene Ideen gehabt, 31:22.000 --> 31:24.000 aber auch die haben dann irgendwann gesagt, 31:24.000 --> 31:26.000 so, ja, komm, die hatten dann ihre Hupel links 31:26.000 --> 31:28.000 in so einem Hebel am Lenkrad. 31:28.000 --> 31:30.000 Warum? 31:30.000 --> 31:32.000 Weiß kein Mensch? 31:32.000 --> 31:34.000 Also, so ein bisschen ist das jetzt ja bei uns auch so. 31:34.000 --> 31:36.000 Ja. 31:36.000 --> 31:38.000 Also, und am Ende sind halt alle so, 31:38.000 --> 31:40.000 hey, so dieses Bedienkonzept, 31:40.000 --> 31:42.000 so, das versteht jeder, 31:42.000 --> 31:44.000 das ist etabliert, das ist intuitiv 31:44.000 --> 31:46.000 und darum 31:46.000 --> 31:48.000 fügen wir uns 31:48.000 --> 31:50.000 und machen das alle so. 31:50.000 --> 31:52.000 Und toben uns vielleicht eher bei 31:52.000 --> 31:54.000 in Details aus noch. 31:54.000 --> 31:56.000 Ja, bin ich mir nicht so sicher. 31:56.000 --> 31:58.000 Also speziell, 31:58.000 --> 32:00.000 weil, sagen wir mal so, 32:00.000 --> 32:02.000 der kleinste potenzielle Widerstreit 32:02.000 --> 32:04.000 wäre ja zum Beispiel 32:04.000 --> 32:06.000 ein großer Bildschirm, ein kleiner Bildschirm. 32:06.000 --> 32:08.000 So. Und es ist ja notwendigerweise so, 32:08.000 --> 32:10.000 dass wenn du eine Lösung haben willst, 32:10.000 --> 32:12.000 sie alle zu knechten, jede Lösung 32:12.000 --> 32:14.000 für entweder den großen oder den kleinen, 32:14.000 --> 32:16.000 wenn sie auch potenziell das jeweils andere bespielen kann, 32:16.000 --> 32:18.000 notwendigerweise irgendwelche Trade-offs 32:18.000 --> 32:20.000 macht, damit es beides machen kann. 32:20.000 --> 32:22.000 Aber wenn du hingegen sagst, ich bin jetzt sowieso gerade mal 32:22.000 --> 32:24.000 nur hier der aktuell mega gehypte 32:24.000 --> 32:26.000 Mobilanwendungsfall 32:26.000 --> 32:28.000 und große Bildschirme existieren für mich gar nicht, 32:28.000 --> 32:30.000 dann ist das ja suboptimal. 32:30.000 --> 32:32.000 Oder wenn du umgekehrt sagst, ich bin jetzt hier 32:32.000 --> 32:34.000 ein firm, internes Tool, 32:34.000 --> 32:36.000 das ausschließlich auf den 32:36.000 --> 32:38.000 mir genau bekannten Laptop meiner Sachbearbeiter 32:38.000 --> 32:40.000 stattfindet, da machst du kein Mobil-Ui. 32:40.000 --> 32:42.000 Warum würdest du dann irgendwas in deinem Code haben? 32:42.000 --> 32:44.000 Auch nur eine Zeile, die eine 32:44.000 --> 32:46.000 Konzession an das Mobil-Ui, dass du unter keinen 32:46.000 --> 32:48.000 Umständen jemals haben wirst. 32:50.000 --> 32:52.000 Genau, okay, das 32:52.000 --> 32:54.000 ja schon, aber 32:56.000 --> 32:58.000 ich weiß nicht, ob das so häufig vorkommt. 32:58.000 --> 33:00.000 Also, 33:00.000 --> 33:02.000 der Standard-Use-Case 33:02.000 --> 33:04.000 ist ja schon, dass man 33:04.000 --> 33:06.000 einfach viele Geräte abdecken will. 33:06.000 --> 33:08.000 Und vielleicht ist es ja so, dass man vielleicht am 33:08.000 --> 33:10.000 Zeitpunkt in dieser Firma, 33:10.000 --> 33:12.000 aber dann kommt irgendwann der Schepp an und sagt, 33:12.000 --> 33:14.000 warum kann ich eigentlich dieses Ding nicht 33:14.000 --> 33:16.000 von unterwegsem Handy bedienen? 33:16.000 --> 33:18.000 Macht das mal, dass das geht und dann denkst du dir, 33:18.000 --> 33:20.000 ja, jetzt ist das natürlich 33:20.000 --> 33:22.000 blöd, weil wir haben quasi unter 33:22.000 --> 33:24.000 der Prämisse, dass wir nur 33:24.000 --> 33:26.000 Desktop-Systeme bedienen, ein Framework 33:26.000 --> 33:28.000 ausgewählt, das darauf optimiert ist. 33:28.000 --> 33:30.000 Und jetzt kommt der Typ an 33:30.000 --> 33:32.000 oder die Typ hin und will, 33:32.000 --> 33:34.000 dass das jetzt auf einmal doch auch 33:34.000 --> 33:36.000 auf dem Smartphone geht. 33:36.000 --> 33:38.000 Ich bin das kleinste Nerd-Zahnrad 33:38.000 --> 33:40.000 im Keller des riesigen Hochhauses 33:40.000 --> 33:42.000 und mir wird gesagt, entwickle jetzt mal 33:42.000 --> 33:44.000 dieses Ding für unsere 33:44.000 --> 33:46.000 Sachbearbeiter auf deren Laptops. 33:46.000 --> 33:48.000 Da gehe ich doch nicht hin 33:48.000 --> 33:50.000 und fange da irgendwie an, 33:50.000 --> 33:52.000 eine argumentative 33:52.000 --> 33:54.000 Kampfesleistung anzustrengen, nach oben 33:54.000 --> 33:56.000 gerichtet, um zu sagen, ja, aber was ist, 33:56.000 --> 33:58.000 wenn ihr eines Tages noch Telefone haben wollt? 33:58.000 --> 34:00.000 Da kann man sicherlich, 34:00.000 --> 34:02.000 sicherlich wäre das manchmal richtig, 34:02.000 --> 34:04.000 aber man kann doch nicht im allgemeinen Fall von den Menschen verlangen, 34:04.000 --> 34:06.000 die sich nehmen. 34:06.000 --> 34:08.000 Aber dann ist es dir doch auch egal, 34:08.000 --> 34:10.000 wenn da Anpassungen auch für mobile drin sind. 34:10.000 --> 34:12.000 Also wenn du die Person bist, 34:12.000 --> 34:14.000 dann sagst du halt einfach, 34:14.000 --> 34:16.000 ich nehme das halt so und gut ist. 34:16.000 --> 34:18.000 Ja, Moment. Aber du musst dann ja auch 34:18.000 --> 34:20.000 die Angebotsseite betrachten. 34:20.000 --> 34:22.000 Dann ist es halt eben auch so die Frage, 34:22.000 --> 34:24.000 das Framework, das dann jemand benutzen wird 34:24.000 --> 34:26.000 aus dem einen oder anderen Grund, muss 34:26.000 --> 34:28.000 erst mal von irgendwem auch sozusagen 34:28.000 --> 34:30.000 angeboten werden, möglicherweise sogar 34:30.000 --> 34:32.000 vercheckt werden für irgendwie Euros oder Dollars 34:32.000 --> 34:34.000 produziert, beworben und so weiter werden 34:34.000 --> 34:36.000 mit dem ganzen Aufwand, der da reingeht. 34:36.000 --> 34:38.000 Also ich glaube, egal wie man das da so 34:38.000 --> 34:40.000 versucht irgendwie zu normieren, 34:40.000 --> 34:42.000 ich kann mir nicht vorstellen, 34:42.000 --> 34:44.000 dass das funktioniert. 34:44.000 --> 34:46.000 Ja, aber ich glaube also 34:46.000 --> 34:48.000 an dem, was Vanessa sagt, ist schon was dran. 34:48.000 --> 34:50.000 Also im Grunde könntest du alles 34:50.000 --> 34:52.000 mit Bootstrap machen, aber irgendwie 34:52.000 --> 34:54.000 ist also in 34:54.000 --> 34:56.000 dem Bereich ertragen 34:56.000 --> 34:58.000 ist die Leute einfach nicht 34:58.000 --> 35:00.000 nicht so ihren eigenen 35:00.000 --> 35:02.000 Spinnen zu haben für bestimmte Dinge. 35:02.000 --> 35:04.000 Also das ist eine Formularfelder und 35:04.000 --> 35:06.000 Buttons und 35:06.000 --> 35:08.000 daran scheitert es halt meistens. 35:08.000 --> 35:10.000 Und ich würde damit nur sagen, bei den Autos 35:10.000 --> 35:12.000 ist es auch so, 35:12.000 --> 35:14.000 dass man eben nur begrenzt 35:14.000 --> 35:16.000 seinen eigenen Spin reinbringen kann. 35:16.000 --> 35:18.000 Also du kannst natürlich danach noch irgendwie 35:18.000 --> 35:20.000 bei West Coast Customs dein Auto 35:20.000 --> 35:22.000 durchlackieren lassen und hier noch eine 35:22.000 --> 35:24.000 Kaffeemaschine in die Mittelkonsole 35:24.000 --> 35:26.000 bauen lassen. Aber im Grunde 35:26.000 --> 35:28.000 sind die halt alle ähnlich 35:28.000 --> 35:30.000 diese Anpassungsfähigkeit 35:30.000 --> 35:32.000 die ist halt sehr gering. 35:32.000 --> 35:34.000 Und damit sind aber trotzdem alle Leute zufrieden 35:34.000 --> 35:36.000 und man kotzt nicht die ganze Zeit im Strahl, 35:36.000 --> 35:38.000 wenn außen so, hey, da ist ja auch wieder 35:38.000 --> 35:40.000 so ein Golf wie meiner und da fährt der wieder, 35:40.000 --> 35:42.000 der hat ja auch die gleiche Farbe wie ich, 35:42.000 --> 35:44.000 super ätzend, wie soll man mich hier so erkennen. 35:44.000 --> 35:46.000 Das ist unswurscht. 35:46.000 --> 35:48.000 Bei Webseiten 35:48.000 --> 35:50.000 nicht, also bei Webseiten müssen die immer, 35:50.000 --> 35:52.000 die müssen immer, die darfst 35:52.000 --> 35:54.000 nirgendwo noch mal so geben. 35:54.000 --> 35:56.000 Auf keinen Fall. Ja, sagen wir mal so, 35:56.000 --> 35:58.000 Vanessa hat natürlich recht damit, dass das so sein könnte. 35:58.000 --> 36:00.000 Ich bin jetzt sozusagen 36:00.000 --> 36:02.000 nur der Kultur-Pessimist, der sagt, 36:02.000 --> 36:04.000 das wird sich niemals manifestieren. 36:04.000 --> 36:06.000 Aber also technisch und inhaltlich 36:06.000 --> 36:08.000 stimmt das? Dem widerspreche ich nicht. 36:08.000 --> 36:10.000 Ich hieße auch nur nicht dran. Okay, dann sind wir uns ja 36:10.000 --> 36:12.000 im Prinzip einig. Genau. 36:12.000 --> 36:14.000 Ich finde nur, dass das auf jeden Fall Sinn macht. 36:14.000 --> 36:16.000 Also eben weil das 36:16.000 --> 36:18.000 weil da viel Zeit 36:18.000 --> 36:20.000 verschwendet wird, Dinge immer wieder neu 36:20.000 --> 36:22.000 zu erfinden. Nur weil man, 36:22.000 --> 36:24.000 also genauso wie man eben 36:24.000 --> 36:26.000 die Elemente, also 36:26.000 --> 36:28.000 die müssen gestylt, also der Selekte 36:28.000 --> 36:30.000 darf nicht so sein, wie er ist. 36:30.000 --> 36:32.000 Natürlich ist er nicht schön, aber 36:32.000 --> 36:34.000 er ist eigentlich 36:34.000 --> 36:36.000 funktional schon ganz in Ordnung. 36:36.000 --> 36:38.000 Aber also jetzt mal abgesehen 36:38.000 --> 36:40.000 von so kombo-box-funktionalen Militäten, sorry. 36:40.000 --> 36:42.000 Das Licht weißen. 36:42.000 --> 36:44.000 Weil du hast gerade gemeint, oh, das stört mich jetzt, 36:44.000 --> 36:46.000 dass das schon wieder meine gleiche Autofahrung 36:46.000 --> 36:48.000 fährt und so was. Aber das, wir da sind 36:48.000 --> 36:50.000 wir in dem Beispiel, ja, die End-User. 36:50.000 --> 36:52.000 Die Leute, die dieses Auto kaufen 36:52.000 --> 36:54.000 mit rumfahren. Aber 36:54.000 --> 36:56.000 das wäre ja so, 36:56.000 --> 36:58.000 wie wenn ich jetzt als 36:58.000 --> 37:00.000 Mensch auf irgendeine Webseite gehe 37:00.000 --> 37:02.000 und mir denke, Mai, die schaut ja genauso 37:02.000 --> 37:04.000 aus wie der andere Webshop. 37:04.000 --> 37:06.000 Aber wir reden ja gerade aus der 37:06.000 --> 37:08.000 Hersteller, Hersteller in der Sicht. 37:08.000 --> 37:10.000 Also unstört es ja, wenn unsere Webseite, 37:10.000 --> 37:12.000 die wir bauen, nicht selber 37:12.000 --> 37:14.000 benutzen, nur die, die wir bauen, genauso 37:14.000 --> 37:16.000 ausschaut wie eine andere. Und ich weiß auch nicht, 37:16.000 --> 37:18.000 ob uns das genau stört, sondern 37:18.000 --> 37:20.000 unstört wahrscheinlich eher, dass wir die 37:20.000 --> 37:22.000 Resultiven dieser Thematik drin sind, 37:22.000 --> 37:24.000 dass wir genau die Fehler dieser anderen 37:24.000 --> 37:26.000 Webseiten kennen. Und die wollen 37:26.000 --> 37:28.000 wir unserer Meinung nach eben 37:28.000 --> 37:30.000 besser machen und besser lösen. 37:30.000 --> 37:32.000 Und ja, vielleicht 37:32.000 --> 37:34.000 auf einer Landing-Webseite will man sich noch 37:34.000 --> 37:36.000 so ein bisschen hervorheben. 37:36.000 --> 37:38.000 Aber ob das jetzt wirklich 37:38.000 --> 37:40.000 die User im Endeffekt interessiert, 37:40.000 --> 37:42.000 ob das jetzt ein einzigartiges Design 37:42.000 --> 37:44.000 ist, weiß ich nicht. 37:44.000 --> 37:46.000 Also möglicherweise schon. 37:46.000 --> 37:48.000 Ich finde es immer ganz gut, wenn es eher 37:48.000 --> 37:50.000 gleich ist. Das heißt, ich weiß, welchen 37:50.000 --> 37:52.000 Weg ich gehen muss. Ich weiß, was ich drücken muss. 37:52.000 --> 37:54.000 Und ich will nicht wieder eine andere UI haben. 37:54.000 --> 37:56.000 Und am allerschlimmsten ist, wenn mir jemand 37:56.000 --> 37:58.000 mein Scroll-Behavior ändert, hört doch bitte 37:58.000 --> 38:00.000 auf, mein Scroll-Behavior zu ändern. 38:00.000 --> 38:02.000 Aber es gibt ja zum einen, also du hast ja 38:02.000 --> 38:04.000 bei den Autoherstellern auch, dass quasi 38:04.000 --> 38:06.000 der, weiß ich nicht, Golf 8 38:06.000 --> 38:08.000 irgendwie weiterentwickelt ist gegenüber 38:08.000 --> 38:10.000 dem Sieben. Da sind ja schon, 38:10.000 --> 38:12.000 fließt ja dann Learnings wieder rein. 38:12.000 --> 38:14.000 Also es gibt ja schon sozusagen 38:14.000 --> 38:16.000 Verbesserung. Aber wenn man die dann 38:16.000 --> 38:18.000 rollt, man die erstmal für alles aus. 38:18.000 --> 38:20.000 Also so, so würde ich das sehen. 38:20.000 --> 38:22.000 Und dann ist es ja auch so, dass die, 38:22.000 --> 38:24.000 dass sich die Autos zum Beispiel die, 38:24.000 --> 38:26.000 also auch über Hersteller hinweg 38:26.000 --> 38:28.000 die Knöpfe und den ganzen Kram 38:28.000 --> 38:30.000 ja teilen. Das heißt, wenn du in den Golf 38:30.000 --> 38:32.000 einsteigst und in einen Tiguan, dann guckst 38:32.000 --> 38:34.000 du am Ende auf die gleichen Sachen. 38:34.000 --> 38:36.000 Weil die einfach gut genug sind 38:36.000 --> 38:38.000 und etabliert und du einfach nicht 38:38.000 --> 38:40.000 für jedes Auto dann quasi 38:40.000 --> 38:42.000 eigene Knopfform 38:42.000 --> 38:44.000 erfinden musst. 38:44.000 --> 38:46.000 Aber auch das Gefühl, da gibt es ganz andere 38:46.000 --> 38:48.000 Schmerzgrenzen. Also von Webseiten generell 38:48.000 --> 38:50.000 wird immer schon erwartet, da wir brauchen 38:50.000 --> 38:52.000 die perfekte UX. Es muss bedienbar sein. 38:52.000 --> 38:54.000 Und wenn es irgendwie was nicht funktioniert, 38:54.000 --> 38:56.000 dann sind wir die Hersteller dran schuld, 38:56.000 --> 38:58.000 dass wir das nicht gut genug gemacht 38:58.000 --> 39:00.000 haben. Und bei allen anderen Sachen 39:00.000 --> 39:02.000 kommt es mir eher so vor, wenn ich jetzt nicht 39:02.000 --> 39:04.000 damit umgehen kann, weil ich das entkunden, 39:04.000 --> 39:06.000 dann bin ich halt ein bisschen zu doof. 39:06.000 --> 39:08.000 Und gerade bei Autos, die, 39:08.000 --> 39:10.000 keine Ahnung, bei Opel musste runter drücken, 39:10.000 --> 39:12.000 den Scheitknüppel, damit dann 39:12.000 --> 39:14.000 die hoch drücken. Und bei VW 39:14.000 --> 39:16.000 musste runter drücken, dann hat es einmal 39:16.000 --> 39:18.000 6 Gänge, dann hat es einmal 5 Gänge, 39:18.000 --> 39:20.000 die andere Frage ist, warum 39:20.000 --> 39:22.000 schalten wir überhaupt noch? Es gibt Automatik-Autos, 39:22.000 --> 39:24.000 also wenn ich nicht schon längst Automatik 39:24.000 --> 39:26.000 haben könnte. Und dann kommt das nächste 39:26.000 --> 39:28.000 Extrem von Tesla, wo du nur noch 39:28.000 --> 39:30.000 Bildschirme hast und hoffen musst, 39:30.000 --> 39:32.000 dass die Bremse funktioniert und dass du den 39:32.000 --> 39:34.000 Hupenknopf findest auf deinem Bildschirm, 39:34.000 --> 39:36.000 weil es keine Knöpfe mehr gibt. Also auch da 39:36.000 --> 39:38.000 ist eine große Entwicklung. 39:38.000 --> 39:40.000 Ja, da haben wir nur unsere Witzhitschübe, 39:40.000 --> 39:42.000 keine Ahnung, dass die Hardware braucht 39:42.000 --> 39:44.000 erst mal 6 Jahre, bis sie dann normal in 39:44.000 --> 39:46.000 Auto ausgeliefert wird. Das heißt, jede Hardware 39:46.000 --> 39:48.000 da drücken ist wahrscheinlich schon 6 Jahre alt. 39:48.000 --> 39:50.000 Und dann soll man sich heutzutage noch entscheiden, 39:50.000 --> 39:52.000 ob man denn wirklich auch dieses Bluetooth 39:52.000 --> 39:54.000 braucht. Ja, freilich braucht. Dieses Bluetooth 39:54.000 --> 39:56.000 gibt mir halt einfach das größte von allen. 39:56.000 --> 39:58.000 Aber mein nächster Punkt ist, 39:58.000 --> 40:00.000 noch grasser weiter zu gehen. 40:00.000 --> 40:02.000 Und zwar 40:02.000 --> 40:04.000 weg von den Sprachen 40:04.000 --> 40:06.000 zu No Code Tools. 40:06.000 --> 40:08.000 Weil jetzt ist es so, 40:08.000 --> 40:10.000 wenn man, und das ist, finde 40:10.000 --> 40:12.000 ich, eine Frage, die 40:12.000 --> 40:14.000 gerne zum Rechtfertigen 40:14.000 --> 40:16.000 dann anregt. Aber Peter, 40:16.000 --> 40:18.000 was würdest du denn du sagen, wenn ich die 40:18.000 --> 40:20.000 Frage war, warum programmierst du denn überhaupt 40:20.000 --> 40:22.000 noch, wenn es doch bereits so viele 40:22.000 --> 40:24.000 No Code Tools gibt, 40:24.000 --> 40:26.000 die man gegen den gewissen 40:26.000 --> 40:28.000 Preis doch einfach verwenden könnte 40:28.000 --> 40:30.000 und sich da 40:30.000 --> 40:32.000 seine eigenen 40:32.000 --> 40:34.000 Landing Pages zurechtklickt und zurechtgestaltet. 40:34.000 --> 40:36.000 Aber bereits 40:36.000 --> 40:38.000 auch Tools für Datenwanken 40:38.000 --> 40:40.000 und etc. gehabt. Ja. 40:40.000 --> 40:42.000 Auch das würde ich 40:42.000 --> 40:44.000 weniger technisch beantworten 40:44.000 --> 40:46.000 und viel mehr über 40:46.000 --> 40:48.000 was haben wir da, wie sind wir es gewohnt, 40:48.000 --> 40:50.000 Dinge zu machen, zu beantworten. 40:50.000 --> 40:52.000 Also warum das vieler Orts passiert. 40:52.000 --> 40:54.000 Ich kenne das ja manchmal 40:54.000 --> 40:56.000 von so meinen Besuchen bei irgendwelchen Firmen, 40:56.000 --> 40:58.000 wo ich so reingucke, aha, das ist also euer 40:58.000 --> 41:00.000 internes Dashboard, was dann halt irgendwie nur 41:00.000 --> 41:02.000 so ein paar Leute irgendwelche Analysten 41:02.000 --> 41:04.000 oder so sich angucken. Und das ist jetzt 41:04.000 --> 41:06.000 mit React gebaut und ist irgendwie ein 7 41:06.000 --> 41:08.000 Megabyte JavaScript Bundle. 41:08.000 --> 41:10.000 Okay, das hätte man wirklich auch irgendwie mit Rails 41:10.000 --> 41:12.000 oder halt irgendwie mit einem No Code Tool machen können. 41:12.000 --> 41:14.000 Aber das Ding ist, 41:14.000 --> 41:16.000 du hast halt eben einen Haufen von irgendwelchen 41:16.000 --> 41:18.000 React Entwicklern und die können das 41:18.000 --> 41:20.000 halt eben. Und wenn es die am Ende 41:20.000 --> 41:22.000 da zum Erfolg wird, führt meine Güte. 41:22.000 --> 41:24.000 Und auch sonst bin ich halt auch da dabei. 41:24.000 --> 41:26.000 Das ist halt glaube ich für so sehr spezielle 41:26.000 --> 41:28.000 Anwendungsfälle sicherlich sinnvoll. 41:28.000 --> 41:30.000 Gerade wenn es halt um so 41:30.000 --> 41:32.000 Dashboards geht oder einfach nur Dateneingabe 41:32.000 --> 41:34.000 oder so, das kann man damit sicherlich ganz gut 41:34.000 --> 41:36.000 hinkriegen. Aber wird halt eben dann schwierig, 41:36.000 --> 41:38.000 sobald es den Evolutionsschritt 41:38.000 --> 41:40.000 nimmt, möglicherweise eines Tages 41:40.000 --> 41:42.000 zu, wir brauchen jetzt aber mal was anderes, 41:42.000 --> 41:44.000 wo wir halt eben programmiermäßige 41:44.000 --> 41:46.000 Kontrolle haben. 41:46.000 --> 41:48.000 Und dann geht es halt eben dahin. 41:48.000 --> 41:50.000 Jetzt sage ich nicht, dass dieser Schritt immer passiert, 41:50.000 --> 41:52.000 aber das ist so dieser, mh, aber was wäre denn bloß? 41:52.000 --> 41:54.000 Das ist so quasi die Reichweitenangst, 41:54.000 --> 41:56.000 wo wir bei den Autos blieben, 41:56.000 --> 41:58.000 für halt eben so die Frontententwicklung. 41:58.000 --> 42:00.000 Glaubt, da ließe sich halt echt viel 42:00.000 --> 42:02.000 Effizienz mit realisieren, so in 42:02.000 --> 42:04.000 vielen Anwendungsfällen, in vielen Firmen. 42:04.000 --> 42:06.000 Aber was wäre wenn? 42:06.000 --> 42:08.000 Was ist, wenn wir mal was anderes machen, 42:08.000 --> 42:10.000 um hiermit zu willen? 42:10.000 --> 42:12.000 Dann würden wir das ja neu schreiben müssen. 42:12.000 --> 42:14.000 Und das geht ja nun bekanntermaßen auf gar keinen Fall. 42:14.000 --> 42:16.000 Das ist der große Kahuna, dürfen wir niemals 42:16.000 --> 42:18.000 auch nur in die Nähe kommen von. Und deswegen 42:18.000 --> 42:20.000 bauen wir das lieber von Grund auf mit React Neu. 42:20.000 --> 42:22.000 Und hier schreibt erstmal 42:22.000 --> 42:24.000 irgendwelche GraphQL Resolver, auf geht's. 42:24.000 --> 42:26.000 Meine Theorie. 42:26.000 --> 42:28.000 Ja, ich mein sowas ist ja auch 42:28.000 --> 42:30.000 eigentlich gar nicht schlecht, 42:30.000 --> 42:32.000 wenn man so irgendwelche Proof-of-Concepts 42:32.000 --> 42:34.000 machen will oder Prototypen will 42:34.000 --> 42:36.000 oder vielleicht auch erstmal 42:36.000 --> 42:38.000 so erste Versionen ausrollen möchte. 42:38.000 --> 42:40.000 Das macht ja total Sinn 42:40.000 --> 42:42.000 auch, vielleicht irgendwie 42:42.000 --> 42:44.000 am Anfang damit zu starten. Aber man muss 42:44.000 --> 42:46.000 halt, finde ich, 42:46.000 --> 42:48.000 einfach damit rechnen 42:48.000 --> 42:50.000 oder das einplanen, 42:50.000 --> 42:52.000 dass das kein, nicht von Ewigkeit ist. 42:52.000 --> 42:54.000 Also. 42:54.000 --> 42:56.000 Und dann ist es ja auch vollkommen in Ordnung. 42:56.000 --> 42:58.000 Und dann ist es ja auch nicht weh, dann ist 42:58.000 --> 43:00.000 irgendwann so, ja, das wussten wir eh, 43:00.000 --> 43:02.000 dass wir das irgendwann wieder wegschmeißen müssen. 43:02.000 --> 43:04.000 Also, wenn das dann tatsächlich auch 43:04.000 --> 43:06.000 funktioniert und wir, 43:06.000 --> 43:08.000 wir vielleicht unser Business aufbauen 43:08.000 --> 43:10.000 und wenn du dein Business auf irgendwas 43:10.000 --> 43:12.000 dann dauerhaft aufbaust, 43:12.000 --> 43:14.000 dann glaube ich, ist es schon besser, 43:14.000 --> 43:16.000 wenn du nicht solche Tools nimmst, 43:16.000 --> 43:18.000 weil du ja davon abhängig bist, 43:18.000 --> 43:20.000 wie die, 43:20.000 --> 43:22.000 wie die ticken. Also. 43:22.000 --> 43:24.000 Und irgendwann willst du vielleicht 43:24.000 --> 43:26.000 dann, weiß ich nicht, hast du, 43:26.000 --> 43:28.000 wenn du Anforderungen dann auf einmal 43:28.000 --> 43:30.000 hast, die du damit nicht umsetzen 43:30.000 --> 43:32.000 kannst, ist es halt schlecht. 43:32.000 --> 43:34.000 Da ist vielleicht dann einfach zu, 43:34.000 --> 43:36.000 zu viel 43:36.000 --> 43:38.000 Abstraktion drin, 43:38.000 --> 43:40.000 dass du das vielleicht dann nicht mit solchen Tools 43:40.000 --> 43:42.000 machen kannst. Aber ich glaube, für alles, was 43:42.000 --> 43:44.000 so dumm herum ist, also so Dashboards 43:44.000 --> 43:46.000 und so Zeugs, ist sowas auch super. 43:46.000 --> 43:48.000 Also, alles was nicht, 43:48.000 --> 43:50.000 dein Kernprodukt ist, dass du verkaufst 43:50.000 --> 43:52.000 für Geld oder dass deine Geldmaschine ist 43:52.000 --> 43:54.000 unterstützt. 43:54.000 --> 43:56.000 Da sehe ich solche Tools auch auf jeden Fall 43:56.000 --> 43:58.000 als angebracht an. 43:58.000 --> 44:00.000 Aber wenn ich da mal kurz eine trollige Frage stellen darf. 44:00.000 --> 44:02.000 Ja. 44:02.000 --> 44:04.000 Du unterscheidest jetzt ja gerade die Geldmaschine 44:04.000 --> 44:06.000 und die Kernlogik von dem, 44:06.000 --> 44:08.000 was letztlich am Ende die Leute nutzen, um 44:08.000 --> 44:10.000 darauf rumzuklicken. 44:10.000 --> 44:12.000 Wenn aber das, wo man darauf rumklickt, 44:12.000 --> 44:14.000 doch das einzige Medium ist, mit dem 44:14.000 --> 44:16.000 deine Nutzer überhaupt in Kontakt 44:16.000 --> 44:18.000 zu deinem Produkt kommen. 44:18.000 --> 44:20.000 Ist dann nicht das, wo sie darauf rumklicken, 44:20.000 --> 44:22.000 das eigentliche Kernprodukt und das, was 44:22.000 --> 44:24.000 da im Hintergrund passiert, eigentlich egal? 44:24.000 --> 44:26.000 Weil das könntest du ja theoretisch 44:26.000 --> 44:28.000 austauschen. Du könntest ja theoretisch 44:28.000 --> 44:30.000 wirklich deinen Backend austauschen gegen 44:30.000 --> 44:32.000 ein komplett anderes, das 44:32.000 --> 44:34.000 gleiche Ergebnis produziert, aber mit 44:34.000 --> 44:36.000 komplett anderer Technik, komplett anderem Stack, 44:36.000 --> 44:38.000 komplett anderem alles. Aber du musst es halt 44:38.000 --> 44:40.000 niemandem sagen. 44:40.000 --> 44:42.000 Ich glaube, ich kann dir trotzdem noch 44:42.000 --> 44:44.000 nicht so ganz folgen. Also... 44:44.000 --> 44:46.000 Die Frage ist halt, ist das was hinter der Fassade 44:46.000 --> 44:48.000 ist das Kernprodukt? Oder wenn jeder nur die Fassade 44:48.000 --> 44:50.000 sieht, ist nicht die Fassade das Kernprodukt? 44:50.000 --> 44:52.000 Ja, also wenn die Fassade nicht das 44:52.000 --> 44:54.000 Kernprodukt ist, also wenn jetzt zum Beispiel 44:54.000 --> 44:56.000 also werden ja letztens die 44:56.000 --> 44:58.000 Menschen von Subgate zu Gast. 44:58.000 --> 45:00.000 Also da könnte man ja sagen, deren 45:00.000 --> 45:02.000 Kernprodukt ist ja quasi deren Telefonie 45:02.000 --> 45:04.000 Software 45:04.000 --> 45:06.000 und Infrastruktur. 45:06.000 --> 45:08.000 Und ich könnte mir 45:08.000 --> 45:10.000 in so einem Kontext vorstellen, dass man 45:10.000 --> 45:12.000 vielleicht dann seine 45:12.000 --> 45:14.000 Landing Pages und Sales Seiten und 45:14.000 --> 45:16.000 vielleicht auch seine Seiten, wo man das 45:16.000 --> 45:18.000 bedient, das machen die nicht, haben die auch 45:18.000 --> 45:20.000 Gründe für. Aber dass man sowas eben 45:20.000 --> 45:22.000 mit solchen Tools 45:22.000 --> 45:24.000 baut. Und dann eben 45:24.000 --> 45:26.000 seine Zeit, die man 45:26.000 --> 45:28.000 hat, die ja auch nicht unendlich ist, 45:28.000 --> 45:30.000 eben fokussiert auf die Fähigkeiten 45:30.000 --> 45:32.000 dieser 45:32.000 --> 45:34.000 Infrastruktur und das Services, den man 45:34.000 --> 45:36.000 verkauft. Aber du könntest ja auch genauso gut 45:36.000 --> 45:38.000 ein Evil Subgate vorstellen, das gar kein 45:38.000 --> 45:40.000 eigenes Backend hat, sondern das irgendwo einkauft, 45:40.000 --> 45:42.000 aber halt eine bessere User Experience für 45:42.000 --> 45:44.000 dieses Backend herstellt. 45:44.000 --> 45:46.000 Ja, klar. Die Frage ist dann irgendwann, 45:46.000 --> 45:48.000 wo kannst du dich eben 45:48.000 --> 45:50.000 von Konkurrenten unterscheiden 45:50.000 --> 45:52.000 und wenn das eben diese 45:52.000 --> 45:54.000 UI betrifft, dann 45:54.000 --> 45:56.000 ja, dann ist es vielleicht 45:56.000 --> 45:58.000 an der Zeit eben nicht so ein Tool. 45:58.000 --> 46:00.000 Oder dann ist das vielleicht so ein Bereich, wo man 46:00.000 --> 46:02.000 eben nicht mehr so ein Tool einsetzen sollte, sondern 46:02.000 --> 46:04.000 wo man dann eins nimmt, 46:04.000 --> 46:06.000 wo man ein bisschen mehr Einfluss 46:06.000 --> 46:08.000 ausüben kann. Ja, das Ding 46:08.000 --> 46:10.000 ist glaube ich, die Entscheidung 46:10.000 --> 46:12.000 für den Framework ist nicht mit der Entscheidung 46:12.000 --> 46:14.000 fertig oder für ein Tool oder sonst 46:14.000 --> 46:16.000 irgendwas, sondern im Prinzip ist das ja 46:16.000 --> 46:18.000 sozusagen, dass man dann ein Commitment eingeht. 46:18.000 --> 46:20.000 Wie immer das sich dann auch am Ende 46:20.000 --> 46:22.000 ausgestaltet, wie immer das auch am Ende wird, 46:22.000 --> 46:24.000 ob man dann halt eben ein bisschen alle Ewigkeit 46:24.000 --> 46:26.000 glücklich zusammen ist oder irgendwann 46:26.000 --> 46:28.000 auf die eine oder andere Weise eine Trennung 46:28.000 --> 46:30.000 gleich welcher Form erfolgen muss. 46:30.000 --> 46:32.000 Das ist halt glaube ich das Ding. Also deswegen 46:32.000 --> 46:34.000 auch so die, ist mir halt bei dieser ganzen 46:34.000 --> 46:36.000 Tool-Diskussion halt einfach jedwede technische 46:36.000 --> 46:38.000 Ebene völlig egal, weil die Entscheidung 46:38.000 --> 46:40.000 tut's das oder tut's das nicht. Die ist ja relativ 46:40.000 --> 46:42.000 schnell rausgefunden. Kann das das? 46:42.000 --> 46:44.000 Aber die Frage ist halt eben 46:44.000 --> 46:46.000 wie gut kannst das denn? Und 46:46.000 --> 46:48.000 werden wir, werden unsere Ziele irgendwie 46:48.000 --> 46:50.000 da in der gleichen Ausrichtung bestehen 46:50.000 --> 46:52.000 bleiben oder biegen die irgendwann schräg ab 46:52.000 --> 46:54.000 oder bieg ich irgendwann schräg ab oder so? 46:54.000 --> 46:56.000 Ja, oder gibt's neue gesetzliche Vorgaben 46:56.000 --> 46:58.000 die dich abbiegen lassen zum Beispiel 46:58.000 --> 47:00.000 ohne dass du das ursprünglich wolltest. 47:00.000 --> 47:02.000 Genau, gesetzliche Vorgaben oder 47:02.000 --> 47:04.000 de facto gesetzliche Vorgaben, wie hey, plötzlich 47:04.000 --> 47:06.000 gibt's Core Webwitels, gab's vorher nicht, jetzt 47:06.000 --> 47:08.000 gibt's die und jetzt optimiert mal alle schön 47:08.000 --> 47:10.000 hin, viel Spaß dabei. So geht das dann 47:10.000 --> 47:12.000 überhaupt, wenn du gesagt hast, ich mach jetzt einfach 47:12.000 --> 47:14.000 ein stinknormales React-Frontend und da hinten 47:14.000 --> 47:16.000 ist meine Rest-API fertig, mehr will ich gar nicht. 47:16.000 --> 47:18.000 So, aber das Problem ist, dass es halt 47:18.000 --> 47:20.000 eben fundamental unwissbar, weil du halt ja 47:20.000 --> 47:22.000 nicht weißt, wer ja in welche Richtung in 47:22.000 --> 47:24.000 Zukunft abbiegen wird. Bei dir kannst du es 47:24.000 --> 47:26.000 vielleicht noch irgendwie einschätzen, aber was 47:26.000 --> 47:28.000 da jetzt in den Köpfen der React-Entwickler 47:28.000 --> 47:30.000 vorgeht, wer weiß es halt eben schon. Und 47:30.000 --> 47:32.000 das ist halt eben notwendigerweise halt 47:32.000 --> 47:34.000 glaub ich so ein Spiel mit lauter Unbekannten 47:34.000 --> 47:36.000 und dann kann ich halt sagen, identifiziert man 47:36.000 --> 47:38.000 das, okay, ich hab hier ein hoffen Entwicklerinnen 47:38.000 --> 47:40.000 und Entwickler sitzen, was können die? Okay, 47:40.000 --> 47:42.000 die können, das ist ja schon mal ein Punkt 47:42.000 --> 47:44.000 für den Weg das zu machen. Und 47:44.000 --> 47:46.000 der ganze technische Kram 47:46.000 --> 47:48.000 ist halt egal. Und wenn die Leute halt 47:48.000 --> 47:50.000 eben alle nix können, dann lässt sie die halt 47:50.000 --> 47:52.000 eben abstimmen, so wie Spacecaron und dann wird 47:52.000 --> 47:54.000 halt eben einfach per Voxpopuli entschieden, 47:54.000 --> 47:56.000 ob man jetzt irgendwie Angular oder React 47:56.000 --> 47:58.000 macht, es ist halt wahrscheinlich am Ende 47:58.000 --> 48:00.000 wirklich egal. Das Wichtigste ist glaub ich 48:00.000 --> 48:02.000 halt wirklich, dass man dann, wenn man sich 48:02.000 --> 48:04.000 dafür entschieden hat, das Problem, ich glaub 48:04.000 --> 48:06.000 das kann man das dann ja auch nennen, das Problem 48:06.000 --> 48:08.000 okay, wir haben uns jetzt für eins entschieden, 48:08.000 --> 48:10.000 dass man das halt eben managt und halt eben sagt 48:10.000 --> 48:12.000 okay, neue Version, wir migrieren damit. 48:12.000 --> 48:14.000 Okay, in React gibt es jetzt keine Klassen mehr, 48:14.000 --> 48:16.000 bzw. die gibt es, aber die wird in Zukunft niemand 48:16.000 --> 48:18.000 mehr verwenden. Wenn wir jemals wieder jemand 48:18.000 --> 48:20.000 anheuern wollen, müssen wir halt eben all unsere 48:20.000 --> 48:22.000 Komponenten umschreiben, okay, auf geht's. 48:22.000 --> 48:24.000 Das ist halt so das Ding. Man entscheidet sich 48:24.000 --> 48:26.000 nicht dafür und hat damit ein Problem gelöst, 48:26.000 --> 48:28.000 sondern man entscheidet sich dafür, mit welchem 48:28.000 --> 48:30.000 Problem will man sich dann in Zukunft permanent 48:30.000 --> 48:34.000 verwenden. Und das ist halt dann auch wieder so eine, 48:34.000 --> 48:36.000 mehr so eine Management-People-Geschichte, 48:36.000 --> 48:38.000 wo man halt irgendwie auch überlegen muss 48:38.000 --> 48:40.000 mit den gegebenen Ressourcen und Strukturen, 48:40.000 --> 48:42.000 mit welcher Art von Problem kann ich mich 48:42.000 --> 48:44.000 da besser umschlagen? 48:44.000 --> 48:46.000 Ja, und wie viel technische Schuld baue ich 48:46.000 --> 48:48.000 auf und wann, wie häufig refactor ich und 48:48.000 --> 48:50.000 genau. 48:50.000 --> 48:52.000 Es ist halt nicht nur technische Schuld, du 48:52.000 --> 48:54.000 kannst ja sagen, ich baue das jetzt alles mit 48:54.000 --> 48:56.000 Vanilla, HTML, JavaScript, Web Components, 48:56.000 --> 48:58.000 okay, wunderbar, kannst ja machen, aber was 48:58.000 --> 49:00.000 wenn du jetzt irgendwie 10 Leute anheuern musst, 49:00.000 --> 49:02.000 wo findest du jetzt irgendwie so in deiner 49:02.000 --> 49:04.000 Stadt, irgendwie 10 Leute, die das halt 49:04.000 --> 49:06.000 wirklich ausreichend gut können? 49:06.000 --> 49:08.000 Möglicherweise kannst du viel einfacher 49:08.000 --> 49:10.000 irgendwelche Leute vom Baum der React 49:10.000 --> 49:12.000 Bootcamps flücken, die da relativ 49:12.000 --> 49:14.000 problemlos in das Tool zu integrieren 49:14.000 --> 49:16.000 sind, das du da benutzt, aber wenn du halt 49:16.000 --> 49:18.000 irgendwie was Obskures machst, mag das ja 49:18.000 --> 49:20.000 bis in alle Ewigkeit halten, das hilft aber 49:20.000 --> 49:22.000 nichts, wenn deine Firma nicht bis in alle 49:22.000 --> 49:24.000 Ewigkeit hält, weil du niemanden findest, 49:24.000 --> 49:26.000 den du anheuern kannst. 49:26.000 --> 49:28.000 Ja, genau, das ist aber glaube ich dann 49:28.000 --> 49:30.000 wirklich eher was, was du machen kannst, 49:30.000 --> 49:32.000 wenn du eben 49:32.000 --> 49:34.000 dauernd Schmerzen hast, beim 49:34.000 --> 49:36.000 Unbocken von einem Framework aufs andere 49:36.000 --> 49:38.000 oder so, also wenn das 49:38.000 --> 49:40.000 regelmäßig 49:40.000 --> 49:42.000 deine Schmerzen erzeugt, 49:42.000 --> 49:44.000 dann kannst du das eben 49:44.000 --> 49:46.000 gucken, dass du so viel wie möglich auf 49:46.000 --> 49:48.000 unveränderliche 49:48.000 --> 49:50.000 Standards hin quasi abwälzt 49:50.000 --> 49:52.000 und das, was 49:52.000 --> 49:54.000 eben veränderlich ist, eben kleiner 49:54.000 --> 49:56.000 ist, wenn das 49:56.000 --> 49:58.000 für dich der gangbare Weg ist, 49:58.000 --> 50:00.000 wie gesagt, ich bin da immer zur Überzeugung, da gibt's 50:00.000 --> 50:02.000 kein Free Lunch und man kann sich jetzt wirklich nur 50:02.000 --> 50:04.000 entscheiden, Pest-Kollacher-Fußballs mit 50:04.000 --> 50:06.000 was will ich mich jetzt da herumschlagen 50:06.000 --> 50:08.000 und das ist dann kein gelöstes Problem, sondern 50:08.000 --> 50:10.000 wir haben uns für ein Problem entschieden 50:10.000 --> 50:12.000 und das managen wir jetzt, um zwar aktiv und nicht 50:12.000 --> 50:14.000 einfach so, so wir haben Angular, jetzt schmeißen 50:14.000 --> 50:16.000 wir den einen raus, der Ahnung hatte und dann läuft das 50:16.000 --> 50:18.000 schon ein bisschen alle Ewigkeit weiter, so wird das nicht 50:18.000 --> 50:20.000 funktionieren. 50:20.000 --> 50:22.000 Jener Stadt ist ja Mangel-Wage 50:22.000 --> 50:24.000 auch bei Mobile-Developers 50:24.000 --> 50:26.000 Android oder iOS 50:26.000 --> 50:28.000 oder was es sonst noch gäbe 50:28.000 --> 50:30.000 und da gibt's ja 50:30.000 --> 50:32.000 das Problem oder die 50:32.000 --> 50:34.000 Lösung, je nachdem, wie man es eben ausdrücken 50:34.000 --> 50:36.000 möchte, der 50:36.000 --> 50:38.000 JavaScript-Mobile-Apps, also ich glaub 50:38.000 --> 50:40.000 wir haben Elektron 50:40.000 --> 50:42.000 React-Native, wahrscheinlich View-Native 50:42.000 --> 50:44.000 irgendwas 50:44.000 --> 50:46.000 Ionic etc. 50:46.000 --> 50:48.000 Ich kenne den ganzen Namen nicht, weil ich die 50:48.000 --> 50:50.000 einfach nie benutzt 50:50.000 --> 50:52.000 seit lange nicht mehr benutzt habe 50:52.000 --> 50:54.000 und dementsprechend nicht tief einsteigen möchte 50:54.000 --> 50:56.000 als meine Codeword-Zeit ist, glaub ich, fünf Jahre her. 50:56.000 --> 50:58.000 Daher die generelle 50:58.000 --> 51:00.000 Frage 51:00.000 --> 51:02.000 JavaScript-Mobile-App 51:02.000 --> 51:04.000 versus Native-App 51:04.000 --> 51:06.000 Vor- und Nachteile 51:08.000 --> 51:10.000 habt ihr Meinungen, ist es euch komplett 51:10.000 --> 51:12.000 egal, benutzt ihr sowas, benutzt 51:12.000 --> 51:14.000 ihr sowas nicht, wisst ihr, ob die 51:14.000 --> 51:16.000 App, die ihr benutzt, eine Mobile-App 51:16.000 --> 51:18.000 oder eine 51:18.000 --> 51:20.000 App ist? 51:20.000 --> 51:22.000 Ich glaube, ich kann da ganz gut theoretisieren, 51:22.000 --> 51:24.000 es ist mir halt egal, wenn sie mich nicht 51:24.000 --> 51:26.000 nervt, also ich glaube, man kann mit jeder 51:26.000 --> 51:28.000 Technologie eine schlechte App bauen 51:28.000 --> 51:30.000 und wenn man das einfach 51:30.000 --> 51:32.000 sein lässt 51:32.000 --> 51:34.000 und halt einfach so das Problem 51:34.000 --> 51:36.000 löst und nicht irgendwie 51:36.000 --> 51:38.000 für, keine Ahnung, ich will mir ein Bus-Ticket 51:38.000 --> 51:40.000 kaufen und ich muss da für 17 Button 51:40.000 --> 51:42.000 klicken, wenn man da irgendwie sieben Buttons statt 51:42.000 --> 51:44.000 17 draus macht, dann ist mir 51:44.000 --> 51:46.000 ganz ehrlich als Nutzerin, egal 51:46.000 --> 51:48.000 mit was die Buttons jetzt gerendert sind 51:48.000 --> 51:50.000 und ob die jetzt irgendwie eine halbe Millisekunde schneller 51:50.000 --> 51:52.000 sind oder nicht, weil 51:52.000 --> 51:54.000 Hinten werden halt wieder riesige Technische 51:54.000 --> 51:56.000 um an Strassen aufgebaut und so 51:56.000 --> 51:58.000 ja, du könntest das Ding auch einfach schnell 51:58.000 --> 52:00.000 kriegen, indem du gewisse Dinge nicht machst 52:00.000 --> 52:02.000 und wenn man mit einer App irgendwie viel schneller fertig ist, 52:02.000 --> 52:04.000 weil man irgendwie das Ticket gekauft hat, zum Beispiel 52:04.000 --> 52:06.000 dann ist halt auch wirklich, wirklich egal, dass der 52:06.000 --> 52:08.000 Button nicht exakt genauso aussieht wie IOS 52:08.000 --> 52:10.000 das gerne hätte. 52:10.000 --> 52:12.000 Ja, das ist jetzt genau der Punkt, 52:12.000 --> 52:14.000 der ich davor hatte, in dem Fall sehe 52:14.000 --> 52:16.000 ich mich jetzt eben selbst als nicht Herstellerin, 52:16.000 --> 52:18.000 sondern als Nutzerin von diesen Apps 52:18.000 --> 52:20.000 und interessiert es mich, 52:20.000 --> 52:22.000 womit das jetzt gebaut wurde. 52:22.000 --> 52:24.000 Wenn ich es nicht sehe, 52:24.000 --> 52:26.000 ist es mir komplett egal. Es gibt manchmal 52:26.000 --> 52:28.000 so Indizen, wo ich mir denke, oh, das ist jetzt aber 52:28.000 --> 52:30.000 glaube ich nicht native und das sehe 52:30.000 --> 52:32.000 ich meistens, wenn ich dann irgendwie zu Webviews 52:32.000 --> 52:34.000 weitergeleitet werde 52:34.000 --> 52:36.000 oder wenn ich sehe, dass diese 52:36.000 --> 52:38.000 View, dieser App definitiv 52:38.000 --> 52:40.000 zumindest eine Webview beinhaltet, 52:40.000 --> 52:42.000 weil es dann immer zu irgendwelchen 52:42.000 --> 52:44.000 Ruckelproblemen oder es öffnet sich so 52:44.000 --> 52:46.000 ein Pseudoprowser und dieser Pseudoprowser 52:46.000 --> 52:48.000 funktioniert dann nicht richtig. 52:48.000 --> 52:50.000 Ich glaube, es gibt ein paar Use Cases, 52:50.000 --> 52:52.000 da muss es aus, ich meine, 52:52.000 --> 52:54.000 müssen tut nie was sein, aber da macht es aus 52:54.000 --> 52:56.000 technischen Gründen auch Sinn. Ich glaube, 52:56.000 --> 52:58.000 bei manchen Einlog-Auto- 52:58.000 --> 53:00.000 Autorisierungsformaten 53:00.000 --> 53:02.000 wäre es manchmal ganz gut, das jetzt in der Webview 53:02.000 --> 53:04.000 mal kurz zu machen. 53:04.000 --> 53:06.000 Aber ansonsten 53:06.000 --> 53:08.000 genau das, was du gesagt hast, Peter, 53:08.000 --> 53:10.000 manchmal ist es eben schneller, indem man 53:10.000 --> 53:12.000 Schritte nicht macht. Manchmal ist es schneller, 53:12.000 --> 53:14.000 indem man eben nicht Sachen mit Code 53:14.000 --> 53:16.000 erschlägt, sondern versucht, den Code 53:16.000 --> 53:18.000 da zu reduzieren. Ich mache jetzt gar nicht von 53:18.000 --> 53:20.000 Performance sein. 53:20.000 --> 53:22.000 Ich glaube, mein größter Fail war immer auf der 53:22.000 --> 53:24.000 Lego-Webseite. Da konnte man sich 53:24.000 --> 53:26.000 vor Jahren noch 53:26.000 --> 53:28.000 zwei verschiedene Codes 53:28.000 --> 53:30.000 für diese Prämien da geben lassen, 53:30.000 --> 53:32.000 für die VIP-Punkte, die man da gesammelt hat. 53:32.000 --> 53:34.000 Und ich habe es original 53:34.000 --> 53:36.000 dreimal hintereinander geschafft, 53:36.000 --> 53:38.000 mit den Code zu geben für den 53:38.000 --> 53:40.000 Store, also den, wo ich offline 53:40.000 --> 53:42.000 mit meinen Füßen reingehen muss 53:42.000 --> 53:44.000 und da an der Kasse abgeben muss, 53:44.000 --> 53:46.000 wo ich jedes Mal den Online-Code kaufen wollte. 53:46.000 --> 53:48.000 Und ich habe mich auch gefragt, was mit mir los 53:48.000 --> 53:50.000 ist, dass ich es nicht schaffe. 53:50.000 --> 53:52.000 Ich musste dreimal den Guten sofort schreiben. 53:52.000 --> 53:54.000 Ich habe von zwei Monaten eh ab wieder falsch gemacht. 53:54.000 --> 53:56.000 Mittlerweile haben sie das geändert. 53:56.000 --> 53:58.000 Du kannst den Code beidseitig 53:58.000 --> 54:00.000 eingeben, ganz toll. 54:00.000 --> 54:02.000 Aber weißt du, ob das jetzt mit React oder View 54:02.000 --> 54:04.000 oder Angular gebaut ist, mir wuscht, 54:04.000 --> 54:06.000 bitte lass mich den richtigen Code kaufen. 54:06.000 --> 54:08.000 Bei Apps bin ich mir nicht sicher, 54:08.000 --> 54:10.000 aber manchmal weiß ich nicht, 54:10.000 --> 54:12.000 warum fühlt sich das gerade schlechter? 54:12.000 --> 54:14.000 Ist es die UX? 54:14.000 --> 54:16.000 Ist es das Design? 54:16.000 --> 54:18.000 Ist es, weil es eine Web-View ist 54:18.000 --> 54:20.000 und es ging halt nicht besser? 54:20.000 --> 54:22.000 Na ja, aber ich meine, 54:22.000 --> 54:24.000 so die Alltagserfahrung sagt ja schon, es gibt ja egal, 54:24.000 --> 54:26.000 mit was es gebaut ist, gute und schlechte. 54:26.000 --> 54:28.000 Daraus würde ich ja schließen, 54:28.000 --> 54:30.000 dass sozusagen das Problem nicht 54:30.000 --> 54:32.000 die darunter liegende Technologie ist. 54:32.000 --> 54:34.000 Klar, so die Enthusiasten und vielleicht die, 54:34.000 --> 54:36.000 oder Radius mit dem Zirkel abmessen, 54:36.000 --> 54:38.000 die mögen deinen Unterschied machen, 54:38.000 --> 54:40.000 aber... 54:40.000 --> 54:42.000 Ja, ich meine... 54:42.000 --> 54:44.000 Da habe ich es auch von den Entwicklern 54:44.000 --> 54:46.000 und Entwicklerinnen schon gehört, 54:46.000 --> 54:48.000 dass du mit den nativen Sachen 54:48.000 --> 54:50.000 ganz, ganz anderer Möglichkeiten hast. 54:50.000 --> 54:52.000 Und das glaube ich auch. 54:52.000 --> 54:54.000 Ich denke, was man immer hört, 54:54.000 --> 54:56.000 ist das erste Argument für die JavaScript-Apps, 54:56.000 --> 54:58.000 ist nach dem Motto, 54:58.000 --> 55:00.000 man hat ja schon die JavaScript-Entwickler 55:00.000 --> 55:02.000 eh im Haus, weil die Webseite braucht man ja davor. 55:02.000 --> 55:04.000 Und jetzt haben wir wieder dieses gleiche Argument wie, 55:04.000 --> 55:06.000 ja, wir haben ja diese eine Webseite 55:06.000 --> 55:08.000 schon mit React geschrieben, also haben wir 55:08.000 --> 55:10.000 schon hier unser Hochhaus an 55:10.000 --> 55:12.000 React Devs und die können das ja eh... 55:12.000 --> 55:14.000 Die sind ja eh da, ich meine, man zahlt sie auch, 55:14.000 --> 55:16.000 aber das sind ja eh da, dann kann man jetzt ja 55:16.000 --> 55:18.000 die noch in der Mobile-App machen lassen. 55:18.000 --> 55:20.000 Und ich kann mir jetzt vorstellen, 55:20.000 --> 55:22.000 dass es uns zumindest bei damals, 55:22.000 --> 55:24.000 bei der Phone-Gap vor Kordova hieß, 55:24.000 --> 55:26.000 diese Probleme gibt, 55:26.000 --> 55:28.000 wie verbindet man jetzt aber, dass ich jetzt 55:28.000 --> 55:30.000 die Sensoren auch tatsächlich, wie kann ich jetzt 55:30.000 --> 55:32.000 das Modul ansteuern, wie kann ich auf 55:32.000 --> 55:34.000 gewisse Lokalisationsdaten 55:34.000 --> 55:36.000 zugreifen. 55:36.000 --> 55:38.000 Und da hat man dann vielleicht wieder eher einen 55:38.000 --> 55:40.000 Hickhack, was bei den nativen Sprachen 55:40.000 --> 55:42.000 einfach mit in der Sprache beinhaltet ist. 55:42.000 --> 55:44.000 Und 55:44.000 --> 55:46.000 ist das jetzt so, nach dem Motto, 55:46.000 --> 55:48.000 wenn ich es halt erstmal als Prototyp, 55:48.000 --> 55:50.000 als MVP brauche, sag ich, 55:50.000 --> 55:52.000 jetzt schmeiß ich halt die JavaScript-Entwickler 55:52.000 --> 55:54.000 drauf, weil die sind ja schon da. 55:54.000 --> 55:56.000 Und wenn die App dann läuft, 55:56.000 --> 55:58.000 dann machen wir es mal richtig in dativ 55:58.000 --> 56:00.000 oder leben wir in einer Zeit, 56:00.000 --> 56:02.000 dass diese JavaScript-Native-Frameworks 56:02.000 --> 56:04.000 so gut sind 56:04.000 --> 56:06.000 und vielleicht die Endgeräte, 56:06.000 --> 56:08.000 dass auch die entsprechend unterstützen, 56:08.000 --> 56:10.000 dass ich als End-Userin das gar nicht mitbekomme 56:10.000 --> 56:12.000 und das jetzt nativ gebaut wurde 56:12.000 --> 56:14.000 oder ob das nicht nativ gebaut wurde, 56:14.000 --> 56:16.000 hat man dann 56:16.000 --> 56:18.000 noch Performance-Problem, also ruckelt das 56:18.000 --> 56:20.000 noch, ist die UX gut? 56:20.000 --> 56:22.000 Ich glaube, das Ding ist nicht so sehr, 56:22.000 --> 56:24.000 ob die Endnutzerinnen oder 56:24.000 --> 56:26.000 Entnutzer das mitbekommen, 56:26.000 --> 56:28.000 ob sie es stört. 56:28.000 --> 56:30.000 Also das 56:30.000 --> 56:32.000 ist, glaube ich, so das Ziel, 56:32.000 --> 56:34.000 auf das man anpeilen muss. 56:34.000 --> 56:36.000 Und ich glaube, das Szenario, das du beschrieben hast, 56:36.000 --> 56:38.000 ist tatsächlich, glaube ich, das auch hier wieder, 56:38.000 --> 56:40.000 das wirklich relevant und nicht so sehr das technische. 56:40.000 --> 56:42.000 Mag ja sein, dass es irgendwie 56:42.000 --> 56:44.000 zum Beispiel in einem gegebenen Szenario besser wäre, 56:44.000 --> 56:46.000 ein Konzept mit einer nativen App umzusetzen. 56:46.000 --> 56:48.000 Wenn es mir aber an den fehlt, 56:48.000 --> 56:50.000 die das umsetzen können, 56:50.000 --> 56:52.000 dann existiert ja im Prinzip dieser Weg für mich nicht. 56:52.000 --> 56:54.000 Dann kann ich den noch einfach aus meiner Realität rausdefinieren 56:54.000 --> 56:56.000 mit dem Arbeiten, was ich habe, 56:56.000 --> 56:58.000 was dann halt irgendwie mein Hochhaus voller React Nerds ist. 56:58.000 --> 57:00.000 Und die 57:00.000 --> 57:02.000 kann das halt eben auch irgendwie gut machen. 57:02.000 --> 57:04.000 Also das Problem ist ja auch da, 57:04.000 --> 57:06.000 mehr so, was so User Experience 57:06.000 --> 57:08.000 und Aussehen und so angeht, 57:08.000 --> 57:10.000 ist ja zumindest mal meine Erfahrung, 57:10.000 --> 57:12.000 die Innenperspektive von so diversen Firmen, 57:12.000 --> 57:14.000 die ich besuche, dass so Dinge wie, 57:14.000 --> 57:16.000 dass das halt irgendwie einen ordentlichen Workflow gibt 57:16.000 --> 57:18.000 und dass das irgendwie einigermaßen aussieht, 57:18.000 --> 57:20.000 da gibt es einfach niemanden, der dafür zuständig ist. 57:20.000 --> 57:22.000 Da sind dann lauter Leute, die schreiben Code, 57:22.000 --> 57:24.000 aber niemanden, der irgendwie 57:24.000 --> 57:26.000 darauf achtet, dass das irgendwie alles einigermaßen 57:26.000 --> 57:28.000 kohärentes Gesamtbild ergibt. 57:28.000 --> 57:30.000 Und da wäre einfach schon extrem viel mehr mit gewonnen, 57:30.000 --> 57:32.000 einfach irgendwelchen einzustellen, 57:32.000 --> 57:34.000 der oder die Ahnung hat, 57:34.000 --> 57:36.000 wie was gut aussieht 57:36.000 --> 57:38.000 und dass halt irgendwie das Konsistenz bleibt 57:38.000 --> 57:40.000 und so, dass da jemand im CSS-Departement den Hut aufhat 57:40.000 --> 57:42.000 und hin und wieder mal auch ein bisschen Zeit 57:42.000 --> 57:44.000 darauf verwenden darf zu gucken, 57:44.000 --> 57:46.000 was machen die Nutzer, einfach nur so wirklich 57:46.000 --> 57:48.000 das Minimalste, so die ersten 80 Prozent 57:48.000 --> 57:50.000 vom Problem lösen, die einfachen. 57:50.000 --> 57:52.000 Da kann man den Rest weiter Webgram machen lassen 57:52.000 --> 57:54.000 und muss nicht irgendwie eine ganz neue Abteilung 57:54.000 --> 57:56.000 mit iOS-Entwicklerinnen und Entwicklern aufmachen, 57:56.000 --> 57:58.000 weil kann es dann ja auch nicht machen, 57:58.000 --> 58:00.000 weil dann modst ja die Android-Welt wieder. 58:00.000 --> 58:02.000 Das ist, wie gesagt, das finde ich alles 58:02.000 --> 58:04.000 keine technischen Probleme, das sind alles 58:04.000 --> 58:06.000 irgendwelche strukturellen Unternehmensmanagement-Dinger, 58:06.000 --> 58:08.000 also zumindest wäre das auf der Ebene, glaube ich, 58:08.000 --> 58:10.000 da käme man eine 58:10.000 --> 58:12.000 akzeptable Lösung 58:12.000 --> 58:14.000 sehr viel schneller, sehr viel näher, 58:14.000 --> 58:16.000 als wenn man probiert 58:16.000 --> 58:18.000 da mit technischen Mitteln, 58:18.000 --> 58:20.000 von Programmiersparen, anderen Frameworks, 58:20.000 --> 58:22.000 anderen Plattformen was zu machen. 58:22.000 --> 58:24.000 Und generell 58:24.000 --> 58:26.000 habe ich irgendwie so den Eindruck, 58:26.000 --> 58:28.000 dass egal für welchen 58:28.000 --> 58:30.000 Weg man sich da entscheidet, man immer 58:30.000 --> 58:32.000 früher, später anfängt, unglücklich zu werden, 58:32.000 --> 58:34.000 weil ich finde 58:34.000 --> 58:36.000 diese Firmen, also das ist dann auch so, 58:36.000 --> 58:38.000 stehe einfach zu deiner Entscheidung 58:38.000 --> 58:40.000 und das ist halt dann so und arbeite damit, 58:40.000 --> 58:42.000 weil ich das eben oft 58:42.000 --> 58:44.000 erlebt habe, dass man dann so 58:44.000 --> 58:46.000 hey, wir machen das 58:46.000 --> 58:48.000 mit Web-Technologien, weil dann müssen 58:48.000 --> 58:50.000 wir das ja nur einmal entwickeln und können, 58:50.000 --> 58:52.000 das ist super cool so. 58:52.000 --> 58:54.000 Und dann ist irgendwann so, ja aber von 58:54.000 --> 58:56.000 Nativ ist ja doch irgendwie so ein bisschen 58:56.000 --> 58:58.000 fluffiger, ein bisschen, das müssen 58:58.000 --> 59:00.000 wir jetzt kommen, wir müssen jetzt die nächste 59:00.000 --> 59:02.000 Version der App, die machen wir jetzt, dann holen, 59:02.000 --> 59:04.000 machen wir einmal eine iOS-Version, dann machen wir 59:04.000 --> 59:06.000 eine Android-Version und dann, ein paar Jahre später 59:06.000 --> 59:08.000 ist halt wieder so, ah das ist ja mega aufwendig, 59:08.000 --> 59:10.000 dann da irgendwie die Features 59:10.000 --> 59:12.000 in Syng zu halten und dann noch mit der Webseite 59:12.000 --> 59:14.000 die wir haben, das muss irgendwie alles gleich 59:14.000 --> 59:16.000 aussehen, müssen jedes Feature 3 mal irgendwie 59:16.000 --> 59:18.000 implementieren und... 59:18.000 --> 59:20.000 Ha, warum muss das alles gleich aussehen? 59:20.000 --> 59:22.000 Ist es nicht gerade der Vorteil, 59:22.000 --> 59:24.000 dass ich fürs Web, im Web-Design 59:24.000 --> 59:26.000 implementieren kann, für iOS 59:26.000 --> 59:28.000 meistens ein bisschen an das Apple angelehnte 59:28.000 --> 59:30.000 Design und für Android meistens 59:30.000 --> 59:32.000 an das Google Android Design, 59:32.000 --> 59:34.000 was dir dann auch irgendwie simuliert? 59:34.000 --> 59:36.000 Ja, aber vielleicht hast du ja ein Logorebrush 59:36.000 --> 59:38.000 und so Zeugs und dann 59:38.000 --> 59:40.000 solche Dinge, aber eben 59:40.000 --> 59:42.000 oder vielleicht du nutzt bestimmte Icons 59:42.000 --> 59:44.000 um bestimmte Funktionen auszulösen 59:44.000 --> 59:46.000 und dann hast du halt beschlossen, 59:46.000 --> 59:48.000 die müssen jetzt so und so aussehen, 59:48.000 --> 59:50.000 da musst du die halt irgendwie überall austauschen. 59:50.000 --> 59:52.000 Oder sehr viel profaner, 59:52.000 --> 59:54.000 du bist irgendwie das Frontentschwein 59:54.000 --> 59:56.000 im Graben und jetzt kommt die Order 59:56.000 --> 59:58.000 von oben, das muss jetzt halt so sein. 59:58.000 --> 01:00:00.000 Das kann es ja auch geben. 01:00:00.000 --> 01:00:02.000 Also ne, alles was ihr gesagt habt 01:00:02.000 --> 01:00:04.000 sind super Beispiele, warum das passieren 01:00:04.000 --> 01:00:06.000 könnte und warum das eventuell einheitlich 01:00:06.000 --> 01:00:08.000 sein müsste. Oder vielleicht ist der Grund 01:00:08.000 --> 01:00:10.000 ja auch einfach aus meiner Perspektive als 01:00:10.000 --> 01:00:12.000 so, das ist halt eben jetzt so. 01:00:14.000 --> 01:00:16.000 Ich finde es gerade diesen großen Vorteil 01:00:16.000 --> 01:00:18.000 an diesen verschiedenen 01:00:18.000 --> 01:00:20.000 Sachen, die ich zur Auswahl habe, 01:00:20.000 --> 01:00:22.000 dass ich es dann anders aussehen lassen kann, 01:00:22.000 --> 01:00:24.000 damit sie es eben noch nativer anfühlt. 01:00:24.000 --> 01:00:26.000 Weil bestimmte 01:00:26.000 --> 01:00:28.000 Loading Spinner oder so was 01:00:28.000 --> 01:00:30.000 machen auf iOS mehr Sinn als auf Android 01:00:30.000 --> 01:00:32.000 oder es macht auf Android mehr Sinn, wenn der Button 01:00:32.000 --> 01:00:34.000 das Menü irgendwie oben links ist 01:00:34.000 --> 01:00:36.000 und auf iOS in der Tab leiste, 01:00:36.000 --> 01:00:38.000 weil diese User das eher von einem ganzen Betriebssystem 01:00:38.000 --> 01:00:40.000 gewohnt sind. Also ich finde es eher eine Stärke. 01:00:40.000 --> 01:00:42.000 Ja, aber genau, das ist ja auch 01:00:42.000 --> 01:00:44.000 super. 01:00:44.000 --> 01:00:46.000 Genau, aber es kann halt trotzdem sein, 01:00:46.000 --> 01:00:48.000 dass du das halt gut findest, aber dann 01:00:48.000 --> 01:00:50.000 du siehst ja immer nur die Sachen, die halt doof sind. 01:00:50.000 --> 01:00:52.000 Also das vergisst ja irgendwann, 01:00:52.000 --> 01:00:54.000 dass das alles irgendwie solche Vorteile bringt 01:00:54.000 --> 01:00:56.000 und dann irgendwann 01:00:56.000 --> 01:00:58.000 ist es so, dass dann irgendwelche Leute sagen 01:00:58.000 --> 01:01:00.000 so ja, es ist aber echt total aufwendig, 01:01:00.000 --> 01:01:02.000 immer hier diese Apps 01:01:02.000 --> 01:01:04.000 zu pflegen, so wenn wir das ganze 01:01:04.000 --> 01:01:06.000 irgendwie mit Webtechnik machen würden. 01:01:06.000 --> 01:01:08.000 Das wäre ja eigentlich viel besser, weil dann 01:01:08.000 --> 01:01:10.000 hätten wir dieses Problem nicht 01:01:10.000 --> 01:01:12.000 und die sehen dann aber eben nicht 01:01:12.000 --> 01:01:14.000 die Nachteile, dann ist halt so, 01:01:14.000 --> 01:01:16.000 dass die Einheitlichkeit oder die 01:01:16.000 --> 01:01:18.000 quasi 01:01:18.000 --> 01:01:20.000 die Zugeschnittenheit der UI 01:01:20.000 --> 01:01:22.000 für die Plattform 01:01:22.000 --> 01:01:24.000 ist dann auf einmal nicht so wichtig und dann macht man 01:01:24.000 --> 01:01:26.000 halt Web und dann ist irgendwann 01:01:26.000 --> 01:01:28.000 sind die Vorteile der schnellen Entwicklung 01:01:28.000 --> 01:01:30.000 irgendwann vergessen und man 01:01:30.000 --> 01:01:32.000 ärgert sich wieder darüber, dass 01:01:32.000 --> 01:01:34.000 diese Web App irgendwie so ein bisschen fremd wirkt 01:01:34.000 --> 01:01:36.000 auf iOS und Android. 01:01:36.000 --> 01:01:38.000 Also so 01:01:38.000 --> 01:01:40.000 erlebe ich das immer, dass du quasi immer 01:01:40.000 --> 01:01:42.000 so ein Hin und Her hast. 01:01:42.000 --> 01:01:44.000 Dann supportet Apple auf einmal 01:01:44.000 --> 01:01:46.000 Push notifications, hey cool, 01:01:46.000 --> 01:01:48.000 dann machen wir jetzt doch wieder Web 01:01:48.000 --> 01:01:50.000 und nicht App, weil mit App das haben wir 01:01:50.000 --> 01:01:52.000 nur wegen der Push notifications gemacht. 01:01:52.000 --> 01:01:54.000 Und am Ende ist das halt so ein 01:01:54.000 --> 01:01:56.000 Pepito-Mobile. 01:01:56.000 --> 01:01:58.000 Und das Kernproblem wäre dann sozusagen, 01:01:58.000 --> 01:02:00.000 dass man quasi die eigenen Vorteile, 01:02:00.000 --> 01:02:02.000 die man mit seiner Wahl gewonnen hat 01:02:02.000 --> 01:02:04.000 normalisiert, dass man die gar nicht mehr wahrnimmt 01:02:04.000 --> 01:02:06.000 und man sieht nur noch das, was nervt. 01:02:06.000 --> 01:02:08.000 Genau, ich glaube, das ist auch bei 01:02:08.000 --> 01:02:10.000 JavaScript Framework so. Also ich glaube, 01:02:10.000 --> 01:02:12.000 es ist halt bei allen, was man 01:02:12.000 --> 01:02:14.000 hat, ist das so. Man gewöhnt 01:02:14.000 --> 01:02:16.000 sich einfach an das, was man hat 01:02:16.000 --> 01:02:18.000 und sieht dann immer 01:02:18.000 --> 01:02:20.000 gerne nur das, was man eben nicht hat. 01:02:22.000 --> 01:02:24.000 Nur gerade bei Websites versus 01:02:24.000 --> 01:02:26.000 Native Apps finde ich es 01:02:26.000 --> 01:02:28.000 eigentlich sehr interessant, dass die Konzepte 01:02:28.000 --> 01:02:30.000 so unterschiedlich sind. Also wenn wir was 01:02:30.000 --> 01:02:32.000 noch mal machen und jetzt generell mal 01:02:32.000 --> 01:02:34.000 irrelevant davon, ob das 01:02:34.000 --> 01:02:36.000 für mobile 01:02:36.000 --> 01:02:38.000 kleine Geräte sein muss 01:02:38.000 --> 01:02:40.000 oder für ultra-wide-screens 01:02:40.000 --> 01:02:42.000 oder ob das accessible sein muss, etc. 01:02:42.000 --> 01:02:44.000 Das ist alles 01:02:44.000 --> 01:02:46.000 ein Stream im Browser und da schreibe ich 01:02:46.000 --> 01:02:48.000 HTML. Oder zumindest 01:02:48.000 --> 01:02:50.000 benutze ich ein Framework und es kommt 01:02:50.000 --> 01:02:52.000 HTML am Endeffekt raus. 01:02:52.000 --> 01:02:54.000 Aber ich denke, bei 01:02:54.000 --> 01:02:56.000 mobilen Endgeräten haben wir doch 01:02:56.000 --> 01:02:58.000 ein ganz anderes Konzept. Wir haben da nicht 01:02:58.000 --> 01:03:00.000 einen Dom. Wir haben diese Views, 01:03:00.000 --> 01:03:02.000 wo 01:03:02.000 --> 01:03:04.000 Content draufgeschrieben wird 01:03:04.000 --> 01:03:06.000 und dann wird dieser Content 01:03:06.000 --> 01:03:08.000 teilweise ausgetauscht. 01:03:08.000 --> 01:03:10.000 Wir sprechen dann von Table Views 01:03:10.000 --> 01:03:12.000 oder habe ich eine Scroll View 01:03:12.000 --> 01:03:14.000 und dieser Content 01:03:14.000 --> 01:03:16.000 ist eigentlich noch gar nicht da, sondern 01:03:16.000 --> 01:03:18.000 in diese View, die ich dann habe, wird dann der neue 01:03:18.000 --> 01:03:20.000 Text reingeschrieben, wenn ich da weitergehe. 01:03:20.000 --> 01:03:22.000 Da sehe ich auch die witzigsten Bugs 01:03:22.000 --> 01:03:24.000 bei allen möglichen Apps. 01:03:24.000 --> 01:03:26.000 Gerade bei Workout Apps, weil ich es 01:03:26.000 --> 01:03:28.000 in der Regelung ja meist in Verwendung habe, 01:03:28.000 --> 01:03:30.000 dass eine neue Übung kommt. 01:03:30.000 --> 01:03:32.000 Aber es steht noch irgendwie die Gewichtsangabe 01:03:32.000 --> 01:03:34.000 von der View davor da. 01:03:34.000 --> 01:03:36.000 Und dann erinnert mich das wieder daran. 01:03:36.000 --> 01:03:38.000 Das ist gar nicht so ein 01:03:38.000 --> 01:03:40.000 Container für diese Übung. 01:03:40.000 --> 01:03:42.000 Diese Übung wird in diesen festen 01:03:42.000 --> 01:03:44.000 Container reingerendert und irgendwie 01:03:44.000 --> 01:03:46.000 Asynchron hat da was nicht funktioniert 01:03:46.000 --> 01:03:48.000 und ich sehe jetzt noch 8 Kilo 01:03:48.000 --> 01:03:50.000 von der Übung von davor. 01:03:50.000 --> 01:03:52.000 Ist das nicht auch ein technisches 01:03:52.000 --> 01:03:54.000 Implementierungsdetail, wo das Problem 01:03:54.000 --> 01:03:56.000 ist, dass man das mit 01:03:56.000 --> 01:03:58.000 Entwicklerpower 01:03:58.000 --> 01:04:00.000 hätte auch so machen können, dass das Problem 01:04:00.000 --> 01:04:02.000 nicht auftaucht? 01:04:02.000 --> 01:04:04.000 Es gibt diese Views, es gibt 01:04:04.000 --> 01:04:06.000 Versus, es gibt das Dom. 01:04:06.000 --> 01:04:08.000 Man kann doch das eine jeweils aussehen lassen 01:04:08.000 --> 01:04:10.000 wie das andere. 01:04:10.000 --> 01:04:12.000 Und am Ende merkt man doch, wenn man wirklich 01:04:12.000 --> 01:04:14.000 nur vor dem Telefon sitzt und da auf dem Bildschirm rum bat, 01:04:14.000 --> 01:04:16.000 sollte man davon ja eigentlich nichts merken. 01:04:16.000 --> 01:04:18.000 Ja, ja, aussehen lassen 01:04:18.000 --> 01:04:20.000 bestimmt gleich. 01:04:20.000 --> 01:04:22.000 Und als Benutzerin sollte ich das natürlich 01:04:22.000 --> 01:04:24.000 machen. 01:04:24.000 --> 01:04:26.000 Aber wenn ich jetzt, ich frage mich gerade an 01:04:26.000 --> 01:04:28.000 der Schreibweise, wenn ich jetzt, 01:04:28.000 --> 01:04:30.000 mir ist es doch jetzt generell nicht so wichtig, 01:04:30.000 --> 01:04:32.000 wie viel HTML ich da jetzt schreibe. 01:04:32.000 --> 01:04:34.000 Es ist ja endlos. 01:04:34.000 --> 01:04:36.000 Ich kann ja endlos viel HTML drauf schreiben. 01:04:36.000 --> 01:04:38.000 Und der Browser wird sich darum kümmern, 01:04:38.000 --> 01:04:40.000 dass das 01:04:40.000 --> 01:04:42.000 alles irgendwann angezeigt wird. 01:04:42.000 --> 01:04:44.000 Aber ich habe ja dann 01:04:44.000 --> 01:04:46.000 unendlich viele 01:04:46.000 --> 01:04:48.000 Tabellen zum Beispiel. 01:04:48.000 --> 01:04:50.000 Und jede Tabellenzelle hat dann ihren 01:04:50.000 --> 01:04:52.000 Internet. 01:04:52.000 --> 01:04:54.000 Ich denke, wir könnten jetzt tiefer 01:04:54.000 --> 01:04:56.000 einsteigen in die Richtung von diesen 01:04:56.000 --> 01:04:58.000 Virtual Scrolls und so weiter. 01:04:58.000 --> 01:05:00.000 Aber ich denke, dass das Konzept 01:05:00.000 --> 01:05:02.000 trotzdem zumindest bei iOS funktioniert 01:05:02.000 --> 01:05:04.000 einfach anders. 01:05:04.000 --> 01:05:06.000 Ich habe nur zehn Tabellenzellen 01:05:06.000 --> 01:05:08.000 und da muss ich den Content austauschen. 01:05:08.000 --> 01:05:10.000 Und ich habe, ich füge halt einfach mehr 01:05:10.000 --> 01:05:12.000 Zellen und mehr Zellen zu. 01:05:12.000 --> 01:05:14.000 Und dementsprechend, 01:05:14.000 --> 01:05:16.000 weil ich so wenig Erfahrung jetzt mit 01:05:16.000 --> 01:05:18.000 diesen mobilen Applikationen habe, 01:05:18.000 --> 01:05:20.000 dass ich die Entwicklerinnen damit bekomme 01:05:20.000 --> 01:05:22.000 oder ob ich wirklich einfach nur JavaScript schreibe 01:05:22.000 --> 01:05:24.000 und das Framework kümmert sich komplett drum, 01:05:24.000 --> 01:05:26.000 dass da irgendwas rauskommt, 01:05:26.000 --> 01:05:28.000 was dann auf der mobilen Endgerät läuft. 01:05:28.000 --> 01:05:30.000 Oder muss ich da auch solche Sachen beachten, 01:05:30.000 --> 01:05:32.000 wie ich darf keine 400 Tabellenzellen 01:05:32.000 --> 01:05:34.000 schreiben. 01:05:34.000 --> 01:05:36.000 Also wenn das der Fall wäre, 01:05:36.000 --> 01:05:38.000 das was du letzt gesagt hast, dass du darauf achten musst, 01:05:38.000 --> 01:05:40.000 dann würde ich das tatsächlich als ein Mangel 01:05:40.000 --> 01:05:42.000 in dem Framework wahrnehmen. 01:05:42.000 --> 01:05:44.000 Also ich würde erwarten, dass mir das 01:05:44.000 --> 01:05:46.000 wegabstrahiert wird, 01:05:46.000 --> 01:05:48.000 sonst haben wir halt so genug Reibungsverluste, 01:05:48.000 --> 01:05:50.000 dass ich da noch gleich wirklich 01:05:50.000 --> 01:05:52.000 für jedes Ding wieder eine extra Wurst braten könnte. 01:05:52.000 --> 01:05:54.000 Da muss ich halt eben, 01:05:54.000 --> 01:05:56.000 ja, kann ich auch gleich eine Android App bauen 01:05:56.000 --> 01:05:58.000 oder so. Und mir andere Vorteile einheimsen. 01:06:00.000 --> 01:06:02.000 Ich fände, würde ich keine Ahnung, 01:06:02.000 --> 01:06:04.000 wie realistisch das sich benutze, die Dinge halt eben auch nicht. 01:06:04.000 --> 01:06:06.000 Aber ich würde halt eben erwarten, wenn das 01:06:06.000 --> 01:06:08.000 sozusagen, ich meine, die vermarkten sich ja 01:06:08.000 --> 01:06:10.000 alle als eine Lösung, sie alle zu knechten, 01:06:10.000 --> 01:06:12.000 dann will ich bitte auch eine Lösung haben 01:06:12.000 --> 01:06:14.000 und nicht irgendwie ein Branding 01:06:14.000 --> 01:06:16.000 oder drei verschiedene Lösungen haben. 01:06:16.000 --> 01:06:18.000 Das bringt mir nämlich nicht so viel. 01:06:20.000 --> 01:06:22.000 Dann brauchen wir jetzt wieder kluge 01:06:22.000 --> 01:06:24.000 Erhörer und Hörerinnen, die sich bei uns melden 01:06:24.000 --> 01:06:26.000 und Erfahrungen mit diesen Mobile-Apps 01:06:26.000 --> 01:06:28.000 haben. Wie gesagt, mein letzter Stand war, 01:06:28.000 --> 01:06:30.000 oh Gott, das ist alles schrecklich, 01:06:30.000 --> 01:06:32.000 das ist ganz unflüssig, der war aber fünf Jahre 01:06:32.000 --> 01:06:34.000 her und das letzte, was ich gehört habe, 01:06:34.000 --> 01:06:36.000 ist voll super, kommt mal einfach unsere 01:06:36.000 --> 01:06:38.000 JavaScript-Entwicklerinnen dafür und 01:06:38.000 --> 01:06:40.000 Entwickler benutzen, wo ich mich eine Auffrage 01:06:40.000 --> 01:06:42.000 aber schreiben, die dann auch noch an der Webseite, 01:06:42.000 --> 01:06:44.000 nach dem. 01:06:44.000 --> 01:06:46.000 Vielleicht. Und dann möchte ich doch mal 01:06:46.000 --> 01:06:48.000 noch mehr Erfahrung gerne hören. 01:06:48.000 --> 01:06:50.000 Genau, was wir auf jeden Fall noch ergänzen 01:06:50.000 --> 01:06:52.000 müssen, ist, dass es ja auch eben 01:06:52.000 --> 01:06:54.000 so diese Dinge dazwischen gibt, also 01:06:54.000 --> 01:06:56.000 dass man quasi nicht, 01:06:56.000 --> 01:06:58.000 dass man nicht in Web-Technologien 01:06:58.000 --> 01:07:00.000 schreibt und in Web-Technologien 01:07:00.000 --> 01:07:02.000 ausliefert, sondern so was wie 01:07:02.000 --> 01:07:04.000 React Native, das quasi 01:07:04.000 --> 01:07:06.000 ein Framework ist, 01:07:06.000 --> 01:07:08.000 um zwar mit Web- 01:07:08.000 --> 01:07:10.000 Programmiersprachen zu arbeiten, 01:07:10.000 --> 01:07:12.000 aber am Ende wird das Ganze ja 01:07:12.000 --> 01:07:14.000 trotzdem 01:07:14.000 --> 01:07:16.000 mit diesen nativen 01:07:16.000 --> 01:07:18.000 UIs 01:07:18.000 --> 01:07:20.000 gebandelt und geschippt. 01:07:20.000 --> 01:07:22.000 Ich glaube, da gibt es noch ein paar andere, 01:07:22.000 --> 01:07:24.000 also ich glaube, dieses Expo ist auch so was, 01:07:24.000 --> 01:07:26.000 was hier in der Liste drin ist, 01:07:26.000 --> 01:07:28.000 also wo man eben 01:07:28.000 --> 01:07:30.000 seinen Turm, seinen Hochhaus, 01:07:30.000 --> 01:07:32.000 seinen JavaScript-Entwicklern zum Einsatz 01:07:32.000 --> 01:07:34.000 bringen kann, dennoch 01:07:34.000 --> 01:07:36.000 native 01:07:36.000 --> 01:07:38.000 Apps zur Auslieferung 01:07:38.000 --> 01:07:40.000 bringen kann, so. 01:07:42.000 --> 01:07:44.000 Also einfach nur 01:07:44.000 --> 01:07:46.000 eine Paketschnur drumherum. 01:07:46.000 --> 01:07:48.000 Ja, ich glaube, das wird dann 01:07:48.000 --> 01:07:50.000 letztlich transpiliert 01:07:50.000 --> 01:07:52.000 und dann die 01:07:52.000 --> 01:07:54.000 Business-Logik läuft zwar schon in JavaScript, 01:07:54.000 --> 01:07:56.000 genauso das 01:07:56.000 --> 01:07:58.000 also 01:07:58.000 --> 01:08:00.000 React Native ist ja im Prinzip dann 01:08:00.000 --> 01:08:02.000 wahrscheinlich 01:08:02.000 --> 01:08:04.000 ich habe noch nicht damit gearbeitet, aber ich nehme 01:08:04.000 --> 01:08:06.000 an, dass du einfach mit irgendwelchen 01:08:06.000 --> 01:08:08.000 Komponenten arbeitest, die 01:08:08.000 --> 01:08:10.000 dann am Ende sagst und dann sagst du 01:08:10.000 --> 01:08:12.000 Compile Target Web, Compile Target 01:08:12.000 --> 01:08:14.000 IOS und Android 01:08:14.000 --> 01:08:16.000 und dann das eine 01:08:16.000 --> 01:08:18.000 wird dann tatsächlich in irgendwelche Web-Komponenten, 01:08:18.000 --> 01:08:20.000 also Web 01:08:20.000 --> 01:08:22.000 Technologie getriebene 01:08:22.000 --> 01:08:24.000 Dinger umgesetzt und die anderen 01:08:24.000 --> 01:08:26.000 nutzen die nativen 01:08:26.000 --> 01:08:28.000 Betriebssystemen 01:08:28.000 --> 01:08:30.000 oder Programmier Framework Dinger. 01:08:30.000 --> 01:08:32.000 Hm. 01:08:32.000 --> 01:08:34.000 Hm. 01:08:34.000 --> 01:08:36.000 Tschau. 01:08:36.000 --> 01:08:38.000 Auf der anderen Seite gibt es Sachen, die verwenden 01:08:38.000 --> 01:08:40.000 wir schon immer und die funktionieren auch 01:08:40.000 --> 01:08:42.000 schon immer. Das wäre jetzt für mich 01:08:42.000 --> 01:08:44.000 auch das Debugging. 01:08:44.000 --> 01:08:46.000 Ich bin ganz 01:08:46.000 --> 01:08:48.000 klassisch console-Log 01:08:48.000 --> 01:08:50.000 manchmal 01:08:50.000 --> 01:08:52.000 console-Table. 01:08:52.000 --> 01:08:54.000 Da aber die Frage an euch, 01:08:54.000 --> 01:08:56.000 wie stark verwendet ihr denn 01:08:56.000 --> 01:08:58.000 Browser Tools oder ähnliches 01:08:58.000 --> 01:09:00.000 oder gerade euch oder sogar 01:09:00.000 --> 01:09:02.000 eure I.T.I. oder Code-Editor 01:09:02.000 --> 01:09:04.000 fürs Debugging 01:09:04.000 --> 01:09:06.000 zum Breakpoint Setzen und ähnliches 01:09:06.000 --> 01:09:08.000 und der Peter hat gerade ein Buch geholt. 01:09:08.000 --> 01:09:10.000 Ich halte gerade einen 01:09:10.000 --> 01:09:12.000 für die Hörerinnen und Hörer 01:09:12.000 --> 01:09:14.000 nicht-sichtbares Buch in die 01:09:14.000 --> 01:09:16.000 Kamera Coders at Work. 01:09:16.000 --> 01:09:18.000 Da werden einfach nur ein Haufen Programmierer 01:09:18.000 --> 01:09:20.000 so, keine Ahnung, Brandon Ike 01:09:20.000 --> 01:09:22.000 oder hier der Erfinder von Java und Konsorten, die werden 01:09:22.000 --> 01:09:24.000 interviewt und die werden unter anderem da gefragt 01:09:24.000 --> 01:09:26.000 wie die buggen sie denn. 01:09:26.000 --> 01:09:28.000 80% der Antworten sind ja, ich hau halt 01:09:28.000 --> 01:09:30.000 überall Printstatements rein. 01:09:30.000 --> 01:09:32.000 Wer bin ich, dass ich den 01:09:32.000 --> 01:09:34.000 widerspreche? I rest my case. 01:09:38.000 --> 01:09:40.000 Ja, 01:09:40.000 --> 01:09:42.000 console-Log ist natürlich immer gut 01:09:42.000 --> 01:09:44.000 auch schön. 01:09:44.000 --> 01:09:46.000 Es sind also 01:09:46.000 --> 01:09:48.000 in den DevTools Breakpoint Setzen ist natürlich 01:09:48.000 --> 01:09:50.000 auch nie verkehrt. 01:09:50.000 --> 01:09:52.000 Manchmal funktioniert das halt nicht so gut 01:09:52.000 --> 01:09:54.000 einfach durch das 01:09:54.000 --> 01:09:56.000 Transpillieren 01:09:56.000 --> 01:09:58.000 und irgendwie wie dann die Source Maps 01:09:58.000 --> 01:10:00.000 wieder zurück übersetzt werden. 01:10:00.000 --> 01:10:02.000 Das dann manchmal ein bisschen 01:10:02.000 --> 01:10:04.000 irritierend, dass man den Breakpoint dann 01:10:04.000 --> 01:10:06.000 tatsächlich nicht da setzen kann, wo man den 01:10:06.000 --> 01:10:08.000 setzen will. Ich weiß gar nicht warum das so 01:10:08.000 --> 01:10:10.000 ist. Und da wo man den setzen kann, 01:10:10.000 --> 01:10:12.000 ist es möglicherweise gar nicht, wo man den 01:10:12.000 --> 01:10:14.000 setzen möchte. 01:10:14.000 --> 01:10:16.000 Aber die Browser DevTools sind da schon 01:10:16.000 --> 01:10:18.000 echt super und 01:10:18.000 --> 01:10:20.000 ich finde auch so Sachen hervorragend, 01:10:20.000 --> 01:10:22.000 dass man eben irgendwelches 01:10:22.000 --> 01:10:24.000 States enforzen 01:10:24.000 --> 01:10:26.000 kann, wie Hover 01:10:26.000 --> 01:10:28.000 oder so, oder dass man 01:10:28.000 --> 01:10:30.000 auch im Dom Breakpoint Setzen kann, wenn man 01:10:30.000 --> 01:10:32.000 listen will, so, hey, warum 01:10:32.000 --> 01:10:34.000 kommt da immer diese Klasse 01:10:34.000 --> 01:10:36.000 oder warum wird dieses Element da immer entfernt 01:10:36.000 --> 01:10:38.000 oder hinzugefügt, ist doch 01:10:38.000 --> 01:10:40.000 seltsam. Und dann kriegt man eben so, hey, 01:10:40.000 --> 01:10:42.000 das ist der Code, der 01:10:42.000 --> 01:10:44.000 gerade da was eingefügt hat. 01:10:44.000 --> 01:10:46.000 Das sind so die Dinger. 01:10:46.000 --> 01:10:48.000 Wenn ich so irgendwie so hingehe und so, hallo 01:10:48.000 --> 01:10:50.000 hier, Werthe Java Entwicklerin und Entwickler, jetzt 01:10:50.000 --> 01:10:52.000 mit eurem Webfront hin und machen das mal 01:10:52.000 --> 01:10:54.000 irgendwie besser. Wenn es so wirklich um die 01:10:54.000 --> 01:10:56.000 Debugging-Techniken geht, sind wirklich so 01:10:56.000 --> 01:10:58.000 Dinge wie Dom Breakpoints oder halt einfach 01:10:58.000 --> 01:11:00.000 nur der Haken im Network Panel, wo man sagen kann 01:11:00.000 --> 01:11:02.000 Disable Cache. 01:11:02.000 --> 01:11:04.000 Das sind wirklich so die Bringer, die 01:11:04.000 --> 01:11:06.000 wirklich alles sehr viel produktiver machen 01:11:06.000 --> 01:11:08.000 und 01:11:08.000 --> 01:11:10.000 alles was halt so ein fancy Pen Scrum darüber 01:11:10.000 --> 01:11:12.000 hinausgeht, gerade so was man alles mit der 01:11:12.000 --> 01:11:14.000 Konsole anstellen kann, ist es ja wirklich extrem 01:11:14.000 --> 01:11:16.000 beeindruckend, nichts davon verwende ich jemals. 01:11:16.000 --> 01:11:18.000 Und wenn ich es mal verwende oder zeige, 01:11:18.000 --> 01:11:20.000 aber oh, Dom Breakpoint. 01:11:20.000 --> 01:11:22.000 Oh, Hoverstate Forcing. 01:11:22.000 --> 01:11:24.000 Da gibt es ja ganz viel. 01:11:24.000 --> 01:11:26.000 Also zum Beispiel 01:11:26.000 --> 01:11:28.000 Ressourcen blockieren. 01:11:28.000 --> 01:11:30.000 Finde ich auch, also baue ich auch immer mal 01:11:30.000 --> 01:11:32.000 wieder, dass ich irgendwie sage, 01:11:32.000 --> 01:11:34.000 was passiert eigentlich mit dieser Webseite 01:11:34.000 --> 01:11:36.000 wenn die und die Ressource irgendwie nicht 01:11:36.000 --> 01:11:38.000 zur Verfügung steht? 01:11:38.000 --> 01:11:40.000 Oder ist die und die Ressource 01:11:40.000 --> 01:11:42.000 vielleicht zuständig für zu viel 01:11:42.000 --> 01:11:44.000 CPU-Lust oder sowas? 01:11:44.000 --> 01:11:46.000 Das finde ich gut, was ich auch richtig 01:11:46.000 --> 01:11:48.000 gut finde, ist 01:11:48.000 --> 01:11:50.000 diese Ressource Overrides, wo du quasi sagen kannst, 01:11:50.000 --> 01:11:52.000 so 01:11:52.000 --> 01:11:54.000 ich habe gerade ein bisschen Pause, 01:11:54.000 --> 01:11:56.000 was ich dir reinbringen kann. 01:11:56.000 --> 01:11:58.000 Ja, dann. 01:11:58.000 --> 01:12:00.000 Du benutzt sie auch gerne. Ja, da einfach diesen 01:12:00.000 --> 01:12:02.000 super gerne. Das ist was, wo ich mich wie 01:12:02.000 --> 01:12:04.000 im Frage, wir beschäftigen uns so viel 01:12:04.000 --> 01:12:06.000 damit, ob wir jetzt 01:12:06.000 --> 01:12:08.000 reaktives Framework 1 oder reaktives 01:12:08.000 --> 01:12:10.000 Framework 2 benutzen mit State Management 01:12:10.000 --> 01:12:12.000 1 oder State Management 2. 01:12:12.000 --> 01:12:14.000 Aber Sachen, die mich tatsächlich 01:12:14.000 --> 01:12:16.000 deutlich schneller werden lassen, 01:12:16.000 --> 01:12:18.000 sind solche Beispiele wie 01:12:18.000 --> 01:12:20.000 Ressource Overriding, dass 01:12:20.000 --> 01:12:22.000 ich mir jetzt eben nicht das ganze 01:12:22.000 --> 01:12:24.000 Ökosystem perfekt hin basteln muss 01:12:24.000 --> 01:12:26.000 um genau diesen Case dann 01:12:26.000 --> 01:12:28.000 in drei Stunden vorbereitet und dann 01:12:28.000 --> 01:12:30.000 nach dem Browser zu testen, sondern dass ich sagen kann, 01:12:30.000 --> 01:12:32.000 ich tausche das, dieses 01:12:32.000 --> 01:12:34.000 CSS-Datei einfach mal mit einer komplett anderen 01:12:34.000 --> 01:12:36.000 jetzt live aus. Ich muss noch nicht mal 01:12:36.000 --> 01:12:38.000 reüber in meinen Code-Editor gehen 01:12:38.000 --> 01:12:40.000 und kann hier Sachen ausprobieren. 01:12:40.000 --> 01:12:42.000 Das mich das teilweise 01:12:42.000 --> 01:12:44.000 sehr viel Zeit ersparen 01:12:44.000 --> 01:12:46.000 und nicht nur die Zeit ersparen, sondern 01:12:46.000 --> 01:12:48.000 Sachen rausfinden, die hätte ich jetzt so 01:12:48.000 --> 01:12:50.000 durch manuelles, was heißt manuelles, 01:12:50.000 --> 01:12:52.000 aber durch Coachreiben eben so gar nicht 01:12:52.000 --> 01:12:54.000 rausfinden können. Ja. 01:12:54.000 --> 01:12:56.000 Eigentlich finde ich wieder, wir sollten uns 01:12:56.000 --> 01:12:58.000 mal wieder ein bisschen mehr damit beschäftigen, 01:12:58.000 --> 01:13:00.000 was könnten wir im Browser eigentlich noch 01:13:00.000 --> 01:13:02.000 alles benutzen. 01:13:02.000 --> 01:13:04.000 Ich glaube, wir können jetzt ein bisschen das 01:13:04.000 --> 01:13:06.000 Network tab und anscheinend gibt es Dom Breakpoints, 01:13:06.000 --> 01:13:08.000 aber vielleicht eher mal wieder in die Richtung 01:13:08.000 --> 01:13:10.000 gehen, was könnten wir da mit dem Browser 01:13:10.000 --> 01:13:12.000 machen? 01:13:12.000 --> 01:13:14.000 Für welche Ressourcen 01:13:14.000 --> 01:13:16.000 Override ist du denn Schepp? 01:13:16.000 --> 01:13:18.000 Unterschiedlich. 01:13:18.000 --> 01:13:20.000 Also ich prototype zum Beispiel 01:13:20.000 --> 01:13:22.000 irgendwie so 01:13:22.000 --> 01:13:24.000 Preloads und so was, also meistens 01:13:24.000 --> 01:13:26.000 nutze ich das für HTML 01:13:26.000 --> 01:13:28.000 tatsächlich. Also das ich da 01:13:28.000 --> 01:13:30.000 eher quasi 01:13:30.000 --> 01:13:32.000 einen lokalen Override habe, wo ich einfach 01:13:32.000 --> 01:13:34.000 Dinge modifiziere und gucke, wie das dann so 01:13:34.000 --> 01:13:36.000 was die Auswirkungen sind. 01:13:36.000 --> 01:13:38.000 Weil du kannst ja auch 01:13:38.000 --> 01:13:40.000 die ganzen anderen Tools danach drauf 01:13:40.000 --> 01:13:42.000 laufen lassen, also es wie Lighthouse 01:13:42.000 --> 01:13:44.000 und 01:13:44.000 --> 01:13:46.000 oder vielleicht auch das Profiling tab 01:13:46.000 --> 01:13:48.000 und so Zeugs. 01:13:48.000 --> 01:13:50.000 Das geht ja dann auch mit den von dir lokal 01:13:50.000 --> 01:13:52.000 modifizierten Dateien. 01:13:52.000 --> 01:13:54.000 Und 01:13:54.000 --> 01:13:56.000 ja genau, also bei 01:13:56.000 --> 01:13:58.000 CSS da ist es so, dass ich dann, 01:13:58.000 --> 01:14:00.000 das manchmal ist es nicht in den DevTools, 01:14:00.000 --> 01:14:02.000 wobei du ja auch diese 01:14:02.000 --> 01:14:04.000 Resource Overrides, die kannst du ja quasi, 01:14:04.000 --> 01:14:06.000 du musst ja ein Verzeichnis angeben, wo die 01:14:06.000 --> 01:14:08.000 drinnen leben sollen, deine 01:14:08.000 --> 01:14:10.000 Geoverrideden Ressourcen 01:14:10.000 --> 01:14:12.000 und dann kannst du 01:14:12.000 --> 01:14:14.000 eben mit deiner IDE die bearbeiten 01:14:14.000 --> 01:14:16.000 und dann ist es irgendwie angenehmer, das 01:14:16.000 --> 01:14:18.000 zu schreiben als mit deinem 01:14:18.000 --> 01:14:20.000 den Browser DevTools. Also die finde ich zum 01:14:20.000 --> 01:14:22.000 Coden jetzt so mittel cool. 01:14:22.000 --> 01:14:24.000 Genau, aber da habe ich 01:14:24.000 --> 01:14:26.000 einen Plugin, ich glaube das heißt auch Resource 01:14:26.000 --> 01:14:28.000 Override. 01:14:28.000 --> 01:14:30.000 Wo ich dann zum Beispiel 01:14:30.000 --> 01:14:32.000 an der Live-Seite 01:14:32.000 --> 01:14:34.000 auf Production kann ich quasi einfach sagen 01:14:34.000 --> 01:14:36.000 dieses CSS 01:14:36.000 --> 01:14:38.000 da möchte ich quasi immer austauschen 01:14:38.000 --> 01:14:40.000 jetzt also auf Knopfdruck, ich aktiviere das einfach 01:14:40.000 --> 01:14:42.000 und dann kann ich sagen, jetzt möchte ich bitte 01:14:42.000 --> 01:14:44.000 diese ganzen Ressourcen 01:14:44.000 --> 01:14:46.000 während du die abfragst, Austauschung 01:14:46.000 --> 01:14:48.000 gegen die, die ich hier lokal liegen habe 01:14:48.000 --> 01:14:50.000 und dann kann ich da auch 01:14:50.000 --> 01:14:52.000 debuggen und dann habe ich meistens so 01:14:52.000 --> 01:14:54.000 dass ich den ganzen Satz austausche, also 01:14:54.000 --> 01:14:56.000 sowohl CSS als auch JavaScript und so 01:14:56.000 --> 01:14:58.000 und 01:14:58.000 --> 01:15:00.000 dann kann ich es auch wieder deaktivieren 01:15:00.000 --> 01:15:02.000 und dann ist es wieder der Production Code, aber 01:15:02.000 --> 01:15:04.000 dann kann ich eben lokal 01:15:04.000 --> 01:15:06.000 entwickeln und mit 01:15:06.000 --> 01:15:08.000 in Production 01:15:08.000 --> 01:15:10.000 mit in Production Umfeld sehen 01:15:10.000 --> 01:15:12.000 wie sich das eben dann verhält. 01:15:12.000 --> 01:15:14.000 Genau. 01:15:14.000 --> 01:15:16.000 Ja, ich überlege gerade was benutze ich denn sonst noch 01:15:16.000 --> 01:15:18.000 oft an DevTools, muss ich mal aufmachen. 01:15:18.000 --> 01:15:20.000 Die 01:15:20.000 --> 01:15:22.000 Framework spezifischen DevTools 01:15:22.000 --> 01:15:24.000 natürlich, also wenn man schon mal hier 01:15:24.000 --> 01:15:26.000 im React-Universum drin ist, dann 01:15:26.000 --> 01:15:28.000 macht das natürlich Sinn, die entsprechenden Dinge 01:15:28.000 --> 01:15:30.000 sich zu installieren 01:15:30.000 --> 01:15:32.000 oder irgendwie auch für die State Manager haben so was 01:15:32.000 --> 01:15:34.000 natürlich auch. 01:15:34.000 --> 01:15:36.000 Ja, dass ich einfach im Browser dann den 01:15:36.000 --> 01:15:38.000 State kurz ändern kann, dass ich irgendwie 01:15:38.000 --> 01:15:40.000 eine Boolean Variable auf True oder False 01:15:40.000 --> 01:15:42.000 hätte, damit ich sehe was im Browser passiert. 01:15:42.000 --> 01:15:44.000 Die ist viel schneller als würde ich jetzt die 01:15:44.000 --> 01:15:46.000 tatsächlichen Fade durchklicken, 01:15:46.000 --> 01:15:48.000 gerade auch um es zu dokumentieren, dass ich 01:15:48.000 --> 01:15:50.000 ein paar Screenshots mache. 01:15:50.000 --> 01:15:52.000 Wie viele verschiedene States haben wir denn jetzt 01:15:52.000 --> 01:15:54.000 eigentlich implementiert? State Dampen und an den 01:15:54.000 --> 01:15:56.000 Bug Report anhängen. 01:15:56.000 --> 01:15:58.000 Ja, genau. 01:15:58.000 --> 01:16:00.000 Wenn Leute aus dem Design Team oder 01:16:00.000 --> 01:16:02.000 Produkt Team auch mittlerweile 01:16:02.000 --> 01:16:04.000 einfach diese DevTools zu drauf haben 01:16:04.000 --> 01:16:06.000 und sie wischen schon, 01:16:06.000 --> 01:16:08.000 dass wir immer wieder die gleichen Fragen 01:16:08.000 --> 01:16:10.000 stellen. 01:16:10.000 --> 01:16:12.000 Bei UI Sachen habe ich tatsächlich 01:16:12.000 --> 01:16:14.000 mittlerweile erstaunlich wenig, dass ich 01:16:14.000 --> 01:16:16.000 nachfragen muss, ja welcher Browser war 01:16:16.000 --> 01:16:18.000 das denn, weil es jetzt nicht ob 01:16:18.000 --> 01:16:20.000 Rans genau liegt, aber irgendwie habe ich das Gefühl, 01:16:20.000 --> 01:16:22.000 dass es nicht mehr so davon abhängig ist, dass 01:16:22.000 --> 01:16:24.000 das jetzt der InterX Brower 6 ist und das mit 01:16:24.000 --> 01:16:26.000 Gehs halt nicht. Die meisten Sachen funktionieren 01:16:26.000 --> 01:16:28.000 halt. Meistens haben wir dann eher Probleme 01:16:28.000 --> 01:16:30.000 mit so, ja weil welcher ID war das denn 01:16:30.000 --> 01:16:32.000 und also wie soll denn der Request 01:16:32.000 --> 01:16:34.000 aus dem Kringler bei einem Screenshot 01:16:34.000 --> 01:16:36.000 mit einem Networktup auf irgendwas 01:16:36.000 --> 01:16:38.000 draufgeklickt, was rot war, dann mit 01:16:38.000 --> 01:16:40.000 schon passen. Das ist super hilfreich. 01:16:40.000 --> 01:16:42.000 Ich glaube, so Sachen können halt 01:16:42.000 --> 01:16:44.000 die Kommunikation rund um Bugs 01:16:44.000 --> 01:16:46.000 vereinfachen. 01:16:46.000 --> 01:16:48.000 Wenn da halt irgendwie so Dinge gemacht 01:16:48.000 --> 01:16:50.000 werden, wie State Dumps dran gehängt 01:16:50.000 --> 01:16:52.000 werden oder so. 01:16:52.000 --> 01:16:54.000 Mittlerweile ist das ja auch so Mini-Screencast 01:16:54.000 --> 01:16:56.000 eben schnell machen, dass man wirklich einfach 01:16:56.000 --> 01:16:58.000 ein Filmchen mit angehängt bekommt, wo genau 01:16:58.000 --> 01:17:00.000 drin steht, was sind die Steps, um das 01:17:00.000 --> 01:17:02.000 zu reproduzieren. Nicht nur ist das halt 01:17:02.000 --> 01:17:04.000 eben dann anschaulicher, weil man ja genau 01:17:04.000 --> 01:17:06.000 sieht, aha das und das und das ist passiert 01:17:06.000 --> 01:17:08.000 und man sieht vielleicht auch noch welcher Browser 01:17:08.000 --> 01:17:10.000 das war, sondern auch für diejenigen, die den 01:17:10.000 --> 01:17:12.000 Buck Report einstellen, ist das ja sehr viel einfacher, 01:17:12.000 --> 01:17:14.000 das Ding einfach einmal durch zu exerzieren, 01:17:14.000 --> 01:17:16.000 als das irgendwie in Prosa zu übersetzen 01:17:16.000 --> 01:17:18.000 möglicherweise noch in der Sprache, die man 01:17:18.000 --> 01:17:20.000 halt nicht perfekt drauf hat. 01:17:20.000 --> 01:17:22.000 Screenscast, da bin ich ein großer Fan 01:17:22.000 --> 01:17:24.000 und da ist das ja auch so. 01:17:24.000 --> 01:17:26.000 Ja, meistens, sehr oft lag es dann auch nicht unbedingt 01:17:26.000 --> 01:17:28.000 dran, dass jetzt dieser Button geklickt 01:17:28.000 --> 01:17:30.000 wurde, sondern vielleicht lag es eher mal 01:17:30.000 --> 01:17:32.000 dran. 01:17:32.000 --> 01:17:34.000 Da war halt schon vor zehn Schritten der State 01:17:34.000 --> 01:17:36.000 Fall schon, man hätte mal die Seite 01:17:36.000 --> 01:17:38.000 reloaden müssen, dann wäre es auch passiert, 01:17:38.000 --> 01:17:40.000 sondern der Button ging jetzt nur nicht, 01:17:40.000 --> 01:17:42.000 weil vor zehn Schritten ist das passiert 01:17:42.000 --> 01:17:44.000 und da haben wir vergessen, den Request zu 01:17:44.000 --> 01:17:46.000 machen, deswegen haben wir das gar nicht 01:17:46.000 --> 01:17:48.000 gespeichert, obwohl wir sagten, es war 01:17:48.000 --> 01:17:50.000 jetzt. Was halt auch so Dinge sind, die die 01:17:50.000 --> 01:17:52.000 dann über so was wie den State Dump 01:17:52.000 --> 01:17:54.000 oder den Screenscast transportieren. 01:17:54.000 --> 01:17:56.000 Ja, 01:17:56.000 --> 01:17:58.000 es ist solche Fälle, hatten wir z.B. 01:17:58.000 --> 01:18:00.000 wenn man irgendwelche, 01:18:00.000 --> 01:18:02.000 wir haben ja schon erzählt, bei uns kann man 01:18:02.000 --> 01:18:04.000 so Feedback-Zyplinen anlegen und auch 01:18:04.000 --> 01:18:06.000 Onboarding-Tourneys und etc. 01:18:06.000 --> 01:18:08.000 und ich glaube, einem Back hatten wir, wo wir dann 01:18:08.000 --> 01:18:10.000 rausgefunden haben, ach, das wurde davor 01:18:10.000 --> 01:18:12.000 dupliziert, das ganze Ding wurde dupliziert 01:18:12.000 --> 01:18:14.000 und wir hatten dann ein neues Feature 01:18:14.000 --> 01:18:16.000 mit Quizzes und hier und da 01:18:16.000 --> 01:18:18.000 und da war vielleicht noch die Relation 01:18:18.000 --> 01:18:20.000 Frage auch duplizieren müssen, sondern wir hatten 01:18:20.000 --> 01:18:22.000 jetzt vielleicht dummerweise die Frage 01:18:22.000 --> 01:18:24.000 war Unique, aber wir hatten 01:18:24.000 --> 01:18:26.000 diesen zwei verschiedenen Quizzes drin, 01:18:26.000 --> 01:18:28.000 ist dann natürlich ein bisschen schwierig 01:18:28.000 --> 01:18:30.000 und das funktioniert echt mittlerweile 01:18:30.000 --> 01:18:32.000 für, ich glaube, viele Verwenden 01:18:32.000 --> 01:18:34.000 bei uns Loom, irgendein Tool 01:18:34.000 --> 01:18:36.000 hat man noch ein Gesicht und kann Browser 01:18:36.000 --> 01:18:38.000 auswählen und kann Kamera auswählen, 01:18:38.000 --> 01:18:40.000 ist ganz nett, kriegt man einen Link zu 01:18:40.000 --> 01:18:42.000 geschickt und dann sieht man bei dem Video meistens, 01:18:42.000 --> 01:18:44.000 dass es abliefert und wenn da schon das 01:18:44.000 --> 01:18:46.000 Networktap einfach mit offen ist, ist es noch witziger. 01:18:46.000 --> 01:18:48.000 Sonst 01:18:48.000 --> 01:18:50.000 verwende ich eigentlich gar nicht wirklich viel, 01:18:50.000 --> 01:18:52.000 wie gesagt, wir hatten das Networktap, 01:18:52.000 --> 01:18:54.000 wir hatten die Deaf Utils 01:18:54.000 --> 01:18:56.000 des Lieblings Frameworks 01:18:56.000 --> 01:18:58.000 Lighthouse 01:18:58.000 --> 01:19:00.000 immer mal wieder, ich habe jetzt keine 01:19:00.000 --> 01:19:02.000 Plugins drinnen für eine HTML-Validierung 01:19:02.000 --> 01:19:04.000 oder ähnliches, da gehe ich einfach auf 01:19:04.000 --> 01:19:06.000 dem W3C, irgendwas 01:19:06.000 --> 01:19:08.000 HTML-Validator und kopiere es halt rein. 01:19:08.000 --> 01:19:10.000 Ich benutze noch, 01:19:10.000 --> 01:19:12.000 ich habe mal geguckt, also ich benutze 01:19:12.000 --> 01:19:14.000 noch Search, ganz gerne 01:19:14.000 --> 01:19:16.000 also wenn ich dann... 01:19:16.000 --> 01:19:18.000 Echt? 01:19:18.000 --> 01:19:20.000 Du hast ja diese 3 01:19:20.000 --> 01:19:22.000 Knöpfchen und dann gibt es ja so More Tools 01:19:22.000 --> 01:19:24.000 und eigentlich gibt es ja noch viel, viel, viel mehr. 01:19:24.000 --> 01:19:26.000 Die Suche steht bei mir schon da, 01:19:26.000 --> 01:19:28.000 was machst du denn damit, was suche ich denn jetzt? 01:19:28.000 --> 01:19:30.000 Damit kannst du 01:19:30.000 --> 01:19:32.000 in den Ressourcen 01:19:32.000 --> 01:19:34.000 nach bestimmten Schlagworten suchen, 01:19:34.000 --> 01:19:36.000 also wenn ich jetzt zum Beispiel... 01:19:36.000 --> 01:19:38.000 In den Ressourcen? Also in allen Sourcen der Seite. 01:19:38.000 --> 01:19:40.000 Du kannst dann quasi sagen, also zum Beispiel 01:19:40.000 --> 01:19:42.000 habe ich in Century 01:19:42.000 --> 01:19:44.000 einen Fehler, dass 01:19:44.000 --> 01:19:46.000 Screen Orientation Lock 01:19:46.000 --> 01:19:48.000 irgendwie nicht supported wird 01:19:48.000 --> 01:19:50.000 von irgendeiner Plattform und dann denke ich 01:19:50.000 --> 01:19:52.000 also ja, ich benutze es nicht, also 01:19:52.000 --> 01:19:54.000 wo kommt das denn her und dann kann ich 01:19:54.000 --> 01:19:56.000 eben in Search reingehen 01:19:56.000 --> 01:19:58.000 und kann dann nach Screen 01:19:58.000 --> 01:20:00.000 Orientation.Lock suchen und dann kriege ich 01:20:00.000 --> 01:20:02.000 eben die Ressource, 01:20:02.000 --> 01:20:04.000 die das verwendet, das ist 01:20:04.000 --> 01:20:06.000 eigentlich ganz cool. 01:20:06.000 --> 01:20:08.000 Also wenn Century mir nicht sowieso schon sagt 01:20:08.000 --> 01:20:10.000 wo das verwendet wird. 01:20:10.000 --> 01:20:12.000 Im Elements Panel ist natürlich die 01:20:12.000 --> 01:20:14.000 Volltext Suche auch ganz schön, 01:20:14.000 --> 01:20:16.000 weil die natürlich CSS-Elektoren frisst. 01:20:16.000 --> 01:20:18.000 Ja, stimmt. 01:20:18.000 --> 01:20:20.000 Ja, das dachte ich gerade, was du mit 01:20:20.000 --> 01:20:22.000 Suche meinst. Achso, ne, ne. 01:20:22.000 --> 01:20:24.000 Die war wenn ich gerne. Ne, genau, die meinte ich nicht. 01:20:24.000 --> 01:20:26.000 Genau, und 01:20:26.000 --> 01:20:28.000 ja, dann benutze ich halt auch gerne 01:20:28.000 --> 01:20:30.000 noch diesen Profiler, also der jetzt 01:20:30.000 --> 01:20:32.000 mittlerweile Performance heißt, aber der ist ja quasi 01:20:32.000 --> 01:20:34.000 alles 01:20:34.000 --> 01:20:36.000 irgendwie mitschneidet und profiled, 01:20:36.000 --> 01:20:38.000 was da so passiert 01:20:38.000 --> 01:20:40.000 wo ich dann eben sehen kann. 01:20:40.000 --> 01:20:42.000 Ah, okay, so. 01:20:42.000 --> 01:20:44.000 Hier löse ich 01:20:44.000 --> 01:20:46.000 ein Recalc 01:20:46.000 --> 01:20:48.000 aus in CSS und ein Relay 01:20:48.000 --> 01:20:50.000 out und so und dann kann ich eben hingehen 01:20:50.000 --> 01:20:52.000 und sagen, woran liegt das 01:20:52.000 --> 01:20:54.000 oder ich sehe auch wie lang braucht der 01:20:54.000 --> 01:20:56.000 und da habe ich auch letztens 01:20:56.000 --> 01:20:58.000 das habe ich 01:20:58.000 --> 01:21:00.000 beim Vortrag von dem Nolan Lawson, 01:21:00.000 --> 01:21:02.000 das ist ein Blog-Post von dem gelesen, es gibt auch noch 01:21:02.000 --> 01:21:04.000 Tools, die den Weg nicht in die Dev-Tools 01:21:04.000 --> 01:21:06.000 gefunden haben bislang. 01:21:06.000 --> 01:21:08.000 Das ist zum Beispiel Chrome Trace 01:21:08.000 --> 01:21:10.000 ist so ein Kandidat, das ist aber auch 01:21:10.000 --> 01:21:12.000 sehr rudimentär und da kannst du dann 01:21:12.000 --> 01:21:14.000 kannst du dann auch sagen 01:21:14.000 --> 01:21:16.000 ich mich interessiert eigentlich 01:21:16.000 --> 01:21:18.000 nur deine CSS-Selektor 01:21:18.000 --> 01:21:20.000 Performance 01:21:20.000 --> 01:21:22.000 oder wie lange brauchst du 01:21:22.000 --> 01:21:24.000 was quasi 01:21:24.000 --> 01:21:26.000 die Grundlage ist für diese Recalculation 01:21:26.000 --> 01:21:28.000 und dann habe ich halt gesehen 01:21:28.000 --> 01:21:30.000 so, ah okay, diese Selektoren 01:21:30.000 --> 01:21:32.000 in meinem Projekt 01:21:32.000 --> 01:21:34.000 also die quasi sagen wir mal die 01:21:34.000 --> 01:21:36.000 Stärkchenenden 01:21:36.000 --> 01:21:38.000 die sind also die und die gibt es 01:21:38.000 --> 01:21:40.000 und die werden ständig gegen 01:21:40.000 --> 01:21:42.000 Elemente gemetscht, weil Sternchen 01:21:42.000 --> 01:21:44.000 und da verbaue ich halt so und so viel 01:21:44.000 --> 01:21:46.000 Zeit und dann konnte ich das eben 01:21:46.000 --> 01:21:48.000 aufräumen oder ich habe eben auch 01:21:48.000 --> 01:21:50.000 dann wurde auch der Hasselektor 01:21:50.000 --> 01:21:52.000 aufgelistet was irgendwie auch kein Wunder 01:21:52.000 --> 01:21:54.000 ist, weil der ja quasi so 01:21:54.000 --> 01:21:56.000 der dreht ja alles auf links 01:21:56.000 --> 01:21:58.000 und der muss dann quasi anders gemetscht 01:21:58.000 --> 01:22:00.000 werden 01:22:00.000 --> 01:22:02.000 und ich hatte den eingebaut so als 01:22:02.000 --> 01:22:04.000 EdgeK ist Abfangmechanismus 01:22:04.000 --> 01:22:06.000 aber mein Effekt dachte ich dann so 01:22:06.000 --> 01:22:08.000 ja okay der ist jetzt auch nicht so wichtig 01:22:08.000 --> 01:22:10.000 ich brauche ihn wieder raus, damit der nicht 01:22:10.000 --> 01:22:12.000 irgendwie ständig gemetscht werden muss gegen Dinge 01:22:14.000 --> 01:22:16.000 Im Performance Tab noch 01:22:16.000 --> 01:22:18.000 CPU-Drosselung natürlich auch sehr schön 01:22:18.000 --> 01:22:20.000 also kann man natürlich gucken 01:22:20.000 --> 01:22:22.000 welcher CSS-Selektor matcht wie lange 01:22:22.000 --> 01:22:24.000 aber wichtiger vielleicht die Entscheidung 01:22:24.000 --> 01:22:26.000 muss ich danach gerade überhaupt gucken 01:22:26.000 --> 01:22:28.000 also einfach mal die Drossel anziehen, Neuladen 01:22:28.000 --> 01:22:30.000 gucken ist das noch alles butter smooth 01:22:30.000 --> 01:22:32.000 DevTools zu und weiter machen 01:22:32.000 --> 01:22:34.000 und das ist natürlich auch so sehr gut 01:22:34.000 --> 01:22:36.000 für so eine erste Einschätzung 01:22:36.000 --> 01:22:38.000 Ja, genau wobei ich finde 01:22:38.000 --> 01:22:40.000 halt so im JavaScript Bereich 01:22:40.000 --> 01:22:42.000 ist also ist die Auflösung schon 01:22:42.000 --> 01:22:44.000 ziemlich gut die man da bekommt 01:22:44.000 --> 01:22:46.000 diese FlameCharts und Co 01:22:46.000 --> 01:22:48.000 im so 01:22:48.000 --> 01:22:50.000 allem anderen also auch was 01:22:50.000 --> 01:22:52.000 so quasi wo wird am meisten 01:22:52.000 --> 01:22:54.000 Layout-Zeit zum Beispiel verbraten 01:22:54.000 --> 01:22:56.000 so das erzählt einem halt keiner 01:22:56.000 --> 01:22:58.000 man sieht nur so quasi das Ergebnis insgesamt 01:22:58.000 --> 01:23:00.000 aber cool da ja auch irgendwie zu wissen 01:23:00.000 --> 01:23:02.000 so dieses 01:23:02.000 --> 01:23:04.000 diese Komponente da immer 01:23:04.000 --> 01:23:06.000 also die braucht so und so lange 01:23:06.000 --> 01:23:08.000 weil da ist halt 01:23:08.000 --> 01:23:10.000 ein Grid im Einsatz das irgendwie kompliziert ist 01:23:10.000 --> 01:23:12.000 oder sowas ausrechnet 01:23:12.000 --> 01:23:14.000 für den Browser 01:23:14.000 --> 01:23:16.000 mal von den großen 01:23:16.000 --> 01:23:18.000 Frameworks abgesehen ich denke 01:23:18.000 --> 01:23:20.000 das ist immer so da wo man dann viel 01:23:20.000 --> 01:23:22.000 Zeit und Entscheidungsgespräche 01:23:22.000 --> 01:23:24.000 mit reinführen lässt 01:23:24.000 --> 01:23:26.000 benutzt man ReactView 01:23:26.000 --> 01:23:28.000 da da da, mir schaut es bei euch aus 01:23:28.000 --> 01:23:30.000 mit so kleineren Packages also wenn ich so denke 01:23:30.000 --> 01:23:32.000 an Date-Formatierungen 01:23:32.000 --> 01:23:34.000 bei mir ist es jetzt 01:23:34.000 --> 01:23:36.000 Date.js aus relativ 01:23:36.000 --> 01:23:38.000 schnell gefundenen Gründen 01:23:38.000 --> 01:23:40.000 wie viel Zeit steckt 01:23:40.000 --> 01:23:42.000 ihr da rein euch für so kleine Packages 01:23:42.000 --> 01:23:44.000 zu entscheiden und ob oder ja 01:23:44.000 --> 01:23:46.000 und dagegen und habt ihr auch die 01:23:46.000 --> 01:23:48.000 gleiche grundsätzliche Haltung 01:23:48.000 --> 01:23:50.000 Schöpfer lieber aber selber schreiben 01:23:50.000 --> 01:23:52.000 nix aus Bein binden 01:23:52.000 --> 01:23:54.000 ja tatsächlich also bei sowas 01:23:54.000 --> 01:23:56.000 dann irgendwie die im Browser eingebauten 01:23:56.000 --> 01:23:58.000 Sachen also das ist dann 01:23:58.000 --> 01:24:00.000 noch nicht Temporal glaube ich also 01:24:00.000 --> 01:24:02.000 so das fast ist mache ich damit nicht auf 01:24:02.000 --> 01:24:04.000 aber 01:24:04.000 --> 01:24:06.000 das was was der Browser hat 01:24:06.000 --> 01:24:08.000 zum 01:24:08.000 --> 01:24:10.000 auch zum Formatieren von Zahlen zum Beispiel 01:24:10.000 --> 01:24:12.000 da schippten die ja mittlerweile 01:24:12.000 --> 01:24:14.000 schon einiges zurück ich weiß nicht ob das 01:24:14.000 --> 01:24:16.000 ja Temporal ist das aber nicht 01:24:16.000 --> 01:24:18.000 genau ich würde ich genau ich möchte 01:24:18.000 --> 01:24:20.000 dafür keine Library haben 01:24:20.000 --> 01:24:22.000 einfach weil ich immer denke die sind 01:24:22.000 --> 01:24:24.000 das ist dann so der der death 01:24:24.000 --> 01:24:26.000 bei 1000 Paper Cuts 01:24:26.000 --> 01:24:28.000 also so eine so hier 01:24:28.000 --> 01:24:30.000 und eine da und dann 01:24:30.000 --> 01:24:32.000 dann schippt man halt relativ viel also 01:24:32.000 --> 01:24:34.000 wenn das wenn das alles serverseitig 01:24:34.000 --> 01:24:36.000 wäre dann wäre es ja vielleicht weniger ein Problem 01:24:36.000 --> 01:24:38.000 aber wenn man das irgendwie alles an die 01:24:38.000 --> 01:24:40.000 an die User schippt 01:24:40.000 --> 01:24:42.000 weiß ich nicht da muss dann schon irgendwie 01:24:42.000 --> 01:24:44.000 sehr viel Zeitformatierung 01:24:44.000 --> 01:24:46.000 stattfinden das ja irgendwann sage okay 01:24:46.000 --> 01:24:48.000 das jetzt irgendwie eine der 01:24:48.000 --> 01:24:50.000 Kernkompetenzen dieser Web Anwendung 01:24:50.000 --> 01:24:52.000 und dann 01:24:52.000 --> 01:24:54.000 da weiß ich nicht 01:24:54.000 --> 01:24:56.000 entweder was will ich dann was 01:24:56.000 --> 01:24:58.000 oder dann schippe ich das 01:24:58.000 --> 01:25:00.000 das ist nämlich glaube ich tatsächlich 01:25:00.000 --> 01:25:02.000 eine so eine Superkraft 01:25:02.000 --> 01:25:04.000 warum sollte man überhaupt von Web 01:25:04.000 --> 01:25:06.000 schon als eine Ahnung haben es steckt halt 01:25:06.000 --> 01:25:08.000 echt viel drin und man kann damit echt viel machen 01:25:08.000 --> 01:25:10.000 wofür man halt eben sich genauso gut ein 01:25:10.000 --> 01:25:12.000 npm-Paket installieren könnte 01:25:12.000 --> 01:25:14.000 man kann es halt eben öfter mal auch bleiben lassen 01:25:16.000 --> 01:25:18.000 ja genauso wie wie man low-dash 01:25:18.000 --> 01:25:20.000 nicht braucht und du petas das ja immer 01:25:20.000 --> 01:25:22.000 irgendwie so hey warum benutzt man denn nicht 01:25:22.000 --> 01:25:24.000 die native-formularvalidierung 01:25:24.000 --> 01:25:26.000 und so es gibt 01:25:26.000 --> 01:25:28.000 eigentlich genug Schätze 01:25:28.000 --> 01:25:30.000 native-formularvalidierung das verhacke ich mich auch 01:25:30.000 --> 01:25:32.000 warum verwenden wir die 01:25:32.000 --> 01:25:34.000 die ist doch super 01:25:34.000 --> 01:25:36.000 die musst du erst lernen um sie dann umzubiegen 01:25:36.000 --> 01:25:38.000 dass es funktioniert während du halt eben 01:25:38.000 --> 01:25:40.000 du suchst ja auch nicht nach 01:25:40.000 --> 01:25:42.000 also du suchst nach formularvalidierung 01:25:42.000 --> 01:25:44.000 aber irgendwie so max mütze sucht 01:25:44.000 --> 01:25:46.000 vielleicht nach react-formularvalidierung 01:25:46.000 --> 01:25:48.000 findet ja die html-5-formularvalidierung 01:25:48.000 --> 01:25:50.000 auf diesem wege gar nicht erst 01:25:50.000 --> 01:25:52.000 und wenn er sie ausprobiert stellt er fest 01:25:52.000 --> 01:25:54.000 das sieht ja in chrome und firefox komplett anders aus 01:25:54.000 --> 01:25:56.000 das kann ich ja gar nicht gebrauchen 01:25:56.000 --> 01:25:58.000 was ich wieder sagen würde 01:25:58.000 --> 01:26:00.000 das ist doch vielleicht eher den Vorteil 01:26:00.000 --> 01:26:02.000 ich weiß ich habe auch bug-Tickets darüber bekommen 01:26:02.000 --> 01:26:04.000 dass es jetzt im safari 01:26:04.000 --> 01:26:06.000 das datumsformat ganz anders angezeigt wird 01:26:08.000 --> 01:26:10.000 ich weiß jetzt nicht ob es genauso farge war 01:26:10.000 --> 01:26:12.000 aber es war irgendwie was das es dann eben lokaler 01:26:12.000 --> 01:26:14.000 sidestring hatte 01:26:14.000 --> 01:26:16.000 aber keine ahnung die was weiß ich welche 01:26:16.000 --> 01:26:18.000 sprache übersetzung gar nicht sondern war halt alles englisch 01:26:18.000 --> 01:26:20.000 und plötzlich kam das sprache 01:26:20.000 --> 01:26:22.000 xy datenformat 01:26:22.000 --> 01:26:24.000 ist doch ist das nicht ein feature 01:26:24.000 --> 01:26:26.000 nicht sicher 01:26:26.000 --> 01:26:28.000 aber solche requests dann kommt es halt aufs team an 01:26:28.000 --> 01:26:30.000 ich kann die ganz einfach abblocken und sagen 01:26:30.000 --> 01:26:32.000 das kommt vom browser 01:26:32.000 --> 01:26:34.000 müssen wir das tatsächlich ändern 01:26:34.000 --> 01:26:36.000 hat das irgendein mehr wert das davon 01:26:36.000 --> 01:26:38.000 wenn wir dieses grau auf dieses grau ändern 01:26:38.000 --> 01:26:40.000 oder nicht weil dann machen wir es nicht 01:26:40.000 --> 01:26:42.000 naja das ist schon eine formularvalidierung 01:26:42.000 --> 01:26:44.000 da kann man ja alles ändern man kann ja wirklich alles austauschen 01:26:44.000 --> 01:26:46.000 von wirklich irgendwelchen farben 01:26:46.000 --> 01:26:48.000 designs und was nicht allem 01:26:48.000 --> 01:26:50.000 bis hin wirklich auch zu dem text der angezeigt wird 01:26:50.000 --> 01:26:52.000 und das kann man halt eben alles auf eine art und weise 01:26:52.000 --> 01:26:54.000 machen was halt so die von chef fallen mal angesprach 01:26:54.000 --> 01:26:56.000 der ewigkeitsgarantie umsetzt weil das ändert sich 01:26:56.000 --> 01:26:58.000 nicht mehr das ist ein webstander seit 01:26:58.000 --> 01:27:00.000 10 jahren das wird man nie wieder updaten 01:27:00.000 --> 01:27:02.000 muss man muss halt initial mal halt da ein wenig 01:27:02.000 --> 01:27:04.000 ja was investieren 01:27:04.000 --> 01:27:06.000 das ist möglicherweise nicht so wenig 01:27:06.000 --> 01:27:08.000 da muss man möglicherweise einiges 01:27:08.000 --> 01:27:10.000 selber schreiben 01:27:10.000 --> 01:27:12.000 und kann nicht einfach irgendwie sich da die dependency 01:27:12.000 --> 01:27:14.000 von so und so reinziehen 01:27:14.000 --> 01:27:16.000 ja man muss halt wissen dass man das kann 01:27:16.000 --> 01:27:18.000 und man muss es halt eben dann auch machen 01:27:18.000 --> 01:27:20.000 und das fällt halt schwer 01:27:20.000 --> 01:27:22.000 glaube ich ganz klar und das ist natürlich auch eine zeitfrage 01:27:22.000 --> 01:27:24.000 also ich kann sowas machen 01:27:24.000 --> 01:27:26.000 weil ich in projekten bin die 01:27:26.000 --> 01:27:28.000 also das ist quasi produktentwicklung 01:27:28.000 --> 01:27:30.000 wo ich drin bin 01:27:30.000 --> 01:27:32.000 aber wenn du halt schnell 01:27:32.000 --> 01:27:34.000 viel output schaffen 01:27:34.000 --> 01:27:36.000 musst weil du vielleicht in einem 01:27:36.000 --> 01:27:38.000 agentur umfeld bist 01:27:38.000 --> 01:27:40.000 und das halt so ist 01:27:40.000 --> 01:27:42.000 und du einfach möglichst effizient 01:27:42.000 --> 01:27:44.000 arbeiten musst 01:27:44.000 --> 01:27:46.000 weil du dein chef 01:27:46.000 --> 01:27:48.000 eben den job nur akqueren konnte 01:27:48.000 --> 01:27:50.000 weil er einen guten preis gemacht hat 01:27:50.000 --> 01:27:52.000 und dann zählt eben jede minute 01:27:52.000 --> 01:27:54.000 die du schneller bist 01:27:54.000 --> 01:27:56.000 da ist das total legitim das ist ja auch wirklich immer 01:27:56.000 --> 01:27:58.000 es kommt ja immer darauf an 01:27:58.000 --> 01:28:00.000 wie der kontext ist das haben wir am 01:28:00.000 --> 01:28:02.000 anfang ja auch auch gesagt bei den 01:28:02.000 --> 01:28:04.000 javascript frameworks 01:28:04.000 --> 01:28:06.000 da sehe ich das total ein 01:28:06.000 --> 01:28:08.000 dann so macht das du hast das extrem gut beschrieben 01:28:08.000 --> 01:28:10.000 für einen fall wo man halt wirklich sagen würde 01:28:10.000 --> 01:28:12.000 ich nehme die dependency mit batteries included 01:28:12.000 --> 01:28:14.000 und fertig ist aber das ding ist 01:28:14.000 --> 01:28:16.000 da muss man halt genau das gleiche machen wie bei den frameworks 01:28:16.000 --> 01:28:18.000 nämlich dazustehen und wenn dann die core web vitals 01:28:18.000 --> 01:28:20.000 irgendwie rumweinen oder sie an mich herangetragen 01:28:20.000 --> 01:28:22.000 werden 01:28:22.000 --> 01:28:24.000 dann sind wir halt so bei dem 01:28:24.000 --> 01:28:26.000 guten alten agentur 3 eck 01:28:26.000 --> 01:28:28.000 schnell gut billig 01:28:28.000 --> 01:28:30.000 zwei von denen kannst du haben 01:28:30.000 --> 01:28:32.000 und wenn es dann halt irgendwie nicht schnell ist 01:28:32.000 --> 01:28:34.000 weil es gut und billig sein musste 01:28:34.000 --> 01:28:36.000 dazustehen und das halt eben auch irgendwie verteidigen 01:28:36.000 --> 01:28:38.000 wenn man es dann irgendwie kann 01:28:38.000 --> 01:28:40.000 aber das kann halt eben total valider tradeoff sein 01:28:40.000 --> 01:28:42.000 bin ich ganz bei dir 01:28:44.000 --> 01:28:46.000 ich kann das auch gleich wieder mein eigenes argument wieder mit einwerfen 01:28:46.000 --> 01:28:48.000 aber da finden wir ja jedes mal wieder das raten 01:28:48.000 --> 01:28:50.000 neu also nach dem 01:28:50.000 --> 01:28:52.000 zu dem satz loadisch braucht man ja nicht 01:28:52.000 --> 01:28:54.000 braucht man loadisch nicht 01:28:54.000 --> 01:28:56.000 oder ich könnte als gegenargument bringen 01:28:56.000 --> 01:28:58.000 wieso musst du jedes mal deinen clown deep mit hude 01:28:58.000 --> 01:29:00.000 selber schreiben 01:29:00.000 --> 01:29:02.000 brauchst du jetzt mittlerweile nicht mehr 01:29:02.000 --> 01:29:04.000 kommt auf deine note version an 01:29:04.000 --> 01:29:06.000 wie ich schmerzhaft gemerkt habe 01:29:06.000 --> 01:29:08.000 ja ansonsten 01:29:08.000 --> 01:29:10.000 hier jason stringify jason pass 01:29:10.000 --> 01:29:12.000 fertig 01:29:12.000 --> 01:29:14.000 plastik hat funktioniert aber nicht immer 01:29:14.000 --> 01:29:16.000 wenn du da proxies und so weiter drin hattest 01:29:16.000 --> 01:29:18.000 und dann funktioniert halt eben auch loadisch nicht mehr 01:29:18.000 --> 01:29:20.000 ich behaupte ja dass loadisch tatsächlich ja aktiv 01:29:20.000 --> 01:29:22.000 ein klotz am bein des fortschritts ist 01:29:22.000 --> 01:29:24.000 weil das ding halt arrays und objekte unterstützt 01:29:24.000 --> 01:29:26.000 aber keine map sets oder sonstigen 01:29:26.000 --> 01:29:28.000 exotischen neuheiten 01:29:28.000 --> 01:29:30.000 und das ist halt schon ein bisschen droof 01:29:30.000 --> 01:29:32.000 jason stringify 01:29:32.000 --> 01:29:34.000 aber dann machen wir das beispiel 01:29:34.000 --> 01:29:36.000 vom date management 01:29:36.000 --> 01:29:38.000 weil es eben so ein komplexes thema ist 01:29:38.000 --> 01:29:40.000 wie rechnest du jetzt aus ob das eine datum 01:29:40.000 --> 01:29:42.000 vor oder hinter dem andere 01:29:42.000 --> 01:29:44.000 im datum ist 01:29:44.000 --> 01:29:46.000 wie sicher bist du das 01:29:46.000 --> 01:29:48.000 und kümmere mich halt einfach dau echt nicht um die details 01:29:48.000 --> 01:29:50.000 also ich bin da wieder so bei meinem 80 20 01:29:50.000 --> 01:29:52.000 ding oder so das ist halt ein isoliertes problem 01:29:52.000 --> 01:29:54.000 das ich erschlagen muss 01:29:54.000 --> 01:29:56.000 da nehme ich also erstmal das erstbeste populärste 01:29:56.000 --> 01:29:58.000 was mir über den weg läuft 01:29:58.000 --> 01:30:00.000 und sollte sich dann diese date library 01:30:00.000 --> 01:30:02.000 als irgendwie zu schwer gewichtig 01:30:02.000 --> 01:30:04.000 oder zu sonst was herausstellen kann ich die 01:30:04.000 --> 01:30:06.000 weil die halt eben so ein relativ isoliertes 01:30:06.000 --> 01:30:08.000 ding ist, ist halt eine funktion die 01:30:08.000 --> 01:30:10.000 zwei dates vergleicht ersetzen 01:30:10.000 --> 01:30:12.000 oder halt eben mit plattformfunktionen 01:30:12.000 --> 01:30:14.000 selber machen oder oder oder 01:30:14.000 --> 01:30:16.000 also da bin ich extrem leidenschaftlos 01:30:16.000 --> 01:30:18.000 ich persönlich 01:30:18.000 --> 01:30:20.000 meistens ist mir da die abstraktion viel wichtiger 01:30:20.000 --> 01:30:22.000 als die entscheidung für was jetzt 01:30:22.000 --> 01:30:24.000 sondern das habe ich auch mit sentry so 01:30:24.000 --> 01:30:26.000 dass ich mir selber einen monitoring 01:30:26.000 --> 01:30:28.000 datai geschrieben habe da ist sentry 01:30:28.000 --> 01:30:30.000 drin wird sentry genannt 01:30:30.000 --> 01:30:32.000 wird sentry geladen 01:30:32.000 --> 01:30:34.000 ruft sentry funktionen auf 01:30:34.000 --> 01:30:36.000 aber nach außen hin an meiner eigene 01:30:36.000 --> 01:30:38.000 applikation gebe ich eine methode weiter 01:30:38.000 --> 01:30:40.000 die heißt keine ahnung capture exception 01:30:40.000 --> 01:30:42.000 hatten bekommt ein bestimmter 01:30:42.000 --> 01:30:44.000 parameter die ich mit liefern kann 01:30:44.000 --> 01:30:46.000 und dann verwende ich die aber in meinen 01:30:46.000 --> 01:30:48.000 komponenten weil ich möchte nicht in all meinen 01:30:48.000 --> 01:30:50.000 komponenten sentry.capture exception schreiben 01:30:50.000 --> 01:30:52.000 weil falls ich von sentry auf was weiß 01:30:52.000 --> 01:30:54.000 ich was umsteige 01:30:54.000 --> 01:30:56.000 müsste ich sonst ja 100.000 01:30:56.000 --> 01:30:58.000 Dateien ändern 01:30:58.000 --> 01:31:00.000 beim 01:31:00.000 --> 01:31:02.000 djs 01:31:04.000 --> 01:31:06.000 weiß ich gerade nicht wie es ganz genau ist 01:31:06.000 --> 01:31:08.000 aber generell für die so eine abstraktion 01:31:08.000 --> 01:31:10.000 immer ganz hilfreich 01:31:10.000 --> 01:31:12.000 wenn man es dann doch eben mal ändern möchte 01:31:12.000 --> 01:31:14.000 dass ich aber wirklich nur die eine Datei 01:31:14.000 --> 01:31:16.000 ändern muss wo die sachen drin stehen 01:31:16.000 --> 01:31:18.000 ich glaube laudisch ist das ganze 01:31:18.000 --> 01:31:20.000 ich glaube ich glaube laudisch mach ich mal anders 01:31:20.000 --> 01:31:22.000 wenn wir es noch verwenden fallen wir es noch 01:31:22.000 --> 01:31:24.000 aber dann ist es einfach import 01:31:24.000 --> 01:31:26.000 clone die von laudisch und dann wird er eben clone deep 01:31:26.000 --> 01:31:28.000 aufgerufen 01:31:28.000 --> 01:31:30.000 ja das ist dann ja auch perfekt 01:31:30.000 --> 01:31:32.000 habe ich gerade dann sprechen gemerkt mach ich doch immer anders 01:31:32.000 --> 01:31:34.000 ja dann ist es ja auch e klein 01:31:34.000 --> 01:31:36.000 also wenn du dann direkt 01:31:36.000 --> 01:31:38.000 nur dieses modul importierst 01:31:38.000 --> 01:31:40.000 und dann der rest landet ja auch gar nicht in der 01:31:40.000 --> 01:31:42.000 codebase das haben die ja bei laudisch schon 01:31:42.000 --> 01:31:44.000 ganz gut gemacht auch so 01:31:44.000 --> 01:31:46.000 ja ja 01:31:46.000 --> 01:31:48.000 was ich halt noch so an kleinigkeiten gerne habe 01:31:48.000 --> 01:31:50.000 sind so die ganzen ekelhaften sachen wo ich halt 01:31:50.000 --> 01:31:52.000 mir vorstellen könnte ich kriege das irgendwie raus 01:31:52.000 --> 01:31:54.000 aber besser ist wenn ich das 01:31:54.000 --> 01:31:56.000 überhaupt gar nicht erst in meinen gehirn rein lasse 01:31:56.000 --> 01:31:58.000 wenn ich zum Beispiel irgendwie textverarbeitung mache 01:31:58.000 --> 01:32:00.000 und ich muss irgendwie gucken so 01:32:00.000 --> 01:32:02.000 ich habe so da meinen string aus tokens 01:32:02.000 --> 01:32:04.000 und will den halt irgendwie so aufteilen 01:32:04.000 --> 01:32:06.000 aber ich will halt nicht irgendwie so ein kombinierten emoji 01:32:06.000 --> 01:32:08.000 kram irgendwie hautfarbe plus dis plus dis plus dis 01:32:08.000 --> 01:32:10.000 er gibt ein grafé im letztlich 01:32:10.000 --> 01:32:12.000 also da die trendstelle aus dem string raus zu 01:32:12.000 --> 01:32:14.000 suchen da gehe ich wirklich 01:32:14.000 --> 01:32:16.000 sehr gerne hin und ziehe mir eine library rein 01:32:16.000 --> 01:32:18.000 die obwohl sie halt irgendwie relativ groß ist 01:32:18.000 --> 01:32:20.000 weil sie halt eben sehr viele strings enthält 01:32:20.000 --> 01:32:22.000 aber das problem einfach löst 01:32:22.000 --> 01:32:24.000 damit ich das auf meinem kopf raushalten kann 01:32:26.000 --> 01:32:28.000 ja ja das ist das ist vielleicht 01:32:28.000 --> 01:32:30.000 dann auch zu kompliziert 01:32:30.000 --> 01:32:32.000 dass irgendwie selber zu implementieren oder auch 01:32:32.000 --> 01:32:34.000 also ich habe einen markdown parser 01:32:34.000 --> 01:32:36.000 als library 01:32:36.000 --> 01:32:38.000 welchen? 01:32:38.000 --> 01:32:40.000 irgendein markdown parser library 01:32:40.000 --> 01:32:42.000 ich weiß nicht welche 01:32:42.000 --> 01:32:44.000 ich muss mal gucken, ich mag 01:32:44.000 --> 01:32:46.000 nicht 100 pro sicher 01:32:46.000 --> 01:32:48.000 den ich auch immer nehme 01:32:48.000 --> 01:32:50.000 also der ist bestimmt irgendwie steinalt und doof 01:32:50.000 --> 01:32:52.000 und so aber weiße ist halt eine funktion 01:32:52.000 --> 01:32:54.000 du ich mein zeug rein kommt meistens was raus 01:32:54.000 --> 01:32:56.000 was relativ nah an dem ist was ich haben will 01:32:56.000 --> 01:32:58.000 ja und ist noch nicht zu groß 01:32:58.000 --> 01:33:00.000 und arbeite nicht mit track accent 01:33:00.000 --> 01:33:02.000 da krieg ich ja auch mal die krise 01:33:02.000 --> 01:33:04.000 weil das einfach dann wenn du da ganz viel text reinwürfst 01:33:04.000 --> 01:33:06.000 dann steigt ja quasi die verarbeitungszeit 01:33:06.000 --> 01:33:08.000 exponentiell an und so 01:33:08.000 --> 01:33:10.000 genau das andere was ich noch benutze 01:33:10.000 --> 01:33:12.000 ist popper js 01:33:12.000 --> 01:33:14.000 was irgendwann auch was ich irgendwann auch ablösen werde 01:33:14.000 --> 01:33:16.000 durch native 01:33:16.000 --> 01:33:18.000 das macht 01:33:18.000 --> 01:33:20.000 dass du tultipps ja aber dass du quasi 01:33:20.000 --> 01:33:22.000 sagen kannst hey gut die tultipps 01:33:22.000 --> 01:33:24.000 ja genau gute tultipps also an der 01:33:24.000 --> 01:33:26.000 dieses tultipp 01:33:26.000 --> 01:33:28.000 bitte hier auf das teil zeigen lassen 01:33:28.000 --> 01:33:30.000 und wenn du nahm 01:33:30.000 --> 01:33:32.000 bildschonrand bist dann klappt halt auf die andere 01:33:32.000 --> 01:33:34.000 seite so dass was mal alles 01:33:34.000 --> 01:33:36.000 haben will was man jetzt zum beispiel wenn man 01:33:36.000 --> 01:33:38.000 wenn man bei hovern 01:33:38.000 --> 01:33:40.000 ein pseudo element oder ein kind element 01:33:40.000 --> 01:33:42.000 anzeigen würde dann würde das halt muss man 01:33:42.000 --> 01:33:44.000 entscheiden ist es jetzt oben links rechts 01:33:44.000 --> 01:33:46.000 oder unten und wenn man halt 01:33:46.000 --> 01:33:48.000 an die falsche stelle gestreut ist 01:33:48.000 --> 01:33:50.000 ist es halt abgeschnitten so 01:33:50.000 --> 01:33:52.000 das ist halt blöd 01:33:52.000 --> 01:33:54.000 das ist dann auch wirklich so was wo du halt 01:33:54.000 --> 01:33:56.000 wirklich dir ein scenario ohne weiteres aufmalen 01:33:56.000 --> 01:33:58.000 könntest wo du das auch selber hinkriegen 01:33:58.000 --> 01:34:00.000 könntest aber wo du halt echt sagst 01:34:00.000 --> 01:34:02.000 wir leben hier nicht im jahre 01:34:02.000 --> 01:34:04.000 im nächsten 2023 01:34:04.000 --> 01:34:06.000 das sollte das sollte man nicht mehr machen 01:34:06.000 --> 01:34:08.000 müssen also ich könnte auch selber ein 01:34:08.000 --> 01:34:10.000 feuer machen aber ich mache mal meinen ofen an 01:34:10.000 --> 01:34:12.000 ja genau irgendwann wird das 01:34:12.000 --> 01:34:14.000 werde ich das auch auswerfen wenn dieses 01:34:14.000 --> 01:34:16.000 anchored positioning 01:34:16.000 --> 01:34:18.000 endlich mal fertig ist 01:34:18.000 --> 01:34:20.000 an dem wird ja auch gerade so quasi 01:34:20.000 --> 01:34:22.000 in diesem open ui kontext 01:34:22.000 --> 01:34:24.000 gewerkelt 01:34:24.000 --> 01:34:26.000 genau da freue ich mich schon wie bolle drauf 01:34:26.000 --> 01:34:28.000 wie es aber soweit ist 01:34:28.000 --> 01:34:30.000 übrigens was ich auch super finde ist also 01:34:30.000 --> 01:34:32.000 dieses dialogue element 01:34:32.000 --> 01:34:34.000 ganz großes tennis aus verschiedenen gründen 01:34:34.000 --> 01:34:36.000 aber ich glaube am coolsten finde ich eben 01:34:36.000 --> 01:34:38.000 dass das eben standortmäßig auf die oberste 01:34:38.000 --> 01:34:40.000 layer promoted wird was was ja früher 01:34:40.000 --> 01:34:42.000 glaube ich in also in den reaktiven 01:34:42.000 --> 01:34:44.000 frameworks haben die das ja portals genannt 01:34:44.000 --> 01:34:46.000 was wiederum nix mit den portals 01:34:46.000 --> 01:34:48.000 in webstandards gibt 01:34:48.000 --> 01:34:50.000 da kriegt die webplattform 01:34:50.000 --> 01:34:52.000 eben dinge beigebracht die sie vorher 01:34:52.000 --> 01:34:54.000 noch nicht konnte 01:34:54.000 --> 01:34:56.000 das finde ich auch super 01:34:56.000 --> 01:34:58.000 ja und das sind auch wirklich dinge die 01:34:58.000 --> 01:35:00.000 sich halt standardisieren lassen 01:35:00.000 --> 01:35:02.000 wo wir jetzt wieder bei unserem ding von 01:35:02.000 --> 01:35:04.000 ganz zu Beginn sind was lässt sich wirklich 01:35:04.000 --> 01:35:06.000 gut genug auf so ein use case eingrenzen 01:35:06.000 --> 01:35:08.000 wie dieses dialogue wie es umgesetzt ist 01:35:08.000 --> 01:35:10.000 dass das einfach sein content repräsentiert 01:35:10.000 --> 01:35:12.000 supergeschichte auch das details element 01:35:12.000 --> 01:35:14.000 das ja hier in unseren podcast 01:35:14.000 --> 01:35:16.000 episoden so den schönen das transkript 01:35:16.000 --> 01:35:18.000 immer enthält ja okay das ist nicht 01:35:18.000 --> 01:35:20.000 animiert das ist nicht schöner man kann das super 01:35:20.000 --> 01:35:22.000 einfach mit bischen css so aussehen lassen 01:35:22.000 --> 01:35:24.000 dass es halt echt gut genug funktioniert 01:35:24.000 --> 01:35:26.000 und dann braucht man kein javascript keine dependency 01:35:26.000 --> 01:35:28.000 keine komponente html tag fertig 01:35:28.000 --> 01:35:30.000 bin ich ein extrem großer freund von 01:35:30.000 --> 01:35:32.000 ja und bei dem dialog ding ist ja noch super 01:35:32.000 --> 01:35:34.000 dass es dann quasi automatisch setzt 01:35:34.000 --> 01:35:36.000 auf den fokus auf das erste fokussierbare 01:35:36.000 --> 01:35:38.000 kind und 01:35:38.000 --> 01:35:40.000 dann kannst du es wenn es mit show 01:35:40.000 --> 01:35:42.000 modell öffnen ist dann wird quasi alles 01:35:42.000 --> 01:35:44.000 andere auf inert gesetzt also es ist 01:35:44.000 --> 01:35:46.000 quasi 01:35:46.000 --> 01:35:48.000 stumm geschaltet ist für screen reader 01:35:48.000 --> 01:35:50.000 und auch nicht mehr angetappt werden kann 01:35:50.000 --> 01:35:52.000 und also was also quasi deinen 01:35:52.000 --> 01:35:54.000 tapp circle 01:35:54.000 --> 01:35:56.000 im dialog also ist einfach super 01:35:56.000 --> 01:35:58.000 ja wo ich halt wirklich auch sagen würde 01:35:58.000 --> 01:36:00.000 ja okay würde ich mir da irgendeine 01:36:00.000 --> 01:36:02.000 dependency installieren das sind halt eben so 01:36:02.000 --> 01:36:04.000 kriegschauplätze wo ich durchaus so manchen 01:36:04.000 --> 01:36:06.000 autoren zutrauen würde das nicht zu beachten 01:36:06.000 --> 01:36:08.000 und hier ist es halt eben einfach mal 01:36:08.000 --> 01:36:10.000 die runde lösung was halt kein problem ist 01:36:10.000 --> 01:36:12.000 bei so einer string passing library 01:36:12.000 --> 01:36:14.000 oder date validierung oder so das 01:36:14.000 --> 01:36:16.000 da gibt es halt keine neben kriegschauplätze 01:36:16.000 --> 01:36:18.000 das kann man halt wirklich so unix 01:36:18.000 --> 01:36:20.000 prinzipmäßig einsetzen aber so was wie ein modell dialog 01:36:20.000 --> 01:36:22.000 ist halt notwendigerweise was was 01:36:22.000 --> 01:36:24.000 alles andere mit betrifft weil es halt eben alles 01:36:24.000 --> 01:36:26.000 andere überdeckt und das richtig eine ausnahme 01:36:26.000 --> 01:36:28.000 das ist die accessibility dialog 01:36:28.000 --> 01:36:30.000 der a11 01:36:30.000 --> 01:36:32.000 y-dialog 01:36:32.000 --> 01:36:34.000 das der einzig wahre 01:36:34.000 --> 01:36:36.000 einzig wahre library 01:36:38.000 --> 01:36:40.000 was ist daran der 01:36:42.000 --> 01:36:44.000 also ich interpretiere das so 01:36:44.000 --> 01:36:46.000 dass der bis zum erscheinen des dialog 01:36:46.000 --> 01:36:48.000 die elemenz eben all diese dinge 01:36:48.000 --> 01:36:50.000 konnte und wirklich drauf 01:36:50.000 --> 01:36:52.000 geachtet hat das war auch sogar noch leicht zu benutzen 01:36:52.000 --> 01:36:54.000 also die 01:36:54.000 --> 01:36:56.000 die schnitzstelle 01:36:56.000 --> 01:36:58.000 zum eigenem code war es sehr einfach 01:36:58.000 --> 01:37:00.000 anzuhaben 01:37:00.000 --> 01:37:02.000 und all diese sachen wie es muss 01:37:02.000 --> 01:37:04.000 fokussierbar sein der hintergrund muss 01:37:04.000 --> 01:37:06.000 dunkel gefärbt 01:37:06.000 --> 01:37:08.000 werden aber soll natürlich nicht mehr fokussiert 01:37:08.000 --> 01:37:10.000 sein mit dieser fokus trap 01:37:10.000 --> 01:37:12.000 alles mit sehr hübschen code 01:37:12.000 --> 01:37:14.000 rein implementiert worden also das war 01:37:14.000 --> 01:37:16.000 das einzige was ich was man gut verwenden konnte 01:37:16.000 --> 01:37:18.000 meiner meiner nach 01:37:18.000 --> 01:37:20.000 vor dem dialog 01:37:20.000 --> 01:37:22.000 und die details 01:37:22.000 --> 01:37:24.000 die verwende ich super gerne 01:37:24.000 --> 01:37:26.000 bei 01:37:26.000 --> 01:37:28.000 das match requests 01:37:28.000 --> 01:37:30.000 wenn ich da irgendwelche mockingdaten 01:37:30.000 --> 01:37:32.000 oder sonstiges mitliefern muss 01:37:32.000 --> 01:37:34.000 dass ich da detail summary etc verwende 01:37:34.000 --> 01:37:36.000 ganz toll dann freue ich mich immer 01:37:36.000 --> 01:37:38.000 man kann die auch in ernsthaften uis 01:37:38.000 --> 01:37:40.000 sehr gut verwenden weil ich letztens festgestellt hab 01:37:40.000 --> 01:37:42.000 man kann hier einfach völlig problemlos teilen 01:37:42.000 --> 01:37:44.000 das heißt einfach alles 01:37:44.000 --> 01:37:46.000 nicht so aussieht wie bei uns 01:37:46.000 --> 01:37:48.000 bei den transcripten sondern halt wirklich 01:37:48.000 --> 01:37:50.000 so schöne box mit einem schönen header 01:37:50.000 --> 01:37:52.000 und boah das drumherum und man kann das icon austauschen 01:37:52.000 --> 01:37:54.000 weil es gibt ja da einen selektor den man da 01:37:54.000 --> 01:37:56.000 aufbauen oder nicht und dann kann sich das alles 01:37:56.000 --> 01:37:58.000 einfach so aus 01:37:58.000 --> 01:38:00.000 es fehlt halt nur irgendwie so eine butterweiche animation 01:38:00.000 --> 01:38:02.000 aber den Kampf bin ich bereit aufzunehmen 01:38:02.000 --> 01:38:04.000 das kannst du demnächst ja auch machen 01:38:04.000 --> 01:38:06.000 weil es gibt ja die 01:38:06.000 --> 01:38:08.000 view transition api die ja gerade in der mache ist 01:38:08.000 --> 01:38:10.000 und die funktioniert so dass du quasi 01:38:10.000 --> 01:38:12.000 also du würdest 01:38:12.000 --> 01:38:14.000 diesem details element 01:38:14.000 --> 01:38:16.000 einen 01:38:16.000 --> 01:38:18.000 transition tag glaube ich geben 01:38:18.000 --> 01:38:20.000 in css und dann 01:38:20.000 --> 01:38:22.000 kannst du quasi über zwei 01:38:22.000 --> 01:38:24.000 stände hinweg wenn die beide also 01:38:24.000 --> 01:38:26.000 wenn elemente dasselbe tag haben 01:38:26.000 --> 01:38:28.000 dann weiß sie view transition api 01:38:28.000 --> 01:38:30.000 aha ok dieses element soll ich 01:38:30.000 --> 01:38:32.000 überblenden in vollendes element 01:38:32.000 --> 01:38:34.000 das können halt zwei verschiedene sein 01:38:34.000 --> 01:38:36.000 in dem fall würdest du dann zwei gleiche haben wollen 01:38:36.000 --> 01:38:38.000 oder wer das das gleiche 01:38:38.000 --> 01:38:40.000 weil du auch nicht irgendwie den 01:38:40.000 --> 01:38:42.000 irgendwie navigierst oder sowas 01:38:42.000 --> 01:38:44.000 und dann kannst du eben diese api 01:38:44.000 --> 01:38:46.000 nutzen und quasi eine 01:38:46.000 --> 01:38:48.000 transition initialisieren 01:38:48.000 --> 01:38:50.000 dann macht er letztlich ein screenshot 01:38:50.000 --> 01:38:52.000 allen elementen die so geteckt sind 01:38:52.000 --> 01:38:54.000 dann und dann kannst du in der 01:38:54.000 --> 01:38:56.000 quasi keine funktion übergeben 01:38:56.000 --> 01:38:58.000 die view verändert 01:38:58.000 --> 01:39:00.000 das wäre dann irgendwie 01:39:00.000 --> 01:39:02.000 dann würdest du wahrscheinlich den klick 01:39:02.000 --> 01:39:04.000 abfangen 01:39:04.000 --> 01:39:06.000 und ich glaube open attribute setzen 01:39:06.000 --> 01:39:08.000 und dann wird 01:39:08.000 --> 01:39:10.000 macht die davon eben auch in ein screenshot 01:39:10.000 --> 01:39:12.000 und 01:39:12.000 --> 01:39:14.000 überblendet die im weich 01:39:14.000 --> 01:39:16.000 und du kannst dann wenn du möchtest 01:39:16.000 --> 01:39:18.000 auch per css sogar 01:39:18.000 --> 01:39:20.000 auf die überblendungs 01:39:20.000 --> 01:39:22.000 animation also die default animation 01:39:22.000 --> 01:39:24.000 ist schon ziemlich cool ich wollte fragen 01:39:24.000 --> 01:39:26.000 was heißt überblenden ist das einfach nur ein crossfade 01:39:26.000 --> 01:39:28.000 oder kann das auch was anderes sein 01:39:28.000 --> 01:39:30.000 das ist ein 01:39:30.000 --> 01:39:32.000 das kann was anderes sein genau das ist ein crossfade 01:39:32.000 --> 01:39:34.000 und natürlich auch eine animiertes 01:39:34.000 --> 01:39:36.000 bewegen 01:39:36.000 --> 01:39:38.000 von vorheriger position 01:39:38.000 --> 01:39:40.000 und größe zu neuer 01:39:40.000 --> 01:39:42.000 position und größe also 01:39:42.000 --> 01:39:44.000 genau 01:39:44.000 --> 01:39:46.000 also ich weiß nicht wann es dann quasi in stable 01:39:46.000 --> 01:39:48.000 landet 01:39:48.000 --> 01:39:50.000 ihr sollt ne flag noch mal erwähnen 01:39:50.000 --> 01:39:52.000 ist im moment hinter einem flag in chrome 01:39:52.000 --> 01:39:54.000 genau aber dann 01:39:54.000 --> 01:39:56.000 dann ist dieses also 01:39:56.000 --> 01:39:58.000 ich glaube dann sind auch ganz viele probleme auf einmal mit 01:39:58.000 --> 01:40:00.000 auch mit 01:40:00.000 --> 01:40:02.000 nativa browser technologie erschlagen 01:40:02.000 --> 01:40:04.000 auch generell 01:40:04.000 --> 01:40:06.000 frameworks dann überhaupt noch so 01:40:06.000 --> 01:40:08.000 transition or animation 01:40:08.000 --> 01:40:10.000 module brauchen um von einer view 01:40:10.000 --> 01:40:12.000 zu anderen irgendwie weich zu animieren 01:40:12.000 --> 01:40:14.000 oder update es dann im hintergrund 01:40:14.000 --> 01:40:16.000 auch alles nur noch an die view transition 01:40:16.000 --> 01:40:18.000 api weiter 01:40:18.000 --> 01:40:20.000 reichen also wenn die denn 01:40:20.000 --> 01:40:22.000 dann in allen browser implementiert ist 01:40:26.000 --> 01:40:28.000 aber ich würde sagen das machen wir dann 01:40:28.000 --> 01:40:30.000 nächstes Jahr dann kommt das in alle browser 01:40:30.000 --> 01:40:32.000 und dann sind all diese probleme erschlagen 01:40:32.000 --> 01:40:34.000 ist es ist das themat testing 01:40:34.000 --> 01:40:36.000 mittlerweile eine 01:40:36.000 --> 01:40:38.000 geklärte frage das wäre so das letzte 01:40:38.000 --> 01:40:40.000 vom state of j s was wir jetzt 01:40:40.000 --> 01:40:42.000 noch nicht so drüber gesp.. 01:40:42.000 --> 01:40:44.000 an der mono repos finden auch noch 01:40:44.000 --> 01:40:46.000 okay in zehn minuten unsere meinung zu den mono 01:40:46.000 --> 01:40:48.000 repotools und zum testing 01:40:48.000 --> 01:40:50.000 beim testing habe ich 01:40:50.000 --> 01:40:52.000 das gefühl seit wir uns alle nicht mehr 01:40:52.000 --> 01:40:54.000 über selenium aufregen müssen weil ich ja 01:40:54.000 --> 01:40:56.000 so langsam hat man zwar auch hier 01:40:56.000 --> 01:40:58.000 eine diverse auswahl an sachen 01:40:58.000 --> 01:41:00.000 aber hier sind wir jetzt auch eher an der 01:41:00.000 --> 01:41:02.000 problematik von 01:41:02.000 --> 01:41:04.000 wir müssen uns jetzt eben entscheiden und uns drauf 01:41:04.000 --> 01:41:06.000 kommenten aber eigentlich sind 01:41:06.000 --> 01:41:08.000 das gelöste probleme beim testing 01:41:08.000 --> 01:41:10.000 jetzt für mich 01:41:10.000 --> 01:41:12.000 hätte ich auch gesagt ich nehme 01:41:12.000 --> 01:41:14.000 ich persönlich nehme just aus einfach so 01:41:14.000 --> 01:41:16.000 persönlicher masseträgheit 01:41:16.000 --> 01:41:18.000 heraus weiß ich funktioniert 01:41:18.000 --> 01:41:20.000 gehören aus ab dafür 01:41:20.000 --> 01:41:22.000 fertig für meine unitests 01:41:22.000 --> 01:41:24.000 und 01:41:24.000 --> 01:41:26.000 puppeteer weiß ich kenne ich funktioniert 01:41:26.000 --> 01:41:28.000 und ehrlich gesagt gucke ich auch nicht mehr groß links und rechts 01:41:28.000 --> 01:41:30.000 da müsste schon echt irgendwie 01:41:30.000 --> 01:41:32.000 das mega feature um die ecke kommen mit dem man mich 01:41:32.000 --> 01:41:34.000 dann nochmal dazu ausreichend aktiviert also die 01:41:34.000 --> 01:41:36.000 aktivierungs energie für hallo hier 01:41:36.000 --> 01:41:38.000 web platform feature oder hallo hier 01:41:38.000 --> 01:41:40.000 extension ist auf jeden fall niedriger als 01:41:40.000 --> 01:41:42.000 für guck mal hier neues test framework 01:41:42.000 --> 01:41:44.000 toll kann ich jetzt nochmal irgendwo 01:41:44.000 --> 01:41:46.000 mir woanders das describe die describe 01:41:46.000 --> 01:41:48.000 function her importieren ist ja spannend 01:41:50.000 --> 01:41:52.000 ja also sehe ich da ganz 01:41:52.000 --> 01:41:54.000 genau so also es gibt verschiedene tools 01:41:54.000 --> 01:41:56.000 und die haben dann wieder alle vornachteile 01:41:56.000 --> 01:41:58.000 und macht man den zeibels oder macht man 01:41:58.000 --> 01:42:00.000 playwright oder macht man dies oder jenes aber 01:42:00.000 --> 01:42:02.000 es ist eben nicht mehr das ich brauche den 01:42:02.000 --> 01:42:04.000 chess mein driver und dann brauche ich das 01:42:04.000 --> 01:42:06.000 hier und dann brauche ich mocker und dann 01:42:06.000 --> 01:42:08.000 baue ich das hier und wir funktionieren es 01:42:08.000 --> 01:42:10.000 alles zusammen das ist für mich gelöst ich 01:42:10.000 --> 01:42:12.000 benutze ein bis zwei dinge davon und dann 01:42:12.000 --> 01:42:14.000 läuft schon irgendwie und dann kann man 01:42:14.000 --> 01:42:16.000 halt jammern das ist nicht ganze läuft wie man 01:42:16.000 --> 01:42:18.000 es am allerliebsten hätte und was richtig 01:42:18.000 --> 01:42:20.000 ist an deiner beschreibung von gerade merkt 01:42:20.000 --> 01:42:22.000 man auch dass man glaube ich hier definitive 01:42:22.000 --> 01:42:24.000 fortschritt mal beschreiben kann im vergleich 01:42:24.000 --> 01:42:26.000 zu vergangenheit das ist definitiv was 01:42:26.000 --> 01:42:28.000 test angeht weniger aufwendig geworden 01:42:28.000 --> 01:42:30.000 im vergleich zu 01:42:30.000 --> 01:42:32.000 keine ahnung 01:42:32.000 --> 01:42:34.000 ich will halt irgendwo ein formular 01:42:34.000 --> 01:42:36.000 anzeigen das ist jetzt ja nicht sehr viel 01:42:36.000 --> 01:42:38.000 einfacher geworden da man das auf den modernen 01:42:38.000 --> 01:42:40.000 fancy weg machen möchte 01:42:40.000 --> 01:42:42.000 ja das meinte ich mit für mich ein gelöstes 01:42:42.000 --> 01:42:44.000 problem ja aber halt eben auch nicht nur 01:42:44.000 --> 01:42:46.000 gelöst sondern tatsächlich 01:42:46.000 --> 01:42:48.000 endpunkt einer entwicklung würde ich 01:42:48.000 --> 01:42:50.000 behaupten zumindest temporär 01:42:50.000 --> 01:42:52.000 gut ich hätte die monoribus 01:42:52.000 --> 01:42:54.000 ribus gar nicht erwähnen sollen 01:42:54.000 --> 01:42:56.000 weil 01:42:56.000 --> 01:42:58.000 bei monoripus bin ich raus 01:42:58.000 --> 01:43:00.000 also ich wollte 01:43:00.000 --> 01:43:02.000 ich finde es nicht schlecht das meine ich nicht 01:43:02.000 --> 01:43:04.000 mal den case für diese tools von den ich 01:43:04.000 --> 01:43:06.000 noch nie gehört habe 01:43:06.000 --> 01:43:08.000 das ist genau das ist die frage was 01:43:08.000 --> 01:43:10.000 was ist überhaupt monorepo tool 01:43:10.000 --> 01:43:12.000 weil entweder ich habe monorepo 01:43:12.000 --> 01:43:14.000 ich habe mal die repos dachte ich naives 01:43:14.000 --> 01:43:16.000 menschen mal 01:43:16.000 --> 01:43:18.000 aber es gibt dann noch tools die wir 01:43:18.000 --> 01:43:20.000 verwenden können und als tool zählt 01:43:20.000 --> 01:43:22.000 dann eben auch so was wie pnpm 01:43:22.000 --> 01:43:24.000 oder 01:43:24.000 --> 01:43:26.000 npm workspaces die ich in meinem 01:43:26.000 --> 01:43:28.000 hinterkopf gar nicht so als tool 01:43:28.000 --> 01:43:30.000 abgespeichert hatte aber da können wir 01:43:30.000 --> 01:43:32.000 überlegen ob wir einfach auf die folge 01:43:32.000 --> 01:43:34.000 mit dem droh verweisen haben wir ja auch schon 01:43:34.000 --> 01:43:36.000 darüber gesprochen bei dem ganzen state 01:43:36.000 --> 01:43:38.000 auf js können wir auf die folge 01:43:38.000 --> 01:43:40.000 machen wir das hier mit auch jeden fall 01:43:40.000 --> 01:43:42.000 auch 01:43:42.000 --> 01:43:44.000 ja also wir haben hier die tools von rush 01:43:44.000 --> 01:43:46.000 turbo g pro turbo e 01:43:46.000 --> 01:43:48.000 immer das turbo ist super 01:43:48.000 --> 01:43:50.000 haben wir gelernt alles was ein 01:43:50.000 --> 01:43:52.000 framework ist wenn wir turbo vorsetzen ist 01:43:52.000 --> 01:43:54.000 immer gut ja in workspaces 01:43:54.000 --> 01:43:56.000 ja ich habe ihn noch nie gehört 01:43:56.000 --> 01:43:58.000 und dann haben wir learner noch dabei 01:43:58.000 --> 01:44:00.000 und da gab es hier das haben wir auch 01:44:00.000 --> 01:44:02.000 beim letzten episode besprochen da gab es 01:44:02.000 --> 01:44:04.000 mal das problem dass es auf einmal 01:44:04.000 --> 01:44:06.000 wird nicht mehr gemaintaint und alles 01:44:06.000 --> 01:44:08.000 das war so ein bisschen 01:44:08.000 --> 01:44:10.000 so ein angular angular js case 01:44:10.000 --> 01:44:12.000 so das ist jetzt aber nicht so mal 01:44:12.000 --> 01:44:14.000 so ein bisschen klein ist das verwenden 01:44:14.000 --> 01:44:16.000 schon viele aber da gab es dann auch 01:44:16.000 --> 01:44:18.000 gleich leute die das jetzt 01:44:18.000 --> 01:44:20.000 weiter betreiben 01:44:20.000 --> 01:44:22.000 ganz kurz für die ganz blöden unter uns 01:44:22.000 --> 01:44:24.000 was machen die teile 01:44:24.000 --> 01:44:26.000 wofür bräuchte was machen die 01:44:26.000 --> 01:44:28.000 von uns weil wir sie alle nicht benutzen 01:44:28.000 --> 01:44:30.000 soweit ich weiß 01:44:30.000 --> 01:44:32.000 hast du dann 01:44:32.000 --> 01:44:34.000 wenn ich mich gut an learner noch erinner 01:44:34.000 --> 01:44:36.000 schon jahre her kümmert sich das dann 01:44:36.000 --> 01:44:38.000 auch drum dass du nicht alles auf deiner 01:44:38.000 --> 01:44:40.000 festplatte immer speichern musst 01:44:40.000 --> 01:44:42.000 sondern du in deinem workspace 01:44:42.000 --> 01:44:44.000 davon dann eben arbeiten kannst 01:44:44.000 --> 01:44:46.000 und es ist zwar alles 01:44:46.000 --> 01:44:48.000 im allgemeinen witz denn ein großes monorepo 01:44:48.000 --> 01:44:50.000 aber wenn du sagst du arbeitest 01:44:50.000 --> 01:44:52.000 nur an diesen bestimmten teilbereich davon 01:44:52.000 --> 01:44:54.000 dann willst du dir vielleicht nicht immer 01:44:54.000 --> 01:44:56.000 alles komplett bei dir speichern 01:44:56.000 --> 01:44:58.000 laufen lassen bei jedem branch 01:44:58.000 --> 01:45:00.000 wechsel mit ändern müssen 01:45:00.000 --> 01:45:02.000 sondern dass du quasi schon 01:45:02.000 --> 01:45:04.000 eine art struktur hast 01:45:04.000 --> 01:45:06.000 vielleicht habe ich jetzt auch wirklich 01:45:06.000 --> 01:45:08.000 total was blödes gesagt das wäre jetzt 01:45:08.000 --> 01:45:10.000 wieder ein guter aufruf für leute die das 01:45:10.000 --> 01:45:12.000 benutzen uns zu über mehr zu erzählen 01:45:12.000 --> 01:45:14.000 ja gut aber klingt ja klingt ja erstmal 01:45:14.000 --> 01:45:16.000 plausibel also monorepo per se 01:45:16.000 --> 01:45:18.000 irgendwie ich habe irgendwie 01:45:18.000 --> 01:45:20.000 la services und die haben irgendwie so ein bisschen 01:45:20.000 --> 01:45:22.000 geteilten code machst du monorepo alles toll 01:45:22.000 --> 01:45:24.000 aber ich kann mir natürlich vorstellen dass 01:45:24.000 --> 01:45:26.000 auf einer gewissen skala das auch unhandlich wird 01:45:26.000 --> 01:45:28.000 und da wäre natürlich das man das so 01:45:28.000 --> 01:45:30.000 selektiv isolieren kann und zu tun kann als 01:45:30.000 --> 01:45:32.000 wer es keins klingt erstmal jetzt nicht 01:45:32.000 --> 01:45:34.000 blöde 01:45:34.000 --> 01:45:36.000 nee es klingt bestimmt nicht blöder ich 01:45:36.000 --> 01:45:38.000 finde es auch so ein bisschen wie so 01:45:38.000 --> 01:45:40.000 im micro frontenbereich es gibt 01:45:40.000 --> 01:45:42.000 irgendein bereich wo sinnvoll erscheint 01:45:42.000 --> 01:45:44.000 wir machen das jetzt in micro fronten 01:45:44.000 --> 01:45:46.000 um all diese probleme die wir davor hatten 01:45:46.000 --> 01:45:48.000 halt einfach mit diesem konzept zu lösen 01:45:48.000 --> 01:45:50.000 aber sicherlich hat man dann mit diesen 01:45:50.000 --> 01:45:52.000 tools neue probleme sich 01:45:52.000 --> 01:45:54.000 reingeholt 01:45:54.000 --> 01:45:56.000 immer der snow free 01:45:56.000 --> 01:45:58.000 richtig so ist es 01:45:58.000 --> 01:46:00.000 gut aber trotzdem 01:46:00.000 --> 01:46:02.000 lunch können wir jetzt ja mal machen 01:46:02.000 --> 01:46:04.000 um die geholzene 01:46:04.000 --> 01:46:06.000 Brücke zur ausleitung zu bauen 01:46:06.000 --> 01:46:08.000 lunch lunch 01:46:08.000 --> 01:46:10.000 es wird auch free 01:46:10.000 --> 01:46:12.000 das nehme ich bei der schwiegermama 01:46:12.000 --> 01:46:14.000 ja weiß ich nicht 01:46:14.000 --> 01:46:16.000 es gibt noch so 01:46:16.000 --> 01:46:18.000 finden wir das javascript in die richtige 01:46:18.000 --> 01:46:20.000 leitung sich entwickelt 01:46:20.000 --> 01:46:22.000 ich habe da jetzt 01:46:22.000 --> 01:46:24.000 keine starke meinung dazu 01:46:24.000 --> 01:46:26.000 ich habe hier vorhin die ganzen 01:46:26.000 --> 01:46:28.000 schwierigen fragen schon gestellt mit 01:46:28.000 --> 01:46:30.000 wollen wir nicht langsam mal no code tools 01:46:30.000 --> 01:46:32.000 verwenden 01:46:32.000 --> 01:46:34.000 ich glaube javascript 01:46:34.000 --> 01:46:36.000 ist der generelle trend 01:46:36.000 --> 01:46:38.000 der programmiersprachen ist glaube ich 01:46:38.000 --> 01:46:40.000 dass die irgendwann alles beinhalten 01:46:40.000 --> 01:46:42.000 also die reine leere ist halt zunehmend 01:46:42.000 --> 01:46:44.000 selten habe ich das gefühl 01:46:44.000 --> 01:46:46.000 und von daher 01:46:46.000 --> 01:46:48.000 keine ahnung 01:46:48.000 --> 01:46:50.000 es ist ja mittlerweile wirklich nicht so 01:46:50.000 --> 01:46:52.000 dass wir hier irgendwie so die objektorientierte 01:46:52.000 --> 01:46:54.000 programmiersprache haben und da gibt es 01:46:54.000 --> 01:46:56.000 nur den einen weg und nichts anderes 01:46:56.000 --> 01:46:58.000 und die reinfunktionale und es gibt nur diesen 01:46:58.000 --> 01:47:00.000 einen weg und nichts anderes die zeiten sind ja 01:47:00.000 --> 01:47:02.000 ziemlich vorbei und insofern 01:47:02.000 --> 01:47:04.000 wenn jetzt javascript also 01:47:04.000 --> 01:47:06.000 weiß nicht ich werme mich ja so langsam 01:47:06.000 --> 01:47:08.000 ich für zum beispiel decorators 01:47:08.000 --> 01:47:10.000 in javascript klassen auf 01:47:10.000 --> 01:47:12.000 vielleicht ist das ja gar nicht 01:47:12.000 --> 01:47:14.000 alles so schlecht so wollen wir das mal 01:47:14.000 --> 01:47:16.000 alles reinholen können wir gucken hinterher 01:47:16.000 --> 01:47:18.000 kann man es ja immer noch links liegen lassen also das passt schon 01:47:18.000 --> 01:47:20.000 das schöne an javascript ist ja man kann ja 01:47:20.000 --> 01:47:22.000 jede entwicklung ist ja immer nur ein hinzufügen von features 01:47:22.000 --> 01:47:24.000 die man bei bedarf ja ignorieren kann 01:47:24.000 --> 01:47:26.000 man kann ja nichts kaputt machen und von daher 01:47:26.000 --> 01:47:28.000 kann es ja eigentlich nicht schlimmer werden als es schon ist 01:47:28.000 --> 01:47:30.000 definitionsgemäße 01:47:30.000 --> 01:47:32.000 ja es ist nur für die 01:47:32.000 --> 01:47:34.000 javascript engine schreiberlinge 01:47:34.000 --> 01:47:36.000 für die ist es eine mehr belastung 01:47:36.000 --> 01:47:38.000 oder für die leute die aus irgendwelchen gründen 01:47:38.000 --> 01:47:40.000 tools schreiben müssen die javascript analysieren 01:47:40.000 --> 01:47:42.000 oder highlighten oder so die haben natürlich auch sehr viel 01:47:42.000 --> 01:47:44.000 spass an ja oder transpilieren 01:47:44.000 --> 01:47:46.000 der gesamte situation exakt 01:47:46.000 --> 01:47:48.000 ja super dann genau 01:47:48.000 --> 01:47:50.000 wenn unsere höherein 01:47:50.000 --> 01:47:52.000 und höherein noch input haben 01:47:52.000 --> 01:47:54.000 für uns unser kommentarbereich 01:47:54.000 --> 01:47:56.000 ist ja nicht mehr offen 01:47:56.000 --> 01:47:58.000 ich glaube einfach weil da sowieso nichts also 01:47:58.000 --> 01:48:00.000 fast nur spam irgendwie landet ist 01:48:00.000 --> 01:48:02.000 aber wir haben ja hier draft.community 01:48:02.000 --> 01:48:04.000 als slack 01:48:04.000 --> 01:48:06.000 bereich um uns 01:48:06.000 --> 01:48:08.000 mit uns irgendwie zu quatschen 01:48:08.000 --> 01:48:10.000 und aber auch vor allem mit anderen 01:48:10.000 --> 01:48:12.000 und höherein und noch sind wir auf twitter 01:48:12.000 --> 01:48:14.000 auf masto dann sind wir auch 01:48:14.000 --> 01:48:16.000 da habe ich aber keinen zugang zum account 01:48:16.000 --> 01:48:18.000 das hat der steffan 01:48:18.000 --> 01:48:20.000 genau schreibt uns gerne 01:48:20.000 --> 01:48:22.000 irgendwann kommt eine Antwort 01:48:22.000 --> 01:48:24.000 wir müssen jetzt mit sehr viel der platform immer 01:48:24.000 --> 01:48:26.000 abgrasen 01:48:26.000 --> 01:48:28.000 genau oder ladet euch einfach ein 01:48:28.000 --> 01:48:30.000 als gessin oder guest 01:48:30.000 --> 01:48:32.000 hier bei uns und erzählt uns 01:48:32.000 --> 01:48:34.000 was über zum Beispiel monorepos 01:48:34.000 --> 01:48:36.000 oder warum das alles total 01:48:36.000 --> 01:48:38.000 quatsch war was wir gerade gesagt haben 01:48:38.000 --> 01:48:40.000 genau 01:48:40.000 --> 01:48:42.000 und ja 01:48:42.000 --> 01:48:44.000 wir hören uns dann 01:48:44.000 --> 01:48:46.000 vermutlich nächste woche wieder 01:48:46.000 --> 01:48:48.000 bleibt gesund 01:48:48.000 --> 01:48:50.000 habt eine schöne woche 01:48:50.000 --> 01:48:52.000 die wahrscheinlich nicht mehr weihnachtlich ist 01:48:52.000 --> 01:48:54.000 wenn das hier erscheint 01:48:54.000 --> 01:48:56.000 sondern schon 2000 weit in 2023 ist 01:48:56.000 --> 01:48:58.000 und weiß welche pandemie wir dann haben 01:48:58.000 --> 01:49:00.000 werden ja genau 01:49:00.000 --> 01:49:02.000 dann haben wir grippe und scharlachpandemie 01:49:02.000 --> 01:49:04.000 vielleicht 01:49:04.000 --> 01:49:06.000 vielleicht auch ein aktuell 01:49:06.000 --> 01:49:08.000 ganz akuten fall von irgendwie 01:49:08.000 --> 01:49:10.000 angular virus 01:49:10.000 --> 01:49:12.000 oder irgendwie sowas 01:49:12.000 --> 01:49:14.000 wäre auch mal eine schöne abwechslung 01:49:14.000 --> 01:49:16.000 alles klar dann 01:49:16.000 --> 01:49:18.000 wünsche euch auch was 01:49:18.000 --> 01:49:20.000 und sage bis demnächst 01:49:20.000 --> 01:49:22.000 tschüss tschüssi 01:49:22.000 --> 01:49:44.000 tschüss


fyyd: Podcast Search Engine
share








 January 24, 2023  1h49m