¶ Eine kleine Geschichte über die Entwicklung von Client SDKs
[SPEAKER_01]: Willkommen beim Engineering Kios Podcast. [SPEAKER_01]: APIs sind überall, aber hand aufs Herz. [SPEAKER_01]: Wer hat schon Lust, ständig selbst hatte die P-Request zu basteln, Tokens zu junglieren und Fehlerkodes zu entzüfern. [SPEAKER_01]: Genau hier kommen Kleinestikase ins Spiel. [SPEAKER_01]: Sie machen aus spärrigen APIs handliche Werkzeuge, die sich wie in der Tiefefunktion in Deiner Sparer anfühlen.
[SPEAKER_01]: Und das ist auch schon das Thema von heute, Enwicklung von Kleinestikase. [SPEAKER_01]: Wir bleiben aber nicht bei den Grundlagen, sondern sprechen darüber, wie klein SDKs und developer-Expielen zu einer understehen, welche echtekture Code und Designentscheidigung bei der Entwicklung eines eigene SDKs eine Rolle spielen, ob klein SDKs für APIs mit einer Maschinell des barren Speziifikation vollautomatisch generiert werden können, bzw. [SPEAKER_01]: sollten.
[SPEAKER_01]: oder ob nur wahre Handarbeit zum Erfolg führt, was sie herausforderungen bei den Wittlung von SDKs sind und wie einige SDKs zum API übergreifenden Standard wurden. [SPEAKER_01]: Keiner hint, hier geht es um ein S3 und Open AI. [SPEAKER_01]: Los geht's mit der Episode über Software Development Kids. [SPEAKER_01]: Viel Spaß!
[SPEAKER_00]: Wer uns regelmäßig hört, hatte sicher schon mal Andy's Monologi gehört, was eigentlich die Idee hinter uns Römbottkast ist und eine Idee ist eigentlich dieser Selbstderabie und Andy hat mir in letzter Zeit auch immer wieder vorgejammert, wie viele Ischils er in einem GitHub Open Sourcebrook bekommt und das aktuell auf ihn einprasselt, weil eine große Firma wieder mal irgendwas in ihrer API geändert hat.
[SPEAKER_00]: Also Andy, jetzt ist eine Chance, mal da Luftkast zu lassen, was ist passiert. [SPEAKER_01]: Und ich habe das Gefühl, du machst dich hier eine reale Krankheit gerade lustig. [SPEAKER_01]: Und ich habe das Potenzial da reinzuschlen. [SPEAKER_00]: Nein, das ist keine noch, das ist nur nicht diagnostiziert und kategorisiert. [SPEAKER_00]: Aber es ist auf jeden Fall ein Pain, der nicht anerkennen.
[SPEAKER_00]: Darum, jetzt hast du hier die Chance, das Alpen mitzudeilen und das Mittleit einzuhämschen. [SPEAKER_00]: Ich möchte kein Mittleit. [SPEAKER_00]: Ich möchte kein Mittleit. [SPEAKER_00]: Aber es ist vor mir schon Mittleit. [SPEAKER_01]: Ich bin auch ehrlich, die Story, die ich jetzt gleich kurz erzählen werde, die hüte auch ein bisschen Druck auf mich aus. [SPEAKER_01]: Und ich hab dann auch innerlich schon so gedacht, wo?
[SPEAKER_01]: Was mache ich jetzt, ignorier ich das jetzt komplett weg? [SPEAKER_01]: Und lass ob so aus oben so sein, weil ich möchte nun mal kurz erwähnen, ob es so ausm Container sind niemanden etwas schuldig. [SPEAKER_01]: Sie haben bereits ein sehr großen Teil geleistet, in dem sie einfach... [SPEAKER_01]: Geschriebene Quellkut veröffentlicht haben und dies zu freien Lutzung und weiter Verbreitung und Veränderung zur Führung gestellt haben.
[SPEAKER_01]: Und wenn Firmen auf diesem Augenshorskot aufbauen und davon abhängig sind, wenn es das deren Problem und nicht das, ob uns ausmitteln. [SPEAKER_01]: Das möchte ich kurz nun sagen, dass wenn ihr was veröffentlicht, dass ihr niemandem Rechen schaut schuldig seid. [SPEAKER_01]: Aber was ist passiert? [SPEAKER_01]: Vielleicht fange ich mal ganz vorne an. [SPEAKER_01]: Es war einmal 2014 oder 2015.
[SPEAKER_00]: Und die hat ja niemand beigebracht, dass die ersten 10 Sekunden des Podcasts die wichtigsten sehen. [SPEAKER_00]: Und jetzt kommst du dir da mal mit einer Märchen um die Ecke? [SPEAKER_01]: Nein, man mal die Kurzform, also ich hab mal bei einer Firma gearbeitet und da wollte ich etwas automatisieren mit AtlassianGiRar, ja. [SPEAKER_01]: AtlassianGiRar, dieses Projekt Management und Issue Tracking Tool, jeder [SPEAKER_01]: Hast es, jeder nutzt es, wie kennen es, glaube ich, alle.
[SPEAKER_01]: Auf jeden Fall hat Jira auch eine API und ich wollte halt so ein paar Sachen durch automatisieren, bin es Internet gegangen und hab keinen ordentliches Klein SDK von keine ordentliche Klein Library. [SPEAKER_01]: Was macht ein guter Entwickler, ein guter Entwickler startet natürlich eine Klein Library? [SPEAKER_01]: Da ich ja oben source, fanatiker bin, habe ich die auch einfach mal aufgeht, habe gepuscht.
[SPEAKER_01]: gut über die Jahre ist hier noch ein bisschen gewachsen und über die Jahre hat die auch paar Stars bekommen und über die Jahre wird die auch ein paar Mal genutzt. [SPEAKER_01]: Jetzt will ich schon da ein bisschen named droppling haben.
[SPEAKER_01]: Also da sind schon wirklich Riesenfirmen bei, ich weiß, dass Google die nutzt, ich weiß, dass im Cloudflasinutzt, weil ich sie im Internet Repository gefunden habe, ich weiß, dass in Video sie nutzt, ich weiß, dass Apple sie nutzt, ich weiß, dass der Allörtmanager von Prometheus, Sauceco davon kopiert hat. [SPEAKER_00]: Moment, das heißt, du bist eigentlich mitverantwortlich an dem Milliardenkurs von Nvidia, seht es richtig.
[SPEAKER_00]: Ja, es vielleicht nicht immer ein Prozentigen Stellenbereich, aber ganz, ganz unten vielleicht schon irgendwo. [SPEAKER_01]: Also dann, vielen Dank an dir. [SPEAKER_01]: Und woher weiß ich, dass jetzt Nummer kurz um damals ein bisschen Instagram zurück? [SPEAKER_01]: Ich riebe nichts von diesen Leuten, die mich anschreiben, ob ich doch bitte diesen PR-Fixen kann und das mögen kann und bla bla bla, ja, an der Hand. [SPEAKER_01]: Da sehe ich dann immer die E-Mailadresse.
¶ Info/Werbung
[SPEAKER_00]: Moment, aber warum bekommst du da E-Mails? [SPEAKER_00]: E-Mails gibt's ja eine Blattform, da kann man TPRs online bearbeiten, kommentieren, warum bekommst du da E-Mails? [SPEAKER_00]: Ja, aber wenn man P.A. [SPEAKER_01]: mal eine Woche oder zwei oder drei liegen lässt, denn ich habe gesagt, das heißt, du bekommst beschwerben. [SPEAKER_01]: Aber zu bekomm ich beschwerden, in der Tat, die Leute mekan auch.
[SPEAKER_01]: Ab und zu bekomm ich bitten, mir das nochmal anzusehen und das in Mainstream zu mörchen. [SPEAKER_01]: Also, es ist... [SPEAKER_01]: Man bekommt alles. [SPEAKER_01]: Also wenn man ein großes Obensorz bringt, hat das als Groß, das Repository 1000, 500,700 Stars, aber ist halt gut verwendete Library auf jeden Fall. [SPEAKER_01]: Hat at last in gyro einen API endpoint? [SPEAKER_01]: Im März, glaube ich, der bekettet markiert. [SPEAKER_01]: Hab ich nicht gesehen.
[SPEAKER_01]: Irgendwie hat's mein ICHU aufgemacht, aber ich denke mir, hab ich selber schon nicht ganz kurz gelesen. [SPEAKER_01]: Ah, da wird der SM-September abgeschaltet. [SPEAKER_01]: Hab ich mir dann gedacht, mehr Ziptippen, wir kennen das ja alle. [SPEAKER_01]: Wir nehmen gerade im Settember auf. [SPEAKER_01]: Ja, und auf einmal wird mein Inbox gefluetet. [SPEAKER_01]: Mit Kommentaren auf genau diesem ICHU, das besagt, dass ein spezifischer Appie in Point abgeschaltet wird.
¶ Eine kleine Geschichte über die Entwicklung von Client SDKs
[SPEAKER_01]: Ja, dann ist leider das Datum eingetreten, wann ihr es abgeschaltet haben und dann haben ihr es abgeschaltet. [SPEAKER_01]: Und das war zu, zu fällig, eine sehr nöstliche Funktionität und zwar, die Such-Funktionality von Tickets, wo du Tickets nach dieser JQL suchen kannst. [SPEAKER_01]: So kennst dieses Gira Queery Language, wo du sagen kannst, Reporter, gleich Wolfgang, EndProject, gleich Engineering, Kiosk, EndType, gleich Feature.
[SPEAKER_01]: Hm, dieses S.K.L.F.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R. [SPEAKER_01]: Und die neuen hat sich an einem Team permitiert. [SPEAKER_01]: Wir auch noch einmal, es ist mein Email im Box mal so ein bisschen explodiert. [SPEAKER_01]: Und dann hab ich natürlich gefragt, ja, mach da mal an P.R. [SPEAKER_01]: und so weiter und so vor. [SPEAKER_01]: Und in der 6 Leute aufgestanden haben 6 P.R.s gemacht.
[SPEAKER_01]: Aber kein P.R. [SPEAKER_01]: hat wirklich funktioniert, kein P.R. [SPEAKER_01]: hat wirklich das Problem behoben. [SPEAKER_01]: Und dann wird da drüber ethariert und so weiter und so vorhört und irgendwann... [SPEAKER_01]: hatte ich halt mal vier, fünf Stunden Ruhe und dann hab ich es halt mal implementiert, hat den PR gemacht, hab gesagt, okay, jungs und Mädels testet mal, ja, da war stille.
[SPEAKER_01]: Und nach fünf Tagen oder so kam noch mal die erste Hähanden die danke, das funktioniert bei mir. [SPEAKER_01]: Aber vorher ist kein Witz so im Stundentakt. [SPEAKER_01]: kam kommentare Reihen. [SPEAKER_01]: Und das ist nur sich zugeben. [SPEAKER_01]: Ende vom HIT ist der Backex-Gefixt. [SPEAKER_01]: Nicht in allen Ecken und Enden. [SPEAKER_01]: Da gibt es noch zwei Drei-HK-Sis und nicht gefixt. [SPEAKER_01]: Muss ich auch noch irgendwann machen.
[SPEAKER_01]: Aber die Masse ist gefixt. [SPEAKER_01]: Aber, nein ja, das danke schön. [SPEAKER_01]: Parallet haben sich auch bedankt. [SPEAKER_01]: Aber bei weitem nicht so viele wie, da vorher eine Stimme herum haben. [SPEAKER_00]: Was ich wirklich was machen müssen? [SPEAKER_00]: Oder hast du da nur was reingemörst, was die Leute dir geschickt haben?
[SPEAKER_01]: Nee, nee, die PRC waren leider zum Großteil nicht zu gebrochen, nicht wegen der Codequalität und nicht wegen der Eindrückung oder Variablembindung, da waren zwei PRS dabei, die lassen sich noch niemals kompilieren. [SPEAKER_01]: Also, da mechs relativ schnell, da hat jemand nennt man nicht, dass ja auch blind PR gemacht, das bedeutet, man checkt den Sourcecode aus, er findet den Sourcecode, ändert ihn und macht sofort ein PR ohne zu testen.
[SPEAKER_01]: Und zurück zu deinem Intro, ich nutze die Library selbst, aber bei mir war der Endpoint noch nicht abgeschaltet. [SPEAKER_01]: Die haben so einen Rowling der Bikation gemacht, wie die Cloud Instanz zum Medin und nicht alles auf einmal. [SPEAKER_01]: Deswegen kam immer zu unterschiedlichen Zeitpunkt noch die E-Mail, so bei mir hat das alles noch funktioniert. [SPEAKER_00]: Deswegen habe ich das alles nicht verstanden.
[SPEAKER_00]: Und was machen jetzt gute Podcaste mit z.B. [SPEAKER_00]: eine Geschichte, die jede Woche einer Episode der Realisten müssen, genau. [SPEAKER_00]: Sie machen ein ganzes Thema draus und machen eine Episode zu Client SDKs. [SPEAKER_00]: Er hatte ich bisher dieses Basswort gar nicht so richtig am Schirm bzw.
[SPEAKER_00]: dass man da ein Thema draus machen kann, weil für mich ist es irgendwie sowas was ja, was man zu hin und wieder verwendet, aber sich gar keine großen Gedanken macht, irgendwann bin ich dann draufgekommen, dass sie teilweise selber so Dinge geschrieben habe, was man eigentlich unter Kleint SDK verkaufen könnte. [SPEAKER_00]: Und genau darüber wollen wir heute mal sprechen, was ein Kleint SDK ausmacht.
[SPEAKER_00]: Sie sehen, das eigentlich da ist, wer das programmiert, wer das programmieren sollte, was es zu beachten gibt und da hat natürlich gerade der Andi-Fielerfahrung, wie er jetzt gerade bewiesen hat, weil er ein busselstück SDK vom Milliardenkuss von Nvidia geschrieben hat. [SPEAKER_01]: Ich hab nicht nur ein kleint SDK geschrieben, ich hab glaube ich aktuell acht kleint SDKs oder ähnliches, weil wenn du eins mal schreibst,
[SPEAKER_01]: Und die Learning-Mindnimmungs, dann wird das zweite auf jeden Fall besser und das dritte wird noch besser als das zweite und so weiter und so fort und irgendwann hast du so eine habit raus und irgendwann bist du relativ schnell darin kleinste Käse schreiben, werden Leute, die sehr, sehr viel mit REST APIs zum Beispiel auseinandersetzen und REST APIs schreiben und die sein ähnlich haben, wenn du eine API geschrieben hast und ein tooling zu handhasst, dann bist du auch sehr schnell zum API schreiben.
[SPEAKER_01]: Na klar mal, was ist ein kleinestike? [SPEAKER_01]: Ein kleinestike gesagt, dass es im Kleint ist, also im Sourcecode von deiner Applikation und wir sprechen dann mit einer anderen Applikationen, meist mit einer Server Applikationen oder mit einem Device oder ähnliches eng.
[SPEAKER_01]: SDK selbst steht für Software Development Kit und was es eigentlich ist es verpackt eine API also eine Schnittstelle mit der ich Maschine kommunizieren kann so dass sie sich wie native Funktion in einer Sprache anfühlen ja also wenig boilerplate wenig Fehler das man schneller zum ziel kommt [SPEAKER_00]: Ja, aber warum braucht ihr das denn jetzt? [SPEAKER_00]: Ihr habt dann ein REST API, die kann ja so, da ist der schicken Getric West hin und das war's.
[SPEAKER_00]: Also was macht denn dein SDK anders? [SPEAKER_00]: Also brauchen du zuerst mal gar kein Kleid SDK. [SPEAKER_01]: Was es anders macht ist und jetzt kommt es schon auf die Details eines SDKs an. [SPEAKER_01]: Aber im Endeffekt bietet es fertigen Methoden für typische Use cases.
[SPEAKER_01]: Die Stangen SDKs bilden halt in der Regel alle REST API Endpoints ab, aber Klein SDKs übersetzen an z.B. [SPEAKER_01]: noch API-spezifische Fehler, in Sprachnative Fehler, eigene Exception-Tüben und so weiter und so vor. [SPEAKER_01]: Ja, ich sag mal, Klein SDKs ermöglichen die Idiomatische Nutzung von einer externen Programmier-Schnitzstelle in Deiner Sprache.
[SPEAKER_01]: Ich sag mal für Paisen und so weiter und so fort gegebenen Fall sogar mit Sprachfitschers wie Asynkowayet und so weiter. [SPEAKER_01]: Jetzt redest du immer noch für Rest API's, aber es gibt auch G-APC API's, es gibt XML API's, es gibt sob, ja, kennst du noch so? [SPEAKER_01]: Leider. [SPEAKER_01]: Es gibt Hardware devices, Waschmaschinen und so weiter mit Properitären Protokollen und so weiter und so fort.
[SPEAKER_01]: Und all dafür, jetzt kannst du sagen, bei Rest API's, wo nun GetRequest sind, denn es du brauchst kein kleines, okay? [SPEAKER_01]: Da stimm ich dir zu, vielleicht ist es sogar oberengineiert. [SPEAKER_01]: Aber wenn du jetzt einen Tasmoter hast oder eine waschmaschine mit den Properentären Protokoll, dann ist das doch schon sehr hilfreich, wenn du klein SDK hast und dieses heavy lifting des Reverse Engineering des Protokolls so beispielsweise gar nicht machen.
[SPEAKER_00]: Zur Abgrenzung, wenn jetzt ein Command-Line Interface-Verwendet zum Beispiel von der Google Cloud gibt es das G Cloud Command, wo dann ganz viele Barameter mitgeben kann und dem Hintergrund werden dann die API-Stode aufgerufen ist. [SPEAKER_00]: Kleint STK ist die in einer jeweiligen Programmiersprache angesprochen werden oder ist die Schelle oder die Command-Blein auch eine Programmiersprache in dem Sinne.
[SPEAKER_00]: Du hast jetzt das Google CLI erwähnt, ich finde zum Beispiel das GitHub CLI ganz gut. [SPEAKER_01]: Das GitHub CLI oder das Google CLI ist der Rapper und unten drunter in der Implementierung von dem CLI wurde dann das GitHub SDK genutzt oder das Google SDK. [SPEAKER_00]: Also das ist noch mal ein Rapper, um das Kleint STK.
[SPEAKER_00]: Ja, das Github CLI ist die eigentliche Applikation und die eigentliche Applikation embettet dann eine Library und das wäre dann das Github S.I.K. [SPEAKER_00]: Und wer ist denn dann sonst die User von so einem kleinen S.I.K. [SPEAKER_00]: Also zum Beispiel jetzt von deinem Etlasien S.I.K. [SPEAKER_00]: wer oder wo wird es verwendet? [SPEAKER_00]: Wo wird das verwendet?
[SPEAKER_01]: Also prinzipiell sind die User, die End User sind wirklich Softwareentwickler, den Problem haben und irgendwas mit Gira kommunizieren, wollen automatisieren wollen automatisch tickelserstellen wollen oder ähnliches. [SPEAKER_01]: Wo wird das verwendet?
[SPEAKER_01]: Ich kenn z.B. [SPEAKER_01]: ein UseCase im Cloud native umfeld gibt es Prometheus und im Prometheus gibt es Alert Manager, Alert Manager ist ein Tool, das findet ihr alerts im Monitoring Bereich, wie z.B. [SPEAKER_01]: ruf dich an und zu weiter und zu voll wenn er nun viel Last stattfindet. [SPEAKER_01]: Und Alert Manager kannst du so konfigurieren, dass wenn ein Alert gefreiert wird, dass wenn ein Alert losgeht, dass ein gira-ticket aufgemacht wird.
[SPEAKER_01]: Ein Alert wird gefeiert bei dir. [SPEAKER_01]: Ist das jetzt eigentlich gefeiert oder deutsch gefeiert? [SPEAKER_01]: Wenn ich ein Prototypenbauer und den Allergene aufsetze, feier ich, dass der Alert funktioniert, ansonsten mit der gefeiert, dann noch Englisch. [SPEAKER_01]: Da feierst du dann weniger. [SPEAKER_01]: Aber was noch, weil du gerade gefragt hast, okay, wer sind die Indios und wo wir das eingebaut?
[SPEAKER_01]: Vielleicht ist noch mal einer Unterscheidung recht interessant für viele Leute. [SPEAKER_01]: Wo es eigentlich der Unterschied zwischen einem Software Development Kit an dem SDK und einem Framework? [SPEAKER_01]: Und zwar SDKs können aus dem von dir geschriebenen Code aufgerufen werden und Frameworks rufen in der Regel den von dir geschriebenen Code auf. [SPEAKER_01]: Also Frameworks erzwingen in der Regel eine bestimmte oft-opiniernete Code-Archstall-Tour SDKs nämlich nicht.
[SPEAKER_00]: Jetzt hast du schon kurz erwähnt, am Anfang, dass gewisse Sachen gerapt werden und error codes zum Beispiel besser verarbeitet werden, gibt sonst noch Fieges, die so ein kleint SDK klassischerweise hat und das Leben des normalen Entwicklers entwiclerin vereinfacht. [SPEAKER_01]: Ja, da kommt es auf Englisch, würde ich sagen, mit Charity ein bisschen auch auf die Erwachsenheit eines kleinen SDKs.
[SPEAKER_01]: Eine richtiges kleinen SDK bietet natürlich auch eine ganze Menge Zusatzfutschers. [SPEAKER_01]: Also im Endeffekt kann zu sagen, dass ein SDK komplexität unzigbar macht. [SPEAKER_01]: Und gleichzeitig aber auch Best Practices jetzt fängt. [SPEAKER_01]: Nehmen wir mal als Beispiel. [SPEAKER_01]: Wir hatten ja eine Episode über Resilius Engineering, wo wir über Timeouts und exponentische Backoffen zu weiter gesprochen haben.
[SPEAKER_01]: Ein SDK kann zum Beispiel, wenn es einen X10 Request macht, dann hat das P-Request. [SPEAKER_01]: Diese komplette Retry-Low geht mit Jitter und Exponentialback auf bereits implementiert haben. [SPEAKER_01]: Oder nehmen wir das Beispiel von einem Elastic Search Request. [SPEAKER_01]: Elastic Search ist eine Dokumenten-Datenbank, auf der Zugmaschine auch genutzt, basieren auf Lucine.
[SPEAKER_01]: Und was so damals ist, das Ding hat der DP API und wenn du dann Request gegen Sendnis dann Sendnis du in der Regel im Body Negrößere Jace-In-Shope Tour mit, mit so den Fällen und wie z.B. [SPEAKER_01]: Gibt mir alle Dokumente, die dieses Wort haben müssen und dieses Wort aber nicht dürfen und dann setzen auf diesen Filter oben drauf, also ich sag mal eine klassische Submaschine wie bei Google.
[SPEAKER_01]: Jetzt kannst du natürlich das J-Sencraften und dann Perten dp wegschicken oder du kannst z.B. [SPEAKER_01]: Fluin der Face machen. [SPEAKER_01]: Wie zum Beispiel MySearch.searchindex.filter, gleich Word.query.ex.glut etc. [SPEAKER_01]: Also du kannst das Menschen lesbauen machen.
[SPEAKER_01]: Was natürlich deutlich verständlicher ist, dass dieses J-Sen in der Face als dieser J-Senbody z.B. [SPEAKER_01]: Eine andere thematik ist so ganz native Sprachfiegers wirklich sinnvoll nutzen. [SPEAKER_01]: Nehmen wir mal als Beispiele Javascript. [SPEAKER_01]: Da gab es ja die ganze Zeit diese Diskussion, welche Modultyten wir nehmen wir jetzt? [SPEAKER_01]: Ihr erst Module, kommend. [SPEAKER_01]: Ich weiß schon gar nicht mehr, bei welchen Modularten wieder inzwischen sind.
[SPEAKER_01]: Aber da gab es ja eine ganz lange Diskussion, welche Modularten jetzt hier richtigen sind. [SPEAKER_01]: Zum Beispiel in den Support von Alternativen JavaScript-Brand Times. [SPEAKER_01]: Da ist nicht nur Node.js, da gibt es ja noch Dino, was dann zum Beispiel sehr viel Permissionsysteme hat und so weiter. [SPEAKER_01]: So was kann da alles mit eingebaut werden?
[SPEAKER_01]: Oder klassische Features bei Paisen oder bei JavaScript mit Async Away, bei Paisen ist das dann auf zum Beispiel durch eine zuerpartie Library. [SPEAKER_01]: Also das so auch wirklich eine native Einfügung des Sprachsystems hast es des SDKs. [SPEAKER_01]: Und natürlich dann auch die ganzen Default Parameter oder Konfigur Tools Parameter. [SPEAKER_01]: Dass man da, ich sag mal, Sane Defaults nimmt also sinnvolle Defaults.
[SPEAKER_01]: Wir hatten in der Resilience Engineering Episode ja auch ein bisschen über Timeout Parameter gesprochen. [SPEAKER_01]: Und wenn du jetzt mal die ganzen Parameter, die man so konfigurieren kann, insohn und hat die TV-Quest durchgeht, dann kommen da schon eine ganze Menge zusammen, ja, Authentifizierung. [SPEAKER_01]: SSL, was schon teilweise bis zu neun Parameter, Timeouts. [SPEAKER_01]: Na, wann ist der Retry, welchen Timeout nehme ich dahin?
[SPEAKER_01]: Connection Timeout, Retimeout und so weiter. [SPEAKER_01]: In welchen Frequenzen Retry wiederholig? [SPEAKER_01]: Also den heartedperi request. [SPEAKER_01]: Und wenn du es alles mal aufzumierst, dann hast du bestimmt 17, 18, 20 Parameter zu hand, die du theoretisch konfigurieren kannst. [SPEAKER_01]: Jetzt bist du, wo aufgang natürlich der Power User, du möchtest dieses 20 Parameter.
[SPEAKER_01]: Natürlich alle konfigurieren, aber es gibt sehr viele User, die wollen das nicht und ein SDK kann sowas natürlich automatisch mitliefen. [SPEAKER_00]: Das heißt aber, wenn ich das selber implementiere, also wenn ich jetzt eine REST API GraphQL API implementiere und mich einigermaßen an die Spex halte, dann balk mir eigentlich selber so ein kleint SDK oder wenn ich das richtig sehe, weil wenn ich die ganzen hatte, die B-Codes
[SPEAKER_00]: korrekt, verarbeitet, dann gebe ich wahrscheinlich Internet in meine Applikationen, irgendwelche Ero-Codes zurück oder Ero-Objekte, die das dann hier was beinhalten, in die Alpha sogar eine Retry Logik, das heißt eigentlich muss ich mir sowieso immer so ein kleint, als die K-Bound, wenn es keine es gibt.
[SPEAKER_01]: Genau, das machen die meisten auch dann in Haus, bis die man merken, oh, ich vielleicht brauch ich dann doch noch die nächsten Endpoint und den nächsten Endpoint und der nächste Endpoint hat dann nicht nur GetRequest oder PostRequest und vielleicht gibt es die, die bei einem PostRequest dann kein, keine ID zurück, sondern Achtung, er gibt die nur ein Exeptetcode zurück, das bedeutet die API halt dann Request entgegengenommen, ja und dann muss du Polen und so weiter, ne?
[SPEAKER_01]: Also rumärkst du in die kleinen Einheim?
[SPEAKER_01]: Und ja, viele, [SPEAKER_01]: Programmierer und Programmiererin Staaten, auch damit, oh ich mache jetzt einfach mal ganz klassischen Hattetippe, Puget-Koll und später schieben sie das in einer eigenes Feil und später schieben sie das in einer eigene Klasse und dann sie das den mehrere Klasse und dann auch so noch Exception-Händings und einen mehrerer Typ und irgendwann denken die, ah, bis jetzt habe ich ja jetzt doch ein kleines S.I.K.
[SPEAKER_00]: Ja, man fängt immer so leicht an und dann sieht man irgendwelche ein Aero Accurate oder so in den Locks keine Infos dazu, welcher Aero was ist gewesen. [SPEAKER_00]: Dann fängt man das an auf zu tröselen Kategorizieren, einen Aero dazu, dann kommt der nächste, aber wenn man sich so APIs anzieht, die sind schon sehr umfangreich. [SPEAKER_00]: Also alleine, wenn man auch die kleinen APIs, die haben schnell mal 10, 15 Aero Coats.
[SPEAKER_00]: Und wenn wir uns ehrlich sind, also keine Ahnung, ich zumindest sie. [SPEAKER_00]: Ich implementiere selten alle 15, sondern die die für mich relevant sind und irgendeiner fällt dann natürlich ist klar wie immer. [SPEAKER_01]: Ja jede API ist unterschiedlich und wenn du denkst eine API ist auch Konsistent in sich dann wirst du bei der implementieren relativ schnell feststellen, dass dies einfach nicht der Fall ist.
[SPEAKER_01]: Weil ein Beispiel Github bietet verschiedene Eroquots einmal auf der hatte dp statuscode eben natürlich, aber dann auch auf [SPEAKER_01]: In manchen Fällen liefert der den Ehrer-Code auch im Body der Response mit. [SPEAKER_01]: Also es ist auch inkonsistent in sich oder ich hab die Tage einen kleinen SDK für Remembersemilk geschrieben.
[SPEAKER_01]: Wer es schon länger hört, der weiß, Remembersemilk ist so ein tudulisten Tool, womit wir gettinkst things dann betreiben, so eine Produktivitätsmitode. [SPEAKER_01]: Und was die machen ist noch viel Fieser. [SPEAKER_01]: Die liefern einfach immer den Shadowscode 200 zurück.
[SPEAKER_01]: Außer du... [SPEAKER_01]: Übertrifft das Rate Limit, was ein Request-Prosi-Kunde ist, dann liefern die 500-4 zurück, aber immer wenn Null Fehler hat es, dann ist der im Schadelskot 200 im Body-Mittern. [SPEAKER_01]: Also, ich würde sich jeder Prohomierer und jede Prohomiererin ane Koppfassen so an, an die das hast du jetzt. [SPEAKER_01]: Ich gesagt, das machen die nicht wirklich.
[SPEAKER_00]: Doch, ihr muss jetzt so geben, bei unserer Internen API bei unserem F-On-Dine Führerschein-Projekt. [SPEAKER_00]: Sie ist jetzt schon 15 Jahre alt, aber haben wir genau das auch so gemacht. [SPEAKER_00]: Es gibt eine Errorfeld in Chasen und wenn das größer Null ist, dann ist es ein Errorcode und da hatte die B startet es, ist immer 200. [SPEAKER_00]: Ja, haben wir nicht besser gewusst beziehungsweise.
[SPEAKER_00]: Ihr habt so das Gefühl vielleicht war ja auch jünger, aber damals waren diese hatte die Bekots gar nicht so präsent in den API's und API an sich was schon irgendwie neu zu chasen und damals hat das alles noch E-Check-S geheißen.
[SPEAKER_00]: Ja, aber kann doch auch etwas sagen, man wusste es aber nicht besser, aber [SPEAKER_01]: Was ich nur sagen möchte ist, ihr habt die war ja, nutzt ein fertiges kleinen SDK oder schlagt euch damit selbst rum, denn das ist sehr viel Haare raufen oft. [SPEAKER_00]: Jetzt hast du am Anfang erwähnt, du hasts das SDK geschrieben für Chirror, für Etlasian Chirror. [SPEAKER_00]: Ich habe noch nie für den Lessen gearbeitet.
[SPEAKER_00]: Ich habe noch nie für den Lessen gearbeitet, möchte ich kurz dazu sagen. [SPEAKER_00]: Aber genau, warum musst du als der Heck gekommener Tipp da aus Thysburg jetzt so ein SDK schreiben? [SPEAKER_00]: Warum macht das? [SPEAKER_00]: Etwas hier nicht selber und warum machen's andere Firmen? [SPEAKER_01]: Warum lässt sich nicht dazu entscheidet, eine SDK zu schreiben, kann ich dir nicht beantworten.
[SPEAKER_01]: Ich hatte immer eine E-Mail geschrieben und habe gesagt, hey, pass mal auf. [SPEAKER_01]: Ich habe hier so ein populäres Jiber SDK, wollt ihr mich nicht hümi-Sponsoren. [SPEAKER_01]: Ich habe gedacht, ich kriege meine Marken, weil das das die mir geschickt haben. [SPEAKER_01]: denn 25 Dollar gut scheint für deren Mörtschop. [SPEAKER_01]: Da habe ich dann auch eine kleine Neopredentasche bestellt. [SPEAKER_01]: Die erzählen da, erkehlegt.
[SPEAKER_01]: Die nutze ich dann immer noch bis reisen, dann kommen meine Kabel rein, der passt das. [SPEAKER_01]: Aber dann waren die 25 Dollar auch schon, weil das am Jahr aus der Streien geschipp wurde. [SPEAKER_01]: In der Infekt weiß ich nicht. [SPEAKER_01]: Es gibt Firmen, die entscheiden sich dafür, dass die ein eigenes SDK schreiben und es gibt Firmen, die machen das nicht. [SPEAKER_00]: Aber warum machen es diese Firmen, was bringt es den Firmen SDK zu machen?
[SPEAKER_00]: Naja, ne, ne, wir haben mal ein paar Beispiele. [SPEAKER_01]: Je nach viermal kann es dazu führen, dass sie Produkte eine größere, schnellere Adoption kriegen.
¶ Wer schreibt SDKs? SDKs können die Produkte boosten
[SPEAKER_01]: Ich glaube, wo das beste Beispiele, wo den SDK einfach einen Unterschied gemacht hat, ist Stripe. [SPEAKER_00]: Stripe hat er von Anfang an eine sauberer REST API, ich mein Stripe ist dieser Online Zahlungsdienstleister, gibt es eigentlich irgendetwas, was Stripe nicht gut gemacht hat, immer wenn APIs fallen wird, immer Stripe als das, beispielsweise genannt, egal was sie ist, Dokumentationen. [SPEAKER_00]: Alles, was irgendwie mit APIs zu tun hat, Stripe.
[SPEAKER_01]: All die Damen und Herren, machen halt auch schon sehr viel richtig, muss man zu geben. [SPEAKER_01]: Ein Emory Live-Billet, die Engineering abtime, sind die auch sehr, sehr stark. [SPEAKER_01]: Na ja, wie dem auch sei, Streip hatte das Ziel, wie machen das bezahlen, bzw. [SPEAKER_01]: die Integration von Zahlungswerkfluss im Internet sehr einfach. [SPEAKER_01]: Ja, ja, sich damals noch erinnert als Freiburg kam.
[SPEAKER_01]: Denn Zahlungswerkfluss sind unglaublich komplex, tokenisierung, payment-Intense, 3D-Secura, Webplugs und so weiter und so fort. [SPEAKER_01]: Und was die gemacht haben ist, [SPEAKER_01]: die haben SDKs entwickelt, die die Abläufe in wenige klare Methoden irgendwie kapseln. [SPEAKER_01]: Entwickler und Entwickler müssen nicht so mit nicht wie hatte, die PC-Knaturen, die den Potenten, Kies und Fehler-Kozerumschlagen, sondern das alles übernimmt das SDK.
[SPEAKER_01]: Und das Ergebnis, du konnte es die Integration oder eine Salungswerkfluss von Tagen in Minuten machen. [SPEAKER_01]: Und nennt mir immer heute zu Tagen Online-Shop der Nichts Stripe angebunden hat. [SPEAKER_00]: Ja, es gibt sogar Berechnungen wie viele Prozent des internationalen Geldverkehrs online von Stripe abgewickelt wird. [SPEAKER_00]: Es gibt es gerade nachgeschaut 1,5 Millionen Umsatz und der globale Umsatz in IKOMAS ist ungefähr 6,5.
[SPEAKER_00]: Millionen des heißt im Prinzip gut der 20 Prozent vom gesamten weltweiten Ikomas Umsatz geht durch Stripe durch. [SPEAKER_00]: Also die haben ne Marktmacht, die nicht zu unterschätzen ist und das haben sie damit geschafft, dass sie gute die Welle-Experienz im Prinzip geliefert haben. [SPEAKER_01]: Ich denke, dass das SDK daran maßgeblich mit dabei war. [SPEAKER_01]: Ein anderes Beispiel war sich gerne erwähnt, möchte es AWS, Amazon Web Services sehr klar pro weiter.
[SPEAKER_01]: Ich mein AWS hat wie viele Services viel zu viel und die APIs sind auch gigantisch und äußerst detailliert. [SPEAKER_01]: Jeder Service hat hunderte bis zuzene Operationen, Fehlerkodes und zu weiter uns. [SPEAKER_01]: Und das wohl, meinst erachten nach populärste SDK für AWS, ist das von Paisen, nennt sich Boto inzwischen Boto 3. [SPEAKER_01]: Und da vergebte er inzwischen sogar im Begriff, wenn du kein SDK nutzt und klaut in Verschuht zu maintainen, das nennt sich ja Klick-Ops.
[SPEAKER_01]: Kurz um Klauproweider und Aderwiss war halt einer der ersten, werden prima über API es bedient. [SPEAKER_01]: Und jetzt kannst du die Fragen stellen, möchtest du es alles mal nur einmal machen oder nein, du nutzt mit hoher Wahrscheinlichkeit an ein SDK, Boto jetzt für Peisen und das Lustige ist, dass Boto S3 Paket, also für den Object Storage, ist ja mehr oder weniger Standard für Object Storage, weil jeder andere Object Storage sei, ist GCS. [SPEAKER_01]: von Google.
[SPEAKER_01]: Ich weiß nicht, wie der bei Edge erheist oder neuer Hatsen hat auch Objects Storage. [SPEAKER_01]: Im Endeffekt, die haben im Planeten ja alle die S3 API. [SPEAKER_01]: Kurzum, du kannst nicht nur für AWS, das AWS S3 SDK nehmen, sondern auch für andere Probeider. [SPEAKER_01]: Natürlich muss ein bisschen aufpassen, ab und zu haben die mit den Signaturen und Secure die da so ein paar andere Sachen, aber in 90 Prozent 500 Prozent der Fälle funktioniert.
[SPEAKER_01]: Und im Endeffekt,
[SPEAKER_01]: Es ist die Frage, die du gerade gestellt hast, wer sollte eigentlich eigentlich ein kleintestike entwickeln, sollte sich darum nicht der Software-Herschiller kümmern, ja ich denke, das kommt immer ganz drauf an, also ich denke, für technisch getriebenen Firmen ist SDK ein Cells feature, vielleicht genauso wichtig wie die API selbst, auf der anderen Seite muss man zugeben, okay, was ist denn das Hauptprodukt dieser Firmer, nehmen wir mal, geht ab als Beispiel.
[SPEAKER_01]: Github selbst hat zwar ein SDK, aber nicht für jede Sprach, denn da kommen wir gleich auch noch zu. [SPEAKER_01]: Ein SDK haben ist ja nicht ein SDK haben. [SPEAKER_01]: Wo hörst du auf, machst du dann SDK auch für Haskel oder machst du nur als für Java, weil Java eine populäre Sprache ist oder peißen. [SPEAKER_01]: Zum Beispiel das Go SDK von Github wird auch von freiwilligen gemacht und nicht von Github selbst.
[SPEAKER_01]: Obwohl Github ein technisches Produkt ist würde ich mal sagen. [SPEAKER_00]: Aber wenn die irgendwie unterstützt, da kann ich jetzt nicht für das Gogitter Projekt sprechen, nicht was nicht. [SPEAKER_00]: Es ist natürlich schon auch schwierig alle Sprachen abzudecken.
[SPEAKER_00]: Weil du brauchst da ja auch Leute, die sich in den jeweiligen Sprachen auskennen, das sollte ja nicht irgendwas sein, was in jeder Sprache gleich aussieht, dass der selber, wie wenn du so multi-platform Apps baußt und dann hast du auf iOS diesen Flow von Android, du bist dir den, [SPEAKER_00]: Möglichst nativen Flow von der jeweiligen Sprache oder dem Betriebssystem, was es dann auch immer ist, hier haben und das heißt du brast doch die Leute dazu.
[SPEAKER_00]: Das ist wahrscheinlich gar nicht so einfach, wenn du jetzt interneuer GoPro Grammierst und jetzt sollst du plötzlich einen BRB SDK oder so auf die Beine stellen. [SPEAKER_00]: Brast du ja irgendwie in der BRB Erfahrung. [SPEAKER_01]: Ja und da spricht du in unglaublich wichtigen Punkt, einer du sprich sag gerade über die Prinzipien [SPEAKER_01]: eines SDKs, ja, welche Prinzipien sind denn für einen SDK entscheiden?
[SPEAKER_01]: Und idiomatic programming is key, weil wenn dich das SDK fremd anfühlt, wie es du keinen Spaß haben ist, so nutzen, du wirst nicht flüssig, du bist jetzt, ja was bist du eigentlich, du bist ja was kommt der Ingenie holer, also als welchen Ingenie-typwürdest du dich bezeichnet Wolfgang? [SPEAKER_01]: Jetzt ist ja schon Weibkode, verstehe ich ja Wolfgang.
[SPEAKER_01]: E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E [SPEAKER_01]: Ich bin jetzt GoLeng, Mensch oder GoLeng darf man dann nicht besagen, die Sprache ist ja auf WCGO, aber man merkt, wenn eine API und ein SDK von einem nicht Go-programm hieron von allen nicht Go-programmierern entworfen wird. [SPEAKER_01]: Man merkt, dass beim Schreiben es ist nicht flüssig. [SPEAKER_01]: Verstehst du was ich meine?
[SPEAKER_01]: Es ist nicht ideomatisch. [SPEAKER_01]: Die error-typen komm nicht in der richtigen Reihenfolge zurück. [SPEAKER_01]: Und also du hast ja, was ja so ungeschriebenen Regeln in
¶ Welche Code- und Design-Prinzipien sind für ein SDK entscheidend?
[SPEAKER_00]: Ja, gerade so erhändeligen, wie werden erlos zurückgegeben, wie Catchman erlos? [SPEAKER_00]: Das sind ja so ganz typische Sprachwitches, meistens. [SPEAKER_01]: Genau, oder wie erstelllichen Neues objekt, ja, mache ich da eine Konzrukte-Afunktion oder habe ich da einfach einen Newkey-Wirt und so weiter und so vor. [SPEAKER_00]: Und da geht es überhaupt die Objekte oder ordentliche Klassen oder sind es irgendwelche Komission Dictionaries, die einfach zurückgeben werden.
[SPEAKER_01]: Ja, ich glaube jeder, der eine neue Sprache mal lernt oder gelernt hat, kennt das, man versucht die Pettern aus der anderen Sprache, die man bereits kann, irgendwie auf die neue Sprache zu vertragen und nachzubauen. [SPEAKER_01]: Bis mal mal versteht, das ist gar nicht der Sinn dieser neuen Sprache. [SPEAKER_01]: Aber ideomatisch zu Zielsprache sollte das S.I.K. [SPEAKER_01]: nicht für die Seine und jetzt kommst. [SPEAKER_01]: Wo fängt man an, wo hört man auf?
[SPEAKER_01]: Ja, und hol ich mir den Tube in NX und um die Top 10 Sprachen und Bau dafür S.I.K.s. [SPEAKER_01]: Ja, dann brauche ich aber Top Leute in Paisen, in Java, in Go, in Rust, in Na? [SPEAKER_01]: Du verstehst schon, dass wir relativ kompliziert. [SPEAKER_01]: Und du kannst ja nicht nur eine Person haben, du musst ja mit diesen zwei, weil die Person möchte auch immer in Europa gehen.
[SPEAKER_01]: Deswegen kann ich schon verstehen, warum Firmen sagen, okay, wir lassen die Finger davon, wer überlassen ist, der Community. [SPEAKER_01]: Dann kann es aber natürlich ganz stark sein, dass du ganz starken Wildwuchs hast. [SPEAKER_01]: Das geht natürlich auch, und das ist natürlich dann auch negativ auf die Repotation des Produktes führen, obwohl die SDKs gar nicht von der Firma kommt. [SPEAKER_00]: Hast du mal zuverlegend, wo SDKs in mehreren Sprachen verwendet?
[SPEAKER_00]: Also, die selber Endblatt vom sozusagen aus unterschiedlichen Sprachen heraus. [SPEAKER_00]: Ja, habe ich schon. [SPEAKER_00]: Ich und zwar haben wir [SPEAKER_01]: Natürlich Job haben wir auch Tooling in Paisen und das nutzt auch ein Jera SDK. [SPEAKER_01]: Mit der Jera API habe ich schon schon mindestens drei oder vier Sprachen gearbeitet und in mit der GitHub API auch habe ich in mehreren Sprachen schon gearbeitet.
[SPEAKER_00]: Aber Microsoft hat da große Unterschiede oder schlägt sich da dann die API schon durch weil die SDKs möglichst nahe an der API gebaut sind. [SPEAKER_00]: Jetzt z.B. [SPEAKER_00]: wie Fehler benannt werden oder CO2-Möglich durchgeschliffen werden, [SPEAKER_01]: Ja, bei den Gerer cases war das der ging's prima, darum, und kommentar zu erzeugen und ein Ticket zu erzeugen. [SPEAKER_01]: Das sind dann relativ einfache APIs, dass wir keine die Frage gar nicht zu wantworten.
[SPEAKER_01]: Aber zum Beispiel in meiner Go-Joura Library habe ich eine Funktionen, die jetzt sich page-nate, das bedeutet, du suchst etwas mit Jake U.L. [SPEAKER_01]: Dieser Curie Language hat mir gerade gesagt, ja, es teib gleich back und status gleich Kloss und so weiter.
[SPEAKER_01]: Und der hat natürlich eine maximale Anzahl an Eitems, die der zurück, 20 Stück, aber du Christ dann kristst 45, Ergebnisse auf deine Suchanfrage, dann hat zum Beispiel die Paisen API hat mir dann einen Zeiger zurückgegeben und in meiner Go-Library gebe ich einen Interations-Oberbeweg zurück, wo einfach nur drüber etterieren kann. [SPEAKER_01]: was dann das Pagination und Rundermacht automatisch.
[SPEAKER_01]: Das ist dann so eine besondere Bille-Tisache, und in eine Paisenkleine-Dreibe muss sich das Pagination händelig selbst noch einwandbrechig ab und zu weiter. [SPEAKER_01]: Da gibt es schon Unterschiede und da kommt es wirklich auf die Erfahrung auf das Softwareentwickler und Softwareentwicklerin. [SPEAKER_01]: Wie viel SDK ist das schon geschrieben? [SPEAKER_01]: Denn ich muss zugegeben, mein erstes SDK hatte noch nicht so Sachen drin.
[SPEAKER_01]: Und Ah, wie viel Zeit hatte die Person auch, das muss man aufsagen. [SPEAKER_01]: Also, die Frage ist halt, muss man schwach übergreifen, Konsistenz sein, ich denke nicht. [SPEAKER_01]: Es kommt ganz darauf an, auch was die Sprache bietet, z.B. [SPEAKER_01]: diese Paginätfunktion nicht gerade genannt hat. [SPEAKER_01]: Es gibt Sprachen, die geben, es gibt Sprachen, die haben ein Natives Pizza von einem Literationsobjekt und es gibt Sprachen, die haben sowas gar nicht.
[SPEAKER_01]: So ein iterator Interface, ne nichts mehr.
[SPEAKER_00]: Ihr wollt ja sagen, also, klappt die meisten Sprachen, haben wir in irgendeiner Form, so ein iterator, wo man in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in irgendeiner Form in ir
[SPEAKER_00]: Wann kommt denn dein Kohl zurück? [SPEAKER_00]: Also wenn solche Dinge dann versteckt werden, hinter dem Rapper, ist dann auch nicht mehr so klar, was da eigentlich passiert und wie man damit umgeht und da ist dann wahrscheinlich auch sprach. [SPEAKER_00]: Es bezieffi ist noch mal ein Unterschied, ob du überhaupt Assyngrohn-Efunktionen hast oder ob alles in Krum bei dir ist und das ist halt dann schon abhängig von der Sprache.
[SPEAKER_01]: Jetzt stellen wir uns mal vor, wir greifen wir jetzt die Frage auf, macht es denn Sinn, dass eine Person mehrere SDKs in mehreren Sprachen schreibt, für ein Produkt. [SPEAKER_01]: Also da musst du ja Poli-Glood unterwegs sein. [SPEAKER_01]: Wenn du gut bist, denn in mehreren Sprachen warum nicht? [SPEAKER_01]: Ja, aber was denkst du denn, wie viel Sprachen oder wie viel SDKs in wie viel Sprachen einen Mensch realistisch? [SPEAKER_01]: Wenn dahin kann.
[SPEAKER_01]: Zwei würde ich sagen, okay, ist schon hart im Kopf, muss ich zugehen, der Kontext witsch. [SPEAKER_01]: Du musst die Ecosysteme auch verfolgen. [SPEAKER_01]: A3 vielleicht mit genug Zeit, aber da weiß ich jetzt nicht, also drei Programmeersprachen, flüssig können mit und wenn nun gutes SCK schreiben möchtest, dann kennst du eigentlich die Core Features in und out. [SPEAKER_01]: Hab ich noch nicht gesehen, wenn ihr das schon mal gesehen habt, lasst uns das wissen.
[SPEAKER_01]: Aber ich mein, du hast gerade einen guten Punkt angesprochen. [SPEAKER_01]: Und zwar ist das, was ich will angenehm, wie geht mir es mal in Internet? [SPEAKER_01]: In den Interator abhegt zurück. [SPEAKER_01]: Und dann werden er hat die T-P-Kolls gemacht. [SPEAKER_01]: Und dann kannst du Sünken und Asyl angesprochen. [SPEAKER_01]: Hast du Teimots angesprochen? [SPEAKER_01]: Er ross uns weiter, alles schwierig zu handeln. [SPEAKER_01]: Natürlich kannst du jemanden exceptionen.
[SPEAKER_01]: Aber was so eigentlich angesprochen hast, zumindest was ich zwischen den Zahlen gelesen habe, ist, dass das SDK auf der einen Seite für die Standard-Jusere einfache Funktion zur Führung stellen muss. [SPEAKER_01]: Klar, das ist so die Masse des Jusges. [SPEAKER_01]: Und für die Power-Jusere aber genug Flexibilität zur Führung stellen muss, damit man dann noch genug Einfluss hat.
[SPEAKER_01]: Und ein Beispiel, möchte ich jetzt mal nennen, was ich über die Zeit gelernt habe, bei der Implementierung mehrere kleinen SDKs, ist, ich nenne das Koala-Injection. [SPEAKER_01]: Nicht die Penency-Injection, sondern eigentlich Koala-Injection. [SPEAKER_01]: Wie nehmen wir jetzt einfach an, dass SDK macht immer eine Netzwerk request? [SPEAKER_01]: Also, wir kommunizieren mit einem Exzernen Dienst, mit einem Exzernen-Service, mit einem Exzernen, irgendwas über das Netzwerk.
[SPEAKER_01]: Das bedeutet, zu einfach reise, sage ich einfach mal, [SPEAKER_01]: Jetzt gibt's die Möglichkeit, dass SDK diesen hatte DP-Kleint selbst erstellt, mit all den Zettings und Timeout und also was. [SPEAKER_01]: Was aber best practice ist, dass du als Software-Implementierer die Möglichkeit haben solltest, den hatte DP-Kleint in das SDK zu injecten. [SPEAKER_01]: Warum macht das Sinn?
[SPEAKER_01]: Manchmal hab ich das hei, ist das in den Wort notwendig, kann ich in einem SDK nicht einfach den Standard-Hat-DTP-Kleint von der Sprache nutzen, aus der Standard-Leibrie. [SPEAKER_01]: Ja, solltest du, wenn kein HTT-P-Klein in checktet wurde, aber warum macht das denn? [SPEAKER_01]: Du weißt nicht, wo dein SDK verwendet wird, teilweise hinter irgendwelchen Proxies, teilweise haben 4 man eigene Autentifizierungsmethoden, teilweise erwarten Systeme, custom HTT-P-Heder.
[SPEAKER_01]: um einen eigenen Engine X und Beipass zu machen, ab und zu wollen, die Leute des SDK verwenden, irgendwelche pre- und post-Aktionen vor oder nachdem hatte die P-Requests machen, zum Beispiel einen Login oder vielleicht wollen die eine ... [SPEAKER_01]: Trace, you-you-idee an deinen Hattet-TP-Koll dran hängen oder oder, also Sachen, wo du dir denkst, ja, das sollte es nicht in Kleint SDK.
[SPEAKER_01]: Und wenn du den die Möglichkeit gibt, den Hattet-TP-Koll aus den Hattet-Peklein zu enjecten. [SPEAKER_01]: Und dann nutzt du den fertigen Hattet-Peklein. [SPEAKER_01]: Dann können die da so round trips machen. [SPEAKER_01]: Dann können die da wirklich so pre und post-Exten Actions vor den Hattet-Pekoll setzen und so weiter, so wie ich entschuldigung, jetzt gerade schon mal für mein Ding löscht. [SPEAKER_01]: Aber ich weiß gar nicht, wie ich das alles auf Deutsch beschreiben muss.
[SPEAKER_01]: Aber ihr wisst, was ich meine, eine Aktion, die direkt vor dem hatte, der P-Koll ausgefüllt wird und wenn die Response zurückkommt, eine Aktion, die direkt danach ausgefüllt wird. [SPEAKER_00]: Ich hab kurzlich so ein kleines SDK verwendet von so einer, wie es beschreibt, dass so ein Online-Such in die Zierungsdienst, so eine Internet-Suchmaschine quasi, der man anfragen, dann schicken kann, finden Kunden.
[SPEAKER_00]: Und der Kunde ist sehr restriktiv mit welcher Domains aufgerufen werden dürfen. [SPEAKER_00]: und dieses kleint SDKs immer viel geschlagen, weil irgendeine Domain nicht zugänglich war. [SPEAKER_00]: Dieses D-Bagging hat mich so viel Zeit gekostet, um am Ende dann irgendwo drauf zu kommen, was für eine URL da wirklich aufgerufen wird, weil das Ding hat mir das nix ausgespuckt.
[SPEAKER_00]: Wenn ihr das so was in checkten hätte können, hätte das mitlocken können, wäre sofort am Ziel gewesen. [SPEAKER_00]: Also, kann ich voll und ganz nachvollziehen, diesen USKs, hätte mir da viel Zeit erspart. [SPEAKER_01]: Aber wir haben gerade von der Kolla in Jackson gesprochen. [SPEAKER_01]: Du kannst natürlich dann auch noch das hat der P-Response-Objekt immer standardmäßig mit zurückgeben.
[SPEAKER_01]: Damit der Kolla, das war der DP, die originale RAW hat, der die P-Response inspekten kann, du kannst noch automatisches Token-Rinual machen, wenn es um Automativizierung geht und so weiter und so vor. [SPEAKER_01]: Ja, also, [SPEAKER_01]: In Sachen Flexuität, kannst du eine ganze Menge machen, was ich da immer empfehle, ist, dass du dann immer zwei verschiedene Funktionen bzw. [SPEAKER_01]: Methoden anbietest, eine für den Power-Ejußer, der das gar nicht braucht.
[SPEAKER_01]: Und wenn du diese Flexuität brauchst, dann packst du dann noch einen optionalen Parameter hinter oder du machst noch irgendwie so eine so ein Fluent interface, so was wie [SPEAKER_01]: Neu klein und dann wiss ohne HTTP-Korla oder irgendwie sowas, ja, dass die Leute, die die Flexibility brauchen, dann vielleicht noch einen Zusatz dran packen, aber dass du für die Masse der User einfaches API design.
[SPEAKER_00]: Also umgekehrt, der Power-User soll die Möglichkeiten haben, nicht die Default-Water, oder? [SPEAKER_00]: Also ja, genau. [SPEAKER_00]: Wenn man sich dieses ganze Thema jetzt aber durchdenkt und du hast ja schon angeschnitten, dass man da sehr viel Personen braucht, die wollen auch auf Urlaub gehen, das heißt, du musst viele Sprachen bedienen.
[SPEAKER_00]: Du brauchst die eigentliche API, du brauchst eine Dokumentation von der eigentliche API, du brauchst eine Dokumentation von jedem SDK. [SPEAKER_00]: Also das ist schon wahnsinnig viel Aufwand, den du da betreiben musst, umso klein SDKs. [SPEAKER_00]: zu erstellen und dann vor allem auch zu pflegen und auch die Dokumentationen abdatezuell. [SPEAKER_01]: Was ist das Produkt, was du sehr oft verwenden?
[SPEAKER_01]: Es kann hart, wer kann Software sein, kann keine was in der realen Welt sein. [SPEAKER_01]: Was du wirklich liebst, was du sagst, wo auch? [SPEAKER_01]: Damit kann ich ja nicht mehr ohne. [SPEAKER_01]: Kann auch dein Karabiner sein oder dein Klettergurt oder irgendwas was, was du, wo auch, dass du da bin ich echt von wirklich überzeugt. [SPEAKER_00]: Muss jetzt nach einer Antwort suchen, die kein LLM ist moment. [SPEAKER_00]: Bin ein großer Next Bike-Fallen.
[SPEAKER_00]: Also dieses Startratverleistystem. [SPEAKER_00]: Zwei Battenz. [SPEAKER_00]: Du kennst den QR-Code einbatten. [SPEAKER_00]: Ferstlos. [SPEAKER_00]: Spaß des Radwille ab. [SPEAKER_00]: Badest auf dem Biebton, das ist. [SPEAKER_00]: Denkst du das Produkt haben, die in der Nacht entworfen. [SPEAKER_00]: Denkst du das war, wenn ich arbeite. [SPEAKER_00]: Ich glaube, es war sehr viel Arbeit, ja. [SPEAKER_00]: Ich habe das auch mitverfolgt, die vielen Jahre, es hat sehr stark verbessert.
[SPEAKER_01]: Und hier sagen möchte gute Produkte, es halt harte Arbeit. [SPEAKER_01]: Und wenn es leicht aussieht, dann weißt du, dass es harte Arbeit war. [SPEAKER_01]: Also ja, es ist unglaublich viel Arbeit. [SPEAKER_01]: Und es ist sogar in sehr vielen Fällen Handarbeit. [SPEAKER_01]: Was weiß man nicht damit? [SPEAKER_01]: Weil man kann ja sagen. [SPEAKER_01]: Moment, wer mehr ist, der LLM ist, die alles generell. [SPEAKER_01]: Sehr schönes Wort, generieren.
[SPEAKER_01]: Und zwar kommen wir nämlich jetzt mal zu Entwicklung von Klein ist die Kästin. [SPEAKER_01]: Man kann sich aus dem Fenster lehnt, sich an die Wieso macht die eigene Episode darüber. [SPEAKER_01]: Moderne APIs haben doch komplette Open API-Spezifierhalkazation. [SPEAKER_01]: Und spezifika-Kracion.
[SPEAKER_01]: Spezifika-Kacation. [SPEAKER_01]: Open API-Spezifikationen und so mit ist die ganze API natürlich in einem standardisierten Sprachunabhängigen Format verfügbar, Maschinenlesber und es gibt ja generatoren. [SPEAKER_01]: Kann ich da nicht einfach auf Play-Drücken oder hab ich einen kleinen SDK? [SPEAKER_01]: Und die Antwort ist ja, kannst du und das machen auch viele. [SPEAKER_01]: Wenn du zum Beispiel eine gut dokumentierte API hast, z.B. [SPEAKER_01]: mit dem Open API Format.
[SPEAKER_01]: Ich habe gerade gesagt, das ist ein standardisiertes Sprach, unabhängiges Format. [SPEAKER_01]: Da kannst du deine API in Jammel oder Jason spezifizieren, inklusive Endpunkte Parameter und so weiter und dann ist das Maschinen. [SPEAKER_01]: Und dann gibt es natürlich auch einen Open API Generator, der kann dir dann SDKs für über 30 Programmiersprachen generieren, z.B.
¶ Client SDKs auf Basis von Spezifikationen generieren?
[SPEAKER_01]: mit verschiedenen Flavers von Libraries empheißen kann, das z.B. [SPEAKER_01]: die URL, LIPD-Raisen oder AIO, HTTP und so weiter und so, also verschiedene Varianten. [SPEAKER_00]: Aber das kann mir ja auch nur irgendwie beiler Blät generieren oder also diese ganzen spezifischen Dinge, die meine API ausmachen, die kann das Dinge wahrscheinlich nicht automatisch generieren oder wie zum Beispiel die allden kann irgendwelche gruden, bägination, Geschichten oder redlimitigen.
[SPEAKER_00]: Die hat schon etwas komplexes hin als jetzt nur eine klassische Anfrage. [SPEAKER_01]: Also, der OP API-Generator z.B. [SPEAKER_01]: kann jetzt nicht in der kleinen SDK-Sache eine Methode generieren, wenn du das Rate-Limit-Erreichs bitte warte und macht dann automatischen Kohl.
[SPEAKER_01]: Weil das ist ja so eine Disability-Funktion, die du vielleicht erwarten würdest, was die OP API-Spezifikation beschreibt ist, du hast ein Endpunkt, du hast ein Request-Objekt, also ein Eingabedaden, du hast ein Ausgabedaten, du hast die möglichen Fehler, die dieser Endpunkt schweißen kann. [SPEAKER_01]: Und auf Basis dieser Daten kannst du natürlich das kleinen SDK generieren.
[SPEAKER_01]: Dann implementierst du aber automatisch immer nur alle Endpunkte ohne diese Jusibility Sachen. [SPEAKER_00]: Wahrscheinlich auch klassische Authentifzierungsmethoden. [SPEAKER_00]: Legendation meines Wissens auch bis zu einem gewissen Grad, aber es immer die Frage, wie kutet an die Implementierung ist, die man sich selber ausdenkt mit der API, aber standardisierte Sachen gehen dann natürlich schon ganz gut.
[SPEAKER_01]: Genau, dann hast du eins zu eins die Reprositation dann der LPI in deiner Sprache. [SPEAKER_01]: Und du merkst schon, mach das ein wirklich gutes SDK ausfragtlich. [SPEAKER_01]: Dann ist die zweite thematik, die sie generatoren, sind halt Maschinen. [SPEAKER_01]: Und jetzt schauen wir mal an, was die OPEN API-Spezifikation ist, OPEN API... [SPEAKER_01]: passiert eigentlich auf dem Jason Schiemer.
[SPEAKER_01]: Du kannst ja auch mit dem Jason Schiemer kannst du ja auch jammelualidieren. [SPEAKER_01]: Das Problem ist jetzt mit einer Schema-Sprache wie z.B. [SPEAKER_01]: Jason Schiemer kannst du halt relativ schlecht Datenschruppungen beschreiben, weil es eine Schema-Sprache ist. [SPEAKER_01]: und Jason Schiemer ist eigentlich eine Validierungssprache. [SPEAKER_01]: Das sagt, ist dieses Jason Valide. [SPEAKER_01]: Das bedeutet für komplexe APIs, ist es also gar nicht so gut geeignet.
[SPEAKER_01]: Dann gibt es dann noch ein paar Detailprobleme, wie any-off ist so ein Keyword. [SPEAKER_01]: Das sollte man eigentlich nicht verwenden. [SPEAKER_01]: Dann hast du gewisse Namesbases von Datentypen, die überschreiben sich, dann man fallen die Maschinen auf die Mütze und so. [SPEAKER_01]: Man kann das machen, gar keine Frage und das bringt einen auch sehr weit, als ich als Softwareentwickler kann, die sagen, es macht keinen Spaß zu was zu nutzen.
[SPEAKER_01]: Und wenn normal habe ich nämlich die Tage wieder versucht. [SPEAKER_01]: Ich habe mir die Open API-Spezifikation von Edlessian Jara genommen, habe mir den Open API-Generator genommen für Go, hat gesagt, mach mal, der kommt da gar nicht durch. [SPEAKER_01]: Ja, also der fließt so auf die Mütze, das funktioniert nicht. [SPEAKER_00]: Ja, man muss halt möglichst nahe auch an standardisierten Verhalten sein.
[SPEAKER_00]: Also, wenn du ganz klassisches Betonation verwendest, könnten Körse-Bast oder Pages oder so was kannst du sehr einfach beschreiben und das wird dann auch funktionieren.
[SPEAKER_00]: Aber wenn du uns ehrlich sind, die meisten APIs sind halt einfach komplexer und bewegen sich halt von dem absoluten Standard auch ein bisschen nach links oder nach rechts, was ja auf Zinn macht, weil die Daten einfach in der anderen Form [SPEAKER_00]: Dagestellt werden sollen und halt dementsprechend auch APIs an das funktionieren.
[SPEAKER_00]: Macht ja auch doch aus Sinn und kann er die USA Experience dann auch verbessern, wenn man nicht den absoluten Standards und Umständen einhalten. [SPEAKER_00]: Genau, heutige Produkte sind halt einfach unglaublich komplex. [SPEAKER_01]: Deswegen bedarf dann halt auch einen anderen Anforderungen. [SPEAKER_01]: Das andere Extrem ist natürlich dann die Handarbeit. [SPEAKER_01]: Das bedeutet, ich nehme die Dokumentation und implementiere jeden Endpoint selbst.
[SPEAKER_01]: Ein sehr grössten Herausforderung bei der Handarbeit ist neben der vielen Arbeit, natürlich die API Konsistenz zu halten. [SPEAKER_00]: Das bedeutet, Parameter in der richtigen Reihenfolge, Returnwellius in der richtigen Reihenfolge, Worthing, Lower Camel Case, Upper Camel Case, Dokumentation, oder auch mal solche E-Mailstie irgendwelche Deprecation Dinge ansprechen, auch mal zu lesen und nicht ein halbes Jahr zu warten, bis sie dann um die Orn fliegen.
[SPEAKER_01]: Eine API-Konzenz zu halten, ist natürlich unglaublich schwer. [SPEAKER_01]: Der Riesen Vorteil von Handarbeit ist natürlich, du hast die größtmögliche Flexibilität und du kannst ganz einfach starten und dann durch kleine Interaktion nicht weiter zu in weiterentwickeln. [SPEAKER_01]: Das bedeutet, du brauchst jetzt gerade nur drei Endpunkte von den 50-Jahren im Plimentier halt nur die drei und im Plimentier halt den vierten Windows brauchst.
[SPEAKER_00]: Wie machst du das eigentlich mit der Visionierung, dass du Consistent bleibt, zwischen APIs und client SDKs? [SPEAKER_01]: Spätst du die 15er bitte von welchen Version sprich, sprichst du jetzt von der Server API Version oder sprichst du jetzt von der API endpoint Version oder sprichst du von der Version, die Release auf das client SDKs, weil es genau meine Frage. [SPEAKER_00]: Also du hast ja angesprochen, du hast ja extrem viele Änderungen, man muss Consistent bleiben.
[SPEAKER_00]: Jetzt gibt es eine neue API Version oder die API Ende zich, deine SDK, [SPEAKER_00]: Was hier unten muss ich dann auch ändern, wie gestern wir Breaking Chains, Chains um Deprecation, also wie machst du es waschenning? [SPEAKER_00]: Wir sprechen jetzt nicht über die Implementierung der APE-Versionen auf Server seit. [SPEAKER_00]: Was soll man eigenes Thema? [SPEAKER_00]: Die macht ja auch einen anderes Team oder die Firma im schlimmsten Fall mit, da du gar nichts zu tun hast.
[SPEAKER_00]: Ganz genau. [SPEAKER_01]: Das ist ein riesen Problem, oder es ist auch sehr herausfordernd. [SPEAKER_01]: Was ziemlich viele Kleinen SDKs machen ist, du kannst konfigurieren, welche Version du nutzt. [SPEAKER_01]: Oder du erstellst dir einen zweiten Kleint, der dann Version 3 und nicht Version 2 nutzt. [SPEAKER_01]: Das Riesenproblem ist, was manche Leute am Anfang versuchen und ich habe es auch versucht, dass man sich Request und Re-Spons objekte intern über die Version teilt.
[SPEAKER_01]: Lass das sein, klasse es wirklich sein. [SPEAKER_01]: Trend bitte, falls ihr Version 2 von der Gere API nutzt, baut die Version 2. [SPEAKER_01]: Und falls sie Version 3, dann baut alle objekte neu. [SPEAKER_00]: Und wie war das jetzt mit der Jera API? [SPEAKER_00]: Kann ich meine alten Funktionen weiterhin so aufrufen und du hoffst im Hintergrund nur die andere die neue Search API auf? [SPEAKER_00]: Oder ist es nicht möglich, da kompatibel zu bleiben?
[SPEAKER_00]: Also abwärts kompatibel sozusagen. [SPEAKER_01]: Ja, und nein. [SPEAKER_01]: Warum ja und nein? [SPEAKER_01]: Jetzt kommt noch eine Ebene der Komplexität und zwar habe ich zwei Versionen, das Klein ist die Case. [SPEAKER_01]: Ich habe eine Version, diese Alt ist und eine neue Version.
[SPEAKER_01]: In der neuren Version habe ich die API ist für [SPEAKER_01]: Da konnte ich einfach nur den API Endpoint ändern und es hat sich für die Leute, die die neure kleinen SDK-Version nutzen, nichts geändert, aber das Transparent, die mussten einfach nur abgraden. [SPEAKER_01]: Aber für die Leute, die das alte SDK nutzen, wo ich noch eine Library hatte, die entweder für und Prämis und für Cloud Funktioniert hat, konnte ich es nicht.
[SPEAKER_01]: Transparenz machen Weil, Achtung der API-Einpoint-Naturen nicht nur im Cloud Offering abgeschaltet wurde und die Leute, die anderen on-premise-Girohosten, die haben natürlich einen allen Endpoint noch, da wurde nichts abgeschaltet und deswegen konnte ich da kein Breaking Change machen. [SPEAKER_01]: Also das ist dann noch mal eine andere Komplexität.
[SPEAKER_01]: Falls ihr ein Produkt habt oder ein Produkt anbinden wollt, was mehrere Version hat, GitHub Enterprise, GitLab, gibt's ja alles, also ein Prämis und auch in der CloudVision, kleiner Tipp, Trend das sofort in eure Codebase, weil auch wenn ihr sagt, ja, die API sind der gleich, nein, sie sind sie nicht. [SPEAKER_01]: In der Regel haben die CloudVisione andere APIs oder kleine Twiegs, die anders sind.
[SPEAKER_01]: Und was ich auch als Best Practice dann bewert hat, wenn ihr solche Änderungen macht, zum Beispiel die Änderung von Debricated API Endpoints, überlegt euch eine ordentliche Release Strategie eures SDKs, denn da hat sich zum Beispiel auch Semantic versioning bewährt, wo man in der Regel drei Versionszahlen hat, eine Major, Meiner und ich hab eine Backfix versione oder ähnliches. [SPEAKER_01]: Das bedeutet, wenn man die erste Version ändert, hat man einen Breaking Change in der SDK.
[SPEAKER_01]: Wenn also Leute abdaten, müssen ihr einen Code anfassen. [SPEAKER_01]: Wenn man die zweite Version zumer ändert, dann ist der in der Regel nur ein Feature update. [SPEAKER_01]: Und das die dritte Version ist nur ein Backfix update. [SPEAKER_01]: Da kann man dann so vorher hier Semantic Version dient Supportet. [SPEAKER_01]: Kann man dann wirklich sehen, okay, das ist jetzt ein Update.
[SPEAKER_01]: Da muss ich ein bisschen mehr Arbeit reinstecken oder da kommen nur Features und dann nur Backfixes. [SPEAKER_00]: Da haben wir zum Beispiel bei unserem Intenz jetzt mal SDK, aber zu unserem Konnektoren, wie wir in der letzten Episode gesprochen haben, wenn wir von Apple oder Spotify reverse engineered der APIs anbinden, da haben wir natürlich den Vorteil, dass wir so nur die letzte Version gilt. [SPEAKER_00]: Das heißt, es ist alles ein Breaking Change.
[SPEAKER_00]: Man kann einfach Release und man braucht immer die neue Stabilisation. [SPEAKER_00]: Ist natürlich auch eine herangehen zu weiße, weil wir um keine andere Wahl, weil wir alle es rüber's entschieden müssen.
[SPEAKER_00]: Ja, man sieht das ja, wenn keine Ahnung, Microsoft irgendwelche extrem alten Dinge noch weiterhin verbordet oder sich des Zahlen lässt, aber das war halt auch immer deren Stärke, dass sie einfach Sachen zehn Jahre, 15 Jahre weiter hin zu borten und musst du halt auch wissen, was deine Kunden wehrt sind und wie viel sie dem entsprechende Zahlen um noch irgendwelche alten
[SPEAKER_01]: Wenn wir schon von Herrn Prämis und Klaus sprechen und Semantic-Verschning kommen, kommt ein Thema auch noch mal zu gute, welche Versionen des Tools, was sie anbindelt, zu portet, die eigentlich. [SPEAKER_01]: Nehmen wir mal Elastic-Surge. [SPEAKER_01]: Elastic-Surge wird selbst weiterentwickelt und Elastic-Surge selbst zu portet nur. [SPEAKER_01]: Ich glaube, die aktuellste und die vorherige Version aber nicht drei Versionen von früher.
[SPEAKER_01]: Überlegt euch, ob euer SDK dem End auf Live Zyklus des Wendors folgen soll. [SPEAKER_01]: Das hilft euch natürlich sehr relativ schnell alte Zipfer abzuschneiden. [SPEAKER_01]: Weil ihr sagt ihr folgt einfach dem Release Zyklus des Wendors. [SPEAKER_00]: Ja, wo muss man denn nicht sowieso folgen, weil wenn, wie gesagt, jetzt bei Chirror, wenn dieses Ding deprecated ist, dann ist es ja automatisch bei dir auch deprecated, oder du musst es ändern.
[SPEAKER_00]: Also du folgst ja automatisch immer dem Zyklus. [SPEAKER_00]: Nee, du kannst ja auch noch sagen, okay, nur weil es deprecated ist, heißt es ja nicht dass es rümuf wird. [SPEAKER_01]: Ja, und du kannst, wenn es Ende auf Live ist, dann ist es ja meistens weg.
[SPEAKER_01]: Ja, aber speziell für Datenbank zum Beispiel, die Self-hostet werden, weißt du selbst, [SPEAKER_01]: Natürlich kannst du dann auch vielleicht Enterprise Support vorlangen und dir bezahlen lassen, dass du noch eine Version von 1970 mithens. [SPEAKER_01]: Also das geht auch. [SPEAKER_00]: Es stimmt natürlich. [SPEAKER_00]: Ist auch gut des Geld, wenn man sich den Schmerz an tun will, kann man meistens sehr viel Geld dafür verlangen.
[SPEAKER_01]: Meine Erfahrung ist folgen und zwar hab ich mehrmals ihm als bekommen, so nach dem Motto. [SPEAKER_01]: Ja, das funktioniert nicht mehr mit der alten Version von Gira und so weiter, [SPEAKER_01]: Ja, aber das geht nicht. [SPEAKER_01]: Und wir brauchen das unbedingt. [SPEAKER_01]: Ich so, okay, also du hast jetzt zwei Möglichkeiten entweder. [SPEAKER_01]: Kannst du eine ältere Version, das kleint, es ich käsent nutzen.
[SPEAKER_01]: Ja, aber das, in den Endpunkt, ich implementiere mich schon, ja, okay, gut. [SPEAKER_01]: Oder, ich kann den Angebot schicken. [SPEAKER_01]: Ja, ja. [SPEAKER_01]: Da kam dann nicht mehr viel und dann war auch stille. [SPEAKER_01]: Aber wir waren bei dem Thema Cold-Generierung. [SPEAKER_01]: Wir sind gerade ein bisschen abgedrückt. [SPEAKER_01]: Wir sind auch eine lustige Thema. [SPEAKER_01]: Wir haben die zwei Extremel besprochen.
[SPEAKER_01]: Zwar haben wir gesagt, wir generieren alles und am Handarbeit. [SPEAKER_01]: Und jetzt ist die Frage, wo wir aufgangsied extrem immer gut nie extrem sind. [SPEAKER_01]: Ich mag gut, oder? [SPEAKER_01]: Wir machen mittelb dich. [SPEAKER_01]: So, man mal gucken, was die SPD und die CDU jetzt hier der Code-Genehrüben sind. [SPEAKER_00]: Oh, das die Mitte ist, ist eine andere Frage. [SPEAKER_00]: Aber bitte, bevor wir das politische Appengleiten. [SPEAKER_00]: Was ist deine Mitte?
[SPEAKER_01]: Es gibt noch zwei Mittellwegungen. [SPEAKER_01]: Und zwar ist der, ist die eine thematik, ein Kast im Code-Generator. [SPEAKER_01]: Zum Beispiel die Firmen, Stripe, Elastic oder Twillio vorfolgen diesen Ansatz. [SPEAKER_01]: Was die haben, ist, die haben oft eine eigene Art ihre API zu spätzefizieren.
[SPEAKER_01]: Eleste hat zum Beispiel seine API in Type-S-Gübspezifiziert und zum Custom Format, dieses Type-S-Gübsbüb wird danach Jason kompiliert und dann haben die sich einen Tool geschrieben, womit die ihren ihr Custom Jason Format dann wiederum in andere SDK-Sprachen übersetzen.
[SPEAKER_01]: Kann man machen, muss man nicht, ist natürlich ziemlich viel Custom-Tooling zu maintainen, [SPEAKER_01]: Ich denke, wenn du eine Engineering-Filmer bist, dann kann man das schon tun, aber hat halt Trade-Offs. [SPEAKER_01]: Das war die Cast im Code Generatoren, die du selbst schreibst. [SPEAKER_01]: Und jetzt kann man sagen, hey, gibts da nicht schon eine Firma, die so Cast im Generator irgendwie selbst geschrieben hat und Release hat.
[SPEAKER_01]: Die Alphabet ist natürlich ja, es gibt zwei Firmen und zwar sie das, zwei Big Tech Firmen und zwar einmal Amazon und einmal Microsoft. [SPEAKER_01]: Was die gemacht haben, die haben sich gedacht, es gibt so viele Standard, ich mache neun Standard, um alle Standard dazu verein. [SPEAKER_01]: Was haben die so gut gemacht, neust du auf dem Markt geworfen. [SPEAKER_01]: Und zwar hat AWS eine Spezialifikation bzw. [SPEAKER_01]: ein Tool namens Smithy.
[SPEAKER_01]: Ja, wie spricht man uns Engeschaut? [SPEAKER_01]: Smithy. [SPEAKER_01]: Smithy ist eine Interface-Differnischen Language und du definierst halt deine API in einer neuen Sprache, [SPEAKER_01]: Der macht dann eine kleinen Code-Generierung für Types-Glip-Go, Rust, Ruby, Kotlin und so weiter und so. [SPEAKER_01]: Das cool ist, dass er natürlich auch die Server mit generiert, was wir ja aber und Rust, also du hast nicht nur das SSEK so noch die Server.
[SPEAKER_00]: Aber wo ist es da da Unterschied zu Open API? [SPEAKER_00]: Das ist nur eine andere Spezifikation und andere Generator. [SPEAKER_01]: Genau, also du definierst deine API in einer Sprache, die haben versucht, ein bisschen die Downsites von Old MAPI zu umgehen, das was ich gerade erwähnt hatte, das zu z.B. [SPEAKER_01]: mit Jason oder Yamel versuchst deine API zu schwitzefizieren und die damit Jason Schiemer Wallidierst.
[SPEAKER_01]: Was seid irgendwie die nur so halb, gut geht bei komplexen Datenschupuren, weil es ist halt eine Schema-Vallidierungssprache und keine Datenschuputefinitionssprache. [SPEAKER_01]: Und es ist missi, löst halt diese Probleme und sagt, okay, pass mal auf, ich baue eine interfästige Fündischen language und mit zum Parme Fitchers. [SPEAKER_01]: Microsoft hat sowas ähnliches gemacht, nennt sich Type-Sback, da spezifizierst du die API in den Type-Script und kann es auch Kram ausgenregen.
[SPEAKER_01]: Ich meine, die Downsites ist auch schon irgendwie klar, du musst eine neue Spezifikationssprache lernen und du musst deine Spezifikation in der Regel verhandschreiben, glaubst du wie gesprungen nicht mal, kommt halt darauf an, was du so liebst, aber das sind so die Möglichkeiten, die ganzen Tools verlinkt mir natürlich auch in den Show-Nots, weil ich das mal ansehen möchte, aber die AWS APIs werden zum Beispiel so generiert.
[SPEAKER_00]: Jetzt wenn du so eine spezifikation schon hast, z.B. [SPEAKER_00]: Tipps weg zum Beispiel. [SPEAKER_00]: Jetzt kannst du dich zurückgerinnern, an unsere Episode 126, wo wir mit Sebastian Balkmann über testigen gesprochen haben, wo er er gemeint hat, test sollten noch die einzigen Dinge sein, die man selbst schreibt, alles andere kann man generieren lassen. [SPEAKER_00]: Ist es da jetzt auch so, oder kann er diese Dinge dann, die Däste auch noch mit generieren?
[SPEAKER_00]: Wenn wir dann schon die ganze spezifikation geschrieben haben. [SPEAKER_00]: Das ist ein sehr gute Frage. [SPEAKER_01]: Zugegeben, weiß ich nicht, ja, ich habe jetzt noch nicht jeden Generator getestet, aber was ich dir sagen kann ist, testing eines SCKs ist gar nicht so einfach. [SPEAKER_01]: Natürlich kannst du in der Dokumentation, die Response, die auf den Dokumentation dargestellt ist kopieren und dann als Mock nehmen, das ist natürlich perfekt.
[SPEAKER_01]: Und somit kannst du dir in kestigen eigenen Mock hat der DPS-Wehr machen und dann dann SCK aufrufen und so weiter und so vor. [SPEAKER_01]: Du merkst schon, dass man sich vorhin erzählt hat mit der Flexibilität mit der Kolla-Injection. [SPEAKER_01]: Da wird das noch einmal zu deinem Vorteil, weil wenn du den Kolla-Injecten kannst, dann kannst du dem Kolla sagen, wenn du nicht aufbittet dieses Mark-Object.
¶ Testing von Client SDKs
[SPEAKER_01]: Das bedeutet, die Flexibilität, die den Power User gibt, kommt dir beim Testing wieder zugute. [SPEAKER_01]: Aber das sind natürlich dann nur in den Arten, weil sie Juni-Beziehungsversehen Integrationssses, das Problem ist, aber das du mit realen System Arbeitest wo auch Software-Engines daran arbeiten, die auch Bucks schippen können und so weiter und sofort. [SPEAKER_01]: Deswegen ist die Frage, machen hier nicht mal Integrationssses sind.
[SPEAKER_01]: So und jetzt kommst, was ist ein Integrationstest bei einem kleinen SDK? [SPEAKER_01]: Natürlich arbeitet du damit einem Stat-Fools-System und nehmen wir mal wieder, dass sie hier oder dass sie hierher. [SPEAKER_01]: Nehmen wir wieder das Gehrer-Projekt, das bedeutet, ich möchte jetzt die Funktion create issue testen.
[SPEAKER_01]: Ja, im Endeffekt brauche ich dann eine funktionierende Gehrer-Instanz und Gehrer hat jetzt zum Beispiel ein Prämis abgeschaltet und kannst du nicht mehr kaufen, oder vielleicht wenn du ganz viel Geld auf dem Tisch legst, vielleicht schon noch, man weiß es nicht. [SPEAKER_01]: Ab jeden Fall brauchst du dann Cloud Environment, wo du natürlich jede Nacht oder jeden Testrand einen Ticket erstellst. [SPEAKER_01]: Und irgendwann läuft ja halt das Freed hier aus, ne?
[SPEAKER_01]: Oder wenn du irgendeine Instanz hast, die du und Prämishausen kannst und GitLab oder so was? [SPEAKER_01]: Dann musst du natürlich auch bei deine Integrationssisten socker Container hochfahren. [SPEAKER_01]: Der muss automatisch konfiguriert werden. [SPEAKER_01]: Du musst dummy data beim Docker.
[SPEAKER_01]: hochfahren beim Container hochfahren mit inzirten, damit du auch schon eine Testbasis hast, damit du nämlich deine GetRequest so get all pull request oder merge request heißt es ja bei GetLap, get all merge request, damit du schon eine Datenbasis hast.
[SPEAKER_01]: Du merkst schon, allein dieses Testsetup ist gar nicht so einfach und fordert auch echt viel Resourcen und eine gute CI und so weiter und ich kann dir aus eigener Praxis sagen, [SPEAKER_00]: Aber eigentlich, wenn man das so holistisch wie es so schön immer heißt denkt, hätte man ja damit eigentlich auch schon eine gute Dokumentation. [SPEAKER_00]: Also wenn du diese ganzen Example bei Spiele, was eine gute Dokumentation habt, eigentlich auch als Dests, hast bzw.
[SPEAKER_00]: vielleicht so ein komplettes Daterset, macht es, wie er hat mir damals bei meinem Maisco-Elbuch so eine Flughafen-Datenbank, als Destset gehabt und haben dann alles anhand diese Destsets gemacht. [SPEAKER_00]: Und da kann man dann alles aufrufen und in der Dokumentationen sind dann auch noch schön, diese Exampe sind die, die man danach aufrufen kann, das wäre holistisch eigentlich die das perfekte, was man sich so als Entwickler in eigentlich erwartet, die perfekte Experience.
[SPEAKER_01]: Ein 100 Prozent würde ich sofort unterschreiben, nur da ist ja die gerade die Frage dieses kennst du den beriff Jack Shaving? [SPEAKER_00]: Ja, natürlich. [SPEAKER_00]: Was sagt Jack Shaving? [SPEAKER_00]: Für die Leute, damit du das für die Hörerschaft mal erklärt. [SPEAKER_00]: Ich kann sie an einem Beispiel erklären. [SPEAKER_00]: Du hast jetzt gerade kürzlich unsere API verwendet bei OpenBotcast.
[SPEAKER_00]: Für alle, die dir nicht wissen, was das ist, einfach eine Episode zurück springen. [SPEAKER_00]: Und eigentlich hätte es tu einfach in deinem Go-Code einen Zimplan Get call machen können. [SPEAKER_00]: Und jetzt hast du ein ganzes SDK geschrieben, weil du immer weiter runter bist, es umvergleicher gemacht hast und die Vergägange bist. [SPEAKER_00]: Das ist jak schäwin. [SPEAKER_01]: Genau, man entwickelt eine Sache und dann denkt man auch, dass wir cool.
[SPEAKER_01]: Und dann geht man immer weiter tiefer, bis man sich um eine Sache kümmert, die gar nicht mehr da ein Hauptproblem ist. [SPEAKER_01]: Und was warst du gerade mit der Dokumentation beschreibt? [SPEAKER_01]: Und das mit dem Integration testen und so weiter geht's um ein bisschen in die Richtung. [SPEAKER_01]: Ja, die tests aus deinen Integrationstest, dass du die dann automatisch in die Dokumentationmörd schon klar blabber.
[SPEAKER_00]: Aber das ist der Unterschied, warum dann Stripe eben 20 Prozent des weltweiten Geldtransfers im I-Kommers hat. [SPEAKER_01]: Ja, vielleicht und sei denn auch gegönnt. [SPEAKER_01]: Und das ist nämlich genau die Komplexität bei der ganzen Thematik. [SPEAKER_01]: Du sagst grad nicht nur Integrations-Testing von Setvon System, ist unglaublich schwierig, sondern auch die Dokumentation.
[SPEAKER_01]: Einster Best Breakfast, die ich wirklich mitgeben kann, packt in den Scal Code in das Repository, einen Folder, also in den Ordner, den nennt sich enteksarmpils und da packt ihr wirklich bei Spülern. [SPEAKER_01]: Da packt ihr Running Code rein, wie man dieses Klein SDK nutzt für die Authentifizierung, um ein Ticket zu erstellen und zu weiter und zu futzglasische Endpunkte. [SPEAKER_01]: Und ihr glaub gar nicht, wie sehr das die Adoption aus SDKs fördert.
[SPEAKER_01]: Das ist unglaublich. [SPEAKER_01]: Denn die Leute gucken da rein, example, zu klicken, machen Kuppy-Pass und gehen einfach weiter. [SPEAKER_00]: Wenn wir mal kurz auf die User Seite, weil ihr wir gesagt, das ist zwar die beste Developer Experience, die man haben kann, aber gibt es auch irgendwelche Situation, wo es keinen Sinn machten SDK zu verwenden.
[SPEAKER_01]: Ja, ja, natürlich, also mindeffekt würde ich sagen, wenn du wirklich nur ein API-Koll machen musst, oder ein oder vielleicht zwei. [SPEAKER_01]: Und wenn du vielleicht sogar noch ohne Auto-Defizierung ist, also anonym. [SPEAKER_01]: Weil dann brauchst du dir nicht so ein bloßes SDKs reinholen. [SPEAKER_01]: Ich meine speziell in der Zeit von Zupply Chain, Attacken und Co. [SPEAKER_01]: Ist jedes Update auch ein politisches Risiko.
[SPEAKER_01]: Und das muss natürlich auch alles kompliert werden. [SPEAKER_01]: Und Pippa Po, deswegen, es gibt Fälle, da kannst du dir einfach... [SPEAKER_01]: Teile aus dem SCK kopieren und dann bei dir rübernehmen, anstatt die Dependenzie reinzuholen. [SPEAKER_01]: Zum Beispiel habe ich vorhin den Alert Manager von Prometeus erwähnt, der macht das zum Beispiel. [SPEAKER_01]: Der hat nicht GoGirror verwendet, der hat sich einfach Quellcode von uns kopiert und leicht angepasst.
[SPEAKER_01]: Und woher weiß ich das, weil der genau dieselben die Pendenzies hat, weil da ich nutze eine Rependenzie, die ist sehr, ich sag mal sehr sichtbar und dann merkt man sofort, okay, dieser Code von es kopiert.
¶ Wann macht es keinen Sinn, ein Client SDK zu nutzen?
[SPEAKER_01]: Das ist völlig okay, das ist super. [SPEAKER_01]: Also ich freue mich, wenn wir Leute inspirieren können, das ist halt so, wenn du wirklich nicht viel von der API nutzst, sondern und wenn die API nicht kompliziert ist.
[SPEAKER_00]: Ich hatte auch gerade kürzlich den Case, hab mir ein SDK angesehen und das Ding war einfach so umfangreich, obwohl ich nur eine API ansprechen wollte und alleine die Definition der ganzen Parameter war so komplex und bei mir waren die alle fix haben sich nie geändert und das war einfach ein Get request und so was macht man natürlich einfacher ohne der ganzen Debennensee, da stimmt mir dir vollung ganz zu.
[SPEAKER_01]: Ja, es gibt aber auch Fälle, da sagst du, ich mach nur einen API-Koll, will aber an SDK haben, wie zum Beispiel, wenn du mit S3 irgendwie ein Objekt schreiben möchtest, also dem Objekt Storage, dann musst du deinen Request Signieren und solche thematigen. [SPEAKER_00]: Klar, wenn du auch AeroHandling sind, wir wieder dabei, aber bei einem Simple and Get Request ist es dann schon fraglich.
[SPEAKER_00]: Und ich sehe das ja auch immer so pragmatisch, schnell implementieren, wenn es dann weitergeht und man doch vielleicht mehr von der API verwendet kann man immer noch auf das SDK umsteigen. [SPEAKER_00]: Also, das ist ja selten Problem. [SPEAKER_00]: Klar. [SPEAKER_01]: Du hast ja gesagt, wir gehen auf die User Seite eine Sache, die die User natürlich auch mal evaluieren ist das ganze Ding überhaupt noch maintaint. [SPEAKER_01]: Ist das Ding überhaupt nachhaltig?
[SPEAKER_01]: Und da muss ich aus maintainer Seite mal sagen, warum schreibst du dieses SDK und nutzt zu dieses SDK eigentlich selber? [SPEAKER_01]: Also, wenn du die Störpartis zur Fetteldurrat anbindest, nicht mehr nutzt, da kann ich das eigene Erfahrung sagen und verhaltet, dass es die Käre relativ schnell, denn du hast halt kein Anmehrungsfall mehr an.
[SPEAKER_01]: Natürlich kann es ums Haus weitertreiben, aber irgendwann überholte ich das privater Leben oder den Beruf und so weiter ums Vordenliches ums Hausbrötterk. [SPEAKER_01]: Macht euch da keine schlechten Gedanken, so ist das halt im Ums Hausbereich. [SPEAKER_00]: Nachhaltige, mit Händen, ist es immer ein schwieriges Thema. [SPEAKER_00]: Und wenn man sich mal die Beinen sie reingeholt hat und dann irgendwas die Backen muss, das kann dann durch dann sehr aufwendig sein.
[SPEAKER_00]: Weil man hat ja keine Ahnung, was dieses SDK macht, du musst dann wirklich sehr tief gehen. [SPEAKER_00]: Also, deshalb, da trät auf ganz klassisch, wie es immer ist bei die Beinen siehst. [SPEAKER_00]: Aber ich kann auch sehr viele SDKs, die halt sehr veraltet sind.
[SPEAKER_00]: Ihr gut, aber du verschebst halt nur einen Time Investment, wo du es bei der Implementierung nicht als Wollungs-SCK reingeholt hast und super schnell warst, verschebst du das Time Investment später auf die bagin. [SPEAKER_00]: Ja, aber das ist nicht unterschreiben, dass es eins zu eins dieser Bezeit ist vom Investment aber grundsätzlich, du kannst es auf Späte verschieben, ganz klar.
[SPEAKER_01]: Ich hoffe, es ist natürlich, wir haben jetzt die Leute nicht abgeschreckt, keine Kleine SDKs zu schreiben. [SPEAKER_01]: Denn in meisten Firmen gibt es nämlich auch den Professional Job als SDK-Engine. [SPEAKER_01]: Also, wer zum Beispiel in einem Produktarbeitet, was eine API hat oder wo man Infrastruktur steuert, dann gibt es SDKs nicht nur Sprach SDKs, sondern zum Beispiel, wenn du auch ein Terraform provider schreibt, dann ist das ja auch eine Form von SDK-Development.
[SPEAKER_01]: Und das ist sehr ähnlich zu der Sache, die wir in Frau beschrieben haben. [SPEAKER_00]: die SDKs bauen. [SPEAKER_00]: Ich glaube, wir zuge ungekehrt sehen, es sollten Menschen viel mehr OpenSourcing, weil es schreibt ja jeder SDKs die ganze Zeit. [SPEAKER_00]: Also wenn du eine API implementierst, schreibst du eine SDK. [SPEAKER_00]: Bei uns hat es mit der Apples Spotify-Schnittstelle genauso angefangen, mittlerweile verwenden genug Leute unsere Konnektoren.
[SPEAKER_00]: Wir haben uns auch gedacht, es sind nur ein paar Rapper, eigentlich, die wir da geschrieben haben. [SPEAKER_00]: Aber es wird trotzdem verwendet, Leute freuen sich darüber. [SPEAKER_00]: Das heißt, wenn man ein Rapper mal schreibt von der API, das ganze Open-Soursen auch wenn es nur ganz billig ist, einfach und vielleicht wächst es mit der Zeit und dann hat man für die Open-Sours Community was gemacht.
[SPEAKER_01]: Und ich euch mitgeben kann, ich habe super viel über Code Arch der Tursch gelernt, super viel über Library Design, super viel über UseCases von Leuten, was sie dann mit dem Tool machen. [SPEAKER_01]: Ich kann es wirklich nur empfehlen, ist es aber zu stressig, ja, ich bin ehrlich, ich bin halt, die man der lässt sich von so einer so stressen, wenn du, ich hoffe du bist halt ein bisschen gelassener.
[SPEAKER_01]: Aber zum Thema Kleint, SDK, der will auch mit haben, wie halt super viel Themen noch gar nicht berührt, aus Zeitgründen und natürlich komplexetetet gründen. [SPEAKER_01]: Ich habe aber so ein paar Themen, die wir jetzt noch nicht berührt haben, wie z.B. [SPEAKER_01]: Wie hält man eigentlich die Produktentwicklung und die SDK Entwicklung in einer Firma, in Syng oder [SPEAKER_01]: Was passiert eigentlich, wenn vorhandene SDKs gereaust werden?
[SPEAKER_01]: Ich hatte vorhin das Beispiel mit S3 genannt, was in der Regel die Standard API für Object Storage ist, ist bei OpenAI nicht anders, services wie DeepCyke oder Olauma oder AWS Battlerock sind API kompatibel, also da könnt ihr das OpenAI SDK nehmen und mit DeepCyke sprechen, weil die API kopiert.
[SPEAKER_01]: Wir haben nicht darüber gesprochen, wie der Alltag eines SDK-Mentainers aussieht, also im Bezug auf Anfragen beantworten, Kommunikation mit User, dass man abtodäht mit den Sprach-Ecosystem bleibt und so weiter und so fort. [SPEAKER_01]: Wir haben nicht darüber gesprochen, ob LL-Ms zur Genereierung von SDK-Sovänels werden können. [SPEAKER_01]: Wollffgang jetzt habe ich es auch genannt, dass CMA-EI so mir leid.
[SPEAKER_01]: Da gibt es wirklich noch echt viel zu besprechen, auch wenn das Produkt nicht API first ist, wie geht man damit um und [SPEAKER_01]: Gibt's da wahrscheinlich viele Rabbitholds und deswegen möchte ich dich jetzt bitten, einfach mal in die Discordkommel zu kommen und mir deiner Lieblingsdori eines SDKs zu erzählen und vielleicht auch mal deine Horrorstory.
[SPEAKER_01]: Eine Sache, die dich richtig ergal die dir in gewissen Geblieben ist, da wo du vielleicht eine SDK genutzt hast, gedacht, dass sie ja spart das super viel Arbeit und damit effect hast du drei Wochen verbrannt, weil dein Back ist und damit Helena den ich gefix hat. [SPEAKER_00]: Wie du jetzt gesagt hast, ich will von dir wissen, ich dachte, du redest mit mir, aber du redest natürlich wieder nur mit unseren Hörern innen.
[SPEAKER_01]: Hofer, ich hatte jetzt gerade hier eine Stunde und 15 nur Augen für dich. [SPEAKER_01]: Deswegen möchte ich mich jetzt auch um und gerne an die Community mittlerweile wenden.
[SPEAKER_00]: Ah, dann vielen Dank an dem wir deine Einsichten in deinen doch sehr heartess, client, SDK, Entwicklerleben und du bekommst von mir jetzt ein bisschen mitleit für das, dass du so viele Anfragen und Ischers bekommst und auch ein kleines Dankeschön [SPEAKER_00]: Bis so investiert, über irgendwelche Eta F sicherlich.
[SPEAKER_01]: Ja, wie bin ich mit den vielen E-Mails umgegangen, relativ einfach vielerlich davon gelöscht, in der Hoffnung, habe ich einen Nachzubegeschlagen und am nächsten Morgen habe ich schon vergessen. [SPEAKER_01]: Also auch immer Augen aus dem Sinn. [SPEAKER_01]: Aber irgendwann hatte ich dann doch mal zwei, drei Stunden, habe ich gedacht, komm. [SPEAKER_01]: Aber im Endeffekt stelle ich mir auf die Frage, warum soll ich ja Zeit investieren, um so großen Fieren zu helfen?
[SPEAKER_01]: Weil sich auch nicht. [SPEAKER_01]: Na ja, wenn mir, wer diese doch schon sehr tiefgründigung psychologische Frage waren, wo man kann, da bitte ich mal, um meine Therapie zu. [SPEAKER_01]: Das war es für uns. [SPEAKER_01]: Wir hören uns nächste Woche. [SPEAKER_00]: Bye, bye. [SPEAKER_00]: Ciao. [SPEAKER_00]: Und das kleine Tipp von mir noch ganz nachgedeckt, Episode 175 haben wir Opensorsgeschichten geschrieben.
[SPEAKER_00]: Also wenn Sie nicht geschrieben, wir haben sie eigentlich gelesen. [SPEAKER_00]: So zu sagen, gerne mal da reinhören, wenn ihr euch für Opensors interessiert. [SPEAKER_00]: Und jetzt endgültig. [SPEAKER_00]: Ciao.
