Full stack web development: the comprehensive guide
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston, MA
Rheinwerk
2023
|
Ausgabe: | 1st edition |
Schriftenreihe: | Rheinwerk Computing
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | 740 Seiten Illustrationen 25.4 cm x 17.8 cm |
ISBN: | 1493224379 9781493224371 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV049579687 | ||
003 | DE-604 | ||
005 | 20240328 | ||
007 | t | ||
008 | 240221s2023 gw a||| |||| 00||| eng d | ||
015 | |a 23,N20 |2 dnb | ||
016 | 7 | |a 1288765142 |2 DE-101 | |
020 | |a 1493224379 |9 1-4932-2437-9 | ||
020 | |a 9781493224371 |c pbk: EUR 56.03 (DE), EUR 59.95 (DE) (freier Preis), EUR 61.70 (AT) (freier Preis), CHF 76.95 (freier Preis) |9 978-1-4932-2437-1 | ||
024 | 3 | |a 9781493224371 | |
028 | 5 | 2 | |a Bestellnummer: 459/22437 |
035 | |a (OCoLC)1427327016 | ||
035 | |a (DE-599)DNB1288765142 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a gw |c XA-DE | ||
049 | |a DE-29T |a DE-92 | ||
084 | |a ST 252 |0 (DE-625)143627: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
100 | 1 | |a Ackermann, Philip |e Verfasser |0 (DE-588)1045951536 |4 aut | |
240 | 1 | 0 | |a Fullstack-Entwicklung |
245 | 1 | 0 | |a Full stack web development |b the comprehensive guide |c Philip Ackermann |
250 | |a 1st edition | ||
264 | 1 | |a Boston, MA |b Rheinwerk |c 2023 | |
300 | |a 740 Seiten |b Illustrationen |c 25.4 cm x 17.8 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Rheinwerk Computing | |
650 | 0 | 7 | |a Webentwicklung |0 (DE-588)1176227475 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a JavaScript |0 (DE-588)4420180-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a HTML |0 (DE-588)4373477-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Front-End |g Software |0 (DE-588)4706102-9 |2 gnd |9 rswk-swf |
653 | |a Full-stack web development | ||
653 | |a back-end development | ||
653 | |a front-end development | ||
689 | 0 | 0 | |a Webentwicklung |0 (DE-588)1176227475 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a HTML |0 (DE-588)4373477-7 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a JavaScript |0 (DE-588)4420180-1 |D s |
689 | 2 | |5 DE-604 | |
689 | 3 | 0 | |a Front-End |g Software |0 (DE-588)4706102-9 |D s |
689 | 3 | |5 DE-604 | |
710 | 2 | |a Galileo Press Inc. |0 (DE-588)106510992X |4 pbl | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=5ed5eaf56fbb45b290741394da14a4e4&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034924628&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a vlb |d 20230509 |q DE-101 |u https://d-nb.info/provenance/plan#vlb | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-034924628 |
Datensatz im Suchindex
_version_ | 1814902795810111488 |
---|---|
adam_text |
CONTENTS
FOREWORD
.
23
PREFACE
.
25
1
UNDERSTANDING
THE
BASICS
29
1.1
TERMINOLOGY
.
29
1.1.1
CLIENT
AND
SERVER
.
29
1.1.2
RELATIONSHIP
BETWEEN
URLS,
DOMAINS,
AND
IP
ADDRESSES
.
30
1.2
STRUCTURE
OF
WEB
APPLICATIONS
.
32
1.2.1
CREATING
WEB
PAGES
USING
HTML
.
32
1.2.2
DESIGNING
WEB
PAGES
WITH
CSS
.
33
1.2.3
MAKING
WEB
PAGES
INTERACTIVE
WITH
JAVASCRIPT
.
34
1.2.4
MAKING
WEB
PAGES
DYNAMIC
USING
SERVER-SIDE
LOGIC
.
35
1.3
FULL
STACK
DEVELOPMENT
.
36
1.3.1
WHAT
ARE
SOFTWARE
STACKS?
.
36
1.3.2
WHAT
TYPES
OF
STACKS
EXIST?
.
37
1.3.3
WHAT
IS
A
FULL
STACK
DEVELOPER?
.
38
1.3.4
STRUCTURE
OF
THIS
BOOK
.
40
1.4
TOOLS
FOR
FULL
STACK
DEVELOPERS
.
42
1.4.1
EDITORS
.
.
43
1.4.2
DEVELOPMENT
ENVIRONMENTS
.
44
1.4.3
BROWSERS
.
46
1.5
SUMMARY
AND
OUTLOOK
.
50
1.5.1
KEY
POINTS
.
50
1.5.2
OUTLOOK
.
50
2
STRUCTURING
WEB
PAGES
WITH
HTML
51
2.1
INTRODUCTION
.
51
2.1.1
VERSIONS
.
52
2.1.2
USING
ELEMENTS
AND
ATTRIBUTES
.
52
2.1.3
SAVING
WEB
PAGES
AS
HTML
DOCUMENTS
.
54
CONTENTS
2.2
USING
THE
MOST
IMPORTANT
ELEMENTS
.
56
2.2.1
USING
HEADINGS,
PARAGRAPHS,
AND
OTHER
TEXT
FORMATTING
.
56
2.2.2
CREATING
LISTS
.
57
2.2.3
DEFINING
LINKS
.
59
2.2.4
INCLUDING
IMAGES
.
64
2.2.5
STRUCTURING
DATA
IN
TABLES
.
66
2.2.6
DEFINING
FORMS
.
72
2.2.7
FURTHER
INFORMATION
.
76
2.3
SUMMARY
AND
OUTLOOK
.
77
2.3.1
KEY
POINTS
.
77
2.3.2
RECOMMENDED
READING
.
78
2.3.3
OUTLOOK
.
78
3
DESIGNING
WEB
PAGES
WITH
CSS
79
3.1
INTRODUCTION
.
79
3.1.1
THE
PRINCIPLE
OF
CSS
.
80
3.1.2
INCLUDING
CSS
IN
HTML
.
80
3.1.3
SELECTORS
.
85
3.1.4
CASCADING
AND
SPECIFICITY
.
88
3.1.5
INHERITANCE
.
91
3.2
APPLYING
COLORS
AND
TEXT
FORMATTING
.
91
3.2.1
DEFINING
THE
TEXT
COLOR
AND
BACKGROUND
COLOR
.
91
3.2.2
DESIGNING
TEXTS
.
93
3.3
LISTS
AND
TABLES
.
103
3.3.1
DESIGNING
LISTS
.
103
3.3.2
DESIGNING
TABLES
.
107
3.4
UNDERSTANDING
THE
DIFFERENT
LAYOUT
SYSTEMS
.
112
3.4.1
BASIC
PRINCIPLES
OF
POSITIONING
WITH
CSS
.
113
3.4.2
FLOAT
LAYOUT
.114
3.4.3
FLEXBOX
LAYOUT
.
118
3.4.4
GRID
LAYOUT
.124
3.5
SUMMARY
AND
OUTLOOK
.
129
3.5.1
KEY
POINTS
.
130
3.5.2
RECOMMENDED
READING
.
130
3.5.3
OUTLOOK
.
131
CONTENTS
4
MAKING
WEB
PAGES
INTERACTIVE
WITH
JAVASCRIPT
133
4.1
INTRODUCTION
.
133
4.1.1
INCLUDING
JAVASCRIPT
.134
4.1.2
DISPLAYING
DIALOG
BOXES
.
136
4.1.3
USING
THE
DEVELOPER
CONSOLE
.
137
4.1.4
INTRODUCTION
TO
PROGRAMMING
.
139
4.2
VARIABLES,
CONSTANTS,
DATA
TYPES,
AND
OPERATORS
.
140
4.2.1
DEFINING
VARIABLES
.
140
4.2.2
DEFINING
CONSTANTS
.
141
4.2.3
USING
DATA
TYPES
.
141
4.2.4
USING
OPERATORS
.
143
4.3
USING
CONTROL
STRUCTURES
.
144
4.3.1
USING
CONDITIONAL
STATEMENTS
AND
BRANCHING
.
144
4.3.2
USING
LOOPS
.
146
4.4
FUNCTIONS
AND
ERROR
HANDLING
.
147
4.4.1
DEFINING
AND
CALLING
FUNCTIONS
.
147
4.4.2
PASSING
AND
ANALYZING
FUNCTION
PARAMETERS
.
148
4.4.3
DEFINING
RETURN
VALUES
.
149
4.4.4 RESPONDING
TO
ERRORS
.
149
4.5
OBJECTS
AND
ARRAYS
.
151
4.5.1
USING
OBJECTS
.
151
4.5.2
USING
ARRAYS
.
152
4.6
SUMMARY
AND
OUTLOOK
.154
4.6.1
KEY
POINTS
.154
4.6.2
RECOMMENDED
READING
.
155
4.6.3
OUTLOOK
.
155
5
USING
WEB
PROTOCOLS
157
5.1
HYPERTEXT
TRANSFER
PROTOCOL
.
157
5.1.1
REQUESTS
AND
RESPONSES
.
158
5.1.2
STRUCTURE
OF
HTTP
REQUESTS
.
160
5.1.3
STRUCTURE
OF
HTTP
RESPONSES
.
161
5.1.4
HEADER
.
162
5.1.5
METHODS
.164
5.1.6
STATUS
CODES
.
166
5.1.7
MIME
TYPES
.
167
CONTENTS
5.1.8
COOKIES
.
YY
.
170
5.1.9
EXECUTING
HTTP
FROM
THE
COMMAND
LINE
.
173
5.2
BIDIRECTIONAL
COMMUNICATION
.
174
5.2.1
POLLING
AND
LONG
POLLING
.174
5.2.2
SERVER-SENT
EVENTS
.
175
5.2.3
WEBSOCKETS
.
176
5.3
SUMMARY
AND
OUTLOOK
.
178
5.3.1
KEY
POINTS
.
178
5.3.2
RECOMMENDED
READING
.
178
5.3.3
OUTLOOK
.
179
6
USING
WEB
FORMATS
181
6.1
DATA
FORMATS
.
182
6.1.1
CSV
.
182
6.1.2
XML
.
182
6.1.3
JSON
.
187
6.2
IMAGE
FORMATS
.
193
6.2.1
PHOTOGRAPHS
IN
THE
JPG
FORMAT
.
193
6.2.2
GRAPHICS
AND
ANIMATIONS
IN
THE
GIF
FORMAT
.
193
6.2.3
GRAPHICS
IN
THE
PNG
FORMAT
.194
6.2.4
VECTOR
GRAPHICS
IN
THE
SVG
FORMAT
.
195
6.2.5
EVERYTHING
GETS
BETTER
WITH
THE
WEBP
FORMAT
.
196
6.2.6
COMPARING
IMAGE
FORMATS
.
196
6.2.7
PROGRAMS
FOR
IMAGE
PROCESSING
.
198
6.3
VIDEO
AND
AUDIO
FORMATS
.
199
6.3.1
VIDEO
FORMATS
.
199
6.3.2
AUDIO
FORMATS
.
202
6.4
SUMMARY
AND
OUTLOOK
.
204
6.4.1
KEY
POINTS
.
204
6.4.2
RECOMMENDED
READING
.
204
6.4.3
OUTLOOK
.
205
7
USING
WEB
APIS
207
7.1
CHANGING
WEB
PAGES
DYNAMICALLY
USING
THE
DOM
API
.208
7.1.1
THE
DOCUMENT
OBJECT
MODEL
.208
CONTENTS
7.1.2
THE
DIFFERENT
TYPES
OF
NODES
.
209
7.1.3
SELECTING
ELEMENTS
.
211
7.1.4
MODIFYING
ELEMENTS
.
213
7.1.5
CREATING,
ADDING,
AND
DELETING
ELEMENTS
.
214
7.1.6
PRACTICAL
EXAMPLE:
DYNAMIC
CREATION
OF
A
TABLE
.
215
7.2
LOADING
DATA
SYNCHRONOUSLY
VIA
AJAX
AND
THE
FETCH
API
.218
7.2.1
SYNCHRONOUS
VERSUS
ASYNCHRONOUS
COMMUNICATION
.218
7.2.2
LOADING
DATA
VIA
AJAX
.
220
7.2.3
LOADING
DATA
VIA
THE
FETCH
API
.
223
7.3
OTHER
WEB
APIS
.
223
7.3.1
OVERVIEW
OF
WEB
APIS
.
224
7.3.2
BROWSER
SUPPORT
FOR
WEB
APIS
.
227
7.4
SUMMARY
AND
OUTLOOK
.
227
7.4.1
KEY
POINTS
.
228
7.4.2
RECOMMENDED
READING
.228
7.4.3
OUTLOOK
.
228
8
OPTIMIZING
WEBSITES
FOR
ACCESSIBILITY
229
8.1
INTRODUCTION
.
229
8.1.1
INTRODUCTION
TO
ACCESSIBILITY
.230
8.1.2
USER
GROUPS
AND
ASSISTIVE
TECHNOLOGIES
.230
8.1.3
WEB
CONTENT
ACCESSIBILITY
GUIDELINES
.
232
8.2
MAKING
COMPONENTS
OF
A
WEBSITE
ACCESSIBLE
.
236
8.2.1
STRUCTURING
WEB
PAGES
SEMANTICALLY
.
236
8.2.2
USING
HEADINGS
CORRECTLY
.
239
8.2.3
MAKING
FORMS
ACCESSIBLE
.
239
8.2.4
MAKING
TABLES
ACCESSIBLE
.241
8.2.5
MAKING
IMAGES
ACCESSIBLE
.246
8.2.6
MAKING
LINKS
ACCESSIBLE
.
248
8.2.7
ACCESSIBLE
RICH
INTERNET
APPLICATIONS
.
249
8.2.8
MISCELLANEOUS
.251
8.3
TESTING
ACCESSIBILITY
.
254
8.3.1
TYPES
OF
TESTS
.
254
8.3.2
TOOLS
FOR
TESTING
.
255
8.4
SUMMARY
AND
OUTLOOK
.258
8.4.1
KEY
POINTS
.258
8.4.2
RECOMMENDED
READING
.
259
8.4.3
OUTLOOK
.
259
CONTENTS
9
SIMPLIFYING
CSS
WITH
CSS
PREPROCESSORS
261
9.1
INTRODUCTION
.261
9.1.1
HOW
CSS
PREPROCESSORS
WORK
.262
9.1.2
FEATURES
OF
CSS
PREPROCESSORS
.
262
9.1.3
SASS,
LESS,
AND
STYLUS
.264
9.2
USING
SASS
.
264
9.2.1
INSTALLING
SASS
.
264
9.2.2
COMPILING
SASS
FILES
TO
CSS
.
265
9.2.3
USING
VARIABLES
.
266
9.2.4
USING
OPERATORS
.270
9.2.5
USING
BRANCHES
.
271
9.2.6
USING
LOOPS
.
272
9.2.7
USING
FUNCTIONS
.
276
9.2.8
IMPLEMENTING
CUSTOM
FUNCTIONS
.
278
9.2.9
NESTING
RULES
.
281
9.2.10
USING
INHERITANCE
AND
MIXINS
.
282
9.3
SUMMARY
AND
OUTLOOK
.
285
9.3.1
KEY
POINTS
.
285
9.3.2
RECOMMENDED
READING
.286
9.3.3
OUTLOOK
.
286
10
IMPLEMENTING
SINGLE-PAGE
APPLICATIONS
287
10.1
INTRODUCTION
.287
10.2
SETUP
.
290
10.3
COMPONENTS:
THE
BUILDING
BLOCKS
OF
A
REACT
APPLICATION
.
293
10.3.1
STATE:
THE
LOCAL
STATE
OF
A
COMPONENT
.
295
10.3.2
THE
LIFECYCLE
OF
A
COMPONENT
.296
10.4
STYLING
COMPONENTS
.
298
10.4.1
INLINE
STYLING
.298
10.4.2
CSS
CLASSES
AND
EXTERNAL
STYLESHEETS
.
299
10.4.3
OVERVIEW
OF
OTHER
STYLING
OPTIONS
.
301
10.5
COMPONENT
HIERARCHIES
.
302
10.6
FORMS
.
307
10.7
THE
CONTEXT
API
.
310
CONTENTS
10.8
ROUTING
.314
10.9
SUMMARY
AND
OUTLOOK
.
316
10.9.1
KEY
POINTS
.
317
10.9.2
RECOMMENDED
READING
.
317
10.9.3
OUTLOOK
.
318
11
IMPLEMENTING
MOBILE
APPLICATIONS
319
11.1
THE
DIFFERENT
TYPES
OF
MOBILE
APPLICATIONS
.
319
11.1.1
NATIVE
APPLICATIONS
.
320
11.1.2
MOBILE
WEB
APPLICATIONS
.
321
11.1.3
HYBRID
APPLICATIONS
.
323
11.1.4
COMPARING
THE
DIFFERENT
APPROACHES
.324
11.2
RESPONSIVE
DESIGN
.
326
11.2.1
INTRODUCTION:
WHAT
IS
RESPONSIVE
DESIGN?
.
326
11.2.2
VIEWPORTS
.
328
11.2.3
MEDIA
QUERIES
.
330
11.2.4
FLEXIBLE
LAYOUTS
.
333
11.3
CROSS-PLATFORM
DEVELOPMENT
WITH
REACT
NATIVE
.
338
11.3.1
THE
PRINCIPLE
OF
REACT
NATIVE
.
338
11.3.2
INSTALLATION
AND
PROJECT
INITIALIZATION
.
339
11.3.3
STARTING
THE
APPLICATION
.
340
11.3.4
THE
BASIC
STRUCTURE
OF
A
REACT
NATIVE
APPLICATION
.
343
11.3.5
USER
INTERFACE
COMPONENTS
.
344
11.3.6
BUILDING
AND
PUBLISHING
APPLICATIONS
.
349
11.4
SUMMARY
AND
OUTLOOK
.
349
11.4.1
KEY
POINTS
.
349
11.4.2
RECOMMENDED
READING
.
350
11.4.3
OUTLOOK
.
350
12
UNDERSTANDING
AND
USING
WEB
ARCHITECTURES
351
12.1
LAYERED
ARCHITECTURES
.
352
12.1.1
BASIC
STRUCTURE
OF
LAYERED
ARCHITECTURES
.
352
12.1.2
CLIENT-SERVER
ARCHITECTURE
(TWO-TIER
ARCHITECTURE)
.
353
12.1.3
MULTI-TIER
ARCHITECTURE
.
355
CONTENTS
12.2
MONOLITHS
AND
DISTRIBUTED
ARCHITECTURES
.
358
12.2.1
MONOLITHIC
ARCHITECTURE
.
358
12.2.2
SERVICE-ORIENTED
ARCHITECTURE
.
359
12.2.3
MICROSERVICE
ARCHITECTURE
.
361
12.2.4
COMPONENT-BASED
ARCHITECTURE
.
362
12.2.5
MICROFRONTENDS
ARCHITECTURE
.
363
12.2.6
MESSAGING
ARCHITECTURE
.
364
12.2.7
WEB
SERVICE
ARCHITECTURE
.366
12.3
MV*
ARCHITECTURES
.
367
12.3.1
MODEL-VIEW-CONTROLLER
.
367
12.3.2
MODEL-VIEW-PRESENTER
.
370
12.3.3
MODEL-VIEW-VIEWMODEL
.370
12.4
SUMMARY
AND
OUTLOOK
.
371
12.4.1
KEY
POINTS
.
371
12.4.2
RECOMMENDED
READING
.
372
12.4.3
OUTLOOK
.
372
13
USING
PROGRAMMING
LANGUAGES
ON
THE
SERVER
SIDE
373
13.1
TYPES
OF
PROGRAMMING
LANGUAGES
.
374
13.1.1
PROGRAMMING
LANGUAGES
BY
DEGREE
OF
ABSTRACTION
.
374
13.1.2
COMPILED
AND
INTERPRETED
PROGRAMMING
LANGUAGES
.
375
13.2
PROGRAMMING
PARADIGMS
.
378
13.2.1
IMPERATIVE
AND
DECLARATIVE
PROGRAMMING
.
378
13.2.2
OBJECT-ORIENTED
PROGRAMMING
.
379
13.2.3
FUNCTIONAL
PROGRAMMING
.
384
13.3
WHAT
ARE
THE
PROGRAMMING
LANGUAGES?
.
385
13.3.1
RANKINGS
OF
PROGRAMMING
LANGUAGES
.
385
13.3.2
WHICH
PROGRAMMING
LANGUAGE
SHOULD
YOU
LEARN?
.
388
13.3.3
BUT
SERIOUSLY
NOW:
WHICH
PROGRAMMING
LANGUAGE
SHOULD
YOU
LEARN?
.394
13.4
SUMMARY
AND
OUTLOOK
.
395
13.4.1
KEY
POINTS
.
395
13.4.2
RECOMMENDED
READING
.
396
13.4.3
OUTLOOK
.
397
CONTENTS
14
USING
JAVASCRIPT
ON
THE
SERVER
SIDE
399
MERS-N-XOUNNAES-IE-AXESSXNSMEEIAS.
ANAANNAQANRASCNANAQEQXQNINAANENUNANQQASSANNAANI-SEEQSSNANSANANSAQSIACXANSDXNAQUNNQANNNUSONUNARUNUSNUNONUMNUANUNUAUNNNENVAUAN
14.1
JAVASCRIPT
ON
NODE.JS
.
399
14.1.1
NODE.JS
ARCHITECTURE
400
14.1.2
A
FIRST
PROGRAM
.403
14.1.3
PACKAGE
MANAGEMENT
.405
14.2
USING
THE
INTEGRATED
MODULES
.
409
14.2.1
READING
FILES
411
14.2.2
WRITING
FILES
412
14.2.3
DELETING
FILES
.413
14.3
IMPLEMENTING
A
WEB
SERVER
.413
14.3.1
PREPARATIONS
414
14.3.2
PROVIDING
STATIC
FILES
.
416
14.3.3
USING
THE
EXPRESS.JS
WEB
FRAMEWORK
.
420
14.3.4
PROCESSING
FORM
DATA
.
421
14.4
SUMMARY
AND
OUTLOOK
.423
14.4.1
KEY
POINTS
.
424
14.4.2
RECOMMENDED
READING
.
424
14.4.3
OUTLOOK
.
424
15
USING
THE
PHP
LANGUAGE
425
15.1
INTRODUCTION
TO
THE
PHP
LANGUAGE
.
425
15.2
INSTALLING
PHP
AND
THE
WEB
SERVER
LOCALLY
.
425
15.3
VARIABLES,
DATA
TYPES,
AND
OPERATORS
.
427
15.3.1
USING
VARIABLES
.
428
15.3.2
USING
CONSTANTS
.
432
15.3.3
USING
OPERATORS
.
432
15.4
USING
CONTROL
STRUCTURES
.435
15.4.1
CONDITIONAL
STATEMENTS
.435
15.4.2
LOOPS
.
437
15.5
FUNCTIONS
AND
ERROR
HANDLING
.
439
15.5.1
DEFINING
FUNCTIONS
.
439
15.5.2
FUNCTION
PARAMETERS
.
439
15.5.3
DEFINING
RETURN
VALUES
.
441
15.5.4
USING
DATA
TYPES
.
441
CONTENTS
15.5.5
ANONYMOUS
FUNCTIONS
.
442
15.5.6
DECLARING
VARIABLE
FUNCTIONS
.
443
15.5.7
ARROW
FUNCTIONS
.443
15.5.8
RESPONDING
TO
ERRORS
.443
15.6
USING
CLASSES
AND
OBJECTS
.445
15.6.1
WRITING
CLASSES
.445
15.6.2
CREATING
OBJECTS
.445
15.6.3
CLASS
CONSTANTS
.
446
15.6.4
VISIBILITY
.
446
15.6.5
INHERITANCE
.
447
15.6.6
CLASS
ABSTRACTION
.
448
15.6.7
MORE
FEATURES
.
449
15.7
DEVELOPING
DYNAMIC
WEBSITES
WITH
PHP
.
450
15.7.1
CREATING
AND
PREPARING
A
FORM
.
450
15.7.2
RECEIVING
FORM
DATA
.452
15.7.3
VERIFYING
FORM
DATA
.452
15.8
SUMMARY
AND
OUTLOOK
.
460
15.8.1
KEY
POINTS
.
460
15.8.2
RECOMMENDED
READING
.461
15.8.3
OUTLOOK
.462
16
IMPLEMENTING
WEB
SERVICES
463
***********************
*
BRESAUSUNAUMUAMM
**********
******
MNAMENANNNA
NNNRNMXANCMCARMSNNANMONANNUNANM
16.1
INTRODUCTION
.463
16.2
SOAP
.465
16.2.1
THE
WORKFLOW
WITH
SOAP
.
466
16.2.2
DESCRIPTION
OF
WEB
SERVICES
WITH
WSDL
.
467
16.2.3
STRUCTURE
OF
SOAP
MESSAGES
.
469
16.2.4
CONCLUSION
.
470
16.3
REST
.
471
16.3.1
THE
WORKFLOW
WITH
REST
.
471
16.3.2
THE
PRINCIPLES
OF
REST
.472
16.3.3
IMPLEMENTING
A
REST
API
.
476
16.3.4
CALLING
A
REST
API
.483
16.4
GRAPHQL
.
488
16.4.1
THE
DISADVANTAGES
OF
REST
.
488
16.4.2
THE
WORKFLOW
OF
GRAPHQL
.
491
CONTENTS
16.5
SUMMARY
AND
OUTLOOK
.
493
16.5.1
KEY
POINTS
.
493
16.5.2
RECOMMENDED
READING
.
494
16.5.3
OUTLOOK
.
494
17
STORING
DATA
IN
DATABASES
495
17.1
RELATIONAL
DATABASES
.496
17.1.1
THE
FUNCTIONALITY
OF
RELATIONAL
DATABASES
.496
17.1.2
THE
SQL
LANGUAGE
.498
17.1.3
REAL-LIFE
EXAMPLE:
USING
RELATIONAL
DATABASES
IN
NODE.JS
.
506
17.1.4
OBJECT-RELATIONAL
MAPPINGS
.
515
17.2
NON-RELATIONAL
DATABASES
.
518
17.2.1
RELATIONAL
VERSUS
NON-RELATIONAL
DATABASES
.
518
17.2.2
THE
FUNCTIONALITY
OF
NON-RELATIONAL
DATABASES
.
519
17.2.3
KEY-VALUE
DATABASES
.
519
17.2.4
DOCUMENT-ORIENTED
DATABASES
.
520
17.2.5
GRAPH
DATABASES
.
522
17.2.6
COLUMN-ORIENTED
DATABASES
.
523
17.3
SUMMARY
AND
OUTLOOK
.
524
17.3.1
KEY
POINTS
.
524
17.3.2
RECOMMENDED
READING
.
525
17.3.3
OUTLOOK
.
526
18
TESTING
WEB
APPLICATIONS
527
18.1
AUTOMATED
TESTS
.
527
18.1.1
INTRODUCTION
.
528
18.1.2
TYPES
OF
TESTS
.
529
18.1.3
TEST-DRIVEN
DEVELOPMENT
.
531
18.1.4
RUNNING
AUTOMATED
TESTS
IN
JAVASCRIPT
.534
18.2
TEST
COVERAGE
.
537
18.2.1
INTRODUCTION
.
537
18.2.2
DETERMINING
TEST
COVERAGE
IN
JAVASCRIPT
.
538
18.3
TEST
DOUBLES
.
539
18.3.1
THE
PROBLEM
WITH
DEPENDENCIES
.
540
18.3.2
REPLACING
DEPENDENCIES
WITH
TEST
DOUBLES
.
540
CONTENTS
18.3.3
SPIES
.
541
18.3.4
STUBS
.
543
18.3.5
MOCK
OBJECTS
.
543
18.4
SUMMARY
AND
OUTLOOK
.544
18.4.1
KEY
POINTS
.544
18.4.2
RECOMMENDED
READING
.
545
18.4.3
OUTLOOK
.
545
19
DEPLOYING
AND
HOSTING
WEB
APPLICATIONS
547
19.1
INTRODUCTION
.
547
19.1.1
BUILDING,
DEPLOYING,
AND
HOSTING
.
548
19.1.2
TYPES
OF
DEPLOYMENT
.
549
19.1.3
TYPES
OF
HOSTING
.
552
19.1.4
REQUIREMENTS
FOR
SERVERS
.
555
19.2
CONTAINER
MANAGEMENT
.
557
19.2.1
DOCKER
.
557
19.2.2
REAL-LIFE
EXAMPLE:
PACKAGING
A
WEB
APPLICATION
USING
DOCKER
.
559
19.2.3
NUMBER
OF
DOCKER
IMAGES
.
565
19.2.4
DOCKER
COMPOSE
.
567
19.3
SUMMARY
AND
OUTLOOK
.
569
19.3.1
KEYPOINTS
.
569
19.3.2
RECOMMENDED
READING
.
570
19.3.3
OUTLOOK
.
570
20
SECURING
WEB
APPLICATIONS
571
20.1
VULNERABILITIES
.
572
20.1.1
OPEN
WEB
APPLICATION
SECURITY
PROJECT
.
572
20.1.2
INJECTION
.
572
20.1.3
BROKEN
AUTHENTICATION
.574
20.1.4 SENSITIVE
DATA
EXPOSURE
.574
20.1.5
XML
EXTERNAL
ENTITIES
.
575
20.1.6
BROKEN
ACCESS
CONTROL
.
575
20.1.7
SECURITY
MISCONFIGURATION
.
576
20.1.8
CROSS-SITE
SCRIPTING
.
577
20.1.9
INSECURE
DESERIALIZATION
.
577
CONTENTS
20.1.10
USING
COMPONENTS
WITH
KNOWN
VULNERABILITIES
.
578
20.1.11
INSUFFICIENT
LOGGING
AND
MONITORING
.
579
20.1.12
OUTLOOK
.
579
20.2
ENCRYPTION
AND
CRYPTOGRAPHY
.
579
20.2.1
SYMMETRIC
CRYPTOGRAPHY
.
580
20.2.2
ASYMMETRIC
CRYPTOGRAPHY
.
581
20.2.3
SSL,
TLS,
AND
HTTPS
.
582
20.3
SAME-ORIGIN
POIICIES,
CONTENT
SECURITY
POLICIES,
AND
CROSS-ORIGIN
RESOURCE
SHARING
584
20.3.1
SAME
ORIGIN
POLICY
.
584
20.3.2
CROSS-ORIGIN
RESOURCE
SHARING
.
585
20.3.3
CONTENT
SECURITY
POLICY
.
587
20.4
AUTHENTICATION
.
593
20.4.1
BASIC
AUTHENTICATION
.
593
20.4.2
SESSION-BASED
AUTHENTICATION
.594
20.4.3
TOKEN-BASED
AUTHENTICATION
.
595
20.5
SUMMARY
AND
OUTLOOK
.
597
20.5.1
KEY
POINTS
.
597
20.5.2
RECOMMENDED
READING
.
598
20.5.3
OUTLOOK
.
598
21
OPTIMIZING
THE
PERFORMANCE
OF
WEB
APPLICATIONS
599
21.1
INTRODUCTION
.
599
21.1.1
WHAT
SHOULD
BE
OPTIMIZED
AND
WHY?
.600
21.1.2
HOW
CAN
PERFORMANCE
BE
MEASURED?
.
601
21.1.3
WHICH
TOOLS
ARE
AVAILABLE
FOR
MEASURING
PERFORMANCE?
.
605
21.2
OPTIONS
FOR
OPTIMIZATION
.
609
21.2.1
OPTIMIZING
CONNECTION
TIMES
.
609
21.2.2
USING
A
SERVER-SIDE
CACHE
.611
21.2.3
OPTIMIZING
IMAGES
.
612
21.2.4 USING
A
CLIENT-SIDE
CACHE
.
615
21.2.5
MINIFYING
THE
CODE
.618
21.2.6
COMPRESSING
FILES
.
622
21.2.7
LAZY
LOADING:
LOADING
DATA
ONLY
WHEN
NEEDED
.
623
21.2.8
PRELOADING
DATA
.
623
CONTENTS
21.3
SUMMARY
AND
OUTLOOK
.
627
21.3.1
KEY
POINTS
.
628
21.3.2
RECOMMENDED
READING
.
629
21.3.3
OUTLOOK
.
629
22
ORGANIZING
AND
MANAGING
WEB
PROJECTS
631
22.1
TYPES
OF
VERSION
CONTROL
SYSTEMS
.
632
22.1.1
CENTRAL
VERSION
CONTROL
SYSTEMS
.
632
22.1.2
DECENTRALIZED
VERSION
CONTROL
SYSTEMS
.
633
22.2
THE
GIT
VERSION
CONTROL
SYSTEM
.
635
22.2.1
HOW
GIT
STORES
DATA
.
635
22.2.2
THE
DIFFERENT
AREAS
OF
GIT
636
22.2.3
INSTALLATION
.636
22.2.4
CREATING
A
NEW
GIT
REPOSITORY
.638
22.2.5
TRANSFERRING
CHANGES
TO
THE
STAGING
AREA
.640
22.2.6
COMMITTING
CHANGES
TO
THE
LOCAL
REPOSITORY
.641
22.2.7
COMMITTING
CHANGES
TO
THE
REMOTE
REPOSITORY
.
643
22.2.8
TRANSFERRING
CHANGES
FROM
THE
REMOTE
REPOSITORY
.
644
22.2.9
WORKING
IN
A
NEW
BRANCH
.
645
22.2.10
TRANSFERRING
CHANGES
FROM
A
BRANCH
.
647
22.3
SUMMARY
AND
OUTLOOK
.
648
22.3.1
KEY
POINTS
.648
22.3.2
RECOMMENDED
READING
.
650
22.3.3
OUTLOOK
.650
23
MANAGING
WEB
PROJECTS
651
23.1
CLASSIC
PROJECT
MANAGEMENT
VERSUS
AGILE
PROJECT
MANAGEMENT
.651
23.1.1
CLASSIC
PROJECT
MANAGEMENT
.
652
23.1.2
AGILE
PROJECT
MANAGEMENT
.
653
23.2
AGILE
PROJECT
MANAGEMENT
BASED
ON
SCRUM
.
654
23.2.1
THE
SCRUM
WORKFLOW
.
654
23.2.2
THE
ROLES
OF
SCRUM
.
657
23.2.3
EVENTS
IN
SCRUM
.
659
23.2.4
ARTIFACTS
IN
SCRUM
.
663
CONTENTS
23.3
SUMMARY
AND
OUTLOOK
.
665
23.3.1
KEY
POINTS
.
665
23.3.2
RECOMMENDED
READING
.
666
23.3.3
OUTLOOK
.666
APPENDICES
667
A
HTTP
.
669
B
HTML
ELEMENTS
.
691
C
TOOLS
AND
COMMAND
REFERENCES
.
703
D
CONCLUSION
.
715
E
THE
AUTHOR
.717
INDEX
.
719 |
adam_txt |
CONTENTS
FOREWORD
.
23
PREFACE
.
25
1
UNDERSTANDING
THE
BASICS
29
1.1
TERMINOLOGY
.
29
1.1.1
CLIENT
AND
SERVER
.
29
1.1.2
RELATIONSHIP
BETWEEN
URLS,
DOMAINS,
AND
IP
ADDRESSES
.
30
1.2
STRUCTURE
OF
WEB
APPLICATIONS
.
32
1.2.1
CREATING
WEB
PAGES
USING
HTML
.
32
1.2.2
DESIGNING
WEB
PAGES
WITH
CSS
.
33
1.2.3
MAKING
WEB
PAGES
INTERACTIVE
WITH
JAVASCRIPT
.
34
1.2.4
MAKING
WEB
PAGES
DYNAMIC
USING
SERVER-SIDE
LOGIC
.
35
1.3
FULL
STACK
DEVELOPMENT
.
36
1.3.1
WHAT
ARE
SOFTWARE
STACKS?
.
36
1.3.2
WHAT
TYPES
OF
STACKS
EXIST?
.
37
1.3.3
WHAT
IS
A
FULL
STACK
DEVELOPER?
.
38
1.3.4
STRUCTURE
OF
THIS
BOOK
.
40
1.4
TOOLS
FOR
FULL
STACK
DEVELOPERS
.
42
1.4.1
EDITORS
.
.
43
1.4.2
DEVELOPMENT
ENVIRONMENTS
.
44
1.4.3
BROWSERS
.
46
1.5
SUMMARY
AND
OUTLOOK
.
50
1.5.1
KEY
POINTS
.
50
1.5.2
OUTLOOK
.
50
2
STRUCTURING
WEB
PAGES
WITH
HTML
51
2.1
INTRODUCTION
.
51
2.1.1
VERSIONS
.
52
2.1.2
USING
ELEMENTS
AND
ATTRIBUTES
.
52
2.1.3
SAVING
WEB
PAGES
AS
HTML
DOCUMENTS
.
54
CONTENTS
2.2
USING
THE
MOST
IMPORTANT
ELEMENTS
.
56
2.2.1
USING
HEADINGS,
PARAGRAPHS,
AND
OTHER
TEXT
FORMATTING
.
56
2.2.2
CREATING
LISTS
.
57
2.2.3
DEFINING
LINKS
.
59
2.2.4
INCLUDING
IMAGES
.
64
2.2.5
STRUCTURING
DATA
IN
TABLES
.
66
2.2.6
DEFINING
FORMS
.
72
2.2.7
FURTHER
INFORMATION
.
76
2.3
SUMMARY
AND
OUTLOOK
.
77
2.3.1
KEY
POINTS
.
77
2.3.2
RECOMMENDED
READING
.
78
2.3.3
OUTLOOK
.
78
3
DESIGNING
WEB
PAGES
WITH
CSS
79
3.1
INTRODUCTION
.
79
3.1.1
THE
PRINCIPLE
OF
CSS
.
80
3.1.2
INCLUDING
CSS
IN
HTML
.
80
3.1.3
SELECTORS
.
85
3.1.4
CASCADING
AND
SPECIFICITY
.
88
3.1.5
INHERITANCE
.
91
3.2
APPLYING
COLORS
AND
TEXT
FORMATTING
.
91
3.2.1
DEFINING
THE
TEXT
COLOR
AND
BACKGROUND
COLOR
.
91
3.2.2
DESIGNING
TEXTS
.
93
3.3
LISTS
AND
TABLES
.
103
3.3.1
DESIGNING
LISTS
.
103
3.3.2
DESIGNING
TABLES
.
107
3.4
UNDERSTANDING
THE
DIFFERENT
LAYOUT
SYSTEMS
.
112
3.4.1
BASIC
PRINCIPLES
OF
POSITIONING
WITH
CSS
.
113
3.4.2
FLOAT
LAYOUT
.114
3.4.3
FLEXBOX
LAYOUT
.
118
3.4.4
GRID
LAYOUT
.124
3.5
SUMMARY
AND
OUTLOOK
.
129
3.5.1
KEY
POINTS
.
130
3.5.2
RECOMMENDED
READING
.
130
3.5.3
OUTLOOK
.
131
CONTENTS
4
MAKING
WEB
PAGES
INTERACTIVE
WITH
JAVASCRIPT
133
4.1
INTRODUCTION
.
133
4.1.1
INCLUDING
JAVASCRIPT
.134
4.1.2
DISPLAYING
DIALOG
BOXES
.
136
4.1.3
USING
THE
DEVELOPER
CONSOLE
.
137
4.1.4
INTRODUCTION
TO
PROGRAMMING
.
139
4.2
VARIABLES,
CONSTANTS,
DATA
TYPES,
AND
OPERATORS
.
140
4.2.1
DEFINING
VARIABLES
.
140
4.2.2
DEFINING
CONSTANTS
.
141
4.2.3
USING
DATA
TYPES
.
141
4.2.4
USING
OPERATORS
.
143
4.3
USING
CONTROL
STRUCTURES
.
144
4.3.1
USING
CONDITIONAL
STATEMENTS
AND
BRANCHING
.
144
4.3.2
USING
LOOPS
.
146
4.4
FUNCTIONS
AND
ERROR
HANDLING
.
147
4.4.1
DEFINING
AND
CALLING
FUNCTIONS
.
147
4.4.2
PASSING
AND
ANALYZING
FUNCTION
PARAMETERS
.
148
4.4.3
DEFINING
RETURN
VALUES
.
149
4.4.4 RESPONDING
TO
ERRORS
.
149
4.5
OBJECTS
AND
ARRAYS
.
151
4.5.1
USING
OBJECTS
.
151
4.5.2
USING
ARRAYS
.
152
4.6
SUMMARY
AND
OUTLOOK
.154
4.6.1
KEY
POINTS
.154
4.6.2
RECOMMENDED
READING
.
155
4.6.3
OUTLOOK
.
155
5
USING
WEB
PROTOCOLS
157
5.1
HYPERTEXT
TRANSFER
PROTOCOL
.
157
5.1.1
REQUESTS
AND
RESPONSES
.
158
5.1.2
STRUCTURE
OF
HTTP
REQUESTS
.
160
5.1.3
STRUCTURE
OF
HTTP
RESPONSES
.
161
5.1.4
HEADER
.
162
5.1.5
METHODS
.164
5.1.6
STATUS
CODES
.
166
5.1.7
MIME
TYPES
.
167
CONTENTS
5.1.8
COOKIES
.
YY
.
170
5.1.9
EXECUTING
HTTP
FROM
THE
COMMAND
LINE
.
173
5.2
BIDIRECTIONAL
COMMUNICATION
.
174
5.2.1
POLLING
AND
LONG
POLLING
.174
5.2.2
SERVER-SENT
EVENTS
.
175
5.2.3
WEBSOCKETS
.
176
5.3
SUMMARY
AND
OUTLOOK
.
178
5.3.1
KEY
POINTS
.
178
5.3.2
RECOMMENDED
READING
.
178
5.3.3
OUTLOOK
.
179
6
USING
WEB
FORMATS
181
6.1
DATA
FORMATS
.
182
6.1.1
CSV
.
182
6.1.2
XML
.
182
6.1.3
JSON
.
187
6.2
IMAGE
FORMATS
.
193
6.2.1
PHOTOGRAPHS
IN
THE
JPG
FORMAT
.
193
6.2.2
GRAPHICS
AND
ANIMATIONS
IN
THE
GIF
FORMAT
.
193
6.2.3
GRAPHICS
IN
THE
PNG
FORMAT
.194
6.2.4
VECTOR
GRAPHICS
IN
THE
SVG
FORMAT
.
195
6.2.5
EVERYTHING
GETS
BETTER
WITH
THE
WEBP
FORMAT
.
196
6.2.6
COMPARING
IMAGE
FORMATS
.
196
6.2.7
PROGRAMS
FOR
IMAGE
PROCESSING
.
198
6.3
VIDEO
AND
AUDIO
FORMATS
.
199
6.3.1
VIDEO
FORMATS
.
199
6.3.2
AUDIO
FORMATS
.
202
6.4
SUMMARY
AND
OUTLOOK
.
204
6.4.1
KEY
POINTS
.
204
6.4.2
RECOMMENDED
READING
.
204
6.4.3
OUTLOOK
.
205
7
USING
WEB
APIS
207
7.1
CHANGING
WEB
PAGES
DYNAMICALLY
USING
THE
DOM
API
.208
7.1.1
THE
DOCUMENT
OBJECT
MODEL
.208
CONTENTS
7.1.2
THE
DIFFERENT
TYPES
OF
NODES
.
209
7.1.3
SELECTING
ELEMENTS
.
211
7.1.4
MODIFYING
ELEMENTS
.
213
7.1.5
CREATING,
ADDING,
AND
DELETING
ELEMENTS
.
214
7.1.6
PRACTICAL
EXAMPLE:
DYNAMIC
CREATION
OF
A
TABLE
.
215
7.2
LOADING
DATA
SYNCHRONOUSLY
VIA
AJAX
AND
THE
FETCH
API
.218
7.2.1
SYNCHRONOUS
VERSUS
ASYNCHRONOUS
COMMUNICATION
.218
7.2.2
LOADING
DATA
VIA
AJAX
.
220
7.2.3
LOADING
DATA
VIA
THE
FETCH
API
.
223
7.3
OTHER
WEB
APIS
.
223
7.3.1
OVERVIEW
OF
WEB
APIS
.
224
7.3.2
BROWSER
SUPPORT
FOR
WEB
APIS
.
227
7.4
SUMMARY
AND
OUTLOOK
.
227
7.4.1
KEY
POINTS
.
228
7.4.2
RECOMMENDED
READING
.228
7.4.3
OUTLOOK
.
228
8
OPTIMIZING
WEBSITES
FOR
ACCESSIBILITY
229
8.1
INTRODUCTION
.
229
8.1.1
INTRODUCTION
TO
ACCESSIBILITY
.230
8.1.2
USER
GROUPS
AND
ASSISTIVE
TECHNOLOGIES
.230
8.1.3
WEB
CONTENT
ACCESSIBILITY
GUIDELINES
.
232
8.2
MAKING
COMPONENTS
OF
A
WEBSITE
ACCESSIBLE
.
236
8.2.1
STRUCTURING
WEB
PAGES
SEMANTICALLY
.
236
8.2.2
USING
HEADINGS
CORRECTLY
.
239
8.2.3
MAKING
FORMS
ACCESSIBLE
.
239
8.2.4
MAKING
TABLES
ACCESSIBLE
.241
8.2.5
MAKING
IMAGES
ACCESSIBLE
.246
8.2.6
MAKING
LINKS
ACCESSIBLE
.
248
8.2.7
ACCESSIBLE
RICH
INTERNET
APPLICATIONS
.
249
8.2.8
MISCELLANEOUS
.251
8.3
TESTING
ACCESSIBILITY
.
254
8.3.1
TYPES
OF
TESTS
.
254
8.3.2
TOOLS
FOR
TESTING
.
255
8.4
SUMMARY
AND
OUTLOOK
.258
8.4.1
KEY
POINTS
.258
8.4.2
RECOMMENDED
READING
.
259
8.4.3
OUTLOOK
.
259
CONTENTS
9
SIMPLIFYING
CSS
WITH
CSS
PREPROCESSORS
261
9.1
INTRODUCTION
.261
9.1.1
HOW
CSS
PREPROCESSORS
WORK
.262
9.1.2
FEATURES
OF
CSS
PREPROCESSORS
.
262
9.1.3
SASS,
LESS,
AND
STYLUS
.264
9.2
USING
SASS
.
264
9.2.1
INSTALLING
SASS
.
264
9.2.2
COMPILING
SASS
FILES
TO
CSS
.
265
9.2.3
USING
VARIABLES
.
266
9.2.4
USING
OPERATORS
.270
9.2.5
USING
BRANCHES
.
271
9.2.6
USING
LOOPS
.
272
9.2.7
USING
FUNCTIONS
.
276
9.2.8
IMPLEMENTING
CUSTOM
FUNCTIONS
.
278
9.2.9
NESTING
RULES
.
281
9.2.10
USING
INHERITANCE
AND
MIXINS
.
282
9.3
SUMMARY
AND
OUTLOOK
.
285
9.3.1
KEY
POINTS
.
285
9.3.2
RECOMMENDED
READING
.286
9.3.3
OUTLOOK
.
286
10
IMPLEMENTING
SINGLE-PAGE
APPLICATIONS
287
10.1
INTRODUCTION
.287
10.2
SETUP
.
290
10.3
COMPONENTS:
THE
BUILDING
BLOCKS
OF
A
REACT
APPLICATION
.
293
10.3.1
STATE:
THE
LOCAL
STATE
OF
A
COMPONENT
.
295
10.3.2
THE
LIFECYCLE
OF
A
COMPONENT
.296
10.4
STYLING
COMPONENTS
.
298
10.4.1
INLINE
STYLING
.298
10.4.2
CSS
CLASSES
AND
EXTERNAL
STYLESHEETS
.
299
10.4.3
OVERVIEW
OF
OTHER
STYLING
OPTIONS
.
301
10.5
COMPONENT
HIERARCHIES
.
302
10.6
FORMS
.
307
10.7
THE
CONTEXT
API
.
310
CONTENTS
10.8
ROUTING
.314
10.9
SUMMARY
AND
OUTLOOK
.
316
10.9.1
KEY
POINTS
.
317
10.9.2
RECOMMENDED
READING
.
317
10.9.3
OUTLOOK
.
318
11
IMPLEMENTING
MOBILE
APPLICATIONS
319
11.1
THE
DIFFERENT
TYPES
OF
MOBILE
APPLICATIONS
.
319
11.1.1
NATIVE
APPLICATIONS
.
320
11.1.2
MOBILE
WEB
APPLICATIONS
.
321
11.1.3
HYBRID
APPLICATIONS
.
323
11.1.4
COMPARING
THE
DIFFERENT
APPROACHES
.324
11.2
RESPONSIVE
DESIGN
.
326
11.2.1
INTRODUCTION:
WHAT
IS
RESPONSIVE
DESIGN?
.
326
11.2.2
VIEWPORTS
.
328
11.2.3
MEDIA
QUERIES
.
330
11.2.4
FLEXIBLE
LAYOUTS
.
333
11.3
CROSS-PLATFORM
DEVELOPMENT
WITH
REACT
NATIVE
.
338
11.3.1
THE
PRINCIPLE
OF
REACT
NATIVE
.
338
11.3.2
INSTALLATION
AND
PROJECT
INITIALIZATION
.
339
11.3.3
STARTING
THE
APPLICATION
.
340
11.3.4
THE
BASIC
STRUCTURE
OF
A
REACT
NATIVE
APPLICATION
.
343
11.3.5
USER
INTERFACE
COMPONENTS
.
344
11.3.6
BUILDING
AND
PUBLISHING
APPLICATIONS
.
349
11.4
SUMMARY
AND
OUTLOOK
.
349
11.4.1
KEY
POINTS
.
349
11.4.2
RECOMMENDED
READING
.
350
11.4.3
OUTLOOK
.
350
12
UNDERSTANDING
AND
USING
WEB
ARCHITECTURES
351
12.1
LAYERED
ARCHITECTURES
.
352
12.1.1
BASIC
STRUCTURE
OF
LAYERED
ARCHITECTURES
.
352
12.1.2
CLIENT-SERVER
ARCHITECTURE
(TWO-TIER
ARCHITECTURE)
.
353
12.1.3
MULTI-TIER
ARCHITECTURE
.
355
CONTENTS
12.2
MONOLITHS
AND
DISTRIBUTED
ARCHITECTURES
.
358
12.2.1
MONOLITHIC
ARCHITECTURE
.
358
12.2.2
SERVICE-ORIENTED
ARCHITECTURE
.
359
12.2.3
MICROSERVICE
ARCHITECTURE
.
361
12.2.4
COMPONENT-BASED
ARCHITECTURE
.
362
12.2.5
MICROFRONTENDS
ARCHITECTURE
.
363
12.2.6
MESSAGING
ARCHITECTURE
.
364
12.2.7
WEB
SERVICE
ARCHITECTURE
.366
12.3
MV*
ARCHITECTURES
.
367
12.3.1
MODEL-VIEW-CONTROLLER
.
367
12.3.2
MODEL-VIEW-PRESENTER
.
370
12.3.3
MODEL-VIEW-VIEWMODEL
.370
12.4
SUMMARY
AND
OUTLOOK
.
371
12.4.1
KEY
POINTS
.
371
12.4.2
RECOMMENDED
READING
.
372
12.4.3
OUTLOOK
.
372
13
USING
PROGRAMMING
LANGUAGES
ON
THE
SERVER
SIDE
373
13.1
TYPES
OF
PROGRAMMING
LANGUAGES
.
374
13.1.1
PROGRAMMING
LANGUAGES
BY
DEGREE
OF
ABSTRACTION
.
374
13.1.2
COMPILED
AND
INTERPRETED
PROGRAMMING
LANGUAGES
.
375
13.2
PROGRAMMING
PARADIGMS
.
378
13.2.1
IMPERATIVE
AND
DECLARATIVE
PROGRAMMING
.
378
13.2.2
OBJECT-ORIENTED
PROGRAMMING
.
379
13.2.3
FUNCTIONAL
PROGRAMMING
.
384
13.3
WHAT
ARE
THE
PROGRAMMING
LANGUAGES?
.
385
13.3.1
RANKINGS
OF
PROGRAMMING
LANGUAGES
.
385
13.3.2
WHICH
PROGRAMMING
LANGUAGE
SHOULD
YOU
LEARN?
.
388
13.3.3
BUT
SERIOUSLY
NOW:
WHICH
PROGRAMMING
LANGUAGE
SHOULD
YOU
LEARN?
.394
13.4
SUMMARY
AND
OUTLOOK
.
395
13.4.1
KEY
POINTS
.
395
13.4.2
RECOMMENDED
READING
.
396
13.4.3
OUTLOOK
.
397
CONTENTS
14
USING
JAVASCRIPT
ON
THE
SERVER
SIDE
399
MERS-N-XOUNNAES-IE-AXESSXNSMEEIAS.
ANAANNAQANRASCNANAQEQXQNINAANENUNANQQASSANNAANI-SEEQSSNANSANANSAQSIACXANSDXNAQUNNQANNNUSONUNARUNUSNUNONUMNUANUNUAUNNNENVAUAN
14.1
JAVASCRIPT
ON
NODE.JS
.
399
14.1.1
NODE.JS
ARCHITECTURE
400
14.1.2
A
FIRST
PROGRAM
.403
14.1.3
PACKAGE
MANAGEMENT
.405
14.2
USING
THE
INTEGRATED
MODULES
.
409
14.2.1
READING
FILES
411
14.2.2
WRITING
FILES
412
14.2.3
DELETING
FILES
.413
14.3
IMPLEMENTING
A
WEB
SERVER
.413
14.3.1
PREPARATIONS
414
14.3.2
PROVIDING
STATIC
FILES
.
416
14.3.3
USING
THE
EXPRESS.JS
WEB
FRAMEWORK
.
420
14.3.4
PROCESSING
FORM
DATA
.
421
14.4
SUMMARY
AND
OUTLOOK
.423
14.4.1
KEY
POINTS
.
424
14.4.2
RECOMMENDED
READING
.
424
14.4.3
OUTLOOK
.
424
15
USING
THE
PHP
LANGUAGE
425
15.1
INTRODUCTION
TO
THE
PHP
LANGUAGE
.
425
15.2
INSTALLING
PHP
AND
THE
WEB
SERVER
LOCALLY
.
425
15.3
VARIABLES,
DATA
TYPES,
AND
OPERATORS
.
427
15.3.1
USING
VARIABLES
.
428
15.3.2
USING
CONSTANTS
.
432
15.3.3
USING
OPERATORS
.
432
15.4
USING
CONTROL
STRUCTURES
.435
15.4.1
CONDITIONAL
STATEMENTS
.435
15.4.2
LOOPS
.
437
15.5
FUNCTIONS
AND
ERROR
HANDLING
.
439
15.5.1
DEFINING
FUNCTIONS
.
439
15.5.2
FUNCTION
PARAMETERS
.
439
15.5.3
DEFINING
RETURN
VALUES
.
441
15.5.4
USING
DATA
TYPES
.
441
CONTENTS
15.5.5
ANONYMOUS
FUNCTIONS
.
442
15.5.6
DECLARING
VARIABLE
FUNCTIONS
.
443
15.5.7
ARROW
FUNCTIONS
.443
15.5.8
RESPONDING
TO
ERRORS
.443
15.6
USING
CLASSES
AND
OBJECTS
.445
15.6.1
WRITING
CLASSES
.445
15.6.2
CREATING
OBJECTS
.445
15.6.3
CLASS
CONSTANTS
.
446
15.6.4
VISIBILITY
.
446
15.6.5
INHERITANCE
.
447
15.6.6
CLASS
ABSTRACTION
.
448
15.6.7
MORE
FEATURES
.
449
15.7
DEVELOPING
DYNAMIC
WEBSITES
WITH
PHP
.
450
15.7.1
CREATING
AND
PREPARING
A
FORM
.
450
15.7.2
RECEIVING
FORM
DATA
.452
15.7.3
VERIFYING
FORM
DATA
.452
15.8
SUMMARY
AND
OUTLOOK
.
460
15.8.1
KEY
POINTS
.
460
15.8.2
RECOMMENDED
READING
.461
15.8.3
OUTLOOK
.462
16
IMPLEMENTING
WEB
SERVICES
463
***********************
*
BRESAUSUNAUMUAMM
**********
******
MNAMENANNNA
NNNRNMXANCMCARMSNNANMONANNUNANM
16.1
INTRODUCTION
.463
16.2
SOAP
.465
16.2.1
THE
WORKFLOW
WITH
SOAP
.
466
16.2.2
DESCRIPTION
OF
WEB
SERVICES
WITH
WSDL
.
467
16.2.3
STRUCTURE
OF
SOAP
MESSAGES
.
469
16.2.4
CONCLUSION
.
470
16.3
REST
.
471
16.3.1
THE
WORKFLOW
WITH
REST
.
471
16.3.2
THE
PRINCIPLES
OF
REST
.472
16.3.3
IMPLEMENTING
A
REST
API
.
476
16.3.4
CALLING
A
REST
API
.483
16.4
GRAPHQL
.
488
16.4.1
THE
DISADVANTAGES
OF
REST
.
488
16.4.2
THE
WORKFLOW
OF
GRAPHQL
.
491
CONTENTS
16.5
SUMMARY
AND
OUTLOOK
.
493
16.5.1
KEY
POINTS
.
493
16.5.2
RECOMMENDED
READING
.
494
16.5.3
OUTLOOK
.
494
17
STORING
DATA
IN
DATABASES
495
17.1
RELATIONAL
DATABASES
.496
17.1.1
THE
FUNCTIONALITY
OF
RELATIONAL
DATABASES
.496
17.1.2
THE
SQL
LANGUAGE
.498
17.1.3
REAL-LIFE
EXAMPLE:
USING
RELATIONAL
DATABASES
IN
NODE.JS
.
506
17.1.4
OBJECT-RELATIONAL
MAPPINGS
.
515
17.2
NON-RELATIONAL
DATABASES
.
518
17.2.1
RELATIONAL
VERSUS
NON-RELATIONAL
DATABASES
.
518
17.2.2
THE
FUNCTIONALITY
OF
NON-RELATIONAL
DATABASES
.
519
17.2.3
KEY-VALUE
DATABASES
.
519
17.2.4
DOCUMENT-ORIENTED
DATABASES
.
520
17.2.5
GRAPH
DATABASES
.
522
17.2.6
COLUMN-ORIENTED
DATABASES
.
523
17.3
SUMMARY
AND
OUTLOOK
.
524
17.3.1
KEY
POINTS
.
524
17.3.2
RECOMMENDED
READING
.
525
17.3.3
OUTLOOK
.
526
18
TESTING
WEB
APPLICATIONS
527
18.1
AUTOMATED
TESTS
.
527
18.1.1
INTRODUCTION
.
528
18.1.2
TYPES
OF
TESTS
.
529
18.1.3
TEST-DRIVEN
DEVELOPMENT
.
531
18.1.4
RUNNING
AUTOMATED
TESTS
IN
JAVASCRIPT
.534
18.2
TEST
COVERAGE
.
537
18.2.1
INTRODUCTION
.
537
18.2.2
DETERMINING
TEST
COVERAGE
IN
JAVASCRIPT
.
538
18.3
TEST
DOUBLES
.
539
18.3.1
THE
PROBLEM
WITH
DEPENDENCIES
.
540
18.3.2
REPLACING
DEPENDENCIES
WITH
TEST
DOUBLES
.
540
CONTENTS
18.3.3
SPIES
.
541
18.3.4
STUBS
.
543
18.3.5
MOCK
OBJECTS
.
543
18.4
SUMMARY
AND
OUTLOOK
.544
18.4.1
KEY
POINTS
.544
18.4.2
RECOMMENDED
READING
.
545
18.4.3
OUTLOOK
.
545
19
DEPLOYING
AND
HOSTING
WEB
APPLICATIONS
547
19.1
INTRODUCTION
.
547
19.1.1
BUILDING,
DEPLOYING,
AND
HOSTING
.
548
19.1.2
TYPES
OF
DEPLOYMENT
.
549
19.1.3
TYPES
OF
HOSTING
.
552
19.1.4
REQUIREMENTS
FOR
SERVERS
.
555
19.2
CONTAINER
MANAGEMENT
.
557
19.2.1
DOCKER
.
557
19.2.2
REAL-LIFE
EXAMPLE:
PACKAGING
A
WEB
APPLICATION
USING
DOCKER
.
559
19.2.3
NUMBER
OF
DOCKER
IMAGES
.
565
19.2.4
DOCKER
COMPOSE
.
567
19.3
SUMMARY
AND
OUTLOOK
.
569
19.3.1
KEYPOINTS
.
569
19.3.2
RECOMMENDED
READING
.
570
19.3.3
OUTLOOK
.
570
20
SECURING
WEB
APPLICATIONS
571
20.1
VULNERABILITIES
.
572
20.1.1
OPEN
WEB
APPLICATION
SECURITY
PROJECT
.
572
20.1.2
INJECTION
.
572
20.1.3
BROKEN
AUTHENTICATION
.574
20.1.4 SENSITIVE
DATA
EXPOSURE
.574
20.1.5
XML
EXTERNAL
ENTITIES
.
575
20.1.6
BROKEN
ACCESS
CONTROL
.
575
20.1.7
SECURITY
MISCONFIGURATION
.
576
20.1.8
CROSS-SITE
SCRIPTING
.
577
20.1.9
INSECURE
DESERIALIZATION
.
577
CONTENTS
20.1.10
USING
COMPONENTS
WITH
KNOWN
VULNERABILITIES
.
578
20.1.11
INSUFFICIENT
LOGGING
AND
MONITORING
.
579
20.1.12
OUTLOOK
.
579
20.2
ENCRYPTION
AND
CRYPTOGRAPHY
.
579
20.2.1
SYMMETRIC
CRYPTOGRAPHY
.
580
20.2.2
ASYMMETRIC
CRYPTOGRAPHY
.
581
20.2.3
SSL,
TLS,
AND
HTTPS
.
582
20.3
SAME-ORIGIN
POIICIES,
CONTENT
SECURITY
POLICIES,
AND
CROSS-ORIGIN
RESOURCE
SHARING
584
20.3.1
SAME
ORIGIN
POLICY
.
584
20.3.2
CROSS-ORIGIN
RESOURCE
SHARING
.
585
20.3.3
CONTENT
SECURITY
POLICY
.
587
20.4
AUTHENTICATION
.
593
20.4.1
BASIC
AUTHENTICATION
.
593
20.4.2
SESSION-BASED
AUTHENTICATION
.594
20.4.3
TOKEN-BASED
AUTHENTICATION
.
595
20.5
SUMMARY
AND
OUTLOOK
.
597
20.5.1
KEY
POINTS
.
597
20.5.2
RECOMMENDED
READING
.
598
20.5.3
OUTLOOK
.
598
21
OPTIMIZING
THE
PERFORMANCE
OF
WEB
APPLICATIONS
599
21.1
INTRODUCTION
.
599
21.1.1
WHAT
SHOULD
BE
OPTIMIZED
AND
WHY?
.600
21.1.2
HOW
CAN
PERFORMANCE
BE
MEASURED?
.
601
21.1.3
WHICH
TOOLS
ARE
AVAILABLE
FOR
MEASURING
PERFORMANCE?
.
605
21.2
OPTIONS
FOR
OPTIMIZATION
.
609
21.2.1
OPTIMIZING
CONNECTION
TIMES
.
609
21.2.2
USING
A
SERVER-SIDE
CACHE
.611
21.2.3
OPTIMIZING
IMAGES
.
612
21.2.4 USING
A
CLIENT-SIDE
CACHE
.
615
21.2.5
MINIFYING
THE
CODE
.618
21.2.6
COMPRESSING
FILES
.
622
21.2.7
LAZY
LOADING:
LOADING
DATA
ONLY
WHEN
NEEDED
.
623
21.2.8
PRELOADING
DATA
.
623
CONTENTS
21.3
SUMMARY
AND
OUTLOOK
.
627
21.3.1
KEY
POINTS
.
628
21.3.2
RECOMMENDED
READING
.
629
21.3.3
OUTLOOK
.
629
22
ORGANIZING
AND
MANAGING
WEB
PROJECTS
631
22.1
TYPES
OF
VERSION
CONTROL
SYSTEMS
.
632
22.1.1
CENTRAL
VERSION
CONTROL
SYSTEMS
.
632
22.1.2
DECENTRALIZED
VERSION
CONTROL
SYSTEMS
.
633
22.2
THE
GIT
VERSION
CONTROL
SYSTEM
.
635
22.2.1
HOW
GIT
STORES
DATA
.
635
22.2.2
THE
DIFFERENT
AREAS
OF
GIT
636
22.2.3
INSTALLATION
.636
22.2.4
CREATING
A
NEW
GIT
REPOSITORY
.638
22.2.5
TRANSFERRING
CHANGES
TO
THE
STAGING
AREA
.640
22.2.6
COMMITTING
CHANGES
TO
THE
LOCAL
REPOSITORY
.641
22.2.7
COMMITTING
CHANGES
TO
THE
REMOTE
REPOSITORY
.
643
22.2.8
TRANSFERRING
CHANGES
FROM
THE
REMOTE
REPOSITORY
.
644
22.2.9
WORKING
IN
A
NEW
BRANCH
.
645
22.2.10
TRANSFERRING
CHANGES
FROM
A
BRANCH
.
647
22.3
SUMMARY
AND
OUTLOOK
.
648
22.3.1
KEY
POINTS
.648
22.3.2
RECOMMENDED
READING
.
650
22.3.3
OUTLOOK
.650
23
MANAGING
WEB
PROJECTS
651
23.1
CLASSIC
PROJECT
MANAGEMENT
VERSUS
AGILE
PROJECT
MANAGEMENT
.651
23.1.1
CLASSIC
PROJECT
MANAGEMENT
.
652
23.1.2
AGILE
PROJECT
MANAGEMENT
.
653
23.2
AGILE
PROJECT
MANAGEMENT
BASED
ON
SCRUM
.
654
23.2.1
THE
SCRUM
WORKFLOW
.
654
23.2.2
THE
ROLES
OF
SCRUM
.
657
23.2.3
EVENTS
IN
SCRUM
.
659
23.2.4
ARTIFACTS
IN
SCRUM
.
663
CONTENTS
23.3
SUMMARY
AND
OUTLOOK
.
665
23.3.1
KEY
POINTS
.
665
23.3.2
RECOMMENDED
READING
.
666
23.3.3
OUTLOOK
.666
APPENDICES
667
A
HTTP
.
669
B
HTML
ELEMENTS
.
691
C
TOOLS
AND
COMMAND
REFERENCES
.
703
D
CONCLUSION
.
715
E
THE
AUTHOR
.717
INDEX
.
719 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Ackermann, Philip |
author_GND | (DE-588)1045951536 |
author_facet | Ackermann, Philip |
author_role | aut |
author_sort | Ackermann, Philip |
author_variant | p a pa |
building | Verbundindex |
bvnumber | BV049579687 |
classification_rvk | ST 252 |
ctrlnum | (OCoLC)1427327016 (DE-599)DNB1288765142 |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 1st edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a22000008c 4500</leader><controlfield tag="001">BV049579687</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240328</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">240221s2023 gw a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">23,N20</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1288765142</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1493224379</subfield><subfield code="9">1-4932-2437-9</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781493224371</subfield><subfield code="c">pbk: EUR 56.03 (DE), EUR 59.95 (DE) (freier Preis), EUR 61.70 (AT) (freier Preis), CHF 76.95 (freier Preis)</subfield><subfield code="9">978-1-4932-2437-1</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9781493224371</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Bestellnummer: 459/22437</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1427327016</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1288765142</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-29T</subfield><subfield code="a">DE-92</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 252</subfield><subfield code="0">(DE-625)143627:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ackermann, Philip</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1045951536</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Fullstack-Entwicklung</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Full stack web development</subfield><subfield code="b">the comprehensive guide</subfield><subfield code="c">Philip Ackermann</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1st edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston, MA</subfield><subfield code="b">Rheinwerk</subfield><subfield code="c">2023</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">740 Seiten</subfield><subfield code="b">Illustrationen</subfield><subfield code="c">25.4 cm x 17.8 cm</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="490" ind1="0" ind2=" "><subfield code="a">Rheinwerk Computing</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Webentwicklung</subfield><subfield code="0">(DE-588)1176227475</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">JavaScript</subfield><subfield code="0">(DE-588)4420180-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">HTML</subfield><subfield code="0">(DE-588)4373477-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Front-End</subfield><subfield code="g">Software</subfield><subfield code="0">(DE-588)4706102-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Full-stack web development</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">back-end development</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">front-end development</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Webentwicklung</subfield><subfield code="0">(DE-588)1176227475</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">HTML</subfield><subfield code="0">(DE-588)4373477-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">JavaScript</subfield><subfield code="0">(DE-588)4420180-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">Front-End</subfield><subfield code="g">Software</subfield><subfield code="0">(DE-588)4706102-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Galileo Press Inc.</subfield><subfield code="0">(DE-588)106510992X</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=5ed5eaf56fbb45b290741394da14a4e4&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</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=034924628&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20230509</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-034924628</subfield></datafield></record></collection> |
id | DE-604.BV049579687 |
illustrated | Illustrated |
index_date | 2024-07-03T23:31:56Z |
indexdate | 2024-11-05T17:03:02Z |
institution | BVB |
institution_GND | (DE-588)106510992X |
isbn | 1493224379 9781493224371 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-034924628 |
oclc_num | 1427327016 |
open_access_boolean | |
owner | DE-29T DE-92 |
owner_facet | DE-29T DE-92 |
physical | 740 Seiten Illustrationen 25.4 cm x 17.8 cm |
publishDate | 2023 |
publishDateSearch | 2023 |
publishDateSort | 2023 |
publisher | Rheinwerk |
record_format | marc |
series2 | Rheinwerk Computing |
spelling | Ackermann, Philip Verfasser (DE-588)1045951536 aut Fullstack-Entwicklung Full stack web development the comprehensive guide Philip Ackermann 1st edition Boston, MA Rheinwerk 2023 740 Seiten Illustrationen 25.4 cm x 17.8 cm txt rdacontent n rdamedia nc rdacarrier Rheinwerk Computing Webentwicklung (DE-588)1176227475 gnd rswk-swf JavaScript (DE-588)4420180-1 gnd rswk-swf HTML (DE-588)4373477-7 gnd rswk-swf Front-End Software (DE-588)4706102-9 gnd rswk-swf Full-stack web development back-end development front-end development Webentwicklung (DE-588)1176227475 s DE-604 HTML (DE-588)4373477-7 s JavaScript (DE-588)4420180-1 s Front-End Software (DE-588)4706102-9 s Galileo Press Inc. (DE-588)106510992X pbl X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=5ed5eaf56fbb45b290741394da14a4e4&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034924628&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20230509 DE-101 https://d-nb.info/provenance/plan#vlb |
spellingShingle | Ackermann, Philip Full stack web development the comprehensive guide Webentwicklung (DE-588)1176227475 gnd JavaScript (DE-588)4420180-1 gnd HTML (DE-588)4373477-7 gnd Front-End Software (DE-588)4706102-9 gnd |
subject_GND | (DE-588)1176227475 (DE-588)4420180-1 (DE-588)4373477-7 (DE-588)4706102-9 |
title | Full stack web development the comprehensive guide |
title_alt | Fullstack-Entwicklung |
title_auth | Full stack web development the comprehensive guide |
title_exact_search | Full stack web development the comprehensive guide |
title_exact_search_txtP | Full stack web development the comprehensive guide |
title_full | Full stack web development the comprehensive guide Philip Ackermann |
title_fullStr | Full stack web development the comprehensive guide Philip Ackermann |
title_full_unstemmed | Full stack web development the comprehensive guide Philip Ackermann |
title_short | Full stack web development |
title_sort | full stack web development the comprehensive guide |
title_sub | the comprehensive guide |
topic | Webentwicklung (DE-588)1176227475 gnd JavaScript (DE-588)4420180-1 gnd HTML (DE-588)4373477-7 gnd Front-End Software (DE-588)4706102-9 gnd |
topic_facet | Webentwicklung JavaScript HTML Front-End Software |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=5ed5eaf56fbb45b290741394da14a4e4&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034924628&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ackermannphilip fullstackentwicklung AT galileopressinc fullstackentwicklung AT ackermannphilip fullstackwebdevelopmentthecomprehensiveguide AT galileopressinc fullstackwebdevelopmentthecomprehensiveguide |