可笑的巫毒编程(Voodoo Programming)
2007年12月27日 翻译
有时候你知道存在一个bug,但并不知道导致这个bug的真正原因。假设有一个名叫index的变量,由于种种原因它总是比你想象的数小1。此时,你可以做两件事。你可以坐在那里分析,一直到想通为什么index总比应该的值小1;或者,你可以耸耸肩,在使用index之前,给它加上1,然后继续。后一种方法就叫做巫毒编程。如果你在想“究竟怎么回事?为什么index在这里是2而不是3呢?算了……我先给它加上1,回头再来修复它吧”,这时你就是在从事巫毒编程。
巫毒编程可能会在短期内有效,但最终会给你好看。这就像是把垃圾扫到地毯下面去一样。当你遇到另一个无法解决的古怪错误时,或者当另一个被诅咒的可怜的家伙看到你的代码,发现它极其难懂时———问题还会再次浮出水面。
不要做巫毒编程的实践者。
虽然使用Ajax的优秀的例子非常多(举几个例子,如Google Maps、Flickr和Google Suggest),但是要创建一个使人迷惑而且难以使用的Ajax应用程序也非常容易。下面列出了几个在实现优秀Ajax应用的道路上,你可能会遇到的障碍。
后退按钮
Web用户习惯于使用浏览器的后退按钮返回他们前一次查看的页面。然而,除非特别留意,Ajax应用程序的后退按钮不会按照用户期望的方式工作。例如,如果你单击Google地图的左侧并向屏幕右侧拖动,地图会发生变化,但是单击浏览器的后退按钮并不会返回前一个状态。相反,由于Ajax应用程序的全部内容都存在于一个网页中,单击后退按钮将会使用户离开该网页。以Google地图为例,这样可能会导致用户完全离开Google Maps。使用某些Ajax框架,能够让浏览器的后退按钮以对访客更有意义的方式工作。
Dojo、Backbase和RSH是其中三个例子。
URL和书签
网页的URL可以被记下来,发给朋友或者作为书签使用。然而,因为Ajax应用程序中网页的URL,在页面内容改变时不会改变(所有更新都在同一个页面中完成),所以要特别注意创建能够作为书签和可以通过电子邮件发送的URL。同样,也可以在某些Ajax框架中找到解决这个问题的方案。
乏味的设计
无论上网时间长短的人,对于通常的“提交-等待-重载”的Web交互方式实在太熟悉了。在这种通讯模式下,当服务器返回新信息时,整个页面都会更新,这对访客也是一个信号——即整个页面都是新的。而在使用Ajax的情况下,网页的内容可能会在访客不注意的时候发生改变。作为Web设计者,应该使用设计技术保证对重要的网页改变给出信号,例如改变颜色或边框。
Ajax对Web设计者来说,也提供了一种新型的导航。在Ajax之前,设计者使用链接和图像帮助用户在网页之间导航。Ajax和动态HTML为此提供了更宽广的灵活性,但这种灵活性也可能对导航方法造成混乱。例如,你设计的页面中可能包含一个交互式按钮,访客可以通过它访问网站中不同的页面。尽管这种交互性按钮可能很漂亮,但也可能导致多数Web冲浪者迷惑——他们习惯于使用超链接导航网站。除非你有意炫耀自己高超的Ajax技艺,否则添加新奇的导航样式并不是非常可取的。
要了解与Ajax潜在问题有关的更多信息,请参考Chris McEvoy的文章“Ajax Sucks Most of the Time”(注意这篇文章是在Jakob Neilsen名为“Why Frames Suck (Most of the Time)”的文章基础上重写的)和Alex Bosworth的文章“Ajax Mistakes”。
为两本Web开发新书找译者
2007年12月18日 好书
《现代Web视觉设计艺术》
Visual Design for the Modern Web
by Penny McIntire (Author)
- Paperback: 360 pages
- Publisher: New Riders Press; 1 edition (November 24, 2007)
- Language: English
看封面挺酷的!而且,是刚上市不久的,还带着油墨香味。草草翻译本书简介如下:
如同伟大的艺术家必须理解自己的创作工具,伟大的Web设计师也必须理解自己作品背后的技术。在Web视觉设计领域,本书作者Penny McIntire展示了Web设计初学者通过使用必要的工具——包括HTML、CSS和JavaScript——与美学原理和可用性相结合,成为一名艺术大师的过程(有点夸张)。本书以对Web结构相关技术及概念的解释开篇,之后示范了怎样应用设计规则来创建完美的网站。本书:
- 通过实例说明了怎样把基本的设计原理应用于Web设计
- 使用图像、表格以及图示来辅助学习记忆的保持
- 涵盖了站点分析、导航、布局、色彩、图形、排版及表单等设计元素
- 示范了使网站获得良好观感的多种技术
- 围绕使网站具有可用性、魅力四射和使人过目不忘的特性而展开
《Web开发解决方案》
Web Development Solutions: Ajax, APIs, Libraries, and Hosted Services Made Easy (Paperback)
by Christian Heilmann (Author), Mark ‘Norm’ Norman Francis (Author)
- Paperback: 280 pages
- Publisher: friends of ED (April 18, 2007)
- Language: English
- ISBN-10: 1590598067
- ISBN-13: 978-1590598061
这本是Chris与Mark合著的,看了每章的名称,就知道不好翻译——Chris就这风格。所以,将目录“戏”译如下,仅供参考:
第1章 等等我,Web……你得快点!
第2章 “张扬个性”难题有解
第3章 刚上路要知道个啥
第4章 浑水摸鱼——Web为你提供了What
第5章 通过REST和Ajax获取并显示内容
第6章 添加媒体文件
第7章 自我宣传
第8章 布局与导航
第9章 添加特殊效果
第10章 出了问题怎么办,找谁解决?
注意:
理解Web开发并对翻译这2本有挑战性的新书有热情的朋友
可与华章公司陈冀康主任联络:
cjk[at]hzbook.com
chenjikang[at]hotmail.com
010-88379512




本博客专注于Web前后端技术和技术翻译。目前正在翻译《JavaScript高级程序设计(第2版)》。新浪微博(t.sina.com.cn/lisf),Twitter(@cncuckoo,仅仅用于跟踪国外牛人;我翻不了墙,无法接受各位朋友的follow,抱歉!)