<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>搜索引擎优化&#124;中英文搜索引擎优化(SEO)服务-耐特康赛&#124;网络概念&#124;Netconcepts &#187; 牛佳杰</title>
	<atom:link href="http://www.netconcepts.cn/author/bruce/feed" rel="self" type="application/rss+xml" />
	<link>http://www.netconcepts.cn</link>
	<description>Netconcepts China</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:19:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>如何看懂PHP函数原型</title>
		<link>http://www.netconcepts.cn/blog/%e5%a6%82%e4%bd%95%e7%9c%8b%e6%87%82php%e5%87%bd%e6%95%b0%e5%8e%9f%e5%9e%8b.html</link>
		<comments>http://www.netconcepts.cn/blog/%e5%a6%82%e4%bd%95%e7%9c%8b%e6%87%82php%e5%87%bd%e6%95%b0%e5%8e%9f%e5%9e%8b.html#comments</comments>
		<pubDate>Mon, 21 Feb 2011 07:00:46 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/blog/%e5%a6%82%e4%bd%95%e7%9c%8b%e6%87%82php%e5%87%bd%e6%95%b0%e5%8e%9f%e5%9e%8b</guid>
		<description><![CDATA[PHP是一种弱类型语言，变量的类型通常不是由程序员设定的，确切地说，是由 PHP 根据该变量使用的上下文在运行时决定的。如果想查看某个表达式的值和类型，用 var_dump()。 如果只是想得到一个易读懂的类型的表达方式用于调试，用 gettype()。要查看某个类型，不要用 gettype()，而用 is_type 函数。不能用数组和对象作为键(key)。这样做会导致一个警告：Illegal offset type。]]></description>
			<content:encoded><![CDATA[<p>PHP是一种弱类型语言，变量的类型通常不是由程序员设定的，确切地说，是由 PHP 根据该变量使用的上下文在运行时决定的。如果想查看某个表达式的值和类型，用 var_dump()。 如果只是想得到一个易读懂的类型的表达方式用于调试，用 gettype()。要查看某个类型，不要用 gettype()，而用 is_type 函数。不能用数组和对象作为键(key)。这样做会导致一个警告：Illegal offset type。</p>
<p>在来看函数，如何看懂PHP手册函数伪类型？<br />
mixed 说明一个参数可以接受多种不同的（但并不必须是所有的）类型。<br />
number 说明一个参数可以是 integer 或者 float。<br />
Callback 函数不仅可以是一个简单的函数，它还可以是一个对象的方法，包括静态类的方法。<br />
一个 PHP 函数用函数名字符串来传递。可以传递任何内置的或者用户自定义的函数，除了语言结构如 array()，echo()，empty()，eval()，exit()，isset()，list()，print() 和 unset()。<br />
一个对象的方法以数组的形式来传递，数组的下标 0 指明对象名，下标 1 指明方法名。<br />
对于没有实例化为对象的静态类，要传递其方法，将数组 0 下标指明的对象名换成该类的名称即可。<br />
除了普通的用户定义的函数外，也可以使用create_function()来创建一个匿名的回调函数(callback)。<br />
void 作为返回类型意味着函数的返回值是无用的。void作为参数列表意味着函数不接受任何参数。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/%e5%a6%82%e4%bd%95%e7%9c%8b%e6%87%82php%e5%87%bd%e6%95%b0%e5%8e%9f%e5%9e%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP example 之性能调试和负载测试</title>
		<link>http://www.netconcepts.cn/blog/php-example-01.html</link>
		<comments>http://www.netconcepts.cn/blog/php-example-01.html#comments</comments>
		<pubDate>Wed, 10 Nov 2010 02:31:52 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[PHP example]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/?p=4201</guid>
		<description><![CDATA[PHP本身的速度已经相当快了。一般来说，速度的瓶颈是等待数据库查询执行完成于从远程URL中提取内容等。由于Web平台的特点，PHP等web脚本语言本身可能实现不了它应有的效率。在速度优化过程中增加更多的不定因素和复杂性。下面就介绍如何测试和发现代码中存在的性能问题的技术。]]></description>
			<content:encoded><![CDATA[<p>PHP本身的速度已经相当快了。一般来说，速度的瓶颈是等待数据库查询执行完成与从远程URL中提取内容等。由于Web平台的特点，PHP等web脚本语言本身可能实现不了它应有的效率。也希望我们的宽带速率更高，价格更便宜。这也在速度优化过程中增加更多的不定因素和复杂性。下面就介绍如何测试和发现代码中存在的性能问题的技术。</p>
<p>项目开始前，思维里应该有最基本的优化习惯并合理利用。项目的后期优化的成本就非常高了，可能你会重构某些代码块。下面讨论一些平时可以避免影响效率的习惯和方法。欢迎您留言补充。</p>
<ul>
<li>功能相同的函数，谁的效率最高。个人经验，一般相同功能的函数，新版本的效率更高（注意你的PHP版本是否支持新函数）。</li>
<li>滥用正则表达式（使用能满足需求的字符串函数代替正则表达式）。</li>
<li>平时对字符串、数组、数据结构优化方面做些研究和积累，重在培养一种习惯。</li>
</ul>
<p>需要说明一点，我们需要综合考虑函数在你的程序中被调用的次数、可读性、可维护性，如果只是为了省下微不足道的一小点时间，而增加了额外的复杂性就不值得了。</p>
<p><strong>计算函数执行时间</strong></p>
<p>[code lang="php"]<br />
&lt;?php<br />
/*<br />
 *<br />
 * @return void<br />
 */<br />
//定义一个字符串<br />
$str=&quot;netconcepts.cn&quot;;</p>
<p>//从这里开始计时<br />
$start=microtime(true);</p>
<p>//要测试的函数<br />
$md5=md5($str);<br />
$endtime=microtime(true) - $start;<br />
echo 'Md5函数执行时间：'.$endtime;<br />
?&gt;<br />
[/code]</p>
<p><strong>计算程序执行时间&#8212;-PEAR Benchmark 模块</strong><br />
PEAR Benchmark 模块自带的模板文件timer_example.php</p>
<p>[code lang="php"]<br />
&lt;?php<br />
/**<br />
 * Wait<br />
 *<br />
 * @param int $amount Amount to wait<br />
 *<br />
 * @return void<br />
 */<br />
require 'Benchmark/Timer.php';<br />
function wait($amount)<br />
{<br />
 for ($i=0; $i &lt; $amount; $i++) {<br />
 for ($i=0; $i &lt; 100; $i++) {<br />
 }<br />
 }<br />
}</p>
<p>// Pass the param &quot;true&quot; to constructor to automatically display the results<br />
$timer = new Benchmark_Timer();<br />
$timer-&gt;start();<br />
wait(10);<br />
$timer-&gt;setMarker('Mark1');<br />
echo &quot;Elapsed time between Start and Mark1: &quot; .<br />
 $timer-&gt;timeElapsed('Start', 'Mark1') . &quot;\n&quot;;<br />
wait(50);<br />
$timer-&gt;stop();<br />
$timer-&gt;display();<br />
?&gt;<br />
[/code]</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-4221" title="timer01" src="http://www.netconcepts.cn/wp-content/uploads/2010/11/timer01.jpg" alt="timer01" width="396" height="165" /><br />
图1-timer_example运行结果</p>
<p><strong>设置几个记号</strong><br />
如果你想对程序进行粗略的分析，看看执行每条语句需要多长时间，可以试试下面的方法</p>
<p>[code lang="php"]<br />
&lt;?php<br />
/*<br />
 * To change this template, choose Tools | Templates<br />
 * and open the template in the editor.<br />
 */</p>
<p>require 'Benchmark/Benchmark/timer.php';<br />
$timer=&amp; new Benchmark_timer(true);<br />
$timer-&gt;start();<br />
//此处可以设置一些代码<br />
$timer-&gt;setMarker('setup');</p>
<p>//此处是更多的已执行代码<br />
$timer-&gt;setMarker('middle');</p>
<p>//此处是更多其他代码<br />
$timer-&gt;setMarker('done');</p>
<p>//最后一点代码<br />
$timer-&gt;stop();</p>
<p>$timer-&gt;display();</p>
<p>?&gt;<br />
[/code]</p>
<p style="text-align: center;">调用setMarker()记录时间。display()方法用于输出记号列表、设置每个几号的时间以及从前一个记号经过的时间。<br />
<img class="aligncenter size-medium wp-image-4224" title="timer02" src="http://www.netconcepts.cn/wp-content/uploads/2010/11/timer02.jpg" alt="timer02" width="396" height="165" /><br />
图2-设置记号后运行结果</p>
<p><strong>计算函数执行多次的时间</strong><br />
其中Benckmark模块中也包含Benchmark_Iterate类，这个类可以用于记录一个单独函数执行多次的时间。</p>
<p><strong>Advanced PHP Debugger（APD）或Xdebug</strong><br />
这两个扩展都在PECL知识库中,都是比较健壮的剖析代码应用程序。方便监控哪个部分程序最耗费时间。</p>
<p><strong>网站压力测试</strong><br />
基准测试：模拟一台HTTP服务器每秒钟能够对单独一个URL响应多少次请求。最常用的工具是Apache HTTP服务器的基准测试工具&#8211;ab。<br />
压力测试：能够中断你的Web应用程序的测试技术。<br />
断点测试-能够识别并修复程序的弱点，或者判断是否需要购置硬件。当与代码剖析共同使用时，可以明确程序中的哪一部分优先剥离，这对大型网站性能优化有很大的帮助。推荐工具Siege，通过读取配置文件中的多个URL，按照顺序（或者随机）逐个运行，非常接近真实网站应用。当然也可以像ab一样，一次只测试一个URL。</p>
<p><strong>PHP加速器</strong><br />
加速器原理是通过将PHP脚本编译后的操作码保存在磁盘或者内存中，以避免PHP根据每个请求反复把脚本编译成操作码。是不是感觉有点像编译语言啊，哈哈。有得有失，有利有弊。<br />
一个请求到达服务器，通知PHP解释器运行特定的程序时，读取源码编译为内部操作码。当脚本执行完成时，解释器就会丢弃编译结果。这是典型的解释型语言。加速器的应用，就会将编译后的操作码保存起来，当下一次PHP解释器根据请求执行同一程序时，加速器就会介入并检查是否保存了该编译指令。有则不用再次编译直接用之，节省了时间。当然这里是灵活的，可以通过配置使得加速器根据不同的条件来更新编译结果，比如程序改变时或者按照时间再或者有需要强行更新。<br />
常用的加速器：Alternative PHP Cache (APC) 、eAceelerator 、ionCoube PHP Accelerator (PHPA).<br />
zend 官方出品 Zend Optimizer也是免费的，但他不是加速器。Zend Optimizer实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。<br />
在选择加速器时，加速器对应的php版本很重要。新版的PHP和过去的加速器，可能都没有必要，对吧！毕竟加速器只是优化的一个工具，这还要根据实际情况来选择。高兴的是，我们知道有这样的工具和解决问题的方法（思维）。剩下的就是我们出色的完成任务啦！</p>
<p><strong>希望对大家有一个宏观的认识和理解。最后罗列出来参考文档，在需要的时候，可以深入学以致用。</strong><br />
PRAR Benchmark 类：http://pear.php.net/package/Benchmark<br />
APD的文档 http://www.php.net/manual/en/ref.apd.php<br />
Xdebug剖析和排错扩展 http://www.xdebug.org<br />
DBG扩展资料 http://www.php-debugger.com/dbg/<br />
Kcachegrind可视化剖析工具 http://kcachegrind.sourceforge.net/html/Home.html<br />
Siege 文档 http://www.joedog.org/index/siege-home<br />
ab 文档 http://httpd.apache.org/docs/2.0/programs/ab.html<br />
torture.pl源码文档 http://stein.cshl.org/~lstein/torture/</p>
<p>欢迎跟大家交流！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/php-example-01.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站分析—不能度量就无法改进</title>
		<link>http://www.netconcepts.cn/blog/site-analysis-and-improve.html</link>
		<comments>http://www.netconcepts.cn/blog/site-analysis-and-improve.html#comments</comments>
		<pubDate>Tue, 02 Nov 2010 07:56:20 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[SEO项目管理]]></category>
		<category><![CDATA[网站优化]]></category>
		<category><![CDATA[网站分析]]></category>
		<category><![CDATA[网站运营]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/?p=4151</guid>
		<description><![CDATA[当网站分析获得海量信息，因而也更具洞察力。然而，如果只是不加分析地单从表面上应用这些海量数据，后果也是不堪设想的。网站分析是网站的体温计，时刻监测着网站的整体状况。作为方法学，它是一种分析和改善在线体验的研究。离开网站分析，网站运营很可能变得像无头苍蝇一般。当你做出了错误的判断，网站分析也提供了迅速发现错误的反馈机制。]]></description>
			<content:encoded><![CDATA[<p>网站运营中，与您跨专业的老板或者客户沟通时，难免会用到专用名词，甚至他们只关心结果。那么，你在为此烦恼的时候，也许网站分析可以帮助你。网站分析更能获得海量信息，因而也更具洞察力。然而，如果只是不加分析地单从表面上应用这些海量数据，后果也是不堪设想的。</p>
<p>网站分析是网站的体温计，时刻监测着网站的整体状况。作为方法学，它是一种分析和改善在线体验的研究。离开网站分析，网站运营很可能变得像无头苍蝇一般。</p>
<p>不能度量，就无法改进。网站分析在衡量工作绩效与工作改进上提供了客观依据。我们从访客的角度，来了解正在运营的网站，哪些该做，哪些可行，就算做出了错误的判断，网站分析也提供了迅速发现错误的反馈机制。</p>
<p>通过网站分析获取一些基本信息，从而了解网站的流量和访客。包括以下几点</p>
<p><strong>网站的日访客数量</strong></p>
<p><strong>访问最多的内容</strong></p>
<p><strong>网站的变化率（注册量、下载量、销售量）</strong></p>
<p><strong>访客信息（地理位置、浏览器语言、停留时间）</strong></p>
<p><strong>平均页面访问深度</strong></p>
<p>您通过以上这些指标为起点，可以拓展自身网络分析的知识。</p>
<p><strong>网站分析方法</strong></p>
<p><strong><span style="color: #008080;">页面标签（客户端）技术</span></strong>是一种从访客代理浏览器端收集数据的技术，在网站中的每个页面放置JavaScript代码进行收集的。</p>
<p>优点：</p>
<ol>
<li>收集客户端数据；</li>
<li>实时收集和处理客户端数据；</li>
<li>追踪客户端事件（js、flash、Web2.0）；</li>
<li>不受代理和服务器端缓存影响，提供精准的会话追踪；</li>
<li>自动升级，数据存放在云端。</li>
</ol>
<p>缺点：</p>
<ol>
<li>会手防火墙阻止；</li>
<li>不能追踪带宽或下载完成；</li>
<li>不能追踪搜索引擎蜘蛛。</li>
</ol>
<p><strong><span style="color: #008080;">日志文件（服务器端）技术</span></strong>独立于访客代理浏览器，在Web服务器上收集数据，这是一种基于服务器端的数据收集技术。原理是：采集所有的发送到服务器端的请求，包括页面文件、图像、其它文件下载等。</p>
<p>优点：</p>
<ol>
<li>可以处理历史数据；</li>
<li>不受防火墙阻隔；</li>
<li>可以追踪带宽或者下载完成；</li>
<li>可以追踪蜘蛛；</li>
<li>可以追踪移动用户。</li>
</ol>
<p>缺点：</p>
<ol>
<li>受代理和服务器端缓存影响；</li>
<li>不能追踪事件（比如单击、鼠标滑过等）；</li>
<li>手动升级；蜘蛛会增加浏览数据。</li>
</ol>
<p>由此可以看出他们获得元数据的来源不同，各有特点。如何选择，这完全取决于你的需求。如果两种方法结合在一起使用，往往能获得取长补短的效果。</p>
<p><strong>影响数据准确性的因素</strong></p>
<ul>
<li>一个IP地址对应多个用户（DHCP）</li>
</ul>
<p>服务器端只能通过来自同一个IP来追踪一个访客。但这个缺点可以通过Cookies克服。</p>
<ul>
<li>浏览器页面缓存</li>
</ul>
<p>客户端缓存是浏览器开发商为了节省带宽、提高浏览速度将之前浏览的网页存储在硬盘中。在这种情况下，浏览同一个网页时，是直接在客户端读取的。因此不会被记录在服务器端日志里。基本上服务器端缓存应用在任何的网络加速技术中，服务器将网页缓存下来，在下次访问的时候直接提供缓存。这意味着，后续的所有请求都是来自缓存而不是网站本身。这会造成一些数据没有被收集在内。</p>
<ul>
<li>蜘蛛抓取增加了统计数据</li>
</ul>
<p>您的网站除了人类访问之外，还有搜索引擎蜘蛛抓取。这些蜘蛛都会被服务器端日志文件记录下来。这里需要注意的是，区别蜘蛛和人类并不容易，并且蜘蛛的抓取也会占访客相当大的一部分比例。这样看的话，日志文件技术经常会高估用户数量。</p>
<p>为大家介绍多款优秀的开源或者免费的网站分析系统</p>
<p><strong>标签分析工具</strong></p>
<p>Google Analytics</p>
<p>网址：http://www.google.com/intl/zh-CN_ALL/analytics/</p>
<p>描述：提供了一种托管的网页标签服务。免费，数据交叉分析，自定义报告、转化分析、分析可定制化等。详情参看Google分析师帮助中心</p>
<p>Piwik</p>
<p>网址：http://piwik.org/demo/</p>
<p>描述：开源授权协议GPLv3。Piwik可以给你详细的统计信息，比如网页 浏览人数, 访问最多的页面, 搜索引擎关键词等等，并且采用了大量的AJAX/Flash技术，使得在操作上更加便易。此外，它还采用了插件扩展及开放API架构，可以让开发人员根据自已的实际需求创建更多的功能。</p>
<p>演示地址：http://dejkam.com/twatch/</p>
<p>tracewatch</p>
<p>网址：http://www.tracewatch.com/</p>
<p>描述：开源的Web流量分析程序，实时分析，可以提供深度分析报告。</p>
<p>演示地址：http://dejkam.com/twatch/</p>
<p><strong>日志分析工具</strong></p>
<p>AWStats</p>
<p>网址：http://www.oschina.net/news/5406/awstats-6.95-released</p>
<p>描述：开源授权协议GPL。AWStats 是一个免费的强大而有个性的工具,带来先进的网络,流量，FTP或邮件服务器统计图. 本日志分析器作为CGI或从命令行在数个图形网页中显示你日志中包含的所有可能信息. 它利用一部分档案资料就能经常很快地处理大量日志档案, 它能分析日志文件来自从各大服务器工具 ,如 Apache日志档案（NCSA combined/XLF/ELF log format or common/CLF log format）， WebStar，IIS （W3C的日志格式）及许多其他网站，Proxy(代理服务器)、Wap、流量服务器、邮件服务器和一些FTP服务器。</p>
<p>演示地址：http://dejkam.com/twatch/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/site-analysis-and-improve.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web敏捷开发之SEO不是马后炮</title>
		<link>http://www.netconcepts.cn/blog/agile-development-the-seo.html</link>
		<comments>http://www.netconcepts.cn/blog/agile-development-the-seo.html#comments</comments>
		<pubDate>Tue, 26 Oct 2010 09:19:12 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[技术优化]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网站建设]]></category>
		<category><![CDATA[网站设计]]></category>
		<category><![CDATA[网络营销]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/?p=4112</guid>
		<description><![CDATA[今天站在Web敏捷开发的角度来谈SEO。我理解的Web敏捷开发是借鉴软件工程上的敏捷开发，鉴于Web有自己的特殊性和平台性，不敢班门弄斧。目的只是想在Web开发大潮上，通过学习前人的经验结合现在的市场环境和客户的需求，高效的创新产出。我认为这才是Web脚本语言的生存之道。]]></description>
			<content:encoded><![CDATA[<p>看到漂亮的Web页面，不错的用户体验，Cool！ 其实还有隐藏在他们背后的东西，却又比漂亮外观更为重要的东西—搜索引擎优化（SEO）。</p>
<p>今天站在Web敏捷开发的角度来谈SEO。如有遗漏错误还请大家指教。</p>
<p>具有SEO特点的用户体验，用户体验是主观的在产品设计过程中建立起来的心理感受，因为是主观的，所以带有一定的不确定因素。Web前台工程师如何让用户和蜘蛛同时都喜欢上你的页面？那么请往下看。</p>
<p>首先说明，我理解的Web敏捷开发是借鉴软件工程上的敏捷开发，鉴于Web有自己的特殊性和平台性，不敢班门弄斧。目的只是想在Web开发大潮上，通过学习前人的经验结合现在的市场环境和客户的需求，高效的创新产出。我认为这才是Web脚本语言的生存之道。</p>
<p>我会根据搜索引擎的演变，而更新以下的内容。依开发流程、重要程度、难易程度排序</p>
<p><strong>一．Web框架</strong></p>
<p>选择框架可以高效、安全开发大型Web应用程序。选择适合您团队的框架，css框架、js库、后台脚本语言框架或者是开源系统（二次开发）。如何选择框架是有争议的，正所谓有得有失，哪款框架最适合您的项目、您的团队最熟悉理解哪款框架。</p>
<p><strong>框架之利</strong></p>
<p>开发效率的提高</p>
<p>代码命名规范</p>
<p>更好的团队合作</p>
<p>解决浏览器兼容性问题</p>
<p>相对容易维护（清晰的代码结构）</p>
<p><strong>框架之弊</strong></p>
<p>团队对框架的接受与学习</p>
<p>限制开发思路</p>
<p>框架本身存在Bug</p>
<p>具体到不同语言的时候，框架同时具有不同的利弊。总的来说，利大于弊。且在项目开发的实际过程中，物力人力资源不会配备的那么充分。要想快速、高效、安全的开发Web应用程序，选择框架是必要的。</p>
<p><strong>二．从技术角度看SEO</strong></p>
<p>XHTML（结构）、CSS（样式）、Javascript（行为）分离——合格的前台工程师</p>
<p>项目开始，在人力资源充分保证的情况下，可以并行开发。我们先来谈谈SEO的结构基础。强调结构化与分离的好处不言而喻。作为合格的前台工程师，要制作结构化、分离、符合W3C标准的静态页面（或带有动态标签的模板页面）并不容易，但这为以后的网站结构打下良好的基础。更能体现您的价值与专业程度。</p>
<p><strong>理解结构化、分离的好处：</strong></p>
<p>XHTML是XML的子集，这符合未来的趋势，您做的结构化页面具有元数据的特性。</p>
<p>XHTML的DOM结构更清晰，CSS与JS的开发、维护更便利。</p>
<p>方便蜘蛛抓取，同时也方便任何脚本语言分析处理。</p>
<p>有准备的告诉您的客户（Boss），我的产出值这个价格。</p>
<p>补充：不要用价格战的方式去赢得项目，这只能让你赚小钱，失大利。</p>
<p><strong>XHTML</strong><strong>的权重标签</strong></p>
<p>这是一个让我又爱又恨的话题。如何以不变应万变？搜索引擎对权重标签的理解是变化的，而且是不可测的。在制作页面的时候，参照W3C对标签要有一定的理解，合理地安排使用（而不要滥用）这些标签和内容。下面综合介绍一些重要的标签、标签属性（没有介绍的不是说明他们不重要）、影响SEO的其它因素。</p>
<p>&lt;a&gt;内部链接文字（锚文本）&lt;/a&gt;</p>
<p>&lt;head&gt;&lt;title&gt;标题内容（元素）&lt;/title&gt;&gt;&lt;/head&gt;</p>
<p>域名与你网站的相关性，这个也非常重要（不属于XHTML内容）。</p>
<p>每段的首句</p>
<p>URL（路径和文件名），url语义跟页面内容相关性</p>
<p>相似度（关键词堆积）与重复内容</p>
<p>每句开头</p>
<p>段落内容中有加粗（斜体等）标签</p>
<p>Title属性</p>
<p>Alt属性</p>
<p>Mate描述</p>
<p>Mate关键词</p>
<p><strong>页面容量的合理化</strong><strong> </strong></p>
<p>这里页面容量是指单页面所有元素的大小（kb）。原则是合理的页面容量会提升网页的显示速度，增加对蜘蛛、用户的友好与体验。</p>
<p><strong>重要内容往前方</strong></p>
<p>例如，你在设计XHTML结构时，重要的内容块放在前面。使用CSS的定位和浮动，来布局页面。</p>
<p>比如：把广告注册等盒子放在页脚，通过绝对定位，可以让注册等广告信息浮动到页头上。这些技巧数不胜数。举一反三，合理利用。</p>
<p><strong>三．从编辑角度看SEO</strong></p>
<p><strong>页面标题优化</strong></p>
<p>需要优化网页信息的标题、网站的名称以及相关关键字</p>
<p><strong>Mate</strong><strong>标签优化</strong></p>
<p>由于曾经的黑帽行为和滥用，现在已经不是排名优化的关键因素，但是也不能忽略。主要包括说明（Description）和关键字（Keywords）。关键字的密度要适度，在2%-10%之间。</p>
<p><strong>外部链接</strong></p>
<p>外部链接尽可能多的跟本站主题相关，同时尽量同RP值更高的网站进行相互链接。如果网站的导出链接与主题相关，会被搜索引擎认为有丰富的与主题相关的内容，也有利于排名。尽量避免不顾相关性和质量的大面积链接！</p>
<p><strong>重复内容</strong></p>
<p>原创性是人类对价值理解的一个重要因素。故意采集和剽窃造成的重复内容不在探讨的范围之内。主要避免同一个页面有一个以上的URL，当你发现这个问题，有责任告诉你开发部相关的同事。或者学习使用robots.txt和meate标签排除重复内容。</p>
<p><strong>四．从后台开发角度看SEO</strong></p>
<p><strong>静态页面</strong></p>
<p>对于生成HTML页面或带有服务器端缓存的伪静态如何选择，可以根据不同的应用选择不同的方案。比如说，新闻页面相对适合生成HTML，而功能性强的页面比较适合缓存伪静态。</p>
<p><strong>网站的扁平化规则</strong></p>
<p>目录和内容结构最好不要超过三层，如果有超过三层的，可以采用子域名来调整和简化结构层数。另外文件命名规范最好用英文而不是汉语拼音字母。</p>
<p><strong>SEO</strong><strong>功能（通过后台编辑XHTML</strong><strong>权重标签或属性的值）</strong></p>
<p>在设计后台功能时，预留相应页面内容的SEO数据库字段，能够为编辑人员提供后台编辑权重标签内容的功能。或者可以由SEO专员来设计这些内容的初始值规则。这样可以降低编辑人员的工作量和提高自动化，并同时具有相应的灵活性。在这方面值得一提的是开源程序Wordpress，这是一个高度封装的内容管理系统（通常人们称之为Blog系统），支持插件，可扩展性强。感兴趣的开发者可以对其认真研究一下，学以致用！</p>
<p><strong>站点地图</strong></p>
<p>站点地图分为传统站点地图和搜索引擎站点地图。站点地图为访问站和搜索引擎提供了一种方便的途径，用来从一个站点的位置快速跳转到任何其他页面。它们对访问者来说是很好的导航，对搜索引擎来说也非常有用，原因是它可以帮助蜘蛛更为快速而完全地遍历整个网站。</p>
<p><strong>黑帽SEO</strong></p>
<p>“帽子”术语，是从黑客词典中借过来的。“白帽”搜索引擎营销人员遵守规则，遵循服务条款。他们从来不会盗用别人的成果。“黑帽”范围就要宽得多，不遵循搜索引擎的规则，盗用他人的工作和财产。但在实际工作人员当中，很少有人正好归类于两个“帽子”之一。</p>
<p>了解SEO黑帽</p>
<p>避免HTML插入攻击</p>
<p>正确的转义输入数据</p>
<p>在链接中使用Nofollow属性</p>
<p>避免脚本自动回帖</p>
<p><strong>五．综合看SEO</strong></p>
<p>网站优化、功能开发、用户体验、搜索引擎优化等等，这些都是为了服务于人，Web以人为本。我们不能偏执的说谁好谁不重要。如果网站是一个平台，那么在我看来SEO的本质是一种策略，这需要你对市场和产业的了解。你是编程人员，同时也是搜索引擎营销（SEM）人员。希望SEO在你的项目中不会是马后炮。</p>
<p>慢慢地，大量的IT从业人员由认识到重视搜索引擎优化，就可以看到SEO未来发展促进产出高质量的Web结构化（XML源数据）页面，为未来的云计算、Mashup等创新奠定结构基础。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/agile-development-the-seo.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>使用博客推销自己</title>
		<link>http://www.netconcepts.cn/blog/marketing-yourself.html</link>
		<comments>http://www.netconcepts.cn/blog/marketing-yourself.html#comments</comments>
		<pubDate>Fri, 22 Oct 2010 10:55:13 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网络营销]]></category>
		<category><![CDATA[职业规划]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/?p=4086</guid>
		<description><![CDATA[创建博客是你在网上占有一席之地的最简单且最便宜的方式之一，更重要的是它可以让你同很多人建立起联系。通过博客平台，尽可能多的介绍自己，与其他博客建立链接，与对你感兴趣的人开心真诚的交流。从而表达自己的思想与观点。]]></description>
			<content:encoded><![CDATA[<p>之前写了一篇文章为《做技术如何推销自己》， 今天我想谈谈用博客来推销自己。</p>
<p>首先强调，我想要表达传递的是程序员如何推销自己的价值，并通过一种渠道获得反馈与交流。</p>
<p>当然我希望读者群体并不是单一的程序员，希望是更广泛地。因为这里的博客推销只是一种渠道，在通过迅速发展的互联网上让更多的人知道我们的价值，并希望我们的价值可以给别人带来帮助。</p>
<p>切记：不要为推销而推销，就如同你要区别投资于投机，博客推销在我看来属于前者，同样取决于你个人。这更说明了原创的重要，抄袭和采集最多能让搜索引擎爱上你，而不是人们。</p>
<p>创建博客是你在网上占有一席之地的最简单且最便宜的方式之一，更重要的是它可以让你同很多人建立起联系。通过博客平台，尽可能多的介绍自己，与其他博客建立链接，与对你感兴趣的人开心真诚的交流。从而表达自己的思想与观点。</p>
<p>原创精神的价值，这是一种精神享受，体会到的不比我多说。在工作中，在生活中，如果你有随手记笔记，记心得的习惯，那么恭喜你，这是你原创素材的源泉。与其把它放在电脑硬盘或者犄角旮旯里，倒不如分门别类整理出来，方便自己查找也可以共享与世。岂不两全齐美。</p>
<p>博客中需要更多的链接。互联网的实质其实是无约束的相互访问（链接）。换个角度思考，如果很多网站都有指向你博客的地址（链接），至少说明你的博客关注度很高，要不人家链接你干嘛！链接也分多种，我说的这个链接是（网页A上有一个链接指向网页B，则网页A上的链接是网页B的）反向链接，可以提升你博客流量和知名度。我的个人建议是，不要太在意链接。这个是随着时间的推移而提升的过程，但需要知道一下好在哪里！在这个规则中，简单的说明反向链接与关注度成正比，这可以使你博客中的文章在搜索引擎中得到良好的排名。这样，经常使用搜索引擎的人，也会找到你的博客。很有可能你们就是志同道合者！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/marketing-yourself.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>做技术如何推销自己</title>
		<link>http://www.netconcepts.cn/blog/to-sell-yourself.html</link>
		<comments>http://www.netconcepts.cn/blog/to-sell-yourself.html#comments</comments>
		<pubDate>Wed, 20 Oct 2010 01:22:49 +0000</pubDate>
		<dc:creator>牛佳杰</dc:creator>
				<category><![CDATA[博客]]></category>
		<category><![CDATA[职业规划]]></category>

		<guid isPermaLink="false">http://www.netconcepts.cn/?p=4030</guid>
		<description><![CDATA[现代社会发展日新月异，网络已经深入到我们生活的方方面面。学会恰到好处的推销自己与提升自我职业技能同样重要。销售应该是一个名词，推销应该是销售的一个动作，推销自己更是一种能力。]]></description>
			<content:encoded><![CDATA[<p>“一个厨师不看菜谱，研究起兵法了”看过小品《卖拐》的人对这句话都不陌生，如果一个程序员不看编程看起销售会是啥结果呢？</p>
<p>现代社会发展日新月异，网络已经深入到我们生活的方方面面。学会恰到好处的推销自己与提升自我职业技能同样重要。</p>
<p>销售应该是一个名词，推销应该是销售的一个动作，推销自己更是一种能力。你好，“我叫牛佳杰，杰是杰出的杰。我是中秋佳节那天晚上十点出生的，很高兴认识你！”当你告诉你新结识的朋友，他们会深刻的记得你，当然这只是推销自己简单的第一步。学着推销自己，不要为推销自己而感到羞愧和尴尬。只有学会更好的推销自己的人，才会更容易迈向成功。</p>
<p>做技术如何推销自己呢？</p>
<p><strong>自信</strong><br />
首先自信是建立在信念（相信自己能把事情做成功）之上，实现既定的目标。我觉得信念是重要的，目标是最美的。</p>
<p><strong>展现你的长处</strong><br />
如果你觉得你既没有长处，也没有缺点。那我觉得你需要反思了。最简单的办法，就是问问你身边的好友（也可以是你曾经和现在的恋人），我想他们最有发言权。“我平时哪些方面做得不够好？”坦然面对，你才能成长。</p>
<p><strong>与积极者为伍</strong><br />
你和身边的朋友彼此潜移默化的影响着，技术上的交流与提升，这决定了与什么样的朋友为伍。</p>
<p><strong>创建博客</strong><br />
如果你有记录开发笔记的习惯，那么为何不整理好放在个人博客里，分门归类。方便自己查找的同时给关注这些话题的人做一个参考，供大家讨论。随着你的博客受欢迎程度提高，你也为大家所熟知。</p>
<p><strong>热爱自己的工作和行业<br />
</strong>把自己喜欢的行业放在就业的第一位，学以致用，兴趣可以发挥你极致的潜能，回报只是时间问题。干一行爱一行，不太容易！但做自己喜欢做的事情，你的快乐和激情会带动你身边的人。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netconcepts.cn/blog/to-sell-yourself.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

