工程:动画

所有的爱,都是神圣的。但别为应用里的所有元素添加动画。因为大多数 CSS
动画都会触发布局重绘;最好尽可能地限制自己使用 transform 和 opacity。

避免进行缓慢的过渡运算,如果非要使用,那么确保它是针对某个属性的(如,”transition:
opacity 250ms ease-in” ,而不是 “transition: all 250ms ease-in”)。

  即使在那些我已经知道或已经遇到过的东西之外,下面这个清单的细节在开发Web应用时也非常容易忘记,尤其是你才刚刚起步的时候。

用户界面(UI)

分辨率:当你开发 MVP (Minimum Viable Product
–最简化可实行产品)时,不用先急着兼容各种尺寸的 UI
,那是等你的产品一下子火了之后才需要去做的事情,但要确保支持主流设备(尺寸)。

 用户体验:带宽

威尼斯人线上娱乐,  移动端的带宽比台式电脑的带宽更加宝贵,这也是移动应用的一大话题。因此,你应该寻找一切机会来减少请求的数量,尽可能使用异步,减小被请求资源的大小。

  JS与CSS:你应该讲应用上特定的JavaScript和CSS集中放到一个文件中(一个存JS、一个存CSS),并尽量减小它们的大小。你的朋友在这里 Grunt-contrib-concat , Grunt-contrib-cssmin 和  Grunt-contrib-uglify 。

  为所有资源–使用CDN:使用CDN主要有两个好处。第一个适用于所有托管的资源即是定位,CDN可以确保你的资源在某个区域,然后用户访问的时候可以就近访问资源,这样减少了资源加载时间。

  第二个是应用于你的Web应用的依赖文件(比如:非特定于应用的样式和JS代码)。对web应用所依赖的文件使用CDN,可通过用户的缓存来极大地减小加载时间。举个例子,很多网站都依赖Angular.js,使用CDN来链接到核心角代码将会触发一个缓存命中,移动设备用户将会从缓存中接收它,而不是发起另一个HTTP请求。

  CSS-减小脚本大小:大部分开发者刚开始的时候可能会使用某种UI框架(如Bootstrap、Foundation等)。这些框架可能非常大,通常在大部分CDN上都可用它们的精简版样式,你也不可能需要使用它们所包含的全部样式。通常,像类似 uncss 的工具(通常与类似 processhtml 的工具搭配)在帮你移除那些用不着的样式有难以置信的意义。

  需要重视的是,uncss解析器无法辨析动态样式。所以你在检测的时候,必须谨慎,确保别删错了那些实际上被使用在你的应用中的样式。

  CSS-将关键的代码放置到head:在应用加载完之前,关键样式应该已经可用,它们应该放到Head中。次要的样式可用稍后再加载。

  JS-减小脚本大小:由于在你的产品中JavaScript代码不需要任何内部变量对人们易理解,将变量user.email重命名为u.e可能会有助于减小你的脚本文件。幸运的是,有个工具可以帮你做这个工作-前面提到的 uglify ,它可以将你的JS代码变得难以读懂,但是JS文件会更小。

工程

单页面应用:现今单页面(SPA)是王道。它的主要优势是很少加载整个页面 –
只需加载所需资源,并且无须反复重载相同的资源。如果你才刚刚开始开发一个新的
web 应用,那它很可能是 SPA。

 用户体验

  表单:当提交表单时,用户应该得到一些有关提交的反馈信息。如果提交后页面没跳转到其它页面,那么就应该有一个弹出类型的提醒来让用户知道他们是提交成功了还是失败了。

  登陆重定向:如果一个用户正想访问你网址上的某个页面,但是他并未登陆,那么用户应该首先被导向登陆页面,用户登陆之后又会跳转到他之前试着去访问的页面。
如果他们在登陆时输入了错误的密码,应该给以提示,提示他们如果忘记密码了可以选择重新设置新密。

电子邮件

订阅设置:任何发送到用户的 email
,都应该至少包含一个链接,能链接到修改他们的邮箱设置的应用程序页面,并且最好每个邮件都有一个单独的链接,能取消订阅。

千万别让用户为了取消订阅而向你发送邮件。

 工程:动画

  对于这一切是圣洁的爱,别将你的app上所有的元素都做成动画,因为大部分CSS动画都会触发布局重绘。你最好限制一下,尽可能用变换和
opacity。

  避免懒过渡计算,如果你一定要使用它,必须确保使用特定的属性(如:”transition:
opacity 250ms ease-in” 而不是 “transition: all 250ms ease-in”)。

安全性

确认邮件:当用户注册时,应向他们发送带有点击确认邮箱的链接的邮件。如果用户更新他们的邮箱地址,则要再次重复这个工作流程。

身份管理:当存储密码时,首先对它们进行加盐和散列操作,然后再用现在广泛使用的
crypto 库。如果你不这样做的话,把身份管理转由给 Facebook / GitHub /
 Twitter / 等,用 OAuth 就能做到。

加密:所有证书问题,还有什么比 SSL
更好。使用它吧。还可以使用 HSTS

凭证:不要把服务器身份信息(API
密钥、数据库密码等)放到版本控制里,否则就泄密了。

 电子邮件

  订阅设置:你发送给每个用户的邮件,至少要包含一个链接到你的应用的一个页面,在这个页面上用户可以修改他们的邮箱设置;还应有一个单独链接供用户来取消订阅。
别让他们发邮件给你来取消订阅。

关于作者:刘健超-J.c

威尼斯人线上娱乐 1

前端,在路上…http://jchehe.github.io
个人主页
·
我的文章
·
19
·
    

威尼斯人线上娱乐 2

  值得一提的是,我上一次尝试构建的任何合理复杂性是在2005年。所以,在安全防御方面,我还有很多东西需要去补充。

打赏支持我翻译更多好文章,谢谢!

任选一种支付方式

威尼斯人线上娱乐 3
威尼斯人线上娱乐 4

1 赞 1 收藏
评论

 用户界面

  分辨率:在你开发你的MVP时,你可能不需要确保你的UI能够在所有设备上优雅地工作,但是,但你应该确保它能适用于手机和平板电脑分辨率的基本范围。