WEBVTT

00:00:00.000 --> 00:00:03.190
>> In Ordnung. Hallo.
Wie geht es allen?

00:00:03.380 --> 00:00:08.280
Vierter auf dem Weg durch
unser Xam Summit hier.

00:00:08.280 --> 00:00:12.870
Also ja, ich bin Shane
Neuville. Richtig geschrieben?

00:00:12.870 --> 00:00:17.715
ja. Shane Neuville. Ich bin
mit dem Xamarin Forms-Team.

00:00:17.715 --> 00:00:20.280
Bevor Sie mit Xamarin Forms

00:00:20.280 --> 00:00:23.490
Ich habe eine anständige Menge gearbeitet
mit dem ReactiveUI.

00:00:23.490 --> 00:00:26.160
Also versuche ich immer noch,
dass so viel wie ich

00:00:26.160 --> 00:00:29.310
kann sogar innerhalb von Microsoft.

00:00:29.310 --> 00:00:35.970
Das Gerede hier wird also
über Reaktive Erweiterungen,

00:00:35.970 --> 00:00:39.990
speziell nur die Konzepte
hinter dem Antrieb reaktiv,

00:00:39.990 --> 00:00:42.990
wie sie sich den Ereignissen nähern.

00:00:42.990 --> 00:00:44.975
Dann später wird Michael

00:00:44.975 --> 00:00:47.600
ein ausführlicherer Vortrag über
Mapping über wie

00:00:47.600 --> 00:00:52.040
MVVM und wie man stromversorgt
Ihre Rahmenbedingungen dafür.

00:00:52.040 --> 00:00:56.055
Um uns damit zu beginnen,

00:00:56.055 --> 00:00:59.305
wie viele Personen verwendet haben
Reaktive Erweiterungen,

00:00:59.305 --> 00:01:01.350
nur um zu bekommen, "Oh, hey. Das ist schön."?

00:01:01.350 --> 00:01:02.895
Jedes Mal, wenn ich fragte,
es gibt mehr Hände.

00:01:02.895 --> 00:01:08.040
Das ist also ein gutes Zeichen. Mal sehen.

00:01:08.040 --> 00:01:12.250
Also, wie viele Leute denken, ich spreche
über JavaScript und ReactJS?

00:01:12.250 --> 00:01:15.250
Dieser Kerl da drüben, er? Alles klar.

00:01:16.130 --> 00:01:20.150
So einige der Volksmund
begann, auch aufzuräumen.

00:01:20.150 --> 00:01:23.450
Glaubt jemand, dass ich
Sprechen Sie über beobachtbare Sammlungen

00:01:23.450 --> 00:01:26.940
für etwa eine Stunde? Nein. Alles klar.

00:01:26.940 --> 00:01:29.990
Also entlang, dass dieser Rahmen

00:01:29.990 --> 00:01:33.530
wird etwas weniger
relevant, während die Gespräche weitergehen.

00:01:33.530 --> 00:01:37.580
Es gab definitiv
einige Verwirrung, die begann.

00:01:37.580 --> 00:01:39.980
Ich erinnere mich also an die erste
Zeit, die ich von ReactJS gehört habe.

00:01:39.980 --> 00:01:42.955
Ich habe RxJS für einige Zeit getan.

00:01:42.955 --> 00:01:45.380
Es war etwa fünf Minuten
ins Gespräch,

00:01:45.380 --> 00:01:48.695
Ich erkannte, dass wir
das gleiche Gespräch.

00:01:48.695 --> 00:01:51.890
Es gibt also nicht wirklich

00:01:51.890 --> 00:01:55.920
jede Beziehung dort außer
die ersten fünf Buchstaben.

00:01:57.410 --> 00:02:01.105
Die Winkel hat begonnen
RxJS.

00:02:01.105 --> 00:02:03.260
So Ist Angular wahrscheinlich
synonymer

00:02:03.260 --> 00:02:05.870
mit RxJS an dieser Stelle, aber ja.

00:02:05.870 --> 00:02:08.810
Dann wird der nächste Bereich
wo Menschen geworfen werden

00:02:08.810 --> 00:02:12.305
hat mit der
ReactiveX und ReactiveUI,

00:02:12.305 --> 00:02:14.345
und wo diese Teilungspunkte sind.

00:02:14.345 --> 00:02:21.810
ReactiveX ist also
ein plattformagnostisches Konzept.

00:02:21.810 --> 00:02:25.760
Das ReactiveX-Konzept

00:02:25.760 --> 00:02:28.940
wird über die gesamte
mehrere Frameworks.

00:02:28.940 --> 00:02:35.390
Es gibt also einen Coco, einen Java, RxJS.

00:02:35.390 --> 00:02:40.515
Es gibt eine ganze Reihe von Sprachen
die Konzepte umsetzen.

00:02:40.515 --> 00:02:45.090
Dann ist ReactiveUI die MVVM-Schicht

00:02:45.090 --> 00:02:48.750
das hilft, ReactiveX zu schließen
in Ihre MVVM.

00:02:48.750 --> 00:02:52.905
Wenn also Menschen
im Gespräch über Reactive,

00:02:52.905 --> 00:02:54.705
sie/Sie reden nicht nur
über ReactiveUI.

00:02:54.705 --> 00:02:55.820
Sie sprechen hauptsächlich über

00:02:55.820 --> 00:02:59.090
funktionale reaktive Programmierung und

00:02:59.090 --> 00:03:02.810
wie beobachtbar basiert
Programmierparadigmen funktionieren.

00:03:02.810 --> 00:03:05.870
Der ReactiveX-Aspekt ist also

00:03:05.870 --> 00:03:10.655
weitgehend, was dieses Gerede ist
sich um,

00:03:10.655 --> 00:03:15.245
die ein guter Vorläufer sein wird
für Michaels Vortrag später.

00:03:15.245 --> 00:03:18.830
Warum hat es mich angesagt?

00:03:18.830 --> 00:03:20.240
Abwarten. Ich wahrscheinlich
vielleicht habe ich es nicht

00:03:20.240 --> 00:03:22.845
Hervorgehoben. Na bitte.

00:03:22.845 --> 00:03:29.300
Lassen Sie uns also aufschlüsseln, was
wir schauen uns hier wirklich an.

00:03:29.300 --> 00:03:32.420
Lassen Sie uns also über
Ereignisse wirklich schnell.

00:03:32.420 --> 00:03:35.570
Wie abonnieren Sie also
Ereignisse? Es ist alles ziemlich einfach.

00:03:35.570 --> 00:03:37.945
Wir alle haben diesen Code schon einmal gesehen.

00:03:37.945 --> 00:03:41.190
Bitte schön. Ziemlich aufregend, oder?

00:03:41.190 --> 00:03:46.085
So effektiv haben Sie
Ihren Herausgeber auf der linken Seite.

00:03:46.085 --> 00:03:48.260
Sie haben Ihre Veranstaltungen
und dann haben Sie

00:03:48.260 --> 00:03:50.990
Ihr Beobachter auf der rechten Seite dort.

00:03:50.990 --> 00:03:57.230
Damit es ein grundlegendes Ereignis ist
Benachrichtigungsmuster,

00:03:57.230 --> 00:03:58.760
Ihr grundlegendes Beobachtermuster.

00:03:58.760 --> 00:04:02.030
Dies war also die Syntax in C- 1.

00:04:02.030 --> 00:04:04.190
Effektiv ist die
man macht das gleiche

00:04:04.190 --> 00:04:06.395
als Boden, aber syntaktischer Zucker.

00:04:06.395 --> 00:04:10.725
Lassen Sie uns also aufschlüsseln, was ein Ereignis ist.

00:04:10.725 --> 00:04:14.005
Ein Ereignis ist also im Wesentlichen

00:04:14.005 --> 00:04:21.095
es ist eine Reihe von individuellen Dingen
die bei den Produktionsdaten auftreten.

00:04:21.095 --> 00:04:25.260
Also, wenn ich meinen Namen tippe,

00:04:25.990 --> 00:04:29.930
Ich tippe S, es gibt
ein Ereignis, h und Ereignis,

00:04:29.930 --> 00:04:33.635
a und Ereignis, ich denke, Sie sehen
wo all die hingehen,

00:04:33.635 --> 00:04:39.080
und die Darstellung
dieser Daten ist hier.

00:04:39.080 --> 00:04:41.990
Das ist also der Datensatz, der

00:04:41.990 --> 00:04:46.325
auf der Grundlage dieser Ereignisse aufgetreten ist.

00:04:46.325 --> 00:04:49.220
Das ist also Ihre Veranstaltung.

00:04:49.220 --> 00:04:51.455
Also nichts zu verblüffend
an dieser Stelle.

00:04:51.455 --> 00:04:55.340
Also Schritte, um die Beobachtung eines Ereignisses zu stoppen.

00:04:55.340 --> 00:04:58.000
Wie hören Sie also auf?
Ein Ereignis beobachten?

00:04:58.000 --> 00:05:00.600
Wir haben alle unbeobachtet
Front-Events, oder?

00:05:00.600 --> 00:05:01.760
Wie wir alle gesagt haben: "Hey, ich

00:05:01.760 --> 00:05:03.620
länger darauf achten, was
dieses Ding geschieht."

00:05:03.620 --> 00:05:08.960
In der Regel ist der Prozess
herauszufinden, wie

00:05:08.960 --> 00:05:11.720
, um das Ereignis abzubestellen, beginnt

00:05:11.720 --> 00:05:15.155
mit dem Kunden, der sich beschwert
dass Ihre App langsam ist.

00:05:15.155 --> 00:05:19.070
So die Kundendateien
ein Problem und sagt: "Hey,

00:05:19.070 --> 00:05:21.840
meine App verlangsamt sich nach der Verwendung.

00:05:22.670 --> 00:05:24.690
Was läuft schief?

00:05:24.690 --> 00:05:27.075
Je mehr ich es verwende,
es funktioniert nicht."

00:05:27.075 --> 00:05:30.550
Also zuerst, Sie glauben ihnen nicht.

00:05:31.400 --> 00:05:35.090
Du denkst, sie haben
so etwas wie installiert

00:05:35.090 --> 00:05:37.730
Dilbert Bildschirmschoner, der nimmt

00:05:37.730 --> 00:05:39.980
das gesamte Browserfenster
oder so ähnlich.

