Muutke küpsiste eelistusi

Refactoring HTML: Improving the Design of Existing Web Applications [Kõva köide]

  • Formaat: Hardback, 368 pages, kõrgus x laius x paksus: 181x241x23 mm, kaal: 712 g
  • Ilmumisaeg: 15-May-2008
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0321503635
  • ISBN-13: 9780321503633
  • Kõva köide
  • Hind: 49,14 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Hardback, 368 pages, kõrgus x laius x paksus: 181x241x23 mm, kaal: 712 g
  • Ilmumisaeg: 15-May-2008
  • Kirjastus: Addison-Wesley Educational Publishers Inc
  • ISBN-10: 0321503635
  • ISBN-13: 9780321503633
Like any other software system, Web sites gradually accumulate cruft over time. They slow down. Links break. Security and compatibility problems mysteriously appear. New features dont integrate seamlessly. Things just dont work as well. In an ideal world, youd rebuild from scratch. But you cant: theres no time or money for that. Fortunately, theres a solution: You can refactor your Web code using easy, proven techniques, tools, and recipes adapted from the world of software development.

InRefactoring HTML, Elliotte Rusty Harold explains how to use refactoring to improve virtually any Web site or application. Writing for programmers and non-programmers alike, Harold shows how to refactor for better reliability, performance, usability, security, accessibility, compatibility, and even search engine placement. Step by step, he shows how to migrate obsolete code to todays stable Web standards, including XHTML, CSS, and RESTand eliminate chronic problems like presentation-based markup, stateful applications, and tag soup.

The books extensive catalog of detailed refactorings and practical recipes for success are organized to help you find specific solutions fast, and get maximum benefit for minimum effort. Using this book, you can quickly improve site performance nowand make your site far easier to enhance, maintain, and scale for years to come.

Topics covered include

    Recognizing the smells of Web code that should be refactored     Transforming old HTML into well-formed, valid XHTML, one step at a time     Modernizing existing layouts with CSS     Updating old Web applications: replacing POST with GET, replacing old contact forms, and refactoring JavaScript     Systematically refactoring content and links     Restructuring sites without changing the URLs your users rely upon

This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with todays standards-compliant best practices. This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with todays standards-compliant best practices.

Arvustused

Wow, what a compendium of great information and how-tos! I am so impressed! Elliottes written a book whose title comes nowhere near to doing it justice. Covering much more than just refactoring, this book explains how to do it right the first time around, in a clear and lucid voice. Harold obviously knows his stuff. A must-read! Howard Katz, Proprietor, Fatdog Software

After working with people who require the skills and tools necessary to continually improve the quality and security of their applications, I have discovered a missing link. The ability to rebuild and recode applications is a key area of weakness for web designers and web application developers alike. By building refactoring into the development process, incremental changes to the layout or internals efficiently averts a total rewrite or complete make-over. This is a fantastic book for anyone who needs to rebuild, recode, or refactor the web. Andre Gironda, tssci-security.com

Elliottes book provides a rare collection of hints and tricks that will vastly improve the quality of web pages. Virtually any serious HTML developer, new or tenured, in any size organization will reap tremendous benefit from implementing even a handful of his suggestions. Matt Lavallee, Development Manager, MLS Property Information Network, Inc.

Muu info

Wow, what a compendium of great information and how-tos! I am so impressed! Elliottes written a book whose title comes nowhere near to doing it justice. Covering much more than just refactoring, this book explains how to do it right the first time around, in a clear and lucid voice. Harold obviously knows his stuff. A must-read! Howard Katz, Proprietor, Fatdog Software

After working with people who require the skills and tools necessary to continually improve the quality and security of their applications, I have discovered a missing link. The ability to rebuild and recode applications is a key area of weakness for web designers and web application developers alike. By building refactoring into the development process, incremental changes to the layout or internals efficiently averts a total rewrite or complete make-over. This is a fantastic book for anyone who needs to rebuild, recode, or refactor the web. Andre Gironda, tssci-security.com

Elliottes book provides a rare collection of hints and tricks that will vastly improve the quality of web pages. Virtually any serious HTML developer, new or tenured, in any size organization will reap tremendous benefit from implementing even a handful of his suggestions. Matt Lavallee, Development Manager, MLS Property Information Network, Inc.

