Michael Mächtel 7 years ago
parent
commit
f340cd787a
2 changed files with 19 additions and 19 deletions
  1. 7
    7
      hw9/task1/README.md
  2. 12
    12
      hw9/task2/README.md

+ 7
- 7
hw9/task1/README.md View File

51
 
51
 
52
 ### 1.2.3 CONTROL
52
 ### 1.2.3 CONTROL
53
 
53
 
54
-Das CONTROL-Kommando überträgt eine CONTROL Kommando an den Server. Das
55
-Kommando darf selbst keine newline enthalten. Es ist erlaubt, eine
54
+Das CONTROL-Kommando überträgt ein CONTROL Kommando an den Server. Das
55
+Kommando darf selbst keine newline enthalten. Es ist erlaubt, ein
56
 _leeres_ Kommando zu schicken.
56
 _leeres_ Kommando zu schicken.
57
 
57
 
58
 Beispiele:
58
 Beispiele:
81
 überlassen.
81
 überlassen.
82
 
82
 
83
 Enthält der Input mehrere newlines, darf der Rest ohne Fehler verworfen
83
 Enthält der Input mehrere newlines, darf der Rest ohne Fehler verworfen
84
-weden.
84
+werden.
85
 
85
 
86
 Folgendes öffentliche Interface ist vorgegeben:
86
 Folgendes öffentliche Interface ist vorgegeben:
87
 
87
 
104
 
104
 
105
 ### 2.2.3 Fehlerbehandlung und Rückgabetyp
105
 ### 2.2.3 Fehlerbehandlung und Rückgabetyp
106
 
106
 
107
-Finden Sie einen geeigneten Rückgabetyp, der das gefundene Kommando, als
108
-auch eventuelle Fehler kommuniziert. Kombinieren Sie dies mit einer
109
-geeigneten Darstellung des Kommandos.
107
+Finden Sie einen geeigneten Rückgabetyp, der sowohl das gefundene
108
+Kommando, als auch eventuelle Fehler kommuniziert. Kombinieren Sie dies
109
+mit einer geeigneten Darstellung des Kommandos.
110
 
110
 
111
-Allokieren Sie die gefunden Daten als `String`.
111
+Allokieren Sie die gefundenen Daten als `String`.
112
 
112
 
113
 ## 3.1 Hilfen
113
 ## 3.1 Hilfen
114
 
114
 

+ 12
- 12
hw9/task2/README.md View File

21
 
21
 
22
 Zuvor legen wir ein [Rust Workspace][] an, in welchem wir komfortabel
22
 Zuvor legen wir ein [Rust Workspace][] an, in welchem wir komfortabel
23
 unsere eigenen Bibliotheken und ein Binary (den Server) verwalten.
23
 unsere eigenen Bibliotheken und ein Binary (den Server) verwalten.
24
-Nutzen Sie die in hw9:task1 geschriebene Bibliothek, in dem Sie diese
25
-als `srv-commands` Bibliothek in task2 benutzen, um die Kommandos an den
24
+Nutzen Sie die in hw9:task1 geschriebene Bibliothek, indem Sie diese als
25
+`srv-commands` Bibliothek in task2 benutzen, um die Kommandos an den
26
 Server zu parsen. Kopieren Sie dazu Ihre Dateien aus task1 in das
26
 Server zu parsen. Kopieren Sie dazu Ihre Dateien aus task1 in das
27
 `srv-commands` Verzeichnis.
27
 `srv-commands` Verzeichnis.
28
 
28
 
36
 gibt, in der Sie gesendet wurden. ([FIFO][fifo])
36
 gibt, in der Sie gesendet wurden. ([FIFO][fifo])
37
 
37
 
38
 Der Server darf beim Herunterfahren alle Daten verlieren. In dieser
38
 Der Server darf beim Herunterfahren alle Daten verlieren. In dieser
39
-Version Ihres Servers genügt es, wenn der Server nur immer eine Anfrage
39
+Version Ihres Servers genügt es, wenn der Server immer nur eine Anfrage
40
 zu jeder Zeit beantwortet.
40
 zu jeder Zeit beantwortet.
41
 
41
 
42
 ### 2.1.1 Optionen beim Aufruf
42
 ### 2.1.1 Optionen beim Aufruf
128
 
128
 
129
 ### 2.1.3 Ausgaben des Servers auf der Konsole
129
 ### 2.1.3 Ausgaben des Servers auf der Konsole
130
 
130
 
