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

( 2 )

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 ...
See more details below
Paperback
$25.89
BN.com price
(Save 26%)$34.99 List Price
Other sellers (Paperback)
  • All (24) from $1.99   
  • New (14) from $17.42   
  • Used (10) from $1.99   
Developing Large Web Applications: Producing Code That Can Grow and Thrive

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK
  • NOOK HD/HD+ Tablet
  • NOOK
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$15.49
BN.com price
(Save 44%)$27.99 List Price

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


Read More Show Less

Product Details

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

Meet 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 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.

Read More Show Less

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

Read More Show Less

Customer Reviews

Average Rating 5
( 2 )
Rating Distribution

5 Star

(2)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted December 7, 2013

    Gloom

    Me, I am Christian and kind of against it. I would prefer no nook $€X at all, or a simple short 'he humped her' thing.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted October 2, 2011

    No text was provided for this review.

Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)