Like any other software system, Web sites gradually accumulate cruft over time. They slow down. Links break. Security and compatibility problems mysteriously appear. New features dont integrate seamlessly. Things just dont work as well. In an ideal world, youd rebuild from scratch. But you cant: theres no time or money for that. Fortunately, theres a solution: You can refactor your Web code using easy, proven techniques, tools, and recipes adapted from the world of software development.

InRefactoring HTML, Elliotte Rusty Harold explains how to use refactoring to improve virtually any Web site or application. Writing for programmers and non-programmers alike, Harold shows how to refactor for better reliability, performance, usability, security, accessibility, compatibility, and even search engine placement. Step by step, he shows how to migrate obsolete code to todays stable Web standards, including XHTML, CSS, and RESTand eliminate chronic problems like presentation-based markup, stateful applications, and tag soup.

The books extensive catalog of detailed refactorings and practical recipes for success are organized to help you find specific solutions fast, and get maximum benefit for minimum effort. Using this book, you can quickly improve site performance nowand make your site far easier to enhance, maintain, and scale for years to come.

Topics covered include

    Recognizing the smells of Web code that should be refactored     Transforming old HTML into well-formed, valid XHTML, one step at a time     Modernizing existing layouts with CSS     Updating old Web applications: replacing POST with GET, replacing old contact forms, and refactoring JavaScript     Systematically refactoring content and links     Restructuring sites without changing the URLs your users rely upon

