好的Web开发人员应该知道的10件事

开发 前端 开发工具
我最喜欢web开发的一点是,它包括许多许多不同的技能。作为一个好的开发者,一定要好好学习,天天向上,因为我们有很多重要的技能要学习,而且它们总是在不停的发生变化。

我最喜欢web开发的一点是,它包括许多许多不同的技能。作为一个好的开发者,一定要好好学习,天天向上,因为我们有很多重要的技能要学习,而且它们总是在不停的发生变化。

这里我列出了其中最为重要的10个技能,它们有点倾向于前端开发,但总体上适合所有的开发人员:

  1. 正则表达式
  2. 基本SEO
  3. 不错的Javascript库
  4. 跨浏览器调试
  5. 图片处理和优化
  6. 用有效的HTML/CSS进行布局(不适用表)
  7. 版权/基本网络法规
  8. Apache rewrite
  9. 调试软件
  10. 版本控制

1. 正则表达式

正则表达式 常用于字符串的解析.其最基础的运用便是文本中字符的查找与替换了。而这看起来并不算什么,正则表达式的多样性是其真正强大的原因。往往可以通过很多方法来优化你的正则表达式,这也意味着你的应用程序的性能的大幅提升。 正则表达式适用于任何一种编程语言,像JavaScript的replace() ,PHP的 preg_replace(), Apache rewrites等等。 奇怪是的只有为数不多的web开发者认为正则表达式相当有用,如果你还没有学习,那就准备好开始吧 learn regular expressions。  

2. 基本的搜索引擎优化

[[60159]]

对于网络开发者来说,了解搜索引擎优化的基本信息是必须的。虽然你可以预留导向你客户端的关键字,开发人员应该用有更合理的在页面上安排这些关键字的策略。这意味着,在整理前端的标记,好好利用 <TITLE>、<META>、<h1>和<h2>标签,同时在后端组织更加稳固的的链接和目录结构。 我找到的学习SEO的***资源是 Beginner’s Guide to Search Engine OptimizationSearch Engine Ranking Factors v2,二者都来自 SEOmoz。

3. 一个优秀的Javascript库

[[60160]]

即使你不太写Javascript代码,掌握一个优秀的Javascript库也会带来很大的帮助。无论是jQuery(我的***)、Mootools,还是其它什么库,都可以让你的Javascript开发工作事半功倍。首先,这些库都提供了跨浏览器的功能,使你可以直接上手,不需要再去管这方面的事情。而且,它们都提供了大量简单的动画,像在DOM中选择节点这类工作变得易如反掌。 更大胆的Javascript程序员也许会想要接触Javascript UI语言。以上说的几种库都有相关的插件,但我个人推荐Dojo with Dijit。

4. 跨浏览器调试

[[60161]]

为了让网站被更多的人看到,显然应该让它支持所有主流浏览器(IE6、IE7、IE8、FF2、FF3、Safari 4和Opera 9)。每个人都很厌恶跨浏览器调试,但 ***的方式是预防,从有效的HTML和良好的reset样式表开始。就我来说,是使用* {magin:0; padding: 0}。不过,大家也可以使用其它更健壮的方式。 另外,还应了解某些浏览器的怪癖。***的当然是IE家族,特别是IE6(没错,一直是它,依然是它)。尽管大多数问题可以归结为臭名昭著的haslayout bug,但你不能依赖某些笨拙的方式来解决它,例如* {zoom: 1}。

5. 图片处理和优化

[[60162]]

尽管大多数程序员都是靠专业的设计师来设计图片,但懂点Photoshop对程序员来说也很重要。掌握一些图片处理技术之后,一些小修改就不需要再踢回给设计师,直接自己改了就是,而且,在修改设计时,你还会马上知道是否可行。 图片优化是Photoshop技能里对web程序员最为重要的一项。图片的大小往往是对带宽***的威胁,图片优化直接关系到网站的载入时间。 Photoshop和Illustrator的「Save for Web」选项极大地简化了图片优化环节,大家只需要在PC上按下Ctrl-Alt-Shift-S或在Mac上按下Command-Alt-Shift- S即可进入这一向导。

6. 使用有效的 HTML/CSS 进行页面布局(而非表格)