00:05:39.980 --> 00:05:42.290
Denn wenn Sie anfangen,
Ihre Bewerbung aufzurichten und

00:05:42.290 --> 00:05:44.795
Sie es für
ca. 15 Sekunden, es ist schnell.

00:05:44.795 --> 00:05:46.895
Alles funktioniert super.
Es ist ansprechbar.

00:05:46.895 --> 00:05:51.670
Sie haben herausgefunden, dass es perfekt ist.

00:05:51.670 --> 00:05:54.435
Also, Sie sind wie: "Alle
Richting. Ich glaube ihnen. "

00:05:54.435 --> 00:05:58.530
An diesem Punkt staubt man also
aus Ihrem Debugging-Hut,

00:05:58.530 --> 00:06:01.110
wiederlesen durch alle
Tests und Blogs, wie

00:06:01.110 --> 00:06:04.185
um Stapelrahmen zu analysieren,

00:06:04.185 --> 00:06:06.675
und sie beginnen, alles hineinzuziehen.

00:06:06.675 --> 00:06:08.145
Sie erhalten die Stack-DOMs.

00:06:08.145 --> 00:06:10.925
Sie sehen, wie lange
Objekte leben.

00:06:10.925 --> 00:06:13.055
Sie tun es immer und immer wieder.

00:06:13.055 --> 00:06:15.740
Endlich geht es runter.

00:06:15.740 --> 00:06:18.290
Es gibt viel Zustarren
Pfeile, die auf Dinge zeigen,

00:06:18.290 --> 00:06:19.940
und sich fragen, welche Objekte wichtig sind,

00:06:19.940 --> 00:06:22.280
und subtrahieren diese
von dort bis Sie

00:06:22.280 --> 00:06:23.900
endlich sehen, dass es

00:06:23.900 --> 00:06:25.595
war, dass eine Codezeile oder
Sie haben vergessen, das zu schreiben.

00:06:25.595 --> 00:06:27.990
Du bist wie: "Oh, Mann."
Dann, plötzlich,

00:06:27.990 --> 00:06:30.195
alles läuft super schnell.

00:06:30.195 --> 00:06:33.699
Also ja, ich meine, im Grunde,

00:06:35.210 --> 00:06:38.280
abonnieren und abbestellen.

00:06:38.280 --> 00:06:43.980
Das ist also die Semantik.

00:06:43.980 --> 00:06:48.345
Aber die semantische, es ist
ein wenig knorrig fühle ich mich wie.

00:06:48.345 --> 00:06:52.655
Weil man zum einen
denken Sie daran, zwei Dinge zu tun.

00:06:52.655 --> 00:06:55.130
Jedes Mal, wenn ich mich erinnern muss
mehr als eine Sache zu tun,

00:06:55.130 --> 00:06:57.850
du wirst scheitern
in der Regel in der Programmierung.

00:06:57.850 --> 00:07:00.695
Darüber hinaus müssen Sie
Ihre Verweise auf alles.

00:07:00.695 --> 00:07:04.040
Um also die Bedeutung
der zweiten,

00:07:04.040 --> 00:07:05.210
Sie brauchen alles, was in

00:07:05.210 --> 00:07:08.125
Ihr erster zu tun
alles in Ihrem zweiten,

00:07:08.125 --> 00:07:11.930
wie Sie müssen
diese Ideen zu erhalten.

00:07:11.930 --> 00:07:16.725
Im Allgemeinen also Eventmanagement
ist nur, es ist chaotisch.

00:07:16.725 --> 00:07:20.015
Es ist nicht der sauberste Typ
des Betriebs.

00:07:20.015 --> 00:07:21.290
Ich meine, wie sagen wir mal:

00:07:21.290 --> 00:07:26.600
Sie kümmern sich nur um
ein einzelnes Ereignis, z. B.

00:07:26.600 --> 00:07:28.465
wie wir alle diesen Code geschrieben haben,

00:07:28.465 --> 00:07:31.340
wo Sie wollen,
Abmelden von so etwas wie

00:07:31.340 --> 00:07:35.600
Sie wollten nur einen feuern.

00:07:35.600 --> 00:07:38.915
Sagen wir, wie eine erscheinende Seite
oder so etwas wie diese Art,

00:07:38.915 --> 00:07:42.140
so müssen Sie haben,
die Referenz oben

00:07:42.140 --> 00:07:45.830
so dass die Schließung
innen hat Zugang zu ihm,

00:07:45.830 --> 00:07:47.975
dann weisen Sie den Handler zu,

00:07:47.975 --> 00:07:50.255
und dann tun Sie
den Handler am Ende.

00:07:50.255 --> 00:07:55.280
Es gibt also diese sukzessive Zeremonie

00:07:55.280 --> 00:07:59.150
die von der
Satz von Vorgängen.

00:07:59.150 --> 00:08:03.050
Das sieht also vertraut aus. Ist
jeder hat diesen Code vorher geschrieben?

00:08:03.050 --> 00:08:05.790
ja? Alles klar.

00:08:06.930 --> 00:08:12.655
Also und hier bin ich immer noch
über Ereignisse zu sprechen.

00:08:12.655 --> 00:08:14.860
Das nenne ich meine
IObservable Infomercial.

00:08:14.860 --> 00:08:16.360
Wo Sie etwas tun
verrückt und du bist wie,

00:08:16.360 --> 00:08:17.680
"Oh mein Gott, es ist so schrecklich."

00:08:17.680 --> 00:08:22.135
Es ist nicht so schlimm. Aber hier
Ich sage alles an.

00:08:22.135 --> 00:08:24.115
Dies ist nicht Xamarin Forms,

00:08:24.115 --> 00:08:26.725
wenn Sie mit einem Ereignis verdrahten.

00:08:26.725 --> 00:08:29.485
So verdrahten Sie sich mit dem Ereignis,

00:08:29.485 --> 00:08:32.425
du musst okay finden,
Wo sind meine Dispose-Aspekte?

00:08:32.425 --> 00:08:33.835
Okay, es ist hier unten.

00:08:33.835 --> 00:08:37.330
Ich muss darauf achten, dass
von den Ereignissen zu entsorgen und

00:08:37.330 --> 00:08:41.350
all dieses Zeug ist in disparate
Speicherorte in Ihrer gesamten Datei.

00:08:41.350 --> 00:08:42.730
Das sind alles Dinge.

00:08:42.730 --> 00:08:44.290
Diese Zeremonie müssen Sie tun

00:08:44.290 --> 00:08:46.240
mit all diesen Veranstaltungen
Managementsysteme.

00:08:46.240 --> 00:08:48.790
Schauen Sie genau dort oben, Sie
müssen sie abonnieren.

00:08:48.790 --> 00:08:51.385
Dann haben Sie Ihren Handler hier unten.

00:08:51.385 --> 00:08:52.810
Sie beschäftigen sich mit den Daten in

00:08:52.810 --> 00:08:55.180
einen separaten Spot und
dann beugt sich hier oben.

00:08:55.180 --> 00:08:59.635
Es ist genau das
getrennte Erfahrung.

00:08:59.635 --> 00:09:01.240
Also habe ich hier sogar getippt
die falschen Dinge,

00:09:01.240 --> 00:09:03.625
Ich bin so verwirrt, wie schwer es ist.

00:09:03.625 --> 00:09:07.720
Aber ja. Also bekam ich das Infomercial,
Wohin ging die Soda?

00:09:07.720 --> 00:09:13.225
Das ist also das Ding.

00:09:13.225 --> 00:09:18.175
Die Ereignisse sind also diese einzigartigen
synchrone Datenpunkte.

00:09:18.175 --> 00:09:20.650
So erhalten Sie eine Textänderungsereignisse

00:09:20.650 --> 00:09:22.690
und dann haben Sie nur
dieses Textänderungsereignis.

00:09:22.690 --> 00:09:24.460
Sie haben nur diesen Brief.
Sie haben nur diesen Brief

00:09:24.460 --> 00:09:27.195
S, mit dem Sie zu tun haben.

00:09:27.195 --> 00:09:29.145
Aber was ist, wenn Sie wollen
mehr damit zu tun?

00:09:29.145 --> 00:09:31.200
Was wäre wenn, denn wann immer
Sie haben eine Veranstaltung,

00:09:31.200 --> 00:09:33.840
Sie sehr selten kümmern
über das eine Ereignis.

00:09:33.840 --> 00:09:36.680
Sie interessieren sich für die Daten
Satz von Ereignissen.

00:09:36.680 --> 00:09:37.870
Sie interessieren sich für alles, was

00:09:37.870 --> 00:09:40.510
über einen bestimmten Zeitraum hinweg.

00:09:40.510 --> 00:09:43.750
Also, was, wenn Sie tun wollen
etwas sehr Spannendes.

00:09:43.750 --> 00:09:45.220
Also was, wenn Sie sagen wollen,

00:09:45.220 --> 00:09:47.590
überspringen Sie Ihre ersten fünf Veranstaltungen und

00:09:47.590 --> 00:09:50.050
dann nur um die nächsten vier kümmern,

00:09:50.050 --> 00:09:52.015
dann möchten Sie die Ereignisse abprallen lassen,

00:09:52.015 --> 00:09:56.139
also, wenn sie superschnell tippen
nur zwei Sekunden warten,

00:09:56.139 --> 00:09:57.610
dann sagen wir, dass Sie herausfiltern möchten

00:09:57.610 --> 00:09:59.215
alle Ereignisse, die Maisblume blau sind

00:09:59.215 --> 00:10:02.545
nur weil es eine schreckliche Farbe ist
vielleicht weiß ich es nicht.

00:10:02.545 --> 00:10:05.110
Dann wollen Sie

00:10:05.110 --> 00:10:07.120
Starten der Web-Anfrage
und dann fangen sie von vorne an,

00:10:07.120 --> 00:10:08.860
also wollen Sie das einfach wegwerfen.

00:10:08.860 --> 00:10:12.220
Wie diese Art von Muster ist

00:10:12.220 --> 00:10:16.900
sehr häufig, soweit
Ihr Eventmanagement,

00:10:16.900 --> 00:10:22.630
insbesondere in MVVM-Frameworks und
Dinge, die mehr UI-basiert sind.

00:10:22.630 --> 00:10:25.420
Sie müssen immer reagieren

