WEB 开发者应该有哪些必备的技能?

简介:

WEB 开发者应该有哪些必备的技能?

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. 安全

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错误,消耗服务器带宽。

4. SEO (Search Engine Optimization) 搜索引擎优化

  • 使用“搜索引擎友好”的URL,如 http://example.com/pages/45-article-title 而不是 http://ofexample.com/index.php?page=45。
  • 在动态内容中,把 # 改成 #! ,然后在服务器端使用$_REQUEST["_escaped_fragment_"]。换句话说 ./#!page=1 变成了 ./?_escaped_fragments_=page=1。此外,对于使用 FF.b4 或 Chromium 的用户,history.pushState({"foo":"bar"}, "About", "./?page=1"); 是一个非常棒的命令。因此,即使地址栏已经改变了,页面也不会刷新。
  • 不要使用“点击这里”这样的链接。你是在浪费一个搜索引擎优化的机会,而且它让使用屏幕阅读器人们更难阅读。
  • 有一个XML网站地图,最好在默认位置 /sitemap.xml
  • 当有多个URL指向同一个内容的时候,使用 <link rel="canonical" ... /> ,这个问题可以通过 Google Webmaster Tools 来解决。
  • 使用 Google Webmaster Tools 和 Bing Webmaster Tools
  • 安装 Google Analytics 或者其他开源分析工具如:Piwik
  • 了解 robots.txt 及搜索引擎蜘蛛 是如果工作的。
  • 使用重定向(301)www.example.com 到 example.com(或者反过来),防止它们平分谷歌网站排名。
  • 要知道有 badly-behaved 蜘蛛的存在。
  • 如果你的网站有非文本内容,Tim Farley 的回答中有一些非常有用的信息。

5. 技术

  • 理解HTTP以及GET、POST、session、cookie以及“无状态”的意思。
  • 撰写XHTML/HTML和CSS要遵循W3C规范,并确保它们通过校验。这样做的目的是为了避免浏览器的怪癖模式,并且这使得非标准浏览器如屏幕阅读器和移动设备更加容易实现。
  • 理解浏览器是如何处理JavaScript 的。
  • 理解JavaScript 、样式表、以及页面使用的其他资源是如何加载的,并考虑它们对感知性能的影响。现在普遍认同的一种做法是把除分析代码等以外的脚本文件放在页面底部
  • 了解JavaScript 沙箱是如何工作的,特别是当你想使用 iframe 的时候。
  • 需要注意到,JavaScript是可以被禁用的,因此AJAX只是一个扩展,而不是基准。虽然大部分用户并没有禁用它,但记住,NoScript正在变得越来越流行。并且,谷歌在索引你的网站时也不会运行JavaScript。
  • 学习 301 和 302 重定向之间的不同
  • 尽可能多地了解你的部署平台。
  • 考虑使用 Reset Style Sheet 或 normalize.css
  • 考虑使用JavaScript框架(如jQueryMooToolsPrototypeDojo 或 YUI 3),这可以避免很多使用JavaScript操作DOM时的差异。
  • 在考虑感知性能和框架的同时,考虑使用服务,如Google Libraries API,来加载框架,这样浏览器可以使用已经缓存的框架而不是从你的网站上下载。
  • 不要重复造轮子。在做任何事情之前,先搜索相关的组件或者实例。99%的可能别人已经实现了并发布出了开源的代码。
  • 在确定需求之前,尽量不要使用超过20个的库,这是非常不利的。特别是客户端WEB,保存轻便、快速、灵活是最重要的。

6. BUG修复

  • 要了解你花费20%的时间写代码而花费80%的时间来维护,因此写代码时一定注意。
  • 建立一个好的错误报告解决方案。
  • 建立一个别人可以提建议和批评的系统。
  • 为未来的支持人员和维护人员建立良好的文档。
  • 经常备份!Ed Lucas 的回答中有一些建议。有一个恢复策略,而不只是一个备份策略。
  • 使用版本控制系统,如 SubversionMercurial 或 Git
  • 不要忘记验收测试。Selenium 等框架可以帮到你。
  • 请确保您有足够的日志记录的地方,可以使用框架如log4jlog4net 或 log4r。当网站出现问题的时候,你需要能够找到问题所在。
  • 日志要记录已处理异常和未处理异常。分析日志输出,因为它会显示出你网站的关键问题。

