did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780596803025

Developing Large Web Applications

by
  • ISBN13:

    9780596803025

  • ISBN10:

    0596803028

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2010-03-15
  • Publisher: Oreilly & Associates Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $34.99 Save up to $3.50
  • Buy New
    $33.94

    USUALLY SHIPS IN 2-3 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

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

Author Biography

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 University in 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

Forewordp. xi
Prefacep. xiii
The Tenetsp. 1
Managing Complexityp. 1
Modular Componentsp. 3
Achieving Modularityp. 3
Benefits of Modularityp. 4
Ten Tenets for Large Web Applicationsp. 4
Object Orientationp. 7
The Fundamentals of OOPp. 8
Why Object Orientation?p. 9
UML Class Diagramsp. 9
Generalizationp. 10
Associationp. 10
Modeling a Web Pagep. 11
Defining Page Typesp. 11
Defining Module Typesp. 11
Writing the Codep. 12
Achieving Modularityp. 14
Object-Oriented PHPp. 15
Classes and Interfacesp. 15
Inheritance in PHPp. 19
Object-Oriented JavaScriptp. 22
Objectsp. 22
Inheritance in JavaScriptp. 25
Large-Scale HTMLp. 27
Modular HTMLp. 28
A Bad Example: Using a Table and Presentation Markupp. 28
A Better Example: Using CSSp. 30
The Best Example: Semantically Meaningful HTMLp. 31
Benefits of Good HTMLp. 35
HTML Tagsp. 37
Bad HTML Tagsp. 37
Good HTML Tagsp. 38
IDs, Classes, and Namesp. 40
Conventions for Namingp. 41
XHTMLp. 41
Benefits of XHTMLp. 41
XHTML Guidelinesp. 42
RDFap. 45
RDFa Triplesp. 45
Applying RDFap. 46
HTML 5p. 49
Large-Scale CSSp. 51
Modular CSSp. 52
Including CSSp. 52
Applying CSSp. 55
Specificity and Importancep. 57
Scoping with CSSp. 58
Standard Module Formatsp. 63
Positioning Techniquesp. 65
CSS Box Modelp. 66
Document Flowp. 67
Relative Positioningp. 68
Absolute Positioningp. 68
Floatingp. 70
Layouts and Containersp. 71
Example Layoutsp. 72
Example Containersp. 80
Other Practicesp. 82
Browser Reset CSSp. 83
Font Normalizationp. 85
Large-Scale JavaScriptp. 87
Modular JavaScriptp. 88
Including JavaScriptp. 88
Scoping with JavaScriptp. 90
Working with the DOMp. 92
Common DOM Methodsp. 92
Popular DOM Librariesp. 93
Working with Eventsp. 98
Event Handling Normalizationp. 99
A Bad Example: Global Data in Event Handlersp. 99
A Good Example: Object Data in Event Handlersp. 100
Event-Driven Applicationsp. 101
Working with Animationp. 102
Motion Animationp. 102
Sizing Animationp. 103
Color Transitionp. 104
An Example: Chained Selection Listsp. 105
Data Managementp. 115
Dynamic Modulesp. 116
Data Managersp. 117
Creating Data Managersp. 120
Extending Data Managersp. 121
Data Using SQL As a Sourcep. 123
An SQL Examplep. 124
Data Using XML As a Sourcep. 127
An XML Examplep. 127
Data from Web Servicesp. 131
Data in the JSON Formatp. 132
Cookies and Formsp. 133
Managing Data in Cookiesp. 133
Managing Data from Formsp. 134
Large-Scale PHPp. 135
Modular Web Pagesp. 136
Generating Pages in PHPp. 136
Working with Pagesp. 141
Public Interface for the Page Classp. 141
Abstract Interface for the Page Classp. 144
Implementation of the Page Classp. 147
Extending the Page Classp. 157
Working with Modulesp. 162
Public Interface for the Module Classp. 162
Abstract Interface for the Module Classp. 163
Implementation of the Module Classp. 164
Extending the Module Classp. 165
An Example Module: Slideshowp. 165
Layouts and Containersp. 177
Special Considerationsp. 180
Handling Module Variationsp. 180
Multiple Instances of a Modulep. 181
Dynamic JavaScript and CSSp. 182
Implementing Nested Modulesp. 182
Large-Scale Ajaxp. 185
In the Browserp. 186
Managing Connectionsp. 186
Using Ajax Librariesp. 189
On the Serverp. 194
Exchange Formatsp. 194
Server Proxiesp. 197
Modular Ajaxp. 198
MVC and Ajaxp. 200
Using Ajax with MVCp. 201
Public Interface for the Model Objectp. 206
Implementation of the Model Objectp. 207
Public Interface for the View Objectp. 209
Abstract Interface for the View Objectp. 209
View Object Implementationp. 210
Public Interface for the Connect Objectp. 210
Abstract Interface for the Connect Objectp. 211
Implementation of the Connect Objectp. 212
Controllersp. 214
An Example of Ajax with MVC: Accordion Listsp. 215
Performancep. 221
Caching Opportunitiesp. 222
Caching CSS and JavaScriptp. 222
Caching Modulesp. 227
Caching for Pagesp. 231
Caching with Ajaxp. 231
Using Expires Headersp. 233
Managing JavaScriptp. 234
JavaScript Placementp. 234
JavaScript Minificationp. 234
Removing Duplicatesp. 235
Distribution of Assetsp. 237
Content Delivery Networksp. 237
Minimizing DNS Lookupsp. 237
Minimizing HTTP Requestsp. 238
Control Over Site Metricsp. 241
Modular Testingp. 243
Using Test Datap. 243
Creating Test Datap. 245
Application Architecturep. 247
Thinking Modularlyp. 247
Organizing Componentsp. 248
Sitewide Architecturep. 248
Section Architecturep. 254
Architecture for Pagesp. 256
Architecture and Maintenancep. 258
Reorganizing Module Usesp. 258
Adding Module Variationsp. 261
Making Widespread Changesp. 263
Changes in Data Sourcesp. 266
Exposing Modules Externallyp. 268
Indexp. 271
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program