« May 2008 | 首页

1 2 3 4 5 6 (Page 2 of 6)



| July 2008 »

June 25, 2008

招聘:创业团队找 PHPer

我们将基于千万级的用户群基础开发一个互联网网站平台,前所未有,不同以往,寻求开发高手加盟。

开发语言以 PHP 为主,数据库 MySQL,搜索用 Lucene 实现。

您将在以下环境下工作:

1、一个完全自行开发的高度定制 Full Stack PHP 框架,单一入口方式,全面支持分布式部署的多层架构方案。开发简单,安全高效;

2、开发环境与生产环境完全基于 Slackware Linux,软件版本更新与时俱进,高度定制编译优化,大致列举如下:

  • Nginx 0.7.3
  • PHP 5.2.6
  • MySQL 5.1.25
  • jQuery 1.2.6
  • Xcache 1.2.2
  • Memcached 1.2.5
  • ImageMagick 6.4.2-0
  • Varnish 2.0.0 tech preview 1
  • Lucene 2.3.2
等等,不再列举;

3、一个基于 Lucene 实现的可应付高并发请求的搜索框架,集成简单,伸缩性好。

4、高度注重对前端体验的优化,并在框架内实现了透明化的优化处理;

5、注重任何细节,为了减少 1ms 的程序执行时间,或者为了减少哪怕一个 http 请求,我们可以研究一整天,一直到认为最优化为止;

注:我们认为的典型页面请求的合理执行时间为 20ms 以内;

6、对框架和整体代码进行不断的 review,以理论上的的安全和高效执行的标准来严格要求,多一分不行,少一分也不可;

7、注重国内外技术趋势,乐于参加各种业内聚会。第一期上线后,我们也会总结我们的经验教训,与大家共分享。

目前进展

  • 1、第一期功能需求的开发工作即将完成,只要通过最终的代码检查和上线测试,即可上线;
  • 2、在整体框架下实现的前端体验,不需要任何特殊处理,任何页面均可达到 YSlow 的 95-99 分以上的评价;
  • 3、目前正在为各个功能的跨 PC、手持设备的浏览器页面自适应,绞尽脑汁中。

如果您想加入团队,您需要有以下资格:

  • 1、熟悉 Linux 下的 PHP5 + MySQL5 的开发,对面向对象、三层结构开发方式有深刻的理解;
  • 2、逻辑思维能力清晰,有良好的自我管理能力和团队工作心态,乐于沟通、分享和共同成长;
  • 3、有 XHTML+CSS+Javascript 前端能力者更佳。有 Java、C 或者开源软件开发经验者更佳。

如何认定资格?

  • 1、无任何学历限制,通过我们的面试即可。

薪酬待遇

  • 1、以斐波纳契数列中第六个数字为起点。

有兴趣者,请发您的简历与 zhanghe4(at)163.com 联系。

工作地点:北京东北三环。


以上是代朋友发的招聘信息(如果有笔误是我的事儿)。另外,杭州本地也在帮其它朋友找 PHPer ,有兴趣可以联系我。

Web 前端优化最佳实践之 Cookie 篇

Web 前端优化最佳实践第三部分面向 Cookie 。目前只有 2 条实践规则。

1. 缩小 Cookie (Reduce Cookie Size)

Cookie 是个很有趣的话题。根据 RFC 2109 的描述,每个客户端最多保持 300 个 Cookie,针对每个域名最多 20 个 Cookie (实际上多数浏览器现在都比这个多,比如 Firefox 是 50 个) ,每个 Cookie 最多 4K,注意这里的 4K 根据不同的浏览器可能不是严格的 4096 。别扯远了,对于 Cookie 最重要的就是,尽量控制 Cookie 的大小,不要塞入一些无用的信息。

2. 针对 Web 组件使用域名无关性的 Cookie (Use Cookie-free Domains for Components)

这个话题在此前针对 Web 图片服务器的讨论中曾经提及。这里说的 Web 组件(Component),多指静态文件,比如图片 CSS 等,Yahoo! 的静态文件都在 yimg.com 上,客户端请求静态文件的时候,减少了 Cookie 的反复传输对主域名 (yahoo.com) 的影响。

从这篇 When the Cookie Crumbles 能看出,MySpace 和 eBay 的 Cookie 都不小的,想必是对用户行为比较关心。eBay 前不久构造了 Personalization Platform ,就是从 Cookie 的限制中跳出来。

延伸阅读:

--EOF--

June 24, 2008

Web 前端优化最佳实践之 Server 篇

Web 前端优化最佳实践第二部分面向 Server 。目前共计有 6 条实践规则。【注,这最多算技术笔记,查看最原始内容,还请访问:Exceptional Performance : Best Practices for Speeding Up Your Web Site

1. 使用 CDN (Use a Content Delivery Network)

