Developing Large Web Applications: Producing Code That Can Grow and Thrive
How do you create a mission-critical site that provides exceptional performance while remaining flexible, adaptable, and reliable 24/7? Written by the manager of a UI group at Yahoo!, Developing Large Web Applications offers practical steps for building rock-solid applications that remain effective even as you add features, functions, and users. You'll learn how to develop large web applications with the extreme precision required for other types of software.

  • Avoid common coding and maintenance headaches as small websites add more pages, more code, and more programmers
  • Get comprehensive solutions for refining HTML, CSS, JavaScript, PHP, and Ajax for large-scale web applications
  • Make changes in one place that ripple through all affected page elements
  • Embrace the virtues of modularity, encapsulation, abstraction, and loosely coupled components
  • Use tried-and-true techniques for managing data exchange, including working with forms and cookies
  • Learn often-overlooked best practices in code management and software engineering
  • Prepare your code to make performance enhancements and testing easier

1110833230
Developing Large Web Applications: Producing Code That Can Grow and Thrive
How do you create a mission-critical site that provides exceptional performance while remaining flexible, adaptable, and reliable 24/7? Written by the manager of a UI group at Yahoo!, Developing Large Web Applications offers practical steps for building rock-solid applications that remain effective even as you add features, functions, and users. You'll learn how to develop large web applications with the extreme precision required for other types of software.

  • Avoid common coding and maintenance headaches as small websites add more pages, more code, and more programmers
  • Get comprehensive solutions for refining HTML, CSS, JavaScript, PHP, and Ajax for large-scale web applications
  • Make changes in one place that ripple through all affected page elements
  • Embrace the virtues of modularity, encapsulation, abstraction, and loosely coupled components
  • Use tried-and-true techniques for managing data exchange, including working with forms and cookies
  • Learn often-overlooked best practices in code management and software engineering
  • Prepare your code to make performance enhancements and testing easier

34.99 In Stock
Developing Large Web Applications: Producing Code That Can Grow and Thrive

Developing Large Web Applications: Producing Code That Can Grow and Thrive

Developing Large Web Applications: Producing Code That Can Grow and Thrive

Developing Large Web Applications: Producing Code That Can Grow and Thrive

Paperback

$34.99 
  • SHIP THIS ITEM
    In stock. Ships in 1-2 days.
  • PICK UP IN STORE

    Your local store may have stock of this item.

Related collections and offers


Overview

How do you create a mission-critical site that provides exceptional performance while remaining flexible, adaptable, and reliable 24/7? Written by the manager of a UI group at Yahoo!, Developing Large Web Applications offers practical steps for building rock-solid applications that remain effective even as you add features, functions, and users. You'll learn how to develop large web applications with the extreme precision required for other types of software.

  • Avoid common coding and maintenance headaches as small websites add more pages, more code, and more programmers
  • Get comprehensive solutions for refining HTML, CSS, JavaScript, PHP, and Ajax for large-scale web applications
  • Make changes in one place that ripple through all affected page elements
  • Embrace the virtues of modularity, encapsulation, abstraction, and loosely coupled components
  • Use tried-and-true techniques for managing data exchange, including working with forms and cookies
  • Learn often-overlooked best practices in code management and software engineering
  • Prepare your code to make performance enhancements and testing easier


Product Details

ISBN-13: 9780596803025
Publisher: O'Reilly Media, Incorporated
Publication date: 03/29/2010
Pages: 279
Product dimensions: 7.00(w) x 9.10(h) x 0.70(d)

About the Author

Kyle Loudon is a software developer at Yahoo! where he leads a group doing user interface development. Some of Kyle's experiences prior to joining Yahoo! include working on the user interface for the original Apple iPod, writing software for various other mobile devices, and leading the user interface group at Jeppesen Dataplan (a Boeing company) in the development of a flight planning system used by airlines around the world. He also spent a small amount of time with IBM in the early 1990s. For several years, he has taught object-oriented programming part-time at the University of California, Santa Cruz while working as a software developer in Silicon Valley.

Kyle received a B.S. in Computer Science from Purdue Universityin 1992 with a minor in French, and was elected there to the Phi Beta Kappa honor society. He has also done some advanced education in Computer Science at Stanford University.

Table of Contents

Foreword xi

Preface xiii

1 The Tenets 1

Managing Complexity 1

Modular Components 3

Achieving Modularity 3

Benefits of Modularity 4

Ten Tenets for Large Web Applications 4

2 Object Orientation 7

The Fundamentals of OOP 8