00:10:25.420 --> 00:10:29.830
gegen eingehende Datenpunkte
Konnektivität verloren gehen.

00:10:29.830 --> 00:10:31.240
Also wie was wäre, wenn
Ihre Konnektivität wird

00:10:31.240 --> 00:10:33.460
verloren bei den Web-Anfragen zu zeigen?

00:10:33.460 --> 00:10:34.870
Wie unterbrechen Sie

00:10:34.870 --> 00:10:39.745
diese Webanfrage einmal
die Konnektivität verloren geht?

00:10:39.745 --> 00:10:48.460
Wie machen Sie das zuverlässig?
das ist einfach zu verwalten.

00:10:48.460 --> 00:10:50.680
Alle diese Konzepte haben also

00:10:50.680 --> 00:10:58.060
sehr klare Versionen der Verben
die sie in der Reaktivität zugeordnet haben.

00:10:58.060 --> 00:10:59.830
Das sind also alles
tatsächlich Dinge, die Sie können

00:10:59.830 --> 00:11:02.590
reaktiv verwenden, um

00:11:02.590 --> 00:11:07.795
all diese Versuche über Ihre Daten,

00:11:07.795 --> 00:11:09.880
über das Jahr Ereignisstrom.

00:11:09.880 --> 00:11:13.720
Alles klar. Also, was sonst
können wir mit Veranstaltungen tun?

00:11:13.720 --> 00:11:19.010
Nicht wirklich so viel.
Die sehr einfachen Grundmuster.

00:11:19.260 --> 00:11:23.725
Das ist also mein Abriss der Ereignisse.

00:11:23.725 --> 00:11:26.110
Also an diesem Punkt, wenn
Sie nicht wirklich verwendet haben

00:11:26.110 --> 00:11:28.450
reaktiv sind Sie wahrscheinlich wie,
"Oh, ich war so schrecklich.

00:11:28.450 --> 00:11:31.600
Ich habe das falsch gemacht
die ganze Zeit", und Sie haben

00:11:31.600 --> 00:11:33.610
eine existenzielle Krise über

00:11:33.610 --> 00:11:37.970
alle Probleme, die Sie nicht
wissen, dass Sie das hatten, jetzt haben Sie.

00:11:39.900 --> 00:11:45.580
Lassen Sie uns also dies übersetzen
über observables.

00:11:45.580 --> 00:11:48.370
IObservable wurde also
für eine Weile herum.

00:11:48.370 --> 00:11:49.660
Es ist im Wesentlichen genau wie

00:11:49.660 --> 00:11:52.855
Ein Veröffentlichungsabonnementmodell

00:11:52.855 --> 00:11:55.900
das ist innerhalb des Kerns
Rahmen of.Net und

00:11:55.900 --> 00:11:59.005
dann ist ReactiveX eher

00:11:59.005 --> 00:12:04.465
ein Ausdruck der Interaktion
mit diesen Observables.

00:12:04.465 --> 00:12:11.245
Lassen Sie uns also aufschlüsseln, was
ein Beobachtbares ist hier.

00:12:11.245 --> 00:12:15.020
So ist es im Wesentlichen
ein Beobachtermuster.

00:12:18.690 --> 00:12:21.790
Grundsätzlich ist es
dasselbe wie ein Ereignis.

00:12:21.790 --> 00:12:26.000
Ein Ereignis ist effektiv
ein Beobachtermuster.

00:12:27.420 --> 00:12:30.775
So haben Sie Ihre Veranstaltung hier,

00:12:30.775 --> 00:12:34.449
Ihr Handler und Ihr Herausgeber

00:12:34.449 --> 00:12:37.870
und dann ist das analog
genau hier.

00:12:37.870 --> 00:12:42.865
So haben Sie Ihre beobachtbaren
das schaut,

00:12:42.865 --> 00:12:45.070
dasselbe zu tun.

00:12:45.070 --> 00:12:47.980
Sie haben also die gleiche Idee.

00:12:47.980 --> 00:12:51.220
Effektiv können Sie die exakte
gleiche Sache mit beiden, die

00:12:51.220 --> 00:12:54.925
die Basisschicht und
Ihre Datenpunkte abrufen.

00:12:54.925 --> 00:12:56.650
Aber das Spannende jetzt,

00:12:56.650 --> 00:12:58.285
so ist dies, wo die spannenden Punkte

00:12:58.285 --> 00:13:00.620
von allem kommt ins Spiel.

00:13:03.690 --> 00:13:07.540
Bei einer Veranstaltung
wirklich etwas haben.

00:13:07.540 --> 00:13:09.385
Sie haben nur eine Veranstaltung.

00:13:09.385 --> 00:13:11.770
Aber jetzt mit einem beobachtbaren,

00:13:11.770 --> 00:13:13.510
Sie haben eine Vertretung
dieser Veranstaltung.

00:13:13.510 --> 00:13:17.095
Sie haben tatsächlich wie ein Datenobjekt
mit denen Sie etwas tun können.

00:13:17.095 --> 00:13:22.645
Es ist also der Unterschied
zwischen einem Element aus

00:13:22.645 --> 00:13:25.360
eine Liste statt einer anderen als

00:13:25.360 --> 00:13:28.675
die gesamte Liste sagen
über die Sie jetzt arbeiten können.

00:13:28.675 --> 00:13:32.140
Das ist also, wo Ihre
Unterschiede kommen ins Spiel.

00:13:32.140 --> 00:13:35.590
So können Sie sich die
sehr beobachtbar

00:13:35.590 --> 00:13:39.550
als Iteratormuster.

00:13:39.550 --> 00:13:42.340
Dies wird also von reactivex genommen. Io

00:13:42.340 --> 00:13:44.485
eine der Hauptquellen ist,

00:13:44.485 --> 00:13:45.520
das ist eine wirklich gute Quelle.

00:13:45.520 --> 00:13:48.100
Es hat eine Aufschlüsselung der
alle Ihre Bediener und alles.

00:13:48.100 --> 00:13:49.930
Also habe ich einen Link dorthin
unten für Sie.

00:13:49.930 --> 00:13:56.605
ja, es ist effektiv Mapping

00:13:56.605 --> 00:14:02.170
Ihre beobachtbare Idee,

00:14:02.170 --> 00:14:03.925
die gleichen Dinge, die Sie können
mit einem Iterator zu tun.

00:14:03.925 --> 00:14:05.635
Es gibt fast eine perfekte

00:14:05.635 --> 00:14:08.560
Einzelvergleiche
wenn Sie iterieren.

00:14:08.560 --> 00:14:11.605
Ein Iterator ist also wie IEnumerator.

00:14:11.605 --> 00:14:13.945
Das ist das Äquivalent.

00:14:13.945 --> 00:14:18.085
IEnumerator ist das Äquivalent
iObservable, im Grunde.

00:14:18.085 --> 00:14:19.750
Also alles, was Sie können
tun, um einen IEnumerator,

00:14:19.750 --> 00:14:21.355
Sie können es zu einem IObservable tun.

00:14:21.355 --> 00:14:23.410
Das war also wie der Erinnern
als Link zum ersten Mal kam

00:14:23.410 --> 00:14:25.990
out und jeder war
super aufgeregt über

00:14:25.990 --> 00:14:28.225
Link wie Link über Objekte und

00:14:28.225 --> 00:14:31.510
Link zu SQL und dann wurden sie
weniger begeistert von Link to SQL,

00:14:31.510 --> 00:14:33.800
aber Link war so aufregend.

00:14:36.960 --> 00:14:41.260
So effektiv haben Sie Ihre
abgerufene Daten, die als nächstes, onNext, ist.

00:14:41.260 --> 00:14:44.650
So wie jede Ihrer Daten
Punkte kommen durch.

00:14:44.650 --> 00:14:47.920
Hier hört es bis zum

00:14:47.920 --> 00:14:52.030
Observables werden mehr
spannender als Ihre Veranstaltungen.

00:14:52.030 --> 00:14:54.550
So bekommt man diese anderen Dinge.

00:14:54.550 --> 00:14:56.875
So bekommt man zum Beispiel Luft.

00:14:56.875 --> 00:15:02.770
Wenn Ihr Event, dass Sie
Beobachtung manifestiert eine Ausnahme,

00:15:02.770 --> 00:15:05.800
Sie können damit umgehen, wie
Teil des Beobachtbaren.

00:15:05.800 --> 00:15:09.340
Im Rahmen des Datenflusses von
den Vorgang, können Sie angeben,

00:15:09.340 --> 00:15:12.970
hey es gibt dieses Ereignis
durch eine Ausnahme.

00:15:12.970 --> 00:15:14.515
So zum Beispiel eine Webanfrage.

00:15:14.515 --> 00:15:16.990
Wenn eine Webanforderung auftritt und

00:15:16.990 --> 00:15:20.020
löst eine Ausnahme aus, da

00:15:20.020 --> 00:15:22.165
das Internet ausfällt oder
etwas Ähnliches,

00:15:22.165 --> 00:15:24.850
dann können Sie effektiv fangen, dass

00:15:24.850 --> 00:15:28.645
und befassen sich damit, dass
innerhalb dieses Konstrukts.

00:15:28.645 --> 00:15:29.920
So macht es Ihren Code viel

00:15:29.920 --> 00:15:35.695
robuster und dann
auch diese Idee der

00:15:35.695 --> 00:15:39.760
Abschluss, wo Sie feuern können, wenn

00:15:39.760 --> 00:15:43.345
jemand hat angegeben, dass

00:15:43.345 --> 00:15:45.790
sie kümmern sich nicht mehr
über die Datenpunkte,

00:15:45.790 --> 00:15:47.725
Sie können dann darauf reagieren.

00:15:47.725 --> 00:15:50.590
All diese Dinge
zu Merkmalen der

00:15:50.590 --> 00:15:54.070
wie Sie mit Ihren Daten interagieren.

00:15:54.070 --> 00:16:01.760
Also hier ist ein paar mehr
Vergleichspunkte.

00:16:06.120 --> 00:16:09.070
Dies wird also auch von ReactiveX übernommen.

00:16:09.070 --> 00:16:13.030
Wie Sie hier sehen können, haben Sie Ihre
Esseisbar, das ist Ihr Verfall,

