WEB开发者应该具备的6大技能
作者:网络转载 发布时间:[ 2015/11/12 14:29:52 ] 推荐标签:软件测试技术 WEB开发
WEB开发本身涵盖了许多领域的许多技术,那么,有哪些是WEB开发者必备的技能呢?这是一个 Quora 上用户提出的问题,其中Ellyse Taylor的回答获得了1900+的赞同。
可能很多人对下面这个列表中的大部分内容都已经了解了,但其中必定有一些是你之前没有看到过,或者没有完全理解的,甚至有些你可能从来没听说过。
1. 界面和用户体验
注意,浏览器的实现标准是不一致的,请确保你的网站能够兼容所有主流的浏览器。少需要测试的有 Gecko 引擎(Firefox),WebKit引擎(Safari以及一些手机浏览器),Chrome,你所要支持的 IE 浏览器,以及 Opera。此外,你还需要了解不同系统下,浏览器是如何渲染网页的。
考虑一下人们不使用主流浏览器的情况,如手机,屏幕阅读器和搜索引擎。一些可用的辅助信息:WAI 和 Section508,移动开发:MobiForge。
阶段:如何在不影响用户的情况下部署更新。有一个或多个可以用来改变架构、代码或全部内容,并确保它们在可控范围内实现部署的测试或临时环境。有一种自动化的方式把更新部署到线上网站。有效的实现方式是结合使用版本控制系统(CVS、Subversion等)和自动构建机制(Ant、NAnt等)。
不要直接向用户显示不友好的错误信息。
不要用纯文本的方式显示用户的电子邮件,因为他们可能会被垃圾邮件烦到死。
为用户生成的链接添加 rel=”nofollow” 属性,以避免垃圾邮件。
为你的网站建立周全的限制–这条也同时属于安全方面。
学习如何进一步的提高。
POST 提交成功后进行重定向,以免刷新造成重复提交。
别忘了考虑无障碍访问。这总是不错的,在某些情况下,这甚至是法律要求的。 WAI-ARIA 和 WCAG 2 里都有关于这方面很好的资源。
不要让我思考。
2. 安全
OWASP开发指南 几乎覆盖了网站安全所有的内容。
了解注入,尤其是 SQL注入,并学会如何阻止它。
永远不要相信用户的输入,以及其他任何请求(包括Cookies和隐藏域的值)。
使用盐值(salt)哈希密码,并对不同的行使用不同的盐值,防止攻击。使用哈希算法如 bcrypt 或 scrypt(更安全,但比较新)(1, 2)来存储密码。(如何安全的存储密码)。NIST也允许使用PBKDF2来加密密码。避免直接使用 MD5 和 SHA 等算法。
不要企图拿出自己喜欢的认证系统。这是很容易出错的,并且是不可测的,甚至直到你被攻击了你才知道。
了解信用卡处理规则。(也可查看该问题)
在登录页和任何需要输入敏感数据的页面使用SSL/HTTPS。
防止 session 被劫持。
避免跨站脚本(XSS)。
避免点击劫持。
保持系统更新到新的补丁。
确保数据库连接信息的安全。
让自己了解新的攻击技术和会影响你平台的漏洞。
阅读谷歌浏览器安全手册。
阅读WEB应用黑客手册。
考虑小特权原则,尽量使用非root用户运行服务器(以tomcat为例)。
3. 性能
如果有必要的话,实现缓存,请正确理解和使用HTTP缓存。
优化图片。不要使用20K的图片作为平铺背景。
学习如何 gzip/deflate 内容(deflate效果更好)。
合并样式表与脚本文件以减小浏览器链接数,同时提高 gzip 的压缩能力。
浏览雅虎性能卓越的网站,以及大量的指南,其中包含提升前端性能和YSlow工具(需要安装Firefox, Safari, Chrome 或 Opera)。此外,Google page speed(浏览器扩展)也是一个性能分析工具,它同时可以优化你的图片。
对于小的如工具栏图片,使用CSS Image Sprites(参考小化HTTP请求)。
访问量大的网站应该考虑跨域拆分组件。
静态内容(如图片、CSS、JavaScript及不需要访问cookie的内容)应该放在一个单独的域下,因为域及其子域的每一个请求都会发送cookie。这里是使用内容分发网络(CDN)的一个很好的选择。
减少浏览器渲染页面所需的HTTP请求的总数量。
利用Google Closure Compiler及其他压缩JS的工具。
确保网站根目录下有一个favicon.ico文件,即使在HTML中并没有提到它,浏览器也会自动加载它。如果你没有 /favicon.ico ,会返回很多404错误,消耗服务器带宽。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11