Why Object Orientation? 9

UML Class Diagrams 9

Generalization 10

Association 10

Modeling a Web Page 11

Defining Page Types 11

Defining Module Types 11

Writing the Code 12

Achieving Modularity 14

Object-Oriented PHP 15

Classes and Interfaces 15

Inheritance in PHP 19

Object-Oriented JavaScript 22

Objects 22

Inheritance in JavaScript 25

3 Large-Scale HTML 27

Modular HTML 28

A Bad Example: Using a Table and Presentation Markup 28

A Better Example: Using CSS 30

The Best Example: Semantically Meaningful HTML 31

Benefits of Good HTML 35

HTML Tags 37

Bad HTML Tags 37

Good HTML Tags 38

IDs, Classes, and Names 40

Conventions for Naming 41

XHTML 41

Benefits of XHTML 41

XHTML Guidelines 42

RDFa 45

RDFa Triples 45

Applying RDFa 46

HTML 5 49

4 Large-Scale CSS 51

Modular CSS 52

Including CSS 52

Applying CSS 55

Specificity and Importance 57

Scoping with CSS 58

Standard Module Formats 63

Positioning Techniques 65

CSS Box Model 66

Document Flow 67

Relative Positioning 68

Absolute Positioning 68

Floating 70

Layouts and Containers 71

Example Layouts 72

Example Containers 80

Other Practices 82

Browser Reset CSS 83

Font Normalization 85

5 Large-Scale JavaScript 87

Modular JavaScript 88

Including JavaScript 88

Scoping with JavaScript 90

Working with the DOM 92

Common DOM Methods 92

Popular DOM Libraries 93

Working with Events 98

Event Handling Normalization 99

A Bad Example: Global Data in Event Handlers 99

A Good Example: Object Data in Event Handlers 100

Event-Driven Applications 101

Working with Animation 102

Motion Animation 102

Sizing Animation 103

Color Transition 104

An Example: Chained Selection Lists 105

6 Data Management 115

Dynamic Modules 116

Data Managers 117

Creating Data Managers 120

Extending Data Managers 121

Data Using SQL As a Source 123

An SQL Example 124

Data Using XML As a Source 127

An XML Example 127

Data from Web Services 131

Data in the JSON Format 132

Cookies and Forms 133

Managing Data in Cookies 133

Managing Data from Forms 134

7 Large-Scale PHP 135

Modular Web Pages 136

Generating Pages in PHP 136

Working with Pages 141

Public Interface for the Page Class 141

Abstract Interface for the Page Class 144

Implementation of the Page Class 147

Extending the Page Class 157

Working with Modules 162

Public Interface for the Module Class 162

Abstract Interface for the Module Class 163

Implementation of the Module Class 164

Extending the Module Class 165

An Example Module: Slideshow 165

Layouts and Containers 177

Special Considerations 180

Handling Module Variations 180

Multiple Instances of a Module 181

Dynamic JavaScript and CSS 182

Implementing Nested Modules 182

8 Large-Scale Ajax 185

In the Browser 186

Managing Connections 186

Using Ajax Libraries 189

On the Server 194

Exchange Formats 194

Server Proxies 197

Modular Ajax 198

MVC and Ajax 200

Using Ajax with MVC 201

Public Interface for the Model Object 206

Implementation of the Model Object 207

Public Interface for the View Object 209

Abstract Interface for the View Object 209

View Object Implementation 210

Public Interface for the Connect Object 210

Abstract Interface for the Connect Object 211

Implementation of the Connect Object 212

Controllers 214

An Example of Ajax with MVC: Accordion Lists 215

9 Performance 221

Caching Opportunities 222

Caching CSS and JavaScript 222

Caching Modules 227

Caching for Pages 231

Caching with Ajax 231

Using Expires Headers 233

Managing JavaScript 234

JavaScript Placement 234

JavaScript Minification 234

Removing Duplicates 235

Distribution of Assets 237

Content Delivery Networks 237

Minimizing DNS Lookups 237

Minimizing HTTP Requests 238

Control Over Site Metrics 241

Modular Testing 243

Using Test Data 243

Creating Test Data 245

10 Application Architecture 247

Thinking Modularly 247

Organizing Components 248

Sitewide Architecture 248

Section Architecture 254

Architecture for Pages 256

Architecture and Maintenance 258

Reorganizing Module Uses 258

Adding Module Variations 261

Making Widespread Changes 263

Changes in Data Sources 266

Exposing Modules Externally 268

Index 271

From the B&N Reads Blog

Customer Reviews