2008年08月1日

写给刚刚上岗的网站技术人员

——————————————————————以下为引用——————————————————————

工作5年了,网站相关的开发工作也干了4年多。负责带领团队也好几年了。面试和带领刚工作的人也不少了。其中的优秀者不少,但是大多数都存在下面提到的几个认识误区。把这些问题提出来,希望对刚参加工作没有多久的程序员们有所帮助,少走弯路。

 

公司招你进来,其实最重要的就是看到你的工作能力和工作态度是可以接受的。

工作能力指你能满足他们的工作期望,或者在可接受的时间范围内,经过培训后,可以满足这个工作期望。

工作态度指你能有些做职员的基本素质。

这个道理应该所有人都清楚。但是到实际事情时候就经常犯迷糊。下面几点是经常会出问题的地方:

 

1、不经测试,Review,就认为自己工作完成了。

你的代码或者应用一旦被别人Review ,或者进行试用。这时候你代码的好坏,或者功能是否在各种场景下是否可用,都会影响你这个人在上级及同事眼里的可信任度。

代码书写的规范,性能的高质量,各种功能在各个场景都可用,则表示你这个人是完全可信的。下次上级给你分派任务的时候,就可以给你更多的自由度来发挥。长此以往,前途和钱途自然就随手可得。

反之,代码不规范,功能好些场景不可用。这只能让上级或同事觉得你不可信任。每次都需要处理你带来的这些问题,说恶心点就是你每次拉完大便都没擦屁股,每次都得你的同事和上级帮你擦屁股。数次都这样后,上级或同事下次跟你沟通的时候就会觉得你这个人不可信任,一件事情必须反复多次强调,总觉得你还会作出问题。你的信用已经非常危险了。

你在别人眼里的信用就这样被你慢慢透支了。透支到一定程度,走人吧。整个团队的效率会因为你而变慢(每个人跟你沟通的成本都会影响到他本人的产出),你不走人谁走人。

 

2、最短可接受的工作时限

你有没有统计过,公司分派给你一个工作时候,上级指定的这项工作计划做多久的预计,跟你自己的预计有多大差异?

如果你预计时间大于上级给的工作计划时间,同时上级没有增派人手进行相关工作。除了BT的领导外,那只有一种情况:上级对你的工作态度非常不满,认为你的薪水对应的工作能力不是这么点。

对于刚工作的,更多的是你表现出来的工作能力在公司的平均工作能力之下。同时公司觉得你对工作没有表现出足够的热情。 一个能力在平均水平下面,又缺乏工作激情的人,他的前途在那里??

如果这个人还没有表现出几个月后能达到平均水平之上的希望,为啥会留这样一个人呢?

 

3、工作能力不等于技术水平

我曾看到过有人抱怨说大公司的员工也不过是这技术水平, 这么简单的技术问题都不会。我自己早期也有这样想法,后来发现是不对的。

不论大公司还是小公司,要得是解决问题的工作能力。 我的曾经手下就有好几个技术水平很牛的,但是作出来的应用却一次次返工的。为啥,工作能力这些非技术因素他们做的很不好。

工作能力的非技术因素包括的很多: 责任心,表现就是对自己写出来的代码有一定要让人放心的责任; 沟通能力,一个典型的表现就是需求不理解或者需求不明时,及时得跟相关人沟通,而不是自己先按自己想法实现,造成代码写完后再返工的恶果等等。

技术水平低,但是解决问题能力强的,我也碰到过一些人。 工作的能力更重要的是这些非技术的工作能力,而不是技术水平。技术人员很容易技术水平高,但是非技术的工作能力差。 这是很糟糕的。

 

 

4、发展潜力,学习能力

公司使用的技术不可能一直不变,一直不变的公司只能慢慢被市场淘汰。这就要求员工能不断的学习新的知识,并应用到工作中来。

要想不会出现几年后,自己发现跳槽找个工作都没人要,赶快学习吧。

坚持,是一个人最难做到的。 但是不坚持,那就等着灭亡吧。

 

5、笨鸟先飞

一个人,在公司,如果工作能力在平均线以下, 加班吧, 不要有任何幻想。

最可怕的是自己没这个意识, 自认为自己技术水平很牛, 但是解决问题的工作能力却在平均水平线以下, 眼高手低 , 这样的人, 公司是不能留的。

 

 

6、承诺到的事情一定要做到,不要找理由