00:16:13.030 --> 00:16:14.890
so ist das wie Ihr IEnumerator und

00:16:14.890 --> 00:16:16.860
Sie haben Recht,
ist Ihr IObservable.

00:16:16.860 --> 00:16:19.150
Man bekommt also Daten
aus dem lokalen Speicher,

00:16:19.150 --> 00:16:20.210
so wird das vielleicht wie ein

00:16:20.210 --> 00:16:21.890
synchronen Betrieb, bei dem Sie

00:16:21.890 --> 00:16:23.870
lassen Sie Ihre Daten

00:16:23.870 --> 00:16:26.240
oben und Sie haben Recht
einer ist aus dem Netzwerk,

00:16:26.240 --> 00:16:29.580
es kann sich um einen langsameren Datenfeed erfreuen.

00:16:29.580 --> 00:16:32.915
So können Sie dort sehen,
Sie erhalten die gleichen Ideen

00:16:32.915 --> 00:16:37.350
über Ihre Ereignisstreams, die
ist gerecht, es ist super-mächtig.

00:16:37.870 --> 00:16:42.940
Ordentliches Zeug. Alles klar.

00:16:42.940 --> 00:16:45.450
Lassen Sie uns aufschlüsseln, wie die

00:16:45.450 --> 00:16:48.610
Bausteine von
Ihre IObservables ein wenig hier.

00:16:50.010 --> 00:16:54.250
Das ist also die Grundidee,
wie Sie IObservable aufbauen.

00:16:54.250 --> 00:16:57.205
So wie Sie in
den ersten Schritt dorthin,

00:16:57.205 --> 00:17:01.940
Sie sehen die vertraute abonnieren
und abmelden,

00:17:03.840 --> 00:17:07.450
es ist nicht so aufregend,
es geht nur durch

00:17:07.450 --> 00:17:10.390
verschiedene Funktionen für den Beobachter,

00:17:10.390 --> 00:17:11.830
so weiß der Beobachter, wie man damit umgeht

00:17:11.830 --> 00:17:14.185
mit Abonnements und Abmeldungen,

00:17:14.185 --> 00:17:18.250
damit es Containerisieren kann, dass
Verhalten innerhalb des IObservable.

00:17:18.250 --> 00:17:26.185
Hier ist also der Vergleich
Versionen davon,

00:17:26.185 --> 00:17:29.515
von dem, was diese darstellen.

00:17:29.515 --> 00:17:34.690
Abonnieren ist also effektiv
unter Berufung auf diesen Top-Mann,

00:17:34.690 --> 00:17:37.840
die oberste, auf die geklickt wurde
und sagte: "Okay,

00:17:37.840 --> 00:17:40.090
jetzt kümmere ich mich um meine Veranstaltungen, " und dann

00:17:40.090 --> 00:17:43.000
die untere gibt
entsorgt nun,

00:17:43.000 --> 00:17:45.715
die dann abbestellen.

00:17:45.715 --> 00:17:48.730
Hier fängt es an
um wirklich mächtig zu werden,

00:17:48.730 --> 00:17:54.535
weil Sie
diese ganze Darstellung

00:17:54.535 --> 00:17:58.210
ist in vertrautem Muster gekapselt.

00:17:58.210 --> 00:18:01.810
Sie haben also IDisposable
die wir alle verwendet haben,

00:18:01.810 --> 00:18:10.080
und wir haben logische Datenstrukturen

00:18:10.080 --> 00:18:11.310
und Wege, wie wir

00:18:11.310 --> 00:18:14.760
die wirksamer als
sagen Sie einfach abbestellen.

00:18:14.760 --> 00:18:18.700
So einige wirklich cool
Möglichkeiten, wie Sie dies tun können,

00:18:18.700 --> 00:18:20.680
Sie können leicht verwalten
diese Lebenszeiten.

00:18:20.680 --> 00:18:25.359
Denken Sie also daran, wo Sie
um sicherzustellen, dass sie sich abmelden,

00:18:25.359 --> 00:18:28.600
wie z.B. in Xamarin Forms,

00:18:28.600 --> 00:18:32.590
Wenn Sie ein Element ändern
oder wenn etwas Neues kommt

00:18:32.590 --> 00:18:34.210
in dem, was Sie abonnieren möchten

00:18:34.210 --> 00:18:36.325
und Sie kümmern sich nicht um
das Alte mehr,

00:18:36.325 --> 00:18:40.000
Sie müssen diese Sache tun, wo
Sie sich von der alten abmelden,

00:18:40.000 --> 00:18:41.290
abonnieren Sie die neue,

00:18:41.290 --> 00:18:44.920
dann hat auch Ihr Entsorgungspunkt

00:18:44.920 --> 00:18:48.955
, um sicherzustellen, dass Sie sich abmelden
auch von diesen Ereignissen.

00:18:48.955 --> 00:18:50.650
Das ist es aber, was ordentlich ist,

00:18:50.650 --> 00:18:57.070
ist, dass Ihre gesamte Veranstaltung
Beobachtungsmanagementsystem

00:18:57.070 --> 00:19:00.055
kann artikuliert werden
durch Einweg.

00:19:00.055 --> 00:19:02.740
Wir handeln, um, dass und viel
dieser Dinge hier

00:19:02.740 --> 00:19:05.215
Ich wünschte, sie würden einfach ziehen
in the.Net Rahmen,

00:19:05.215 --> 00:19:08.290
aber vorerst, in

00:19:08.290 --> 00:19:11.440
ReactiveX haben Sie diese Dinge
wie CompositeDisposable.

00:19:11.440 --> 00:19:13.450
Die Idee, dass es
Sie können aggregieren

00:19:13.450 --> 00:19:17.035
alle Ihre Einweg-In- und
eine einzige Datenstruktur,

00:19:17.035 --> 00:19:20.260
und dann diese Datenstruktur jetzt,

00:19:20.260 --> 00:19:22.225
Sie können nur einmal entsorgen,

00:19:22.225 --> 00:19:26.125
einmal die Lebensdauer der
die enthaltende Klasse ist weg,

00:19:26.125 --> 00:19:28.540
und jetzt alle Ihre Veranstaltung
Management wird übernommen.

00:19:28.540 --> 00:19:33.310
So können Sie Ihre
PropertyChanged-Abonnements dort,

00:19:33.310 --> 00:19:37.570
Ihre TextChanged-Abonnements,
und dann entsorgen Sie es einfach.

00:19:37.570 --> 00:19:38.650
So ist es ordentlich, weil Sie immer

00:19:38.650 --> 00:19:44.200
diese Objektkonzepte, die
Sie können sich auf Ihre Veranstaltungen bewerben,

00:19:44.200 --> 00:19:48.740
so ist es schön, ich mag es.

00:19:51.900 --> 00:19:55.030
Zum Beispiel, wie ich war
reden über früher,

00:19:55.030 --> 00:19:57.430
wo Sie eine Instanz haben

00:19:57.430 --> 00:19:59.725
wo Sie ein altes Element haben
die Sie abonniert haben,

00:19:59.725 --> 00:20:01.000
Ich meine, ein neues Element kommt

00:20:01.000 --> 00:20:04.690
in, so dass Sie sich nicht um
die alte mehr.

00:20:04.690 --> 00:20:06.310
So hat es wie diese coolen Konzepte

00:20:06.310 --> 00:20:08.110
hier mit wie einer Serienentsorgung,

00:20:08.110 --> 00:20:09.910
wo alles, was Sie
zuweisen, dass

00:20:09.910 --> 00:20:12.250
automatisch entsorgen
der Sache davor.

00:20:12.250 --> 00:20:14.980
Also in diesen Ideen hier,

00:20:14.980 --> 00:20:16.900
Sie müssen nicht

00:20:16.900 --> 00:20:19.690
Abmelden für das, was hereinkam
dort, was wirklich ordentlich ist.

00:20:19.690 --> 00:20:23.530
Aber Sie wissen, dass dies
die neue Schärfe, die Ihnen wichtig ist,

00:20:23.530 --> 00:20:25.390
und dann, wenn das hereinkommt,

00:20:25.390 --> 00:20:28.735
Sie werden einfach los
was auch immer vorher da war,

00:20:28.735 --> 00:20:30.370
So können Sie dann

00:20:30.370 --> 00:20:36.470
diese wirklich coolen Ausdrücke
was Sie tun möchten.

00:20:37.320 --> 00:20:41.770
Denn viele stoltonern
Reaktiv, was wirklich schön ist,

00:20:41.770 --> 00:20:47.560
hat all Ihre Absicht
an einem einzigen Ort.

00:20:47.560 --> 00:20:51.050
Event-Management ist
sehr Rückruf-basiert,

00:20:52.080 --> 00:20:56.320
Sie kommen nicht als schlechte Stile
wie eine totale Rückruf-Hölle,

00:20:56.320 --> 00:20:58.645
aber es ist immer noch freundlich
der gleichen Sache.

00:20:58.645 --> 00:21:01.330
Es ist Rückrufmanagement
und dann interagieren

00:21:01.330 --> 00:21:03.760
all diese unterschiedlichen Rückruf-
Szenarien, in denen Sie

00:21:03.760 --> 00:21:06.665
das gleiche mit, wie Sie
die Lebensdauer zu verwalten.

00:21:06.665 --> 00:21:13.470
Aber hat hier jemand getan
Xamarin Forms Sachen?

00:21:13.470 --> 00:21:17.050
Ich bin nur Mapping
logische Modellierungen hier.

00:21:17.050 --> 00:21:20.455
Sie haben also diese Idee jetzt, wo

00:21:20.455 --> 00:21:25.690
wie Sie können

00:21:25.690 --> 00:21:27.250
den gesamten Lebenszyklus von

00:21:27.250 --> 00:21:30.635
etwas ist genau richtig
dort in diesem mittleren Teil,

00:21:30.635 --> 00:21:33.840
und das ist alles, was Sie tun müssen.

00:21:33.840 --> 00:21:36.315
Sobald das dort eingerichtet ist,

00:21:36.315 --> 00:21:40.635
jetzt jedes Mal, wenn Sie herkommen und
Sie eine Elementänderung haben,

00:21:40.635 --> 00:21:42.650
und Sie kümmern sich nur
über das neue Element,

00:21:42.650 --> 00:21:47.230
Zuweisen einer neuen Einwegursachen
die vorherige zu entsorgen,

