《构建可扩展性的Web站点》阅读笔记

作者Cal Henderson,最知名的2.0照片分享社区 Flickr 的合伙人之一和首席软件架构师,在构建一个大型网站方面,自然会有很多有价值的经验。此书第一版出版于2006,对于发展迅速的互联网来说,书中很多环境,技术已经发生了改变。但是在某些方面还是更新了我的许多模糊,肤浅认识。现在,就以下几点,记录下我的收获。

定义Web应用程序

Web应用程序不是桌面应用程序、也不是Web站点,而是介于两者之间,同时涵盖双方的特点。与Web站点相比,Web应用程序最关心的不是页面的集合,而是应用的分层。作者说:

Web应用程序是具备一个核心数据集合的系统,这个数据集合可以用Web页面方式访问及修改,也可以使用接口,通过其他途径进行访问与修改。

分层的Web应用程序

上面说到,Web应用程序最关心是应用的分层。作者用蛋糕做一个比喻。从Web应用程序的持久化存储层(数据),业务逻辑层,到交互逻辑和页面逻辑层再到展现层。良好的分层最大的好处是有助于工程师的分工,工程师只需关心自己对应的分层和对上下层的接口。比如,前端工程师无需考虑如何将数据从数据库中取出来,或者,完成一次搜索完整细节。而只需关心,如何用优雅或不优雅的标记将数据展现给我们Web用户。

构建你的开发环境

这里作者特地提到的三大规则

使用源码控制;使用单步创建;跟踪程序缺陷。

源码控制的好处想必不用说了,说说单步创建吧。单步构建说白了就是自动化。好处是自动化一些繁琐的过程。将一些需要多次操作的冗余过程简化到只需一个按钮,或者是完全的自动化定时执行。这样你就有更多的时间去做那些更有价值的工作。而且避免很多不必要的误操作。可以通过命令行脚本,批处理文件,开发工具的自动化插件等,尽可能减少开发时的冗余环节。所以,得好好想想怎么做一个懒人啦。 关于bug和测试,做好bug 的分级,bug分S1/High, S2/Medium, S3/Low。再依据bug等级来对bug进行修复,上周一次小型分享上小虎提到的当同时有很多bug时,先解决容易解决的,控制bug 数量对于团队合作(安稳开发情绪)其实也很重要。做下扩展,当有很多S1优先级的Bug时,先解决其中比较简单的,在去解决比较难的,当没有S1级别的Bug时,才去考虑解决S2级别的。

国际化、本地化

i18n,L10n 分别是国际化和本地化。这两个概念以前一直有混淆。这里记录一下

国际化指为应用程序添加输入、处理、输出国际文本的能力。 本地化是指为特定地区,提供定制的应用程序的过程

国际化是一种能力,而本地化是一个过程。很有趣,以前没有注意过。

电子邮件作为Web应用程序的接口

通过使用这种已经成熟的技术,为用户提供一个接入网站的,比如近期更新、最新交互、通知等各种站点信息。比如twitter的被follow的通知邮件,时光网的时光周刊等。同时电子邮件也是一种很强大的输入接口。比如通过邮件发布照片,更新博客,自动化处理邮件(通过邮件系统来处理用户命令,并自动通过邮件系统反馈)。

Tags: ,

One Response to “《构建可扩展性的Web站点》阅读笔记”

  1. iamxhu Says:

    最近一直在考虑如何做自动化的事情,发现有些繁琐的事情想要自动化还真不容易。

Leave a Reply