This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with todays standards-compliant best practices. This book will be an indispensable resource for Web designers, developers, project managers, and anyone who maintains or updates existing sites. It will be especially helpful to Web professionals who learned HTML years ago, and want to refresh their knowledge with todays standards-compliant best practices.
Foreword xvii
Martin Fowler
Foreword xix
Bob DuCharme
About the Author xxi
Refactoring
1(24)
Why Refactor
3(8)
Smell: Illegible Code
3(3)
Smell: The CEO Can't Fill Out His Travel Expense Vouchers
6(1)
Smell: Slow Page-Rendering Times
6(1)
Smell: Pages Appear Different in Different Browsers
6(1)
Smell: Pages Require Dangerous or Nonstandard Technologies
7(2)
Smell: Your Company's Home Page Suddenly Says, ``Pwned by Elite Doodz''
9(1)
Smell: Your First Appearance on Google Is on Page 17
9(1)
Smell: Readers Send E-mail Saying Your Site Is Broken
10(1)
When to Refactor
11(2)
What to Refactor To
13(10)
Why XHTML
14(4)
Why CSS
18(2)
Why REST
20(3)
Objections to Refactoring
23(2)
Tools
25(40)
Backups, Staging Servers, and Source Code Control
25(2)
Validators
27(7)
The W3C Markup Validation Service
28(1)
The Log Validator
29(3)
xmllint
32(1)
Editors
33(1)
Testing
34(14)
JUnit
36(3)
HtmlUnit
39(1)
HttpUnit
40(1)
JWebUnit
41(1)
FitNesse
42(1)
Selenium
43(4)
Getting Started with Tests
47(1)
Regular Expressions
48(6)
Searching
49(3)
Search Patterns
52(2)
Tidy
54(6)
-asxhtml
54(3)
-clean
57(1)
Encodings
58(1)
Pretty Printing
59(1)
Generated Code
59(1)
Use As a Library
59(1)
TagSoup
60(2)
TagSoup versus Tidy
62(1)
XSLT
62(3)
Well-Formedness
65(42)
What Is Well-Formedness?
66(3)
Change Name to Lowercase
69(4)
Motivation
70(1)
Potential Trade-offs
71(1)
Mechanics
71(2)
Quote Attribute Value
73(3)
Motivation
74(1)
Potential Trade-offs
75(1)
Mechanics
75(1)
Fill In Omitted Attribute Value
76(2)
Motivation
77(1)
Potential Trade-offs
77(1)
Mechanics
77(1)
Replace Empty Tag with Empty-Element Tag
78(3)
Motivation
79(1)
Potential Trade-offs
79(1)
Mechanics
79(2)
Add End-tag
81(4)
Motivation
82(1)
Potential Trade-offs
82(1)
Mechanics
83(2)
Remove Overlap
85(4)
Motivation
86(1)
Potential Trade-offs
86(1)
Mechanics
87(2)
Convert Text to UTF-8
89(2)
Motivation
89(1)
Potential Trade-offs
89(1)
Mechanics
89(2)
Escape Less-Than Sign
91(2)
Motivation
91(1)
Potential Trade-offs
91(1)
Mechanics
91(2)
Escape Ampersand
93(3)
Motivation
94(1)
Potential Trade-offs
94(1)
Mechanics
94(2)
Escape Quotation Marks in Attribute Values
96(2)
Motivation
96(1)
Potential Trade-offs
96(1)
Mechanics
96(2)
Introduce an XHTML DOCTYPE Declaration
98(3)
Motivation
98(1)
Potential Trade-offs
98(1)
Mechanics
99(2)
Terminate Each Entity Reference
101(1)
Motivation
101(1)
Potential Trade-offs
101(1)
Mechanics
101(1)
Replace Imaginary Entity References
102(1)
Motivation
102(1)
Potential Trade-offs
102(1)
Mechanics
102(1)
Introduce a Root Element
103(1)
Motivation
103(1)
Potential Trade-offs
104(1)
Mechanics
104(1)
Introduce the XHTML Namespace
104(3)
Motivation
105(1)
Potential Trade-offs
105(1)
Mechanics
105(2)
Validity
107(48)
Introduce a Transitional DOCTYPE Declaration
109(2)
Motivation
109(1)
Potential Trade-offs
109(1)
Mechanics
110(1)
Remove All Nonexistent Tags
111(3)
Motivation
111(1)
Potential Trade-offs
112(1)
Mechanics
112(2)
Add an alt Attribute
114(3)
Motivation
114(1)
Potential Trade-offs
115(2)
Replace embed with object
117(6)
Motivation
118(1)
Potential Trade-offs
119(1)
Mechanics
120(3)
Introduce a Strict DOCTYPE Declaration
123(1)
Motivation
123(1)
Potential Trade-offs
123(1)
Mechanics
124(1)
Replace center with CSS
124(3)
Motivation
125(1)
Potential Trade-offs
125(1)
Mechanics
125(2)
Replace font with CSS
127(4)
Motivation
128(1)
Potential Trade-offs
128(1)
Mechanics
128(3)
Replace i with em or CSS
131(3)
Motivation
132(1)
Potential Trade-offs
132(1)
Mechanics
132(2)
Replace b with strong or CSS
134(2)
Motivation
134(1)
Potential Trade-offs
135(1)
Mechanics
135(1)
Replace the color Attribute with CSS
136(4)
Motivation
137(1)
Potential Trade-offs
137(1)
Mechanics
137(3)
Convert img Attributes to CSS
140(2)
Motivation
140(1)
Potential Trade-offs
140(1)
Mechanics
141(1)
Replace applet with object
142(4)
Motivation
143(1)
Potential Trade-offs
143(1)
Mechanics
144(2)
Replace Presentational Elements with CSS
146(3)
Motivation
147(1)
Potential Trade-offs
147(1)
Mechanics
147(2)
Nest Inline Elements inside Block Elements
149(6)
Motivation
149(1)
Potential Trade-offs
150(1)
Mechanics
150(5)
Layout
155(44)
Replace Table Layouts
156(14)
Motivation
157(1)
Potential Trade-offs
158(1)
Mechanics
158(12)
Replace Frames with CSS Positions
170(10)
Motivation
170(1)
Potential Trade-offs
171(1)
Mechanics
171(9)
Move Content to the Front
180(4)
Motivation
181(1)
Potential Trade-offs
181(1)
Mechanics
181(3)
Mark Up Lists as Lists
184(3)
Motivation
185(1)
Potential Trade-offs
185(1)
Mechanics
185(2)
Replace blockquote/ul Indentation with CSS
187(2)
Motivation
187(1)
Potential Trade-offs
188(1)
Mechanics
188(1)
Replace Spacer GIFs
189(2)
Motivation
189(1)
Potential Trade-offs
190(1)
Mechanics
190(1)
Add an ID Attribute
191(4)
Motivation
192(1)
Potential Trade-offs
192(1)
Mechanics
192(3)
Add Width and Height to an Image
195(4)
Motivation
195(1)
Potential Trade-offs
195(1)
Mechanics
195(4)
Accessibility
199(42)
Convert Images to Text
202(4)
Motivation
202(1)
Potential Trade-offs
203(1)
Mechanics
203(3)
Add Labels to Form Input
206(4)
Motivation
207(1)
Potential Trade-offs
207(1)
Mechanics
207(3)
Introduce Standard Field Names
210(6)
Motivation
212(1)
Potential Trade-offs
212(1)
Mechanics
212(4)
Turn on Autocomplete
216(2)
Motivation
217(1)
Potential Trade-offs
217(1)
Mechanics
218(1)
Add Tab Indexes to Forms
218(4)
Motivation
219(1)
Potential Trade-offs
219(1)
Mechanics
220(2)
Introduce Skip Navigation
222(3)
Motivation
223(1)
Potential Trade-offs
223(1)
Mechanics
223(2)
Add Internal Headings
225(1)
Motivation
225(1)
Potential Trade-offs
225(1)
Mechanics
225(1)
Move Unique Content to the Front of Links and Headlines
226(2)
Motivation
227(1)
Potential Trade-offs
227(1)
Mechanics
227(1)
Make the Input Field Bigger
228(2)
Motivation
229(1)
Potential Trade-offs
229(1)
Mechanics
229(1)
Introduce Table Descriptions
230(5)
Motivation
232(1)
Potential Trade-offs
232(1)
Mechanics
233(2)
Introduce Acronym Elements
235(1)
Motivation
235(1)
Potential Trade-offs
235(1)
Mechanics
236(1)
Introduce lang Attributes
236(5)
Motivation
237(1)
Potential Trade-offs
237(1)
Mechanics
238(3)
Web Applications
241(46)
Replace Unsafe GET with POST
241(5)
Motivation
242(1)
Potential Trade-offs
242(1)
Mechanics
242(4)
Replace Safe POST with GET
246(5)
Motivation
247(1)
Potential Trade-offs
248(1)
Mechanics
248(3)
Redirect POST to GET
251(3)
Motivation
251(1)
Potential Trade-offs
252(1)
Mechanics
252(2)
Enable Caching
254(4)
Motivation
254(1)
Potential Trade-offs
255(1)
Mechanics
255(3)
Prevent Caching
258(3)
Motivation
258(1)
Potential Trade-offs
259(1)
Mechanics
259(2)
Introduce ETag
261(4)
Motivation
262(1)
Potential Trade-offs
262(1)
Mechanics
262(3)
Replace Flash with HTML
265(5)
Motivation
266(1)
Potential Trade-offs
267(1)
Mechanics
267(3)
Add Web Forms 2.0 Types
270(7)
Motivation
270(1)
Potential Trade-offs
271(1)
Mechanics
272(5)
Replace Contact Forms with mailto Links
277(3)
Motivation
277(1)
Potential Trade-offs
278(1)
Mechanics
278(2)
Block Robots
280(4)
Motivation
281(1)
Potential Trade-offs
281(1)
Mechanics
281(3)
Escape User Input
284(3)
Motivation
284(1)
Potential Trade-offs
284(1)
Mechanics
284(3)
Content
287(22)
Correct Spelling
287(5)
Motivation
288(1)
Potential Trade-offs
288(1)
Mechanics
288(4)
Repair Broken Links
292(10)
Motivation
292(1)
Potential Trade-offs
292(1)
Mechanics
292(6)
Motivation
298(1)
Potential Trade-offs
299(1)
Mechanics
299(3)
Remove the Entry Page
302(2)
Motivation
303(1)
Potential Trade-offs
303(1)
Mechanics
303(1)
Hide E-mail Addresses
304(5)
Motivation
305(1)
Potential Trade-offs
305(1)
Mechanics
305(4)
Appendix A Regular Expressions
309(18)
Characters That Match Themselves
309(2)
Metacharacters
311(1)
Wildcards
312(1)
Quantifiers
313(2)
Zero or One:?
313(1)
Zero or More:*
314(1)
One or More: +
314(1)
A Specific Number of Times: {}
314(1)
Class Shorthands
315(1)
Character Classes
316(2)
Groups and Back References
318(3)
Whitespace
321(1)
Alternation:
322(1)
Greedy and Nongreedy Matches
323(1)
Position
324(3)
Index 327
Elliotte Rusty Harold is an internationally respected writer, programmer, and educator. His Cafe con Leche Web site has become one of the most popular sites for information on XML. In addition, he is the author and coauthor of numerous books, the most recent of which are Java I/O (OReilly, 2006), Java Network Programming (OReilly, 2004), Effective XML (Addison-Wesley, 2003), and XML in a Nutshell (OReilly, 2002).