00:21:47.230 --> 00:21:49.990
So jetzt alle Ihre Veranstaltungen
sind völlig unverdrahtet,

00:21:49.990 --> 00:21:52.645
und dann fangen Sie jetzt an
Verkabelung Ihrer neuen.

00:21:52.645 --> 00:21:53.860
Dann in Ihrem entsorgten,

00:21:53.860 --> 00:21:56.260
Sie haben nur eine einzige
serielle Dispose, die

00:21:56.260 --> 00:22:01.750
Verwaltete Ressource auf Klassenebene
die Sie entsorgen.

00:22:01.750 --> 00:22:06.880
Jetzt gibt es also keine

00:22:06.880 --> 00:22:10.480
diese Komplexität des Managements als
bis zu Ihrer Vorabbehandlung.

00:22:10.480 --> 00:22:13.300
Das war also tatsächlich
das erste, was mich dazu gebracht hat,

00:22:13.300 --> 00:22:17.630
Reaktive Programmierung wurde
das Einwegmanagement,

00:22:18.900 --> 00:22:22.150
Ich denke, es war wie ein Jahr zuvor
Ich hatte sogar etwas anderes verwendet.

00:22:22.150 --> 00:22:25.540
Nur weil ich ein Silverlight hatte
Anwendung, die

00:22:25.540 --> 00:22:30.775
einige Abonnementprobleme und
dann bin ich auf dieses Zeug gekommen,

00:22:30.775 --> 00:22:32.815
so ist dieses Zeug cool,

00:22:32.815 --> 00:22:34.870
die Einwegartikel machen mich super glücklich.

00:22:34.870 --> 00:22:37.390
Diese sind also immer noch

00:22:37.390 --> 00:22:40.120
diese Ideen, die
wirklich ordentlich, so wie hier,

00:22:40.120 --> 00:22:42.700
erinnern Sie sich daran, wenn Sie
wollte nur abonnieren, um

00:22:42.700 --> 00:22:45.445
dass ein Ereignis und Sie nur
wollte es einmal sehen?

00:22:45.445 --> 00:22:48.640
Mit Reactive können Sie

00:22:48.640 --> 00:22:52.045
das gesamte Konzept hier
mit diesem einen Ausdruck.

00:22:52.045 --> 00:22:54.160
All dies sagt es:

00:22:54.160 --> 00:22:58.839
"Ich möchte nur einen Wert von
diese Eigenschaft geändert,

00:22:58.839 --> 00:23:02.680
und dann an diesem Punkt habe ich
wollen, dass du es loswirst."

00:23:02.680 --> 00:23:05.335
Also ich meine, das ist genial genau dort,

00:23:05.335 --> 00:23:07.555
Nehmen Sie eine und wechseln Sie dann,

00:23:07.555 --> 00:23:10.180
was ein wenig schwierig ist,
verstehen, aber die sind

00:23:10.180 --> 00:23:13.270
gerade genug Gründe
es für immer zu verwenden,

00:23:13.270 --> 00:23:15.340
es ist schön, ich mag es.

00:23:15.340 --> 00:23:22.210
Das ist also der Zusammenbruch
wie die Vorgänge funktionieren.

00:23:22.210 --> 00:23:31.670
So habe ich ein paar Demos von
dies im Code ein wenig mehr zu realisieren,

00:23:33.360 --> 00:23:39.970
aber ich wollte ein Konzept geben
bereiten Sie sich auch vor,

00:23:39.970 --> 00:23:45.700
zu einigen Arten von Reaktiven
Strukturen, die wir verwenden,

00:23:45.700 --> 00:23:47.980
nur so macht es ein wenig mehr Sinn.

00:23:47.980 --> 00:23:50.500
Eine der Möglichkeiten, wie Sie Dinge beschreiben

00:23:50.500 --> 00:23:53.185
mit Reactive ist durch
verwendungsvon Marmordiagrammen,

00:23:53.185 --> 00:23:55.075
so gibt es diese Ideen des Sehens

00:23:55.075 --> 00:24:01.405
Ihre Eingabe und was der Ausgang ist.

00:24:01.405 --> 00:24:03.760
Also die ersten beiden hier,

00:24:03.760 --> 00:24:10.285
dies ist die Volkssprache für
reaktivste Informationen,

00:24:10.285 --> 00:24:14.800
so jederzeit, wenn Sie sehen
Reaktive Operatoren beschrieben,

00:24:14.800 --> 00:24:16.330
sie werden immer beschrieben
in diesem Format.

00:24:16.330 --> 00:24:19.810
Die Idee hier ist also, dass
die beiden wichtigsten Dinge sind Datenströme,

00:24:19.810 --> 00:24:23.480
und dann ist die untere
was Ihr Abonnent sieht.

00:24:24.420 --> 00:24:27.519
Merge wären zwei Abonnenten,

00:24:27.519 --> 00:24:29.980
so, als ob Sie abonnieren würden
ein TextChanged-Ereignis zu sagen

00:24:29.980 --> 00:24:36.175
auf einem Benutzernamenfeld und einem
Passwort-Box z. B.,

00:24:36.175 --> 00:24:38.620
jederzeit entweder von
diese Änderung ist dies

00:24:38.620 --> 00:24:40.690
wie Ihre Ausgabe aussehen würde.

00:24:40.690 --> 00:24:43.360
Dies sind also einige der
die Operatoren, die ich in der Demo verwendet habe,

00:24:43.360 --> 00:24:44.620
also wollte ich nur

00:24:44.620 --> 00:24:50.350
um sicherzustellen, dass sie
verstanden, bevor ich weiterzog.

00:24:50.350 --> 00:24:53.350
Filter, das ist
im Grunde wie ein wo,

00:24:53.350 --> 00:24:57.460
so auf Link zu IEnumerable,

00:24:57.460 --> 00:25:00.280
es ist wie ein Wo.

00:25:00.280 --> 00:25:02.260
So effektiv jedes Ereignis, das kommt

00:25:02.260 --> 00:25:05.810
durch, einfach genug zu verstehen.

00:25:05.850 --> 00:25:09.100
Debounce, so ist dies
die andere wirklich coole Funktion,

00:25:09.100 --> 00:25:11.395
Dies drosselt also Ihre Eingaben.

00:25:11.395 --> 00:25:13.570
In diesem Beispiel sind sie also

00:25:13.570 --> 00:25:16.210
Demonstrieren hier ist
dass sie nur wollen

00:25:16.210 --> 00:25:17.710
der aktuellste Wert, der kommen wird

00:25:17.710 --> 00:25:21.025
nach einer gewissen
eingestellte Zeit.

00:25:21.025 --> 00:25:25.840
So können Sie sehen, dass es eine Verzögerung gibt
zwischen eins und fünf, weil zwei,

00:25:25.840 --> 00:25:27.745
drei, und vier sind

00:25:27.745 --> 00:25:30.280
so nah beieinander
dass jetzt fünf herauskommen.

00:25:30.280 --> 00:25:33.910
Das ist also die Quintessenz
Beispiel für reaktive Sachen,

00:25:33.910 --> 00:25:36.850
So dass Fälle, in denen Benutzer sind

00:25:36.850 --> 00:25:39.400
tun wie Suche mit

00:25:39.400 --> 00:25:42.305
Google bei der Eingabe
in ihrer Autovervollständigung,

00:25:42.305 --> 00:25:45.220
aber du willst keinen Kick mögen
jedes Mal eine Webanfrage zu stellen,

00:25:45.220 --> 00:25:48.640
das ist also effektiv das, was
dies zeigt,

00:25:48.640 --> 00:25:50.305
für die wir ein Beispiel haben.

00:25:50.305 --> 00:25:56.640
Dann ist TakeUntil
der letzte Operator, den ich verwende,

00:25:56.640 --> 00:25:58.110
TakeUntil ist also wirklich ordentlich,

00:25:58.110 --> 00:26:01.170
weil das z.B.
wie eine Webanfrage aussehen.

00:26:01.170 --> 00:26:04.605
Sagen wir also eine Web-Anfrage
beginnt,

00:26:04.605 --> 00:26:07.210
und dann der Benutzer
beginnt wieder zu tippen,

00:26:07.210 --> 00:26:09.880
oder sie sagen abbrechen,

00:26:09.880 --> 00:26:11.560
wie sie es nicht wollen
es wird mehr passieren,

00:26:11.560 --> 00:26:16.360
also sind alle andere
Ereignispunkte, die Sie umstellen können,

00:26:16.360 --> 00:26:19.465
und an diesem Punkt schneidet es
aus Ihrem Stream mehr.

00:26:19.465 --> 00:26:22.375
Das ist also wie ein
einfache Art zu sagen abgeschnitten,

00:26:22.375 --> 00:26:25.940
Wenn Sie keine Webanforderung wünschen
oder so etwas zu beenden.

00:26:25.940 --> 00:26:32.400
Das ist also die Panne
der beobachtbaren Sachen,

00:26:32.400 --> 00:26:35.470
also lass mich umschalten,

00:26:36.080 --> 00:26:39.380
halten Sie auf einem Sek.

00:26:39.380 --> 00:26:52.660
Cool, mal sehen.

00:26:53.540 --> 00:26:55.875
Ist das zu klein?

00:26:55.875 --> 00:26:57.610
>> ja.

00:26:58.710 --> 00:27:01.330
>> Es sind Dinge, die Sie
tun, wenn Sie erkennen,

00:27:01.330 --> 00:27:04.000
die Sie noch nie getan haben
diese auf den Demos vor,

00:27:04.000 --> 00:27:07.525
Ich habe eigentlich nie zugenommen
seine Schriftgröße auf Obs Mac vor.

00:27:07.525 --> 00:27:16.300
Mal sehen. Ich versuche,
meine Windows-Sachen hier machen,

00:27:16.300 --> 00:27:20.540
da gehen wir, ich denke, das war es.

00:27:22.580 --> 00:27:26.610
Alles in Ordnung, was ich versuchte
meine Gesten auf dem Pad.

00:27:26.610 --> 00:27:27.630
Ich habe den Wisch gemacht.

00:27:27.630 --> 00:27:28.650
Ich habe zwei Finger gemacht,

00:27:28.650 --> 00:27:32.670
Ich habe das getan. Ich weiß es nicht.