国内 CDN 的普及还不够。不过我们有独特的电信、网通之间的问题,如果针对这个作优化,基本上也算能收到 CDN 或类似的效果吧(假装如此)。【Tin 说国内 CDN 用的挺多,看看 CDN 厂商的市场就知道了,还没走入寻常百姓家】

2. 添加 Expires 或 Cache-Control 信息头 (Add an Expires or a Cache-Control Header)

各个浏览器都有针对的方案, Apache 例子【注意:下面的说明例子还不够精细,具体的环境上还要加一些调整】:
ExpiresActive On
ExpiresByType image/gif "modification plus 1 weeks"

Lighttpd 启用 mod_expire 模块 后:

$HTTP["url"] =~ "\.(jpg|gif|png)$" {
     expire.url = ( "" => "access 1 years" )
}

Nginx 例子参考:

location ~* \.(jpg|gif|png)$ {
  if (-f $request_filename) {
        expires      max;
    break; 
  }        
}


3. 压缩内容 (Gzip Components)

对于绝大多数站点,这都是必要的一步,能有效减轻网络流量压力。或许有人担心对 CPU 压缩对于 CPU 的影响,放心大胆的整吧,没事儿。Nginx 例子:

gzip            on;
gzip_types      text/plain text/html text/css ext/javascript;

另外参见:

4. 设置 Etags (Configure ETags)

对于 Etag,可能是多数网站维护者都会忽略的地方。在这一系列优化规则出现之前,可能互联网上绝大多数站点都对这个问题忽略了。当然,Etag 对多数站点性能的影响并不是很大。除非是面向 RSS 的网站。【看到有朋友批评说写的简略,并且说 IE 不支持 ETag。明确说一下:IE 支持 ETag,倒是使用 IIS 要注意相关 Etag Bug。】

补充:我的意思是"很多网站在不注意的情况下都是打开 Etag 的,而没有网站关心如何用,消耗资源而不知。并不是说 Etag 不好,合理利用 Etag ,绝对能取得很好的收益.

5. 尽早刷新 Buffer (Flush the Buffer Early)

对这一条,琢磨了半天,貌似还是异步的思路。能更好的提升用户体验?

6. 对 AJAX 请求使用 GET 方法 (Use GET for AJAX Requests)

XMLHttpRequest POST 要两步,而 GET 只需要一步。但要注意的是在 IE 上 GET 最大能处理的 URL 长度是 2K。

前一篇:

下一篇分析一下 Cookie 。

--EOF--

Updated: 另请参见楼下高春辉的留言,很精彩

Web 前端优化最佳实践之内容篇

Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则也由 13 条到 14 条,再到 20 条,乃至现在的 34 条--真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。

面向内容的优化规则目前有 10 条。

1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests)

作为第一条,可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析,有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求:

2. 减少 DNS 查找 (Reduce DNS Lookups)

必须明确的一点,DNS 查找的开销是很大的。另外,我倒是觉得这是 Yahoo! 所有站点的通病,Yahoo!主站点可能还不够明显,一些分站点,存在明显的类似问题。对于国内站点来说,如果过多的使用了站外的 Widget ,也很容易引起过多的 DNS 查找问题。

3. 避免重定向 (Avoid Redirects)

不是绝对的避免,尽量减少。另外,应该注意一些不必要的重定向。比如对 Web 站点子目录的后面添加个 / (Slash) ,就能有效避免一次重定向。http://www.dbanotes.net/arch 与 http://www.dbanotes.net/arch/ 二者之间是有差异的。如果是 Apache 服务器,通过配置 Alias 或mod_rewrite 或是 DirectorySlash 能够消除这个问题。

4. 使得 Ajax 可缓存 (Make Ajax Cacheable)

响应时间对 Ajax 来说至关重要,否则用户体验绝对好不到哪里去。提高响应时间的有效手段就是 Cache 。其它的一些优化规则对这一条也是有效的。

5. 延迟载入组件 (Post-load Components)

6. 预载入组件 (Preload Components)

上面两条严格说来,都是属于异步这个思想灵活运用的事儿。

7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)

8. 切分组件到多个域 (Split Components Across Domains)

主要的目的是提高页面组件并行下载能力。但不要跨太多域名,否则就和第二条有些冲突了。

9. 最小化 iframe 的数量 (Minimize the Number of iframes)

熟悉 SEO 的朋友知道 iframe 是 SEO 的大忌。针对前端优化来说 iframe 有其好处,也有其弊端,一分为二看问题吧。

10. 杜绝 http 404 错误 (No 404s)

对页面链接的充分测试加上对 Web 服务器 error 日志的不断跟踪能有效减少 404 错误,亦能提升用户体验。值得一提的是,CSS 与 Java Script 引起的 404 错误因为定位稍稍"难"一点而往往容易被忽略。

这是内容篇的 10 条。应该说具体引导性的内容还不够详细。逐渐会根据自己的理解补充上来。

--EOF--

本站相关标签|Tags Cloud