我们需要重视:现在已经不是1996年了,即时是后端开发者也应该知道如何写好前端代码,——使用有效的 HTML 和 CSS——而非一堆表格。标记应当整洁,CSS 和其它类型的文档应当同 HTML 分离,这样,就不会有内联样式,特别是不会有 <font> 标签。 初学者应当学学到 CSS 标签 以及 CSS 盒子模型。然后学学 W3C规则,了解如何写出合理的代码 你写的 HTML 应该符合 xHTML 规则;应该有着合理的嵌套、闭合且含有 alt 属性信息的图片标签等等。然后你可以去了解那些节点能够嵌套在其它节点中,已经其它的复杂内容。***,你会发现 w3c 的HTML标记验证程序 不再报错,这样真的很爽。

7. 版权/网络法规的基础

[[60163]]

虽然无需法学学位,但开发者***能够对版权和网络法规有基本的了解。 因为网页从本质上来讲,是一种出版物,而著作权则是网站最常见的法律问题。从用户生成的盗取Flicker 图片的内容到对纽约时报内容大段的引用,如果不想被起诉,或是收到投诉信件,你***了解这些。当然,如果你想提起诉讼或是投递投诉信,你也***了解这些 除了著作权法之外,签订注册/使用主机托管或是软件的协议时,你***也好好看看隐私协议和 COPPA(美国儿童网路隐私保护法 的规定。

8. Apache 重写

[[60164]]

Apache 的重写功能使原本凌乱的 URL 更加整洁(只要你了解正则表达式)。你可以将难看的地址: index.php?section=about&page=bioand 重写位更漂亮的:about/bio。 不仅限于规整 URL,使用 Apache 的 mod_rewrite 能够很容易的将简单的一个页面变成包含路径的完整应用。只需要将查询的变量重写为路径即可。
同样,你要注意: Apache 重写也是出了名的不好调试。重写规则无法包含任何调试信息,且常常忽略你引用的其它方法的信息。因此,重写也会导致一些无法追踪的错误。

9. 调试工具

[[60165]]

一个好的调试器能让你更快的进行网页编程。 当进行前端调试时,我喜欢用 Firebug ,你可以点击页面上的元素,它将统计样式表中的那些生效的设置。你可以添加或删除样式,同时也可以修改页面。 Firebug 也可以用来调试 Javascript。作为 Javascript 的运行控制台,它能够更好的组织错误信息,显示 fromconsole.log() 的输出内容。***,它还提供网络信息,显示页面元素加载事件,以及那些无法加载,无法获取的内容。 我不知道如何进行后端调试,不过我听说 PHP 有个叫做 xDebug 的东东。

10. 版本控制

[[60166]]

 

***但很重要的一点, 一个好的程序员应该学会控制你的版本。版本控制不仅仅是对你工作的备份的一种途径,而且也是你跟其他开发者合作的重要方式。  我个人比较喜欢 distributed as opposed to centralized (分布式相对集中)版本控制的方式, 因为它有两个不同层级的版本控制:你可以先将你的部分修改提交到本地存储中心,之后将所有的更改推送到服务器端存储。这样允许你在本地做一个小幅度不稳定的修改,然后将团队中的更新集中提交。 如果采用分布式的版本控制我比较看好 Mercurial, 而如果是集中是的 Subversion很不错.

英文原文:10 Things Every Good Web Developer Should Know (A Checklist)

译文链接:http://www.oschina.net/translate/10-things-every-web-developer-should-know

责任编辑:林师授 来源: OSCHINA
相关推荐

2020-01-06 17:45:13

GitJavaScriptCSS

2017-02-24 19:10:45

C#开发人员

2020-04-29 08:28:11

React开发代码

2017-10-11 13:20:56

Linux命令工程师

2020-07-06 07:48:42

开发成功技巧

2015-07-28 16:38:56

App移动开发

2022-07-04 08:00:00

Web开发人员编程习惯程序员

2018-08-30 06:00:04

2019-11-23 23:38:51

开发者微服务安全

2009-09-10 14:18:03

PHP库

2020-01-27 16:28:57

开发命令远程服务器

2011-12-29 09:15:19

开发

2015-09-21 09:34:57

2023-04-07 16:11:56

前端开发

2020-09-22 12:19:25

JavaGithub仓库

2022-12-16 08:14:00

2023-10-26 16:56:24

2010-09-02 18:56:09

NoSQL数据库DBA

2014-11-14 17:39:23

云计算

2024-01-09 14:57:22

点赞
收藏

51CTO技术栈公众号