00:27:32.670 --> 00:27:35.280
Ich bin nicht darauf passiert, denke ich.

00:27:35.280 --> 00:27:45.015
Also gehen wir hin. Okay ja.

00:27:45.015 --> 00:27:46.740
So, wie Sie Fenster starten
wo Sie gerade getroffen haben

00:27:46.740 --> 00:27:48.615
und teilen Sie sie auf.

00:27:48.615 --> 00:27:51.910
Alles in Ordnung, damit alle
kann das sehen. Alles klar?

00:27:52.070 --> 00:27:55.410
Also lassen Sie mich die Demo real laufen

00:27:55.410 --> 00:27:59.895
schnell, nur damit wir Kontext haben
was wir hier tun.

00:27:59.895 --> 00:28:02.640
Das ist also eine Art
eine grundlegende Anwendung.

00:28:02.640 --> 00:28:08.355
Es ist nur eine Login-Logout-Idee.

00:28:08.355 --> 00:28:14.265
ja, also unten habe ich ein Set
von Ereignissen, die auftreten,

00:28:14.265 --> 00:28:21.690
dies ist effektiv
den Datenstrom der Beobachtbaren.

00:28:21.690 --> 00:28:23.970
Alle Ereignisse, die
mit den Beobobachtbaren.

00:28:23.970 --> 00:28:25.365
Hier haben wir uns also eingeloggt.

00:28:25.365 --> 00:28:27.240
Dies ist Benutzer und Passwort

00:28:27.240 --> 00:28:28.665
dass ich hätte setzen sollen
ein Platzhalterprotokoll.

00:28:28.665 --> 00:28:34.095
Aber so die Idee hier Sie
kann sehen, ob ich einen Brief getroffen habe.

00:28:34.095 --> 00:28:36.509
dort. So schlagen Sie einen Brief

00:28:36.509 --> 00:28:39.090
und an diesem Punkt ist es
Validierung der Eingabe.

00:28:39.090 --> 00:28:41.175
Jetzt können Sie sehen, dass
es gibt eine Art dieser Verzögerung.

00:28:41.175 --> 00:28:43.935
Richting? Also, wenn ich treffe
"O" gibt es eine Verzögerung.

00:28:43.935 --> 00:28:46.170
Die Idee dahinter
das heißt, dass Sie

00:28:46.170 --> 00:28:49.455
nicht- das ist das Abweichlchen
von dem Sie sprechen.

00:28:49.455 --> 00:28:54.945
Wenn ich also den "Benutzernamen" eintippe
und das "Passwort".

00:28:54.945 --> 00:28:59.310
dort. Sie können sehen, dass einmal
dass die Validierung erfolgt.

00:28:59.310 --> 00:29:01.710
Das ist nur, dass wir irgendwie brechen
diese Strukturen nach unten, sobald ich

00:29:01.710 --> 00:29:04.275
dort einsteigen, aber das ist
die Idee dahinter.

00:29:04.275 --> 00:29:08.910
Also. ja. So ziemlich aufregend.

00:29:08.910 --> 00:29:11.955
Jetzt haben wir eine simulierte für login.

00:29:11.955 --> 00:29:14.250
Also die Idee hier klicke ich auf "Login".

00:29:14.250 --> 00:29:18.840
Es startet eine Web-Anfrage und
an diesem Punkt können Sie sich abmelden.

00:29:18.840 --> 00:29:21.870
Also und es gibt eine Art von

00:29:21.870 --> 00:29:26.415
zusätzlich sehen wir, wie oft
es dauert, bis dies ausgelöst wird.

00:29:26.415 --> 00:29:30.090
Also habe ich einen Randomizer
dort nach dem Zufallsprinzip

00:29:30.090 --> 00:29:35.415
Fehler zu generieren. Da ist es.

00:29:35.415 --> 00:29:38.400
kühl. So können Sie hier sehen, was

00:29:38.400 --> 00:29:41.775
passiert, dass ich
"Login" angeklickt.

00:29:41.775 --> 00:29:44.535
Es wurde eine Ausnahme generiert.

00:29:44.535 --> 00:29:47.895
So wie die Web Request-Ausnahme.

00:29:47.895 --> 00:29:51.630
Dann hieß es okay, lassen Sie uns einfach
versuchen Sie es erneut.

00:29:51.630 --> 00:29:59.640
Dann an diesem Punkt ist es
dann hat mich eingeloggt, oder?

00:29:59.640 --> 00:30:02.655
Dann der andere Aspekt
davon, das ich bin.

00:30:02.655 --> 00:30:05.070
Wie sagen wir, der Benutzer
will es abbrechen.

00:30:05.070 --> 00:30:09.100
Wenn sie also auf "Login" klicken
sie können auf "Abbrechen" klicken.

00:30:09.350 --> 00:30:13.470
Dort können Sie jetzt sehen, es ist nicht
die Verarbeitung der Daten zu.

00:30:13.470 --> 00:30:16.035
Richting? Das ist also der Grund,

00:30:16.035 --> 00:30:18.885
es gibt eine Operation Art
der Kündigung.

00:30:18.885 --> 00:30:23.805
Das ist also demo.

00:30:23.805 --> 00:30:25.815
Ja, das ist also die Idee dahinter.

00:30:25.815 --> 00:30:27.900
Dies ist der Code.

00:30:27.900 --> 00:30:32.160
ja, so die Idee

00:30:32.160 --> 00:30:34.965
dahinter zu einer Art
die Strukturen aufzubrechen.

00:30:34.965 --> 00:30:37.935
Da wir alle viel gesehen haben
dieser Dinge ist, dass

00:30:37.935 --> 00:30:41.340
Dies ist die Composability
Aspekt der Beobachtbaren.

00:30:41.340 --> 00:30:43.890
Der Composability-Aspekt
ist, dass Sie

00:30:43.890 --> 00:30:46.920
diese Darstellung Ihrer Veranstaltungen als

00:30:46.920 --> 00:30:50.730
diese einzelnen Datenströme
dass Sie dann mit der

00:30:50.730 --> 00:30:55.845
Intermix zum Artikulieren
das Verhalten Ihrer Anwendung.

00:30:55.845 --> 00:31:01.050
Also, wenn wir die App haben, was sind
alle Event-Streams hier.

00:31:01.050 --> 00:31:03.360
Die Ereignisstreams sind
haben wir den Eintrag auf

00:31:03.360 --> 00:31:07.065
oben haben wir den Eintrag
auf den zweiten Feldern.

00:31:07.065 --> 00:31:10.320
Als Benutzertypen haben wir
klicken Sie auf die Schaltfläche Login.

00:31:10.320 --> 00:31:12.975
Wir haben die Schaltfläche Abbrechen anklickt
und wir haben wie die Web-Anfrage.

00:31:12.975 --> 00:31:17.205
Wir haben also effektiv
fünf verschiedenen Veranstaltungen.

00:31:17.205 --> 00:31:20.550
Streams, die wir beschreiben müssen.

00:31:20.550 --> 00:31:28.545
So können wir diese auflösen
in ihre reaktiven Teile.

00:31:28.545 --> 00:31:32.145
Diese sind also alle ziemlich unaufregend.

00:31:32.145 --> 00:31:37.050
Das ist das gleiche Zeug, das Sie
Säge, vor der im Grunde

00:31:37.050 --> 00:31:39.180
nur sagen Hey ich möchte diese erstellen

00:31:39.180 --> 00:31:42.630
beobachtbar, das hört
auf das angeklickte Ereignis.

00:31:42.630 --> 00:31:46.095
Das ist also der Kernaspekt
davon ist spannend.

00:31:46.095 --> 00:31:51.825
So schaffen wir eine beobachtbare für
jedes dieser verschiedenen Elemente.

00:31:51.825 --> 00:31:54.030
Wir haben unser Login.

00:31:54.030 --> 00:31:55.470
Das ist, wenn sie klicken.

00:31:55.470 --> 00:31:56.805
Wir haben unsere Abmeldung.

00:31:56.805 --> 00:31:58.440
Dann melden sie sich ab.

00:31:58.440 --> 00:32:01.785
Wir haben unsere Stornierung. Das heißt
wenn sie auf "Abbrechen" klicken.

00:32:01.785 --> 00:32:06.750
Wir haben die Textänderung
hier, wenn sie sind

00:32:06.750 --> 00:32:09.000
Eingabe des Benutzernamens und wir haben

00:32:09.000 --> 00:32:12.090
das Passwort hier, wenn sie
Eingabe des Kennworts.

00:32:12.090 --> 00:32:15.300
Dann machen wir
ein gefälschter Webrequest-Aufruf.

00:32:15.300 --> 00:32:17.670
Das ist also nur ein Beweis.

00:32:17.670 --> 00:32:20.565
Es ist im Wesentlichen nur
zwei Sekunden warten.

00:32:20.565 --> 00:32:22.440
Sobald es fertig ist, erzeugt es

00:32:22.440 --> 00:32:26.265
ein Fehler, wenn
Zahl gleich zwei.

00:32:26.265 --> 00:32:35.010
ja. Das ist also unsere Anwendung.

00:32:35.010 --> 00:32:38.250
Das ist nicht zu beobachten
Darstellung von

00:32:38.250 --> 00:32:41.985
Alle Ereignisse, die auftreten können
in der Anwendung, nicht wahr?

00:32:41.985 --> 00:32:43.860
Jetzt ist dies also der Ort, an dem

00:32:43.860 --> 00:32:47.680
der Kompsierbarkeitsaspekt kommt
ins Spiel, was wirklich cool ist.

00:32:48.500 --> 00:32:51.150
Nun, all diese
verschiedene Beobachtbare

00:32:51.150 --> 00:32:53.220
ein eigenes Leben zu nehmen.

00:32:53.220 --> 00:33:00.060
Die Gesamtheit der
die Logik, die Sie sehen

00:33:00.060 --> 00:33:06.990
gibt es mit einem ziemlich
einfache Menge an Code, nicht wahr?

00:33:06.990 --> 00:33:12.780
Hier ist dies unser Validierungscode.

00:33:12.780 --> 00:33:14.940
Was wir jetzt tun, ist
wir bauen auf

00:33:14.940 --> 00:33:18.810
zusätzliche Beobachtbare auf
diese anderen Beobachtbaren.

