Weniger schlecht programmieren:
Gespeichert in:
Beteiligte Personen: | , |
---|---|
Format: | Buch |
Sprache: | Deutsch |
Veröffentlicht: |
Beijing [u.a.]
O'Reilly
2014
|
Ausgabe: | 1. Aufl., 1., korr. Nachdr. |
Schlagwörter: | |
Links: | http://www.oreilly.de/catalog/wenschleprogger/index.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027263488&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XX, 431 S. graph. Darst. |
ISBN: | 9783897215672 3897215675 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV041818309 | ||
003 | DE-604 | ||
005 | 20250414 | ||
007 | t| | ||
008 | 140428s2014 xx d||| m||| 00||| ger d | ||
020 | |a 9783897215672 |9 978-3-89721-567-2 | ||
020 | |a 3897215675 |c : EUR 19.90 (DE) |9 3-89721-567-5 | ||
024 | 3 | |a 9783897215672 | |
035 | |a (OCoLC)879626118 | ||
035 | |a (DE-599)BVBBV041818309 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
049 | |a DE-703 |a DE-523 |a DE-898 |a DE-91G |a DE-Aug4 |a DE-384 |a DE-83 |a DE-573 |a DE-1047 |a DE-N2 |a DE-1102 |a DE-861 |a DE-355 |a DE-188 |a DE-860 |a DE-739 |a DE-29T |a DE-20 |a DE-1043 |a DE-B768 |a DE-634 |a DE-824 |a DE-Bo133 |a DE-11 | ||
082 | 0 | |a 005.1 |2 22/ger | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a ST 240 |0 (DE-625)143625: |2 rvk | ||
084 | |a AP 15942 |0 (DE-625)6955: |2 rvk | ||
084 | |a DAT 300f |2 stub | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Passig, Kathrin |d 1970- |e Verfasser |0 (DE-588)122342321 |4 aut | |
245 | 1 | 0 | |a Weniger schlecht programmieren |c Kathrin Passig & Johannes Jander |
250 | |a 1. Aufl., 1., korr. Nachdr. | ||
264 | 1 | |a Beijing [u.a.] |b O'Reilly |c 2014 | |
300 | |a XX, 431 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Bug |g Informatik |0 (DE-588)4238603-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4113937-9 |a Hochschulschrift |2 gnd-content | |
689 | 0 | 0 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | 1 | |a Bug |g Informatik |0 (DE-588)4238603-2 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Jander, Johannes |e Verfasser |0 (DE-588)1059892952 |4 aut | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-3-95561-568-0 |
856 | 4 | 2 | |q text/html |u http://www.oreilly.de/catalog/wenschleprogger/index.html |3 Ausführliche Beschreibung |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027263488&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-027263488 |
Datensatz im Suchindex
DE-BY-OTHR_call_number | F 03/ST 230 P288 |
---|---|
DE-BY-OTHR_katkey | 5440661 |
DE-BY-OTHR_location | 02 |
DE-BY-OTHR_media_number | 067004025517 067004025620 067002806278 |
DE-BY-TUM_call_number | 0102 DAT 300f 2014 A 2521 |
DE-BY-TUM_katkey | 2000752 |
DE-BY-TUM_location | 01 |
DE-BY-TUM_media_number | 040080117857 |
_version_ | 1831256945902747649 |
adam_text |
Inhalt
Vorwort
2 Zwischen Hybris und Demut. /
Schwächen als Stärken . 9
Richtiges muss nicht schwierig sein . 12
Teil 2: Programmieren als Verständigung
3 Du bist wie die andern. 17
4 Konventionen . 19
Englisch oder nicht? . 20
Die Steinchen des Anstoßes . 23
Konventionen im Team . 26
5 Namensgebung .
Namenskonventionen.
Von Byzanz über Konstantinopel nach Istanbul .
Was Namen können sollten.
Der Stoff, aus dem die Namen sind
Boolesche Variablen.
9
29
40
50
Objektorientierte Programmierung . 52
Datenbanken. 53
Falsche Freunde . 55
Wie es weitergeht. 58
6 Kommentare. 61
Mehr ist manchmal mehr. 63
Zur äußeren Form von Kommentaren . 64
Dokumentationskommentare. 66
Wann und was soll man kommentieren?. 67
Anzeichen, dass ein Kommentar eine gute Idee wäre. 69
Problematische Kommentare . 74
7 Code lesen .
Muss ich wirklich?
Zuerst die Dokumentation lesen. 79
Sourcecode ausdrucken . 80
Zeichnen Sie schematisch auf, was einzelne Programmteile tun . 81
Von oben nach unten, von leicht nach schwer. 82
Lernen Sie Spurenlesen. 82
80/20 ist gut genug (meistens) . 83
Vergessen Sie die Daten nicht. 84
Der Beweis ist das Programm. 84
Gemeinsames Code-Lesen . 85
8 Hilfe suchen . 87
Der richtige Zeitpunkt . 88
An der richtigen Stelle fragen . 91
Die Anfrage richtig strukturieren . 91
An den Leser denken . 94
Nicht zu viel erwarten. 95
Keine unbewussten Fallen stellen. 96
Höflich bleiben - egal, was passiert . 96
9 Lizenz zum Helfen . 99
Der falsche Anlass. 99
Die eigennützige Motivation. 101
Die fehlende Einfühlung. 102
Zu viel auf einmal. 103
Antworten auf konkrete Fragen . 105
Wenn Sie selbst keine Antwort wissen. 106
VI I Inhalt
Wenn Sie mit schlechteren Programmierern Zusammenarbeiten. 107
Schlechten Code gefasst ertragen. 108
10 Überleben im Team. 111
Ich war's nicht! . 113
Der Bus-Faktor. 114
Zusammenarbeit mit Anwendern. 116
Zusammenarbeit mit Freiwilligen. 117
Aussprache von Begriffen. 117
Teil 3: Umgang mit Fehlem
11 Unrecht haben für Anfänger .
Im Irrtum zu Hause .
Fehlerforschung im Alltag .
Der Hund hat die Datenbank gefressen
Der gepolsterte Helm .
Systematische Fehlersuche.
Beobachtung.
Was das Beobachten erschwert .
Analyse und Hypothesenbildung.
Was das Bilden von Hypothesen erschwert .
Test der Hypothesen .
Was das Testen von Hypothesen erschwert .
13 Debugging II: Finde den Fehler .
Fehlermeldungen sind unsere Freunde.
Wer will da was von mir?.
Diagnosewerkzeuge und -Strategien.
Wenn sonst nichts hilft.
Wenn auch das nicht hilft.
Die häufigsten Fehlerursachen schlechter Programmierer
14 Schlechte Zeichen oder Braune M ft Ms .
Zu große Dateien .
Sehr lange Funktionen .
Zu breite Funktionen .
123
124
125
126
127
133
135
136
138
138
139
140
143
143
144
147
160
162
163
165
166
167
167
Inhalt | VII
168
170
170
171
172
173
174
174
174
175
176
176
176
177
177
178
178
179
181
182
183
186
191
191
194
195
198
201
201
203
204
206
208
208
211
m
213
214
220
Tief verschachtelte if/then-Bedingungen .
Mitten im Code auftauchende Zahlen .
Komplexe arithmetische Ausdrücke im Code .
Globale Variablen.
Reparaturcode.
Eigene Implementierung vorhandener Funktionen .
Sonderfälle .
Inkonsistente Schreibweisen.
Funktionen mit mehr als fünf Parametern .
Code-Duplikation.
Zweifelhafte Dateinamen .
Leselabyrinth .
Ratlose Kommentare.
Sehr viele Basisklassen oder Interfaces.
Sehr viele Methoden oder Member-Variablen .
Auskommentierte Codeblöcke und Funktionen .
Browservorschriften .
Verdächtige Tastaturgeräusche.
Refactoring.
Neu schreiben oder nicht? .
Wann sollte man refakturieren? .
Eins nach dem anderen.
Code auf mehrere Dateien verteilen.
Ein Codemodul in kleinere aufspalten.
Nebenwirkungen entfernen .
Code zusammenfassen.
Bedingungen verständlicher gestalten.
Die richtige Schleife für den richtigen Zweck.
Schleifen verständlicher gestalten.
Variablen kritisch betrachten.
Refactoring von Datenbanken .
Was man nebenbei erledigen kann.
Ist das jetzt wirklich besser? .
Wann man auf Refactoring besser verzichtet.
Ein Problem und seine Lösung.
Testing.
Warum testen? . . .
Testverfahren
Datenvalidierungen
| Inhalt
Performancetests. 222
Richtig testen . 225
17 Warnhinweise. 227
GET und POST. 228
Zeichenkodierung. 229
Zeitangaben . 230
Kommazahlen als String, Integer oder Decimal speichern. 232
Variablen als Werte oder Referenzen übergeben . 233
Der schwierige Umgang mit dem Nichts . 236
Rekursion. 237
Usability. 238
18 Kompromisse . 241
Trügerische Tugenden . 243
Absolution: Wann Bad Practice okay ist . 247
19 Mach es nicht selbst .
Der Weg zur Lösung.
Bibliotheken.
Umgang mit Fremdcode.
Was man nicht selbst zu machen braucht
255
257
258
261
262
20
Werkzeugkasten.
Editoren .
Welche Programmiersprache ist die richtige?
REPL.
Diff und Patch.
Paketmanager.
Frameworks .
Entwicklungsumgebungen
Alternativen .
Arbeiten mit einem VCS .
Konflikte auflösen. .
Welches Versionskonirollsystem? .
Gute Ideen beim Arbeiten mit Versionskontrolle
273
274
275
279
282
284
286
789
799
300
302
303
Inhalt I IX
Schlechte Ideen beim Arbeiten mit Versionskontrolle. 306
Versionskontrollsysteme als Softwarebausteine. 307
22 Command and Conquer- vom Überleben auf der Kommandozeile . 309
Mehr Effizienz durch Automatisierung. 310
Unsere langbärtigen Vorfahren. 312
Windows. 313
Was jeder Programmierer wissen sollte . 313
Navigation . 318
Dateien . 318
Betrachten. 321
Suchen und Finden. 322
Ressourcen schonen . 325
Zusammenarbeit. 326
Zeitsteuerung . 326
Editieren auf dem Server. 328
Internet. 328
Muss ich mir das alles merken? . 330
Not the whole Shebang! . 330
23 Objektorientierte Programmierung . 333
Vorteile der objektorientierten Programmierung. 335
Die Prinzipien objektorientierter Programmierung . 337
Sinnvoller Einsatz von OOP. 344
Nachteile und Probleme. 347
Unterschiedliche Objektmodelle, je nach Sprache. 348
Objektorientierte Programmierung und Weltherrschaftspläne . 348
24 Aufbewahrung von Daten . 351
Dateien. 352
Versionskontrollsysteme. 357
Datenbanken. 357
25 Sicherheit. 365
Wichtige Konzepte. 366
Vor- und Nachteile der Offenheit. 368
Vom Umgang mit Passwörtern. 370
Authentifizierungsverfahren. 371
SQL Injection und XSS ֊ die Gefahren in User-Content . 3 /5
Weiße Listen sind besser als schwarze . . . 380
Alle Regler nach links. 38.1
X
Inhalt
Auch die Hintertür abschließen. 383
Penetration Testing. 384
Die Fehler der anderen. 385
Sicherheit ist ein Prozess. 386
26 Nützliche Konzepte. 389
Exceptions . 389
Error Handling. 392
State und Statelessness. 396
IDs, GUIDs, UUIDs . 397
Sprachfamilien . 399
Variablentypen. 401
Trennung von Inhalt und Präsentation. 404
Trennung von Entwicklungs™ und Produktivserver. 405
Selektoren. 406
Namespaces . 408
Scope von Variablen. . 410
Assertions . 411
Transaktionen und Rollbacks. 414
Hashes, Digests, Fingerprints. 4.15
CRUD und REST. 417
27 Wie geht es weiter?. 419
Was ist ein guter Programmierer?. 420
Zum Weiterlesen . 421
Danksagungen . 422
Inhalt
Kl |
any_adam_object | 1 |
author | Passig, Kathrin 1970- Jander, Johannes |
author_GND | (DE-588)122342321 (DE-588)1059892952 |
author_facet | Passig, Kathrin 1970- Jander, Johannes |
author_role | aut aut |
author_sort | Passig, Kathrin 1970- |
author_variant | k p kp j j jj |
building | Verbundindex |
bvnumber | BV041818309 |
classification_rvk | ST 230 ST 240 AP 15942 |
classification_tum | DAT 300f |
ctrlnum | (OCoLC)879626118 (DE-599)BVBBV041818309 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Allgemeines Informatik |
edition | 1. Aufl., 1., korr. Nachdr. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV041818309</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20250414</controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">140428s2014 xx d||| m||| 00||| ger d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783897215672</subfield><subfield code="9">978-3-89721-567-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3897215675</subfield><subfield code="c">: EUR 19.90 (DE)</subfield><subfield code="9">3-89721-567-5</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783897215672</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)879626118</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV041818309</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-1047</subfield><subfield code="a">DE-N2</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-1043</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-Bo133</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 240</subfield><subfield code="0">(DE-625)143625:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">AP 15942</subfield><subfield code="0">(DE-625)6955:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 300f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Passig, Kathrin</subfield><subfield code="d">1970-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)122342321</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Weniger schlecht programmieren</subfield><subfield code="c">Kathrin Passig & Johannes Jander</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. Aufl., 1., korr. Nachdr.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2014</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 431 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Bug</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4238603-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4113937-9</subfield><subfield code="a">Hochschulschrift</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Bug</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4238603-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Jander, Johannes</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1059892952</subfield><subfield code="4">aut</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-3-95561-568-0</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://www.oreilly.de/catalog/wenschleprogger/index.html</subfield><subfield code="3">Ausführliche Beschreibung</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027263488&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027263488</subfield></datafield></record></collection> |
genre | (DE-588)4113937-9 Hochschulschrift gnd-content |
genre_facet | Hochschulschrift |
id | DE-604.BV041818309 |
illustrated | Illustrated |
indexdate | 2025-04-14T10:01:11Z |
institution | BVB |
isbn | 9783897215672 3897215675 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027263488 |
oclc_num | 879626118 |
open_access_boolean | |
owner | DE-703 DE-523 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-Aug4 DE-384 DE-83 DE-573 DE-1047 DE-N2 DE-1102 DE-861 DE-355 DE-BY-UBR DE-188 DE-860 DE-739 DE-29T DE-20 DE-1043 DE-B768 DE-634 DE-824 DE-Bo133 DE-11 |
owner_facet | DE-703 DE-523 DE-898 DE-BY-UBR DE-91G DE-BY-TUM DE-Aug4 DE-384 DE-83 DE-573 DE-1047 DE-N2 DE-1102 DE-861 DE-355 DE-BY-UBR DE-188 DE-860 DE-739 DE-29T DE-20 DE-1043 DE-B768 DE-634 DE-824 DE-Bo133 DE-11 |
physical | XX, 431 S. graph. Darst. |
publishDate | 2014 |
publishDateSearch | 2014 |
publishDateSort | 2014 |
publisher | O'Reilly |
record_format | marc |
spellingShingle | Passig, Kathrin 1970- Jander, Johannes Weniger schlecht programmieren Bug Informatik (DE-588)4238603-2 gnd Programmierung (DE-588)4076370-5 gnd |
subject_GND | (DE-588)4238603-2 (DE-588)4076370-5 (DE-588)4113937-9 |
title | Weniger schlecht programmieren |
title_auth | Weniger schlecht programmieren |
title_exact_search | Weniger schlecht programmieren |
title_full | Weniger schlecht programmieren Kathrin Passig & Johannes Jander |
title_fullStr | Weniger schlecht programmieren Kathrin Passig & Johannes Jander |
title_full_unstemmed | Weniger schlecht programmieren Kathrin Passig & Johannes Jander |
title_short | Weniger schlecht programmieren |
title_sort | weniger schlecht programmieren |
topic | Bug Informatik (DE-588)4238603-2 gnd Programmierung (DE-588)4076370-5 gnd |
topic_facet | Bug Informatik Programmierung Hochschulschrift |
url | http://www.oreilly.de/catalog/wenschleprogger/index.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027263488&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT passigkathrin wenigerschlechtprogrammieren AT janderjohannes wenigerschlechtprogrammieren |
Inhaltsverzeichnis
Paper/Kapitel scannen lassen
Paper/Kapitel scannen lassen
Teilbibliothek Mathematik & Informatik
Signatur: |
0102 DAT 300f 2014 A 2521
Lageplan |
---|---|
Exemplar 1 | Ausleihbar Am Standort |