131
-Eventuell Auftretende Fehler gibt der Server auf der Konsole aus, ohne
131
+Eventuell auftretende Fehler gibt der Server auf der Konsole aus, ohne
132
 das Programm zu beenden. So wird z.B bei einem unbekannten Kommando der
132
 das Programm zu beenden. So wird z.B bei einem unbekannten Kommando der
133
-Entsprechende Errors Ihrer `srv-commands` Bibliothek ausgegeben, die
133
+entsprechende Error Ihrer `srv-commands` Bibliothek ausgegeben, die
134
 folgende Form haben könnte:
134
 folgende Form haben könnte:
135
 ```text
135
 ```text
136
 ...
136
 ...
138
 ...
138
 ...
139
 ```
139
 ```
140
 
140
 
141
-Wird die Option -v angegeben, dann gibt der Server zusätzlichen
141
+Wird die Option -v angegeben, dann gibt der Server zusätzliche
142
 Informationen aus (siehe obiges Kapitel dazu).
142
 Informationen aus (siehe obiges Kapitel dazu).
143
 
143
 
144
 ### 2.1.4 Unit Tests / Integration Tests
144
 ### 2.1.4 Unit Tests / Integration Tests
149
 ## 3.1 Fehlerbehandlung 
149
 ## 3.1 Fehlerbehandlung 
150
 
150
 
151
 Wie bereits mehrfach erwähnt, geschieht auch in Rust die
151
 Wie bereits mehrfach erwähnt, geschieht auch in Rust die
152
-Fehlerbehandlung wie mit Javas checked Exceptions, in dem spezielle
152
+Fehlerbehandlung wie mit Javas checked Exceptions, indem spezielle
153
 Fehler und Ergebnisse in generische Fehler und Ereignisse umgeformt
153
 Fehler und Ergebnisse in generische Fehler und Ereignisse umgeformt
154
-werden, um diese dann nach 'oben' durch zureichen. Auf der höchsten
154
+werden, um diese dann nach 'oben' durch zu reichen. Auf der höchsten
155
 Ebene werden dann die Fehler behandelt. Bei Rust kommt noch dazu, dass
155
 Ebene werden dann die Fehler behandelt. Bei Rust kommt noch dazu, dass
156
 man Results auch lokal in einer Funktion kombiniert, um dann alle Fehler
156
 man Results auch lokal in einer Funktion kombiniert, um dann alle Fehler
157
-innerhalb dieser Funktion (Top-level Handler) behandelt.
157
+innerhalb dieser Funktion (Top-level Handler) zu behandeln.
158
 
158
 
159
 Als Basiswerkzeug haben Sie dazu bereits die Traits
159
 Als Basiswerkzeug haben Sie dazu bereits die Traits
160
 `[std::convert::From][]` und `[std::convert::Into][]` kennen gelernt. Es
160
 `[std::convert::From][]` und `[std::convert::Into][]` kennen gelernt. Es
172
 ```
172
 ```
173
 
173
 
174
 Das ist derzeit noch 'aufwendig' als Syntax zu schreiben, entsprechende
174
 Das ist derzeit noch 'aufwendig' als Syntax zu schreiben, entsprechende
175
-RFC's um dies zu vereinfachen existieren bereits (vgl. Evolution der
175
+RFC's, um dies zu vereinfachen existieren bereits (vgl. Evolution der
176
 Fehlerbehandlung in Rust: match()->try!->?).
176
 Fehlerbehandlung in Rust: match()->try!->?).
177
 
177
 
178
 Ihre Lösung dieser Aufgabe hat somit idealerweise einen eigenen
178
 Ihre Lösung dieser Aufgabe hat somit idealerweise einen eigenen
182
 ## 4.1 Tipps
182
 ## 4.1 Tipps
183
 
183
 
184
 * Zum Speichern eignet sich die [VecDeque][vecdeque], mit der sich das oben genannte FIFO-Verhalten gut abbilden lässt.
184
 * Zum Speichern eignet sich die [VecDeque][vecdeque], mit der sich das oben genannte FIFO-Verhalten gut abbilden lässt.
185
-* Früher an später denken: gut Aufteilung von Aufgaben in Funktionen,
186
-  Module und Bibliotheken macht die folgenden Aufgaben einfacher.
185
+* Früher an später denken: gute Aufteilung von Aufgaben in Funktionen,
186
+  Module und Bibliotheken machen die folgenden Aufgaben einfacher.
187
 * Zum Testen eignet sich **netcat**:
187
 * Zum Testen eignet sich **netcat**:
188
 
188
 
189
 ```
189
 ```

Loading…
Cancel
Save