00:33:18.810 --> 00:33:21.990
Richting? Das ist also das, was
den Komposierbarkeitsaspekt.

00:33:21.990 --> 00:33:23.640
Die erste ist also, dass wir

00:33:23.640 --> 00:33:26.520
sagen, okay wir wollen eine
authentifiziert beobachtbar.

00:33:26.520 --> 00:33:29.580
Die authentifizierte beobachtbare
ist der Benutzer, der auf

00:33:29.580 --> 00:33:33.060
"Login" und Klicken
"Web-Anfrage".

00:33:33.060 --> 00:33:39.090
Nun haben wir diese beiden
Ideen von beobachtbaren Ereignissen.

00:33:39.090 --> 00:33:42.870
Wir haben diese Daten nun zusammengeführt
Stream mit einer Abmeldung.

00:33:42.870 --> 00:33:47.250
Wenn also ein Benutzer auf "Abmelden" klickt
dann heißt es: "Hey,

00:33:47.250 --> 00:33:48.735
Ich möchte, dass du dich abmeldest."

00:33:48.735 --> 00:33:54.480
So haben wir die gesamte
Authentifizierungsstatus von

00:33:54.480 --> 00:34:00.525
die Von der
eine neue beobachtbare authentifizierte.

00:34:00.525 --> 00:34:02.295
Authentifiziert beobachtbar.

00:34:02.295 --> 00:34:05.295
Das ist also die einzige beobachtbare
uns an dieser Stelle wichtig.

00:34:05.295 --> 00:34:07.530
So können wir jetzt das nutzen

00:34:07.530 --> 00:34:09.540
überall dort zu beobachten, wo wir

00:34:09.540 --> 00:34:14.940
fragen möchten, was
der Benutzer authentifiziert.

00:34:14.940 --> 00:34:18.190
Sie wissen, was notwendig ist.

00:34:19.910 --> 00:34:22.620
Dann haben wir hier unsere Validierung.

00:34:22.620 --> 00:34:24.720
Unsere Validierung ist eine Zusammensetzung

00:34:24.720 --> 00:34:29.410
unseren Benutzernamen und unser Passwort
dort, das ist schön.

00:34:29.570 --> 00:34:33.645
Das kommt also im Wesentlichen ins Spiel.

00:34:33.645 --> 00:34:35.894
Es heißt: "Hey,

00:34:35.894 --> 00:34:38.909
Das sind die Datenpunkte
die die Gültigkeit darstellen."

00:34:38.909 --> 00:34:43.080
Es verwandelt diese Ereignisse in eine

00:34:43.080 --> 00:34:47.910
wahr oder ein falscher Wert, den wir
kann nun sagen: "Okay.

00:34:47.910 --> 00:34:53.860
Wie ist der Stand der Ereignisse
die gekommen sind? "

00:34:55.190 --> 00:34:58.515
Dann lassen Sie uns das jetzt

00:34:58.515 --> 00:35:01.455
zusammengestellt - Jetzt können wir setzen
all diese Dinge zusammen.

00:35:01.455 --> 00:35:03.120
Hier ist eine Art
wie die funktionale

00:35:03.120 --> 00:35:05.295
reaktiver Programmieraspekt
kommt ins Spiel.

00:35:05.295 --> 00:35:08.880
Wir können jetzt all diese verschiedenen
beobachtbar zusammen in

00:35:08.880 --> 00:35:10.485
ein schöner kleiner Ort

00:35:10.485 --> 00:35:15.255
hier, das alles beschreibt
das wird geschehen.

00:35:15.255 --> 00:35:17.760
Das ist also der Teil der
es ist wirklich ordentlich.

00:35:17.760 --> 00:35:22.995
Denn damit
Anwendung, die Sie erhalten können

00:35:22.995 --> 00:35:27.120
ein perspektivischer Spielraum für alle

00:35:27.120 --> 00:35:31.710
die Logik nur, indem sie recht haben
hier in diesem Codepunkt.

00:35:31.710 --> 00:35:36.060
Es gibt keine
oder irgendetwas herumspringen.

00:35:36.060 --> 00:35:40.170
Es ist ein unveränderlicher Ort, basierend auf

00:35:40.170 --> 00:35:46.485
unveränderliche Daten zum Ändern
wie diese Datenpunkte funktionieren.

00:35:46.485 --> 00:35:50.190
So ist es schön, weil
es ist ein schöner einfacher Weg.

00:35:50.190 --> 00:35:53.490
So wie die Daten, die kommen
in diesem Ergebniswert hier

00:35:53.490 --> 00:35:57.450
ist eine unveränderliche Struktur.

00:35:57.450 --> 00:36:00.435
Anhand dieser Daten
wissen authentifiziert beobachtbar.

00:36:00.435 --> 00:36:02.760
Was das also bewoge
hier ist zu sagen, was ist

00:36:02.760 --> 00:36:06.315
Ihr Authentifizierungsstatus ist, ob
Sie authentifiziert sind oder nicht.

00:36:06.315 --> 00:36:10.845
Gültig ist, ob die
Anmeldeinformationen, die sie als gültig eingegeben haben.

00:36:10.845 --> 00:36:12.360
Darauf,

00:36:12.360 --> 00:36:17.320
Sie die Sichtbarkeit
Ihrer Bewerbung.

00:36:20.170 --> 00:36:22.890
ja, so können Sie einrichten
wie die Sichtbarkeit von

00:36:22.890 --> 00:36:26.200
Ihre Anwendung. Es ist also ordentlich.

00:36:28.340 --> 00:36:31.905
Mal sehen.

00:36:31.905 --> 00:36:34.350
Ich habe noch eine Demo wirklich schnell,

00:36:34.350 --> 00:36:36.820
nur eine kleine.

00:36:39.350 --> 00:36:43.725
Oops, ein wenig zu groß
dort. Na bitte.

00:36:43.725 --> 00:36:45.345
Sehen das alle, in Ordnung?

00:36:45.345 --> 00:36:50.400
ja. Alles klar. Ich habe diese
wie GitHub repos.

00:36:50.400 --> 00:36:53.520
Dies ist mit ein wenig
der reaktiven UI-Sachen,

00:36:53.520 --> 00:36:55.695
aber lassen Sie mich einfach zeigen.

00:36:55.695 --> 00:37:00.730
Dies hat ein paar verschiedene Proben
die Sie sich ansehen können.

00:37:02.360 --> 00:37:10.240
Hoffentlich läuft es. Wirklich
bereits laufen? Da geht es hin.

00:37:10.940 --> 00:37:14.980
Viele davon sind also
einfache Dinge, die Sie sehen.

00:37:15.050 --> 00:37:17.775
Schauen wir uns die
Positionsdemo, da wir

00:37:17.775 --> 00:37:19.905
hier zu wenig Zeit.

00:37:19.905 --> 00:37:21.900
Die Idee der Positionsdemo

00:37:21.900 --> 00:37:24.810
ist, dass sie verfolgen
Mauszeiger.

00:37:24.810 --> 00:37:30.780
Dies hat ein weiteres beliebtes Beispiel
für reaktive Konzepte.

00:37:30.780 --> 00:37:32.055
Also drücken Sie nach unten.

00:37:32.055 --> 00:37:33.660
Es erkennt, dass Sie drücken.

00:37:33.660 --> 00:37:34.740
Wenn Sie Die Maus bewegen,

00:37:34.740 --> 00:37:36.000
jetzt erkennt es, dass Sie sich bewegt haben,

00:37:36.000 --> 00:37:37.380
und dann lassen Sie los, und es gibt

00:37:37.380 --> 00:37:40.335
eine Aggregation aller Ihrer Daten.

00:37:40.335 --> 00:37:49.380
Es ist ein wenig zerbrochen

00:37:49.380 --> 00:37:51.720
weil ich
die Beschreibungen,

00:37:51.720 --> 00:37:56.080
aber es ist wirklich ordentlich, weil
alles, was Sie wirklich tun müssen,

00:37:56.120 --> 00:37:58.905
Sie haben Ihr Zeiger gedrückt Ereignis.

00:37:58.905 --> 00:38:01.200
Sie haben also den Zeiger
Presse, die sagt,

00:38:01.200 --> 00:38:03.840
"Hey, ich habe die Maus nach unten gedrückt."

00:38:03.840 --> 00:38:06.840
Nun, sobald dies
passiert ist, sie sagen: "Okay,

00:38:06.840 --> 00:38:10.395
Ich möchte
der Zeiger, der bewegt wird."

00:38:10.395 --> 00:38:14.170
Das ist also jetzt der Zeiger
umherbewegt werden.

00:38:14.240 --> 00:38:16.800
Während es sich jetzt bewegt,

00:38:16.800 --> 00:38:20.085
Sie ziehen alle diese Daten
hier zusammen,

00:38:20.085 --> 00:38:23.145
und dann die beiden Listenoperator, hier,

00:38:23.145 --> 00:38:24.960
ist nun in der Lage,
alle diese Daten zu aggregieren

00:38:24.960 --> 00:38:27.405
zusammen zu einem einzigen Datensatz.

00:38:27.405 --> 00:38:29.760
Dann hier, der Dauerte, bis das war

00:38:29.760 --> 00:38:32.220
die eine Operation, die
wir haben hier gezeigt.

00:38:32.220 --> 00:38:34.170
Es heißt: "Hey, okay,
Ich möchte nur, dass Sie

00:38:34.170 --> 00:38:36.270
nehmen Sie diese Daten und
die veröffentlichten Zeiger."

00:38:36.270 --> 00:38:38.309
So bekommen Sie das wirklich
kühle Interaktion

00:38:38.309 --> 00:38:40.020
von all diesen Ereignissen zu sagen,

00:38:40.020 --> 00:38:41.940
weil alles, was Sie wirklich wollten
zu sagen, ist, dass ich mich bewegen möchte

00:38:41.940 --> 00:38:44.130
die Maus um und wann
sie ließen die Maus los,

00:38:44.130 --> 00:38:45.810
Ich möchte alle Daten, die da waren.

00:38:45.810 --> 00:38:47.160
So können Sie all dies

00:38:47.160 --> 00:38:50.505
vertreten in diesem schönen
wenig Abonnement hier.

00:38:50.505 --> 00:38:55.120
Dies ist also einer der
diese wichtigsten Beispiele.

