Skip to content

Latest commit

 

History

History
122 lines (92 loc) · 15.9 KB

README-zh.md

File metadata and controls

122 lines (92 loc) · 15.9 KB

#的webapp清单

技术细节,一个Web应用程序的程序员应该使网站在公众面前考虑。

这里的想法是,我们大多数人应该_already_知道_most_什么是这个名单上。但是,只可能是一个或两个项目,你还没有真正研究过之前,不完全了解,或者从来没有听说过。

界面和用户体验

  • 请注意,浏览器实现的标准不一致,并确保你的站点能够合理地发挥在所有主要的浏览器。在对最近的壁虎 引擎(火狐 ) ,一个WebKit引擎的最低测试( Safari 和一些移动浏览器) , ,您的支持[IE浏览器]上(http:/ /en.wikipedia.org/wiki/Internet_Explorer) (利用应用程序兼容性VPC的Images ) ,和歌剧 。还要考虑如何browsershots
  • 考虑人们如何可能使用该网站比从主流浏览器其他:手机,屏幕阅读器和搜索引擎,例如。 —一些辅助信息:WAISection508 ,移动开发:MobiForge
  • 分期:如何在不影响用户部署更新。有一个或多个可用来实现改变架构,代码或清扫内容,并确保它们可以部署在受控的方式不破坏任何测试或分段环境。有那么部署批准更改直播现场的自动化的方式。这与使用版本控制系统(CVS,Subversion的,等等) ,并自动构建机制(蚂蚁,南特等) 相结合最有效的执行。
  • 不要直接向用户显示不友好的错误。
  • 不要把用户的电子邮件地址以纯文本,因为他们将得到垃圾邮件死亡。
  • 添加属性<link rel="canonical" ... />
  • 构建深思熟虑限制到你的网站 - 这也是在安全属于。
  • 学习如何做渐进增强
  • (http://en.wikipedia.org/wiki/Post/Redirect/Get) 一个POST之后重定向]如果POST成功,以防止刷新再次提交。
  • 不要忘记采取无障碍考虑。它总是一个好主意,在某些情况下,这是一个法律规定WAI-ARIAWCAG 2 是本地区良好的资源。
  • 不要让我想起

安全

性能

  • 实现缓存如果需要的话,理解和使用HTTP缓存 正确以及[HTML5清单](http://www.w3.org/TR/2011/ WD-html5-20110525 / offline.html) 。
  • 优化的图像 - 不使用20 KB图像重复的背景。
  • 学习如何GZIP /紧缩内容 (<罢工> [紧缩较好](http://stackoverflow.com/提问/ 1574168 / GZIP-VS-放气,zlib的,再访) </击>) 。
  • 合并/连接多个样式表或多个脚本文件,以减少浏览器连接的数量,提高gzip来的文件之间的重复压缩能力。
  • 看看的雅虎卓越的性能 的网站,很多伟大的指引,包括提高前端性能及其[YSlow的]上(http://开发商。 yahoo.com/yslow/) 工具(需要火狐,Safari,Chrome或Opera) 的。此外,谷歌网页速度 (与[浏览器扩展]使用(https://developers.google.com/speed/pagespeed/ insights_extensions) ) 是另一种工具,性能分析,并优化您的图像了。
  • 使用CSS图像精灵 为小相关的图像,例如工具栏(请参见“减少HTTP请求”点)
  • 忙的网站应该考虑跨域分裂成分 。具体...
  • 静态内容(如图像,CSS,JavaScript和一般的内容并不需要访问饼干) 应该在一个单独的域_ [不使用cookie](http://blog.stackoverflow.com/2009/ 08 / A-一些,速度提升/) _,因为所有Cookie的域及其子域发送每个请求域及其子域。这里有一个很好的选择是使用内容分发网络(CDN) ,但考虑到那里的CDN可以通过包括替代的CDN,或可服,而不是本地副本失败的情况。
  • 最小化所需的浏览器来呈现页面的HTTP请求的总数。
  • 利用谷歌关闭编译器 JavaScript和其他微小工具
  • 确保有一个favicon.ico文件中的站点的根目录,即/ favicon.ico浏览器会自动请求吧 ,即使该图标没有在HTML中提到的。如果你没有一个/ favicon.ico,这将导致大量的404,耗尽你的服务器的带宽。

SEO(搜​​索引擎优化)

  • 使用“搜索引擎友好”的URL,即使用example.com/pages/45-article-title 代替 example.com/index.php?page=45
  • 当使用#动态内容改变以#!',然后服务器$ REQUEST上[“ _ escaped_fragment”]是Googlebot使用,而不是#!。换句话说,./#!页= 1变得./?_ escaped_fragments_ =页= 1。此外,对于用户可能使用FF.b4或铬,history.pushState({“foo”的:“栏”},“关于”,“./页= 1”) ;'是一个伟大的命令。因此,即使在地址栏中改变了页面不会重新加载。这使您可以使用,而不是#!保持动态的内容,并且还告诉服务器,当你发邮件,我们是这个页面之后的链接,和AJAX并不需要再进行一次额外的请求。
  • 不要使用链接说“点击这里” 。那你就浪费了SEO的机会,它使事情更难的人与屏幕阅读器。
  • 有一个XML网站地图 ,最好是在默认位置/ sitemap.xml
  • 使用<LINK REL =“规范”...... /> 当你有指向多个URL同样的内容,这个问题也可以从[谷歌网站管理员工具]寻址(http://www.google.com/webmasters/) 。
  • 使用谷歌网站管理员工具冰网站管理员工具
  • 在开始安装谷歌Analytics(分析) 右(或开源分析工具如Piwik ) 。
  • 懂得robots.txt的 和搜索引擎蜘蛛的工作。
  • 重定向请求(使用301动Permanently) 要求www.example.comexample.com(或者反过来) ,以防止分裂两个站点之间的谷歌排名。
  • 要知道,有可能是严重的乖蜘蛛在那里。
  • 如果你有非文本内容看到谷歌的站点地图扩展视频等有一个在蒂姆·法利的关于这方面的一些好的信息answer .

技术

  • 了解HTTP 之类的东西GET,POST,会话,饼干,这是什么意思是“无状态”。
  • XHTML / HTML 和[CSS](HTTP ://www.w3.org/TR/CSS2/) 根据W3C规范 ,并确保他们[验证](HTTP://validator.w3 .org等/) 。这样做的目的是为了避免浏览器的怪癖模式,并作为奖金,使其更容易与非传统浏览器,如屏幕阅读器和移动设备上工作。
  • 了解如何JavaScript在浏览器中进行处理。
  • 了解如何JavaScript的,样式表,并使用你的页面的其他资源被加载,并考虑其对* *感知性能的影响。现在人们普遍认为是适当的移动脚本底部 你的页面有例外通常是东西像分析应用程序或HTML5垫片。
  • 了解如何JavaScript的沙箱的工作原理,特别是如果你打算使用内部框架。
  • 注意,JavaScript可以和将被禁用,并且AJAX因此是一个扩展,而不是一个基线。即使大多数普通用户离开它现在,请记住,NoScript的 越来越普及,移动设备可能无法正常工作,并建立索引时,谷歌将无法运行大部分的的JavaScript该网站。
  • 学习的301和302重定向的区别 (这也是一个SEO的问题) 。
  • 学习尽可能多的,你可能可以对您的部署平台。
  • 考虑使用重置样式表 或[normalize.css]上(http:/ /necolas.github.com/normalize.css/) 。
  • 考虑JavaScript框架(如jQuery的MooTools的原型 [道场】(http://dojotoolkit.org) 或YUI 3 ) ,将使用JavaScript的DOM时,隐藏了很多的浏览器差异操纵。
  • 以感知性能和JS框架在一起,可以考虑使用一个服务,如谷歌图书馆API 加载框架,使浏览器可以使用的副本该框架也已经缓存,而不是从您的网站下载一个副本。
  • 不要推倒重来。在做任何搜索上如何做到这一点的组件或例子。有99%的机会,有人已经做到了,并发布了OSS版本的代码。
  • 重要的是不利的一面,不要20的库开始之前,你甚至决定你的需求是什么。特别是在客户端的Web中它几乎总是少不了更重要的是让事情变得轻便,快速,灵活。

错误固定

  • 了解你会花你的时间编码的20%和80%的IT维护的,所以相应的代码。
  • 建立一个良好的错误报告的解决方案。
  • 有一个系统的人给你建议和批评联系。
  • 文档应用程序如何适用于未来的技术支持人员和进行维护的人。
  • 请频繁备份! (并确保这些备份功能) 有一个恢复策略,不只是一个备份策略。
  • 使用版本控制系统来存储你的文件,如颠覆水银 或[混帐](HTTP ://git-scm.org) 。
  • 不要忘记做你验收测试。就像[硒]框架(http://seleniumhq.org/) 可以提供帮助。特别是如果你完全自动化的测试,或许是使用持续集成工具,如詹金斯
  • 请确保您有使用框架,如log4j 足够的日志记录到位,log4net的 log4r 。如果出现问题您直播的网站,你需要找出什么的一种方式。
  • 当记录一定要同时捕获处理异常和未处理的异常。报告/分析日志的输出,因为它会告诉你那里的主要问题是在您的网站。

免责声明

这本来是一个问题问上 Programmers-StackExchange乔尔Coehoorn 并一直 回答保持 社区维基。

有三个原因,我想提出一个GitHub上回购:

  1. 协作编辑在GitHub上更加强大。
  2. 人们可以派生这种回购和进行自定义可能并不适用于所有的人。
  3. 我们可以有答案的许多语言翻译。不是每个人都具有良好的英语。

什么事情应该使网站在公众面前程序员实现Web应用程序的技术细节考虑?如果杰夫·阿特伍德可以忘记的HttpOnly饼干,网站地图,和跨站点请求伪造都在同一个网站,有什么重要的东西可能我会忘记呢?

我想这从一个web开发人员的角度,这样其他人创造实际的设计和内容的网站。因此,虽然可用性和内容可能比平台更重要,则程序员在那个小发言权。你做什么需要担心的是,你的实现平台的稳定,性能良好,是安全的,并符合其他业务目标(如不与谷歌的成本太大,需要很长时间才能建立,和排名,以及在内容支持) 。

想到这,从谁的做了一些工作,内联网类应用在一个相当可靠的环境,并即将有他的第一炮,并把出潜在的流行网站的整个大坏万维网开发人员的角度来看。

另外,我在寻找的东西不仅仅是一个模糊的“web标准”的反应更为具体。我的意思是,HTML,JavaScript和CSS通过HTTP是一个很值得考虑,特别是当我已经指定了你是一个专业的Web开发人员。所以超越的,哪些标准?在什么情况下,为什么?提供一个链接到该标准的规范。