一件事情没有被做完,想找理由能找很多的。既然你承诺了某个时间点前完成,就不要再找各种理由推脱。

公司同事和上级虽然可能这次接受了你的理由,但是下次呢, 慢慢的就会让你的上级,同事觉得你是一个喜欢推托的人。 感觉你干事是非常不可靠的。不知道那次就会不完成,下次谁敢再找你干事?

可能很多人在看到我这篇博客的时候,觉得我写的很刻薄,好像都是从公司的角度欺压技术人员。很没有人情味。

只要你不是公司的董事, 你永远是被剥削者,公司的目的就是利润最大化,这是公司存活的根本目的。作为普通的职员,要有所为的白领意识,其实就是被剥削意识。这是个适者生存的生态圈,不适用的人只能被淘汰。

实际的公司其实有很多人情味在里面,或者同事和领导有些话不便于说出口。 这也就造成了一些技术人员被开除,还自以为如何如何? 都是没有这些意识造成的。我写这篇博客就是希望能增加技术人员的这些意识,不要犯了这些问题还自己不知道。

  • » 阅读全文...
  • 2008年07月18日

    链接执行js时注意target必须是_self或者_top

    即: <a href="javscript:someFun()">text</a>
    需要特别注意这个A标签的target必须是_self或者_top,否则会新开一个窗口执行js,导致不能执行,解决问题的一个简单办法是在文档结束时执行下面的js函数。

    <script language="javascript">
    function setJsLinksTarget()
    {
        var links = document.links;
        for(var i=0;i<links.length;i++){
            if(links[i].href.toLowerCase().indexOf('javascript:') > -1){
                links[i].target = '_self';
            }
        }
    }
    setJsLinksTarget();
    </script>

     

  • » 阅读全文...
  • 2008年06月16日

    网页加速系列(三)、 网页加速之网页减肥篇

    为完成页面减肥就要先说说HTML语言了,它是一种解释性的脚本语言,更多请参见(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/dhtml.asp,英文),那怎样可以“减肥”呢,因为在HTML语言里本来是不用换行,不用大量的空格的,但各种用编辑器写出来的HTML为了便于作者查看程序所以都用上了很多的空格和和换行,好像FP2000这个软件会产生相当多的空格使你网页的内空变得很大。还有一些可以减去的内容就是人为的了,比如你把多个HTML的属性用到一个对像上,而这些属性里有重复的,也会使你的页面变肥了。而一些可以产生同要效果的不同定义也会产生了大量的无用代码。下面看一下具体的减肥方法:

    1、软件压缩法

      最容易的方法就是软件压缩法,用一些专门对HTML减肥的软件来对HTML页面减肥,这个方法很容易且很有效,但对于比如人为造成的冗余HTML代码就不能减了,只能减掉多余的空格和tab。

    2、设计减肥法
      这个方法也很容易的,在这里只讲一部分,更多的要自己积累,方法就是在设计网页时,特别是用一个软件来设计网页时你要用一种良好的操作习惯和正确的方法使你编写出来的页面量优化。例如当你有文字或图片在表格里时需要居中,那么使用单元格居中就会比使用文字居中产生的代码少;例如页面里所有的文字都是小字的时候用CSS的方法来定义文字会比一部份一部份的去写义文字少产生很多的代码;再例如要
    给一个表格里的一行定义相同的色彩,那么使用行定义(TR)就会比使用单元格定义色彩产生的代码少;又例如如果你页面里大多数的链接都是要新开一个窗口,那么你把该页面的默认(base)设为开新窗口,这样又会减少很多的开新窗口的定义。类似的代码也是如此。

    3、程序减肥法
      这就是页面减肥的较高的境界了,大家看能看到,页面里有很多的代码是想同的,这些样同的东西如果可以减下来可
    就不得了了,怎样做到呢?用程序了,因为现在的网页都可以使用一种程序语言JAVASCRIPT这种程序是插入HTML里面完成
    一些动态的东西,那么我们的减肥就用它了,比如做链接的HTML如下:
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://www.qianxun.com">千寻</A></TD>
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://HDQS.126.COM">红豆情思</A></TD>
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://STONETIME.126.COM">STONE时间</A></TD>
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://XIAOKUEN.ON.NET.CN">恋爱花园</A></TD>
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://LILICAI.YEAH.NET">味道</A></TD>
    <TD ALIGN=MIDDLE WIDTH=110><A HREF="HTTP://BROY.126.COM">风花</A></TD>
    内容不少了,但有不少的东西是一样的,那么我们就用程序来动态的生成这些东西程序如下:
    <SCRIPT>
    FUNCTION LK(URL,TXT){
    DOCUMENT.WRITE("<TD ALIGN=MIDDLE WIDTH=110><A HREF="+URL+">"+TXT+"</A></TD>")
    }
    LK("RONGWW.YEAH.NET","<FONT COLOR=RED>榕儿的家")
    LK("HDQS.126.COM","红豆情思")
    LK("STONETIME.126.COM","STONE时间")
    LK("XIAOKUEN.ON.NET.CN","恋爱花园")
    LK("LILICAI.YEAH.NET","味道")
    LK("BROY.126.COM","风花")
    </SCRIPT>
    这样以来,内容就会减少一些,但如果好像上面的链接有很多很多,这段代码就可以大量的为你减肥了,而且增加了页面的可维护性,这个程序只是一个例子,也许它不合你所需,但这就是我告诉你的方法,你可以自已设计所需的程序,使页面更快更好(比如我的页面上的年月日下拉框就是dw("<option value="+i+">"+i+"</option>"),大大减少了页面网络流量)。另一种用程序减肥的方法就是合里的使用.JS程序,.JS的使用不当会使页面速度下降,但如果合理的使用,自己本地的.JS就另有工效了。通过它可以把不同网页里相同的代码用一个.JS文件保存,使
    页面的容量减少,同时还便于以后的页面修改。

  • » 阅读全文...
  • 2008年06月12日

    网页加速系列(二)、 网页加速之网页结构篇

    (二)、 网页加速之网页结构篇

    一个网页的结构的好坏,对网页的加载速度有着很大的影响!

    1、关于框架结构

    一般情况下,应尽量避免使用框架结构,因为浏览器必须对框架中的每个页面分别进行请求!这必然会增加服务器的负担。另外,现在还有少数用户使用的浏览器并不支持框架结构显示。 当然在一些地方,框架结构还是显得非常方便,比如:聊天室、论坛、社区、软件下载。

    2、关于表格

    表格的应用不仅仅限于,在一些内容列表的时候时候,对于网页的整个布局,表格有着非常重要的作用。为了能使大量的内容在网页上布置的井井有条,一般通过没有边框的来将网页分块,然后将不同的内容放在不同的单元格中。表格的使用是有一些技巧的:首先,尽量避免使用结构复杂的表格,因为结构复杂的表格,有可能使浏览器多次刷新表格。其次,能将一个表格分为两个或两个以上的时候应该分为两个,因为浏览器只有在整个表格的内容全部读入以后再输出显示,如果表格中的内容非常的多,那么在加载过程中,浏览器在表格读入完毕以前将一直显示空白。最后,表格嵌套不要超过3层,层次太多的话在加载表格的时候会使浏览器花大量的时候处理表格结构。

    新浪网的首页页面时候很好的例子,大家可以保存它有编辑软件打开查看其结构。 熟练的使用表格是作出美观的网页所必须的!

  • » 阅读全文...
  • 2008年06月11日

    网页加速系列(一)、 网页加速之图形处理篇

    这几天东营房产网打开速度越来越慢,拿到是与新版网站快要完成~,于是找些网站优化加速的资料看看,学习一下~

    (一)、 网页加速之图形处理篇

    在维护网站的过程用,可能遇到过这样的情况:辛辛苦苦做出来的页面,但图片过多,网页结构、表格结构复杂,程序冗长,使得加载速度很慢!网页总是不能完全的展现在浏览者面前。

    以后的几篇文章将网页减肥方面的一些经验介绍给大家,希望大家都来讨论,说说自己的观点!

    1、合并图片

    尽量把几个可能组合在一起的图片制作成一张图片,这是因为浏览器对网页中的每个图片都会做个别请求,也就是说如果网页中有5张图片,那么浏览器就会向WEB服务器提出5次请求,这必然会增加服务器的负担,从而使得速度变慢!当然大图片除外。

    2、指定宽高

    在网页中镶入图片的时候,一定注明高度和宽度,如:<IMG SRC="TEST.GIF" WIDTH=100 HEIGHT=100>,如果没有注明,浏览器在下载完图片以前,将无法确定图片的大小,页面的提交就会延迟,甚至可能重复向WEB服务器提出请求。

    3、选择图片格式

    选择适当的图片格式,常见的格式为:JPG和GIF,两种图片分别采用不同的方法压缩图片。JPG支持的颜色数量比较多,一般对于照片或者颜色变化显著的图片用JPG格式,还应该适当的选择压缩比,在基本不损坏效果的前提下尽量压缩。GIF最多支持256种颜色,适合小图片、色彩比较少的图片,对于GIF图片可以在不影响图片效果的前提下尽量减少图片的颜色数量。适当的选择图片的格式,对图片的大小会有不小的影响。可以借助一些图片处理软件。

    4、图片处理

    应该采用逐步提交方式提交图片,GIF和JPG两种图片格式都支持逐步提交格式,图片在逐步提交时,在浏览器收到完整图片信息之前就开始显示了。这样看起来快一些。GIF保存为交错格式,JPG选择逐步编码来保存。

    5、替换文字

    对于所有图片应该带有文本,用<IMG>ALT标签实现,因为很多朋友为了增加浏览速度关闭了浏览器的图片功能。提供了文本有助于搞清页面的内容。

    最后注意,网页到最后总是以内容来吸引大家的,内容是最重要的!所以,请尽量将一些没有必要的图片去掉!

    今天到这里,下次将和大家讨论一下网页和表格的结构对速度的影响!

  • » 阅读全文...
  • 2008年05月5日

    Web标准下的web开发流程思考

    在网上看到这篇关于Web标准下的开发流程的文章感觉不错,就拿出来和大家分享。
      web开发需要考虑三面人的人员:设计师,程序员,客户,项目经理。

      A、设计师负责平面效果设计

      B、程序员负责系统开发

      C、客户提出需求验收系统

      D、项目经理负责统筹全局

      这里就不谈需求分析细节,和与客户谈判的细节了,假定需求已经确定。

      web标准是结构和表现相分离的,所以设计师和程序员在项目经理需求确定之后,可以并行开发,打破了以往的,平面效果确定系统才能开发的低效率开发流程。什么样的系统都可以拥有MVC式系统的开发效率。

      下面是一个流程图:

      需求确定,系统规划完成之后:

      程序员确定xhtml和UI设计是同步进行的

      当xhtml结构确定之后:

      CSS的制作和程序的开发同步进行

      CSS和程序开发完成之后:

      CSS和xhtml进行连接,制作完成

      至于表现层,可以放在xhtml结构开发之后进行,也可以在程序开发阶段完成,比如AJAX,这是程序员的工作,程序接口他们控制好就行。

      当然这只是一个思考,之间的衔接过程出现的问题可能很多,如果要推广还需要长时间的磨合。

      在整个开发过程中,每个人都必须对标准有一定的了解,结构的合理性取决于项目经理和程序员,艺术效果取决于ui设计师,浏览器兼容性取决于CSS制作者,设计师也需要对CSS有一定的了解。DOM不能破坏CSS的结构。

  • » 阅读全文...
  • 2008年04月8日

    MoreCSS: 用CSS来运行JS


    MoreCss是一个很小的JavaScript库,可以让你创建各种网页效果,比如弹出效果,Tab选欺项菜单,表格并且拥有斑马风格,最特别的是,你可以在引用MoreCSS.js以后,在外部样式表里面用CSS代码的写法来定义这些效果事件。比如我们看下面这段代码:

    a {  target:popup;  target-width:640px;  target-height:640px;  }

    调用了morecss.js以后,上面这段代码将可以让你的链接在你一个640 × 640像素的窗口中打开。这的确让人惊喜,查看MoreCss,看看它还能实现多少特别的效果。
     

  • » 阅读全文...
  • 2008年04月6日

    网站开发和设计者需要注意的10个问题

    写在前面

    我也是个Web开发者,看到这篇文章,挺有感触Chrys Bader,这篇文章适合已经学习过相关网站设计的朋友,以及正在从事此项工作的开发者,看一下这些,开发时注意以下这些东西,你的Web将会更加符合Web标准,也会使你的Web更受欢迎,当然也包括搜索引擎。

    作者:Chrys Bader
    翻译:htmlor

    1. 使用Firefox

    Firefox是你触手可及的最重要的平台,网站开发时必不可少。并不是说你非得把它作为默认浏览器――平时上网时,你想用哪个都行。

    自Firefox问世,就有一些居家旅行必备扩展随之产生。如果你想事半功倍立竿见影,快用它们。
    必备扩展

    Web Developer (Chris Pederick)

    这个扩展有很多功能,虽然多数已被FireBug(下文会谈到)涵盖,还是有一些颇为好用的。其中包括:

       * 缩放浏览器窗口
          简单迅速的缩放窗口,800×600、1024×768… 任何指定的尺寸。使用此功能,可以查看各种分辨率下网站的表现。到你的Google Analytics帐户里看看哪种分辨率的访问者最多吧,然后重点为它设计。(FireBug没这个功能)
          My Visitors' Resolutions
        * 编辑CSS/HTML无需刷新
          使用此功能,不必刷新页面即可修改CSS,并将结果实时呈现于页面。太节省时间了。(Firebug里有类似功能,但没这么方便)
          (htmlor注:靠,用了这么久居然都没发现这个好东西,真是太逊了~)
        * 查看页面加载的所有Javascript
          使用此功能,可以在一个页面内查看所有已加载的JS。查看自己或别人的JS代码,方便的很。(Firebug能显示出所有JS名称,但代码没有摆在一起,不方便查询)
        * 查看生成的源代码
          如果你有用AJAX或者Javascript改变页面内容,此功能绝对实用。因为通常的“查看源文件”模式下,是看不到动态生成的HTML代码的。(Firebug也有此功能)

    Firebug (Joe Hewitt)

    在办公室里,我们常常会问:“还记得没有Firebug时怎么过么?”它确实改变了我的生活。其主要好处如下:

        * 检阅DOM
          点击“Inspect”,然后鼠标放到页面元件上,就能看到此元件的HTML和CSS代码。
        * 显示样式继承的实时CSS编辑
          简直就是钱啊――这大大节省了布局设计的时间。例如,在Firebug 里可以选择一个DIV标记,点击margin属性后手工调整,上下键为加减1个像素,上下翻页键为加减10个像素。(htmlor注:任何数值属性都可以这样调整)还可以在当前样式添加新属性。效果满意之后,再把修改的CSS代码贴到实际文件中去。
        * 详尽的Javascript调试
          这里的JS控制台比Firefox自带的稍好。它更详尽,是默认控制台不错的替代品。
        * 查看页面加载的所有文件及总字节数
          对于优化站点加载时间来说,这很关键。你可以测试单个文件会加载多久,图片,JS文件,AJAX调用等。在“Net”部分的最后一行,可以看到页面加载文件的总字节数。

    2. 保持兼容性

    保持跨浏览器的兼容性很重要。对我来说,这是不怎么好玩的一件事。我之前说过最好在Firefox下开发,但也别忘了检查一下页面在IE6、 IE7、Safari(或者还有Opera)中的表现。还有,到Google Analytics里看看你的访问者都用什么浏览器。他们用哪些,你就得重点照顾哪些。

    My Visitors' Browsers

    在自己网站的Google Analytics帐户里,我亲眼目睹了IE6占浏览器比例的下滑,持续下滑。等到哪天它跌破5%时,我会开个party庆祝一下――因为再也用不着支持它了。

    想要不那么费事的实现兼容,那就简单一点。比如你为了某种效果在一个浏览器里百般调试、费尽周折,它却很可能在另外的浏览器里不好好表现。这就要说到下一建议:少即多。

    3. 少即多

    把握好分寸。图形设计,编程,页面布局,任何事情都需如此。简单一点。

        * 图形设计
          现在有一种滥用渐变、斜角和阴影的态势。有时候事情如果没搞好,很可能是东西太多了。简简单单、大方得体就好。
       * 花哨的Javascript
          用一些很酷的JS效果增强用户界面很好,不过另一方面,它会造成用户的负担,尤其是那些没有像你一样拥有超级电脑的用户。此外,还有跨浏览器不兼容的麻烦。再强调一次,不要对JS倚重太过,什么事都靠它。如果实在想用JS,我强烈推荐jQuery

    4. Javascript?就用jQuery

    Javascript用来显示/隐藏信息很棒,它让页面空间开阔,不会挤成一堆。想以一种更新更酷更简单的方式操控JS?一定要试试jQuery
    jQuery

    jQuery的主要优点之一:兼容性已广受各大浏览器的考验。也就是说,其所有方法都能保证正常运行。优点之二:极其易用。

    jQuery使用CSS的选择器操作对象,让你随心所欲的控制它们,一切尽在掌握。例如:

    隐藏id为myDiv的DIV里所有的段落

    $('#myDiv p').hide();
    $('#myDiv p').hide('slow'); // 动画效果隐藏
    $('#myDiv p').toggle(); // 点击显示,再点击隐藏

    从这里了解更多jQuery。

    其他类似的Javascript库也不少,有mootoolsprototypescriptaculous等。

    5. AJAX要因地制宜

    Web 2.0大潮中,AJAX炙手可热。很多人都问我“你懂AJAX吗?”,好像它是种独立的编程语言似的。说白了,AJAX只是一种手段而已,它通过与服务器端交互,无需刷新页面就能获取和更新数据。

    我注意到最近有一种趋势:无论干什么都用AJAX。这并不总是明智的选择。原因?

        * 访问量。全盘应用AJAX,会损失掉宝贵的PV。
        * 可用性。这一点会有争议,但我认为大多数用户(可能不包括你)仍旧有个习惯:他们依然把页面刷新当作某些事件(如表单提交、页面跳转等)发生的迹象。

    AJAX绝对有用武之地,而且某些情况下非它不可。不过重申一遍,少即多。把握分寸,适度使用Javascript和AJAX就好。
    6. 搜索引擎喜欢结构化代码

    现在有种风潮,人们想尽办法让自己的关键字在搜索结果中名列前茅。作为开发者,你有责任因势利导,用结构化代码尽可能优化网站以适应搜索引擎。

    以下是一些重要的结构化标记:

        * H1 - 最重要的标题,搜索引擎最重视它。
        * H2,H3,H4,H5 - 重要性依次递减的标题。用它们恰当的传递信息,搜索引擎会根据字号给予相应的关照。
        * A - 链接。通常给它个TITLE属性比较好。

          <a xhref="http://blog.htmlor.com/" title="htmlor's blog">htmlor's blog</a>

       * IMG - 古老的图像标记。给它个ALT属性比较好,搜索引擎会把其属性值当作关键字。另外,当图像无法显示时,访问者会看到替代文字。

    还有一些重要的标记:

        * TITLE - 此标记会作为搜索引擎查询结果的标题显示,应该认真对待。
        * META - 最好完善一下keywords和description,搜索引擎还是会读取这两项老掉牙的信息的。

          <meta name="keywords" content="编程,设计,武侠,小说,足球" />
          <meta name="description" content="关注新技术,趣文章,足坛风云;偶尔抒抒情,搞搞笑,装装深沉。" />

    7. 布局用DIV 别用TABLE

    其实这条我们都已习惯了,现在还用TABLE布局是会被人极度鄙视的。在列举表式数据时用用还差不多。

    搞定DIV布局需要很多实践,不过一旦你掌握诀窍,它将变得俯首帖耳。由此获得的灵活性,比你能想到的还要多。

    其实它非常简单,就好像 float 和 width 一样。

    我在Virb写了个很简单的两栏布局教程,有兴趣就看看吧。
    8. 少用行内样式

    写代码时,通常会直接在元件标记上加几句样式,这比往CSS文件里加个Class或属性简单顺手一点。不过,最好别这么做,因为代码需要可维护性。

    某些时候,你将不得不面对自己以前写的代码。自己的床自己得睡,自己犯懒自己遭罪。10年来,我认识到一个道理:现在额外花时间,将来特别省时间。这就说到了下一个建议:代码要考虑将来。

    不好的

    <p style="font-size:14px;margin-bottom:0;">第一个标题</p>
    <p>正文内容</p>
    <p style="font-size:14px;margin-bottom:0;">第二个标题</p>

    好的

    <style type="text/css" media="screen">
    p.header{
      font-size:14px;
      margin-bottom:0;
    }

    </style>
    <p class="header">第一个标题</p>
    <p>正文内容</p>
    <p class="header">第二个标题</p>

    9. 代码要考虑将来

    要给代码写注释。整洁,有序,别偷懒。如果觉得匆匆忙忙没心思,休息一会儿再回来写。

    某些情况下(比如你的网站将来成功了),别人会来看的代码。而有时候,这个人会是你。

    几年之后,看到自己当年没有注释、乱做一团的代码,你肯定悔不当初。为了避免将来的自怨自艾,现在就把复杂的代码注释一下吧。

    注释也不要太多。那些简单到一目了然的代码根本没必要说明,否则泥沙俱下,真正有用的注释会淹没在重重文字之中。
    10. 了解标准,但不必束手束脚

    别再使用SMALL、CENTER、FONT等不推荐使用的标记了,这样不好。

    听说SMALL标记还没被弃用――不过抱歉,我肯定它没几天了。

    网站上的有效XHTMLCSS标志告诉人们,你遵守了某些规则。也许这让你感觉与众不同,但是,网站质量与此无关。去看看哪个成功的大网站能完全通过HTML标准验证? 所谓标准,其实跟不上新方法新技术的发展。

    开发网站时,要尽量遵循HTML标准。不过有时候,可能需要跳出标准去实现某个功能,这样才能兼容所有浏览器。对此不必太过介怀,说到底,功能才是网站的根本。

    如果实在想的话,可以用W3HTML验证器检查你的代码。
    讲完了

    考虑一下上述建议吧,我推荐的工具可以开始上手了。祝你好运!

    (完)

  • » 阅读全文...
  • 2008年01月22日

    推荐介绍几款小巧的Web Server程序

    偶然看到几个小巧有趣的Web Server程序,觉得有必要拿来分享一下,让大家除了知道Apache、IIS之外,原来还有更多有趣的选择。主要介绍了:micro_httpd、 mini_httpd、thttpd、lighttpd、shttpd 等无款小巧好用的httpd。

    【 micro_httpd - really small HTTP server】

    特点:
    * 支持安全的 .. 上级目录过滤
    * 支持通用的MIME类型
    * 支持简单的目录
    * 支持目录列表
    * 支持使用 index.html 作为首页
    * Trailing-slash redirection
    * 程序总共代码才200多行

    这个httpd适合学习简单的Web Server编写学习,因为它只有一个简单的框架,只能够处理简单的静态页,可以考虑用来放静态页。

    官方地址:http://www.acme.com/software/micro_httpd/
    下载地址:http://www.acme.com/software/micro_httpd/micro_httpd_12dec2005.tar.gz

     


    【 mini_httpd - small HTTP server 】

    特点:
    * 支持GET、HEAD、POST方法
    * 支持CGI功能
    * 支持基本的验证功能
    * 支持安全 .. 上级目录功能
    * 支持通用的MIME类型
    * 支持目录列表功能
    * 支持使用 index.html, index.htm, index.cgi 作为首页
    * 支持多个根目录的虚拟主机
    * 支持标准日志记录
    * 支持自定义错误页
    * Trailing-slash redirection

    mini_httpd 也是相对比较适合学习使用,大体实现了一个Web Server的功能,支持静态页和CGI,能够用来放置一些个人简单的东西,不适宜投入生产使用。

    官方地址:http://www.acme.com/software/thttpd/
    下载地址:http://www.acme.com/software/mini_httpd/mini_httpd-1.19.tar.gz

     

    【 thttpd - tiny/turbo/throttling HTTP server 】

    thttpd中是一个简单,小型,轻便,快速和安全的http服务器.

    简单:它能够支持HTTP/1.1协议标准,或者超过了最低水平
    小巧:它具有非常少的运行时间,因为它不fork子进程来接受新请求,并且非常谨慎的分配内存(性能对比表:http://www.acme.com/software/thttpd/benchmarks.html
    便携:它能够在大部分的类Unix系统上运行,包括FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF等等
    快速:它的速度要超过主流的Web服务器(Apache, NCSA, Netscape),在高负载情况下,它要快的多
    安全:它努力的保护主机不受到攻击,不中断服务器

    thttpd 类似于lighttpd,对于并发请求不使用fork()来派生子进程处理,而是采用多路复用(Multiplex)技术来实现。因此效能很好。同时它还 有一个特点就是基于URL的文件流量限制,这对于下载的流量控制而言是非常方便的。象Apache就必须使用插件实现,效率较thttpd低。
    thttpd跟lighttpd类似,适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。

     

    官方地址:http://www.acme.com/software/thttpd/
    下载地址:http://www.acme.com/software/thttpd/thttpd-2.25b.tar.gz

     

    【 lighttpd - light footprint + httpd = LightTPD 】

    Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。

    lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用 户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

    实用起来lighttpd确实非常不错,apache主要的问题是密集并 发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低, 而且反应速度相当快。

    利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!

    lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。


    官方地址:http://www.lighttpd.net/
    下载地址:http://www.lighttpd.net/download/lighttpd-1.4.16.tar.gz


    【 SHTTPD - Simple HTTPD 】

    Shttpd 是另一个轻量级的web server,具有比thttpd更丰富的功能特性,支持CGI, SSL, cookie, MD5认证, 还能嵌入(embedded)到现有的软件里。最有意思的是不需要配置文件! 由于shttpd可以嵌入其他软件,因此可以非常容易的开发嵌入式系统的web server,官方网站上称shttpd如果使用uclibc/dielibc(libc的简化子集)则开销将非常非常低。

    特点:
    * 小巧、快速、不膨胀、无需安装、简单的40KB的exe文件,随意运行
    * 支持GET, POST, HEAD, PUT, DELETE 等方法
    * 支持CGI, SSL, SSI, MD5验证, resumed download, aliases, inetd模式运行
    * 标准日志格式
    * 非常简单整洁的嵌入式API
    * dietlibc friendly. NOT that friendly to the uClibc (*)
    * 容易定制运行在任意平台:Windows, QNX, RTEMS, UNIX (*BSD, Solaris, Linux)


    由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的web server开发原形,开发人员可以基于shttpd开发出自己的webserver!


    官方网站:http://shttpd.sourceforge.net/
    下载地址:http://jaist.dl.sourceforge.net/sourceforge/shttpd/shttpd-1.38.tar.gz

  • » 阅读全文...
  • 2008年01月12日

    URL网址规范化问题

    网址URL规范化(URL canonicalization)是近一年来在Google搜索结果中出现的一个很大的问题。它指的是搜索引擎挑选最好的URL网址作为真正网址的过程。举例来说,下面这几个URL一般来说指的是同一个文件或网页:
    http://www.seosem.cn
    http://seosem.cn
    http://www.seosem.cn/default.asp
    http://seosem.cn/default.asp
    但是从技术上来讲,这几个URL网址都是不同的。虽然在绝大部分情况下,这些网址所返回的都是相同的文件,也就是你的主页。但是从技术上来说,主机完全可以对这几个网址返回不同的内容。
    当搜索引擎要规范化网址时,搜索引擎需要从这些选择当中挑一个最好的代表。一般来说,你的主页应该是固定的,只有一个。但是有的时候,在很多网站上站长在链接回主页时,所使用的URL并不是唯一的。很可能在你的网站上,一会连到URL http://www.seosem.cn,一会儿连到URL http://www.seosem.cn/default.asp
    虽然这不会给访客造成什么麻烦,因为这些网址都是同一个文件,但是对Google来说却是造成了困惑,哪一个网址是你真正的主页呢?如果在你的网站上,不同的版本网址都大量出现,那么这两个URL可能都会被Google收录进数据库,这时就会造成复制内容网页。
    所谓复制内容网页,指的是两个或多个网页的内容是相同或大部分相似的。很多时候,复制网页有可能是作弊手段。就算不是作弊手段的时候,搜索引擎通常也只会挑出其中一个返回搜索结果,而把其他的复制网页都排在最后面,以至于根本找不到。
    当你的网站出现网址URL规范化问题的时候,就有可能造成被怀疑为复制网页,因而影响搜索引擎结果排名。
    从Google的角度来说,他们正在发展所谓大爸爸数据中心基本架构,来解决包括URL规范化的问题。但谁知道能不能解决呢?
    从站长的角度来考虑,你应该做两件事:
    1)你的网站内部在链接到其他网页,尤其是主页时,只使用一种URL。不管是包含www或不包含www,你要由始至终只使用一个版本。这样搜索引擎也就明白哪一个是规范化的主页网址。
    2)但是你没办法控制别的网站用哪一个网址连向你的主页。所以你应该在你的主机服务器上,把所有有可能成为主页网址的URL,做301重定向到你所选择的主页网址版本。也就是说,从下面这几个网址
    http://seosem.cn
    http://www.seosem.cn/default.asp
    http://seosem.cn/default.asp
    都要做301重定向到这个网址
    http://www.seosem.cn
    很重要的一点是,如果你的网站出现了URL规范化的问题,千万不能使用Google的网址删除反馈表,来要求删除其中的一个网址版本。比如说,你所要的是带有www的版本
    http://www.seosem.cn
    你千万不能到Google的网站上填表,要求没有www的主页网址
    http://seosem.cn
    被删除掉。因为那样做的话,你整个的域名有可能被删除6个月。
    当然,除了包含www和不包含www的两个版本以外,还有其他类型的URL规范化问题。比如有的时候,搜索引擎会去掉或加上网址尾端最后的斜线。有的时候会尝试把大写字母换成小写字母,有的时候可能尝试去掉会话ID(session ID)等等,这些都有可能造成网址规范化问题。

  • » 阅读全文...