00:38:57.130 --> 00:39:03.360
Ja, das ist also eine schnelle Grundierung
in die reaktiven Konzepte.

00:39:04.690 --> 00:39:08.940
Es gibt eine Menge von
gute Rahmenbedingungen da draußen.

00:39:11.210 --> 00:39:16.740
Oops, nicht hilfreich. Na bitte.

00:39:16.740 --> 00:39:23.280
ja. Das ist also die Idee dahinter
die meisten der Beobachtbaren.

00:39:23.280 --> 00:39:25.530
Michael wird reden
Ein bisschen mehr über die Verwendung

00:39:25.530 --> 00:39:28.545
diese Frameworks mit MVVM.

00:39:28.545 --> 00:39:32.880
Es gibt eine Menge wirklich mächtig
Werkzeuge wie dynamische Daten.

00:39:32.880 --> 00:39:35.100
Wählen Sie Dynamische Daten, es ist

00:39:35.100 --> 00:39:37.590
eine wirklich coole Plattform

00:39:37.590 --> 00:39:41.985
für Supermacht in Ihren Listen
mit Beobachtbaren.

00:39:41.985 --> 00:39:43.890
Die Idee ist also, dass Sie

00:39:43.890 --> 00:39:46.995
im Wesentlichen machen
alles und beobachtbar.

00:39:46.995 --> 00:39:49.660
Sie können es unterschreiben,
Das wusste ich nicht.

00:39:51.470 --> 00:39:53.610
Also schätze ich wirklich schnell,

00:39:53.610 --> 00:39:55.960
Hat jemand Fragen?

00:39:57.410 --> 00:40:00.720
Ja, Sam. Nun, ja.

00:40:00.720 --> 00:40:04.095
Wir lassen uns einfach dorthin gehen. Wir werden
Fragen etwa 35 Minuten.

00:40:04.095 --> 00:40:05.520
>> Also reden Sie über

00:40:05.520 --> 00:40:10.380
die Offenlegung der
[unhörbar] und all das Zeug.

00:40:10.380 --> 00:40:14.220
Sprechen Sie darüber, warum Beobachtbare
sind besser [unhörbar].

00:40:14.220 --> 00:40:20.460
>> ja, also

00:40:20.460 --> 00:40:24.045
denke, ich würde sagen, weil
die Verwaltung- Also lautete die Frage:

00:40:24.045 --> 00:40:25.680
mit dem Speicher undicht,

00:40:25.680 --> 00:40:28.290
warum ist die Tatsache, dass es zurückkehrt

00:40:28.290 --> 00:40:31.245
ein Einweg besser zuerst
Speicherverwaltung?

00:40:31.245 --> 00:40:33.090
Die Idee dort ist nur, ja,

00:40:33.090 --> 00:40:37.230
es ist die Tatsache, dass
es ist die Lebensdauer von

00:40:37.230 --> 00:40:43.665
das Beobachtbare ist ein Aspekt
des Abonnements.

00:40:43.665 --> 00:40:46.920
Also, wenn Sie abonnieren
zu ihm, sie kommen zurück,

00:40:46.920 --> 00:40:49.395
weil Sie immer dann
ein Einweg von etwas,

00:40:49.395 --> 00:40:51.270
Sie wissen, dass Sie
um sie zu entsorgen.

00:40:51.270 --> 00:40:54.630
So ist das Paradigma, das wir verwenden.

00:40:54.630 --> 00:40:57.060
Das ist also die Idee dazu.

00:40:57.060 --> 00:41:01.365
Es ist, dass mit der Entlüftung
speziell für neue Programmierer,

00:41:01.365 --> 00:41:03.660
sie/Sie werden immer
machen Sie das als Fehler

00:41:03.660 --> 00:41:07.700
wo sind wie etwas ist

00:41:07.700 --> 00:41:08.810
etwas anderes zu überleben

00:41:08.810 --> 00:41:10.250
weil man das verstehen muss.

00:41:10.250 --> 00:41:15.360
Aber ein Einweg ist
ein sehr grundlegendes Konzept.

00:41:15.360 --> 00:41:19.155
Also, dass als Teil
des Abonnements

00:41:19.155 --> 00:41:22.860
macht Ihre Speicherverwaltung
Szenarien einfacher.

00:41:22.860 --> 00:41:25.440
ja.

00:41:25.440 --> 00:41:26.940
Haben Sie noch weitere Fragen?

00:41:26.940 --> 00:41:28.727
ja.

00:41:28.727 --> 00:41:35.250
>> [unhörbar].

00:41:35.250 --> 00:41:39.060
>> ja. Die Frage war also:

00:41:39.060 --> 00:41:41.985
können Sie Reactive Programming verwenden

00:41:41.985 --> 00:41:45.060
mit Dingen wie Aufgaben oder
asynchrone Programmierung?

00:41:45.060 --> 00:41:50.865
ja. Eine Aufgabe ist also effektiv
eine Ein-Punkt-Benachrichtigung.

00:41:50.865 --> 00:41:53.355
Wenn Sie also eine Aufgabe haben,

00:41:53.355 --> 00:41:57.210
Es gibt drei Datenpunkte für
eine Aufgabe, die genau so ist, wie

00:41:57.210 --> 00:42:02.175
unseren Iterator, als wir anzeigten.

00:42:02.175 --> 00:42:05.040
Also, wenn Sie eine Aufgabe schreiben- Okay,

00:42:05.040 --> 00:42:06.615
Ich weiß nicht, wo es ist
kommen. Alles klar.

00:42:06.615 --> 00:42:08.190
Wenn Sie also eine Aufgabe haben,

00:42:08.190 --> 00:42:14.145
Sie die Aufgabe erstellen, damit
Sie haben es am Anfang,

00:42:14.145 --> 00:42:19.724
dann starten Sie die Aufgabe
so läuft es jetzt,

00:42:19.724 --> 00:42:23.355
und dann erzeugt die Aufgabe einen Wert,

00:42:23.355 --> 00:42:26.445
das sind Ihre Punktergebnisse
die keiner von uns tippt,

00:42:26.445 --> 00:42:29.970
und dann wird es bei
dies zu vervollständigen.

00:42:29.970 --> 00:42:31.440
An diesem Punkt,

00:42:31.440 --> 00:42:35.190
Sie haben einen Datenpunkt beobachtbar.

00:42:35.190 --> 00:42:40.680
So Schafft Einweg Dinge

00:42:40.680 --> 00:42:42.900
die genau gegen die Aufgabe arbeiten, so dass

00:42:42.900 --> 00:42:45.180
dass Sie eine
gegen die Aufgabe beobachtbar.

00:42:45.180 --> 00:42:49.125
Was dann passieren wird, ist, wenn
Sie abonnieren, dass beobachtbare,

00:42:49.125 --> 00:42:54.494
ist es effektiv starten die Aufgabe
und dann, sobald das passiert,

00:42:54.494 --> 00:42:56.190
die ein Ergebnis zurückwirft.

00:42:56.190 --> 00:42:59.655
Das erzeugt also einen Wert
und dann wird es abgeschlossen.

00:42:59.655 --> 00:43:01.410
Dann ist das eine andere Sache
das ist wirklich super

00:43:01.410 --> 00:43:03.600
hilfreich, da, wenn diese Aufgabe fehlschlägt,

00:43:03.600 --> 00:43:05.040
Sie bekommen Ihre Sachen mit

00:43:05.040 --> 00:43:07.485
Observables, wo Sie
kann die Ausnahme abfangen.

00:43:07.485 --> 00:43:13.500
So können z. B. Szenarien
wie z. B. async void.

00:43:13.500 --> 00:43:16.575
Async void ist kein Problem
mit Beobachtbaren.

00:43:16.575 --> 00:43:18.495
Sie müssen sich nie Sorgen machen

00:43:18.495 --> 00:43:21.970
async void Wenn Sie
Observables zu tun.

00:43:22.040 --> 00:43:26.520
So wissen Sie zum Beispiel, wie Sie
Möchten Sie vielleicht eine asynchrone Aufgabe starten

00:43:26.520 --> 00:43:28.050
von einem Konstruktor oder Dingen wie

00:43:28.050 --> 00:43:30.060
oder diese Probleme von
diejenigen mit Beobachtbaren,

00:43:30.060 --> 00:43:31.200
das ist nicht einmal ein Szenario,

00:43:31.200 --> 00:43:34.320
da Sie die Aufgabe einfach in eine

00:43:34.320 --> 00:43:36.180
beobachtbar und dann haben Sie

00:43:36.180 --> 00:43:39.225
das Ausnahmeverhalten als Teil
des Beobachtbaren mit der Aufgabe.

00:43:39.225 --> 00:43:40.710
Also ja, sie funktionieren.

00:43:40.710 --> 00:43:42.060
Sie sind ideal für Aufgaben.

00:43:42.060 --> 00:43:43.770
Da vergesse ich also, wer redet.

00:43:43.770 --> 00:43:46.260
Jeffrey oder so ähnlich
das spricht darüber;

00:43:46.260 --> 00:43:48.015
darüber sprechen, wie Aufgaben sind

00:43:48.015 --> 00:43:50.010
super schlecht und Sie sollten
verwenden Sie nur Beobachtbare.

00:43:50.010 --> 00:43:51.360
Aber ja, sobald Sie mit der Verwendung beginnen

00:43:51.360 --> 00:43:53.685
Beobachtbare
in Ihrem UI-Code,

00:43:53.685 --> 00:43:55.260
Sie werden effektiv nur setzen

00:43:55.260 --> 00:43:57.420
eine Fassade vor allen
Ihrer Aufgaben, weil

00:43:57.420 --> 00:44:02.080
es wird so viel einfacher,
durch Beobachtbare zu verwalten.

00:44:02.450 --> 00:44:04.905
Haben Sie noch weitere Fragen?

00:44:04.905 --> 00:44:07.840
Ich bekomme die shhh.

00:44:09.380 --> 00:44:12.870
Kann ich noch eine nehmen
frage? Nein? Okay, nein.

00:44:12.870 --> 00:44:15.075
Ich werde Ihre
Frage direkt danach.

00:44:15.075 --> 00:44:17.340
kühl. Also ja, ich bin Shane.

00:44:17.340 --> 00:44:20.500
Das sind meine Observables.