这里有些省略的东西并不是因为它们没用,而是因为它们过于详细或者超出了范围,或者说的太远了。当然,上面的内容可能也有一些遗漏或者错误。

本文来自云栖社区合作伙伴“Linux中国”,原文发表于2013-04-02.

相关文章
|
2月前
|
XML JavaScript 前端开发
JavaScript控制台:提升Web开发技能的秘密武器
作为Web开发人员,掌握JavaScript控制台中的各种方法至关重要。本文介绍了22种实用的console方法,从基本的log()到高级的profile()和memory,每种方法都配有示例和说明,帮助开发者更高效地调试和记录信息。通过了解这些工具,您可以优化代码、提高开发速度,减少错误,使编码过程更加顺畅愉快。
44 1
JavaScript控制台:提升Web开发技能的秘密武器
|
1月前
|
JavaScript 前端开发 数据安全/隐私保护
Web开发者必看:手把手教你如何轻松播放m3u8流地址,解锁视频播放新技能,让你的项目更上一层楼!
【10月更文挑战第23天】随着互联网技术的发展,m3u8格式因良好的兼容性和高压缩率被广泛用于网络流媒体传输。本文介绍如何在Web端播放m3u8流地址,包括引入视频播放器(如Video.js)、创建播放器容器、初始化播放器及播放m3u8流的具体步骤。此外,还涉及处理加密m3u8流的示例。
207 1
|
2月前
|
存储 安全 API
12种最基本Web API:开发者的必学清单⭐
这些Web API 为创建高度互动和用户友好的网页应用开辟了无限可能。从存储和支付到地理位置和图形,掌握这些 API 可以提升您的Web开发技能。
112 2
|
3月前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
112 6
|
3月前
|
缓存 安全 PHP
深入PHP:从基础到高级,掌握现代Web开发的关键技能
【9月更文挑战第25天】在数字化浪潮中,PHP作为一门历史悠久且广泛使用的服务端脚本语言,扮演着至关重要的角色。本文将带领读者穿越PHP的丛林,从基本语法到面向对象编程,再到现代PHP框架的应用和最佳实践,逐步揭示如何利用PHP构建高效、安全的网站和应用。通过实际代码示例,我们不仅能够理解PHP的核心概念,还能学会如何在实际项目中运用这些知识。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的学习资源和灵感。
52 0
|
4月前
|
搜索推荐 API 数据库
揭秘!Bottle框架如何以极简之姿,重塑Web开发格局,让开发者爱不释手?
【8月更文挑战第31天】在互联网飞速发展的今天,Bottle凭借其独特的简约理念,成为重塑Web开发格局的创新力量。与繁重的传统框架不同,Bottle核心文件仅数千行,却能支撑完整应用,让开发者快速上手,专注业务逻辑。其直观的API设计使Web开发变得异常简单,无需复杂配置即可快速搭建Web服务。此外,Bottle还具有强大的可扩展性,可通过集成第三方库满足复杂需求。
41 1
|
4月前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
53 0
|
4月前
|
Java Maven Android开发
解锁Web开发新技能:从零开始的Struts 2之旅——让你的Java编程之路更加宽广,首个应用实例带你飞!
【8月更文挑战第31天】对于初学者,掌握 Struts 2 框架不仅能提升 Web 开发能力,还能深入了解 MVC 架构。Struts 2 是一个基于 Servlet 的 Java 框架,提供表单验证、文件上传、国际化等功能,便于快速构建易维护的 Web 应用。本文通过示例演示如何从零开始搭建环境并创建一个简单的 Struts 2 项目,包括配置 `struts.xml`、编写 Action 类及视图文件,并配置 web.xml。通过这些步骤,你将学会基本的开发流程,为进一步学习高级功能打下基础。
64 0
|
4月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
81 0
|
4月前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
90 0