<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post/959/</link>
<title><![CDATA[Web网站的性能测试工具]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Thu, 16 Apr 2015 02:07:53 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/959/</guid> 
<description>
<![CDATA[ 
	　　随着Web 2.0技术的迅速发展，许多公司都开发了一些基于Web的网站服务，通常在设计开发Web应用系统的时候很难模拟出大量用户同时访问系统的实际情况，因此，当Web网站遇到访问高峰时，容易发生服务器响应速度变慢甚至服务中断。为了避免这种情况，需要一种能够真实模拟大量用户访问Web应用系统的性能测试工具进行压力测试，来测试静态HTML页面的响应时间，甚至测试动态网页（包括ASP、PHP、JSP等）的响应时间，为服务器的性能优化和调整提供数据依据。<br/><br/>　　我推荐各位Web 2.0开发测试人员使用Microsoft 的Web Application Stress Tool这个工具软件，这个微软提供的小工具仅9.58M，很小巧且实用。虽然功能上比不了专业的LoadRunner，但LoadRunner体积庞大，价格不菲，一般的企业也不会花那么多钱去购买LoadRunner，而微软的WAS则是完全免费，并且主要的功能都有，够用就行。<br/><br/>　　Microsoft Web Application Stress Tool能有效测试一个网站的负载性能，这个软件可以通过脚本模拟100个强并发用户的访问，并模拟实际用户的一些点击操作，WAS还可以连接上远程Windows网站服务器的性能计数器（Performance Counter），通过对服务器性能（CPU/内存等）的性能分析来找到系统的瓶颈。CPU使用百分比反映了处理器开销，CPU使用百分比持续地超过75%是性能瓶颈在于处理器的一个明显的迹象。<br/><br/>　　每次测试运行结束后WAS会生成详细的报表，WAS报表可以从View菜单选择Reports查看。<br/><br/>　　另外，CSDN也总结了一些其他的测试工具，包括性能测试工具和功能测试工具，前十大测试工具排名如下：<br/><br/>　　业级自动化测试工具WinRunner<br/><br/>　　Mercury Interactive公司的WinRunner是一种企业级的功能测试工具，用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作，WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试，提高测试人员的工作效率和质量，确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。<br/><br/>　　工业标准级负载测试工具Loadrunner<br/><br/>　　LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题，LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ，企业能最大限度地缩短测试时间，优化性能和加速应用系统的发布周期。<br/><br/>　　全球测试管理系统testdirector<br/><br/>　　TestDirector 是业界第一个基于Web的测试管理系统，它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分，包括需求管理，测试计划，测试执行以及错误跟踪等功能，TestDirector极大地加速了测试过程。<br/><br/>　　功能测试工具Rational Robot<br/><br/>　　IBM Rational Robot 是业界最顶尖的功能测试工具，它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面 IBM Rational TestManager 上，在这里测试人员可以计划、组织、执行、管理和报告所有测试活动，包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。<br/><br/>　　单元测试工具xUnit系列<br/><br/>　　目前的最流行的单元测试工具是xUnit系列框架，常用的根据语言不同分为JUnit（java），CppUnit（C++），DUnit （Delphi ），NUnit（.net），PhpUnit（Php ）等等。该测试框架的第一个和最杰出的应用就是由Erich Gamma （《设计模式》的作者）和Kent Beck（XP（Extreme Programming）的创始人 ）提供的开放源代码的JUnit.<br/><br/>　　功能测试工具SilkTest<br/><br/>　　Borland SilkTest 2006属于软件功能测试工具，是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试，无论是程序设计新手或资深的专家都能快速建立功能测试，并分析功能错误。<br/><br/>　　性能测试工具WAS<br/><br/>　　Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发，专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具，您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。<br/><br/>　　自动化白盒测试工具Jtest<br/><br/>　　Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具，它通过自动实现java的单元测试和代码标准校验，来提高代码的可靠性。parasoft同时出品的还有C++ test，是一款C/C++白盒测试工具。<br/><br/>　　功能和性能测试的工具JMeter<br/><br/>　　JMeter是Apache组织的开放源代码项目，它是功能和性能测试的工具，100%的用java实现。<br/><br/>　　性能测试和分析工具WEBLODE<br/><br/>　　webload是RadView公司推出的一个性能测试和分析工具，它让web应用程序开发者自动执行压力测试；webload通过模拟真实用户的操作，生成压力负载来测试web的性能。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selenium是ThoughtWorks公司开发的web自动化测试工具，Selenium测试直接运行在浏览器中，就像真正的用户在操作一样。主要功能包括：测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/860/</link>
<title><![CDATA[31个用来测试你网站各项性能的免费在线工具]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Fri, 17 Jun 2011 16:03:49 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/860/</guid> 
<description>
<![CDATA[ 
	<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;你是否肯定你的网站完全兼容各大浏览器？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否知道多少秒可以打开你的网站？<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是否可以自信地说你的网站根本就没有打不开的时候？ 是否&hellip;&hellip;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;虽然它看似不重要，但这些在一定程度上也对你的网站的访问量产生了影响 （ <a href="http://zsk.akaka.com.cn/2007/06/25-way-to-improve-web/"><span style="color: #3f68a6">其它一部分影响浏览量的原因及解决办法</span></a> ）。这里列出了一份 <a href="http://zsk.akaka.com.cn/2007/06/31-free-tests-online/"><span style="color: #3f68a6">31 个我最喜爱的免费在线测试工具</span></a>，你可以通过这些工具来测试你的网站，并根据结果对你的网站进行修改。<br /><strong><br /><span style="color: #ff0000">网站代码验证</span></strong> 没人可以细致到保证自己的网站代码都是正确的，你可以通过以下测试来验证网站代码是否正确。</p><p></p><p><strong>1 . <a href="http://www.htmlhelp.com/tools/validator/"><span style="color: #3f68a6">WDG HTML Validator</span></a></strong> 一个很好的工具，能找出网站语法错误的地方，并标注出来，也可选择对网站上单独的每一页进行单页分析。（ <strong>强烈推荐</strong> ）</p><p><strong>2 . <a href="http://validator.w3.org/"><span style="color: #3f68a6">W3C Markup Validation Service</span></a></strong> 对 HTML 和 XHTML 都能进行代码测试，自称是互联网络上第一个（也是使用者最多的）的 HTML 验证工具。</p><p><strong>3 . <a href="http://jigsaw.w3.org/css-validator/"><span style="color: #3f68a6">W3C CSS Validation Service</span></a></strong> 用于验证 css 源代码，能够标注出不好的 css 代码设计。例如：&ldquo;Same colors for color and background-color in two contexts&rdquo;。</p><p><strong>4 . <a href="http://www.xml.com/pub/a/tools/ruwf/check.html"><span style="color: #3f68a6">RUWF XML Syntax Checker</span></a></strong> 用于查找 XML 文件的错误。</p><p><strong>5 . <a href="http://validator.w3.org/feed/"><span style="color: #3f68a6">W3C Feed Validation Service</span></a></strong> 用于查找 Atom 和 RSS feed 中的错误语法。（ <strong>这个我经常用到</strong> ）</p><p><strong>6 . <a href="http://validator.w3.org/checklink"><span style="color: #3f68a6">W3C Link Checker</span></a></strong> 用于搜寻查明你网站内的所有链接里是否有断链。（ <strong>强烈推荐</strong> ）</p><p><strong>7 . <a href="http://juicystudio.com/services/linktest.php"><span style="color: #3f68a6">Juicy Studio Link Analyser</span></a></strong> 测试网站内的链接的 URL 是否存在死链，与 W3C Link Checker 很类似。<br /><strong><br /><span style="color: #ff0000">网站的使用性</span></strong></p><p>我们常常看到网站设计者把重点放在怎网站的吸引力上，而完全不考虑会不会影响来访者的使用，一个浏览难度很大的网页是注定要失败，要让你的来访者方便的得到他要的信息（从而成为重复访客），你的网站应当遵循 WCAG section 508 易用性规则。</p><p><strong>8 . <a href="http://webxact.watchfire.com/"><span style="color: #3f68a6">Watchfire WebXACT</span></a></strong> 所有严谨的设计师和开发者都必须使用的工具，它会生成一个非常详尽的报告书，包括：网站质量，易用性和隐私等。（<strong> 强烈推荐</strong> ）</p><p><strong>9 . <a href="http://checker.atrc.utoronto.ca/index.html"><span style="color: #3f68a6">ATRC Web Accessibility Checker</span></a></strong> 测试网站的 WCAG 2.0 Level2 兼容性，它会生成一份报告，提出一系列建议，如：如何提升页头，链接，数据，图表和文字的访问速度。</p><p><strong>10 . <a href="http://www.wave.webaim.org/wave/index.jsp"><span style="color: #3f68a6">WAVE 3.0 Web Accessibility Tool</span></a></strong> 高度可定制的工具，它采用了图形化模型展示网站兼容性问题（ WCAG 1.0 and section 508 ）。（ <strong>强烈推荐</strong> ）</p><p><strong>11 . <a href="http://www.tawdis.net/taw3/cms/en"><span style="color: #3f68a6">TAW Web Accessibility Test</span></a></strong> 测试网页是否存在冲突（ WCAG 1.0 兼容性 ），通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。</p><p><strong>12 . <a href="http://www.cynthiasays.com/"><span style="color: #3f68a6">HiSoftware CynthiaSays portal</span></a></strong> 采用了非常严格的规则来测试网页（ 根据 section 508 和 WCAG 1.0 规则 ），生成的报告也极为详细（ 详细到很难看懂 ）。</p><p><strong>13 . <a href="http://www.sidar.org/hera/index.php.en"><span style="color: #3f68a6">HERA Accessibility testing with Style</span></a></strong> 使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。</p><p><strong>14 . <a href="http://juicystudio.com/services/csstest.php"><span style="color: #3f68a6">Juicy Studio CSS Analyser</span></a></strong> 进行了色彩对比测试，以确保你的网站的色调会符合 WCAG 1.0 的要求。</p><p><strong>15 . <a href="http://juicystudio.com/services/readability.php"><span style="color: #3f68a6">Juiciy Studio Readability Test</span></a></strong> 分析你网站上的文字是否有语法错误或拼写错误等问题，容易让人理解不（ 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则 ）。（ 适合英文网站使用 ）<br /><strong><br /><span style="color: #ff0000">网站的速度</span></strong></p><p>打开你的网站的速度快慢，是来访者会不会再次访问网站的关键因素，在一般情况下，一个网络不是很快的来访者是不愿意访问一个充满着图片、flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化，你必须优化你的网站，使它的打开速度尽可能的快。</p><p><strong>16 . <a href="http://www.websiteoptimization.com/services/analyze/"><span style="color: #3f68a6">Web Page Analyzer from Website Optimization</span></a></strong> 一个很好的工具，它在分析完一个网页后，会为减少加载时间提出优化建议，着重优化物体的数目，图片和网站的总体大小。（ <strong>强烈推荐</strong> ）</p><p><strong>17 . <a href="http://www.websitepulse.com/help/tools.php"><span style="color: #3f68a6">WebSitePulse Test Tools</span></a></strong> 有一系列的工具来确定网站的加载速度和主机信息。</p><p><strong>18 . <a href="http://internetsupervision.com/scripts/urlcheck/check.aspx"><span style="color: #3f68a6">Internet Supervision Url Check</span></a></strong> 从世界各地不同的服务器来测试你的网站的加载时间，用于确定是不是各地的来访者都能顺利快速的打开你得网站。<br /><strong><br /><span style="color: #ff0000">浏览器模拟工具</span></strong></p><p>这是一个普遍的问题，因为现在有着很多的操作系统和浏览器，你得网站必须得兼容它们，但这绝不是一件容易的事。通过下列工具，你可以了解你得网站在各种浏览器上的显示效果。</p><p><strong>19 . <a href="http://browsershots.org/"><span style="color: #3f68a6">Browsershots</span></a></strong> 能给出你的网站在不同浏览器下显示效果的截图，包括：Firefox 和 Internet Explorer （ Windows ）、Firefox 和 Safari （ Mac OS X ）、Iceweasal 和 Konqueror （ Linux ），但是结果要在 1 - 3 小时后才能出来。</p><p><strong>20 . <a href="http://ipinfo.info/netrenderer/"><span style="color: #3f68a6">IE NetRenderer</span></a></strong> 实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。</p><p><strong>21 . <a href="http://ready.mobi/launch.jsp?locale=en_EN"><span style="color: #3f68a6">MobiReady Report</span></a></strong> 分析使用手机访问网页的兼容性问题，会生成一份详细的报告，并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。<br /><strong><br /><span style="color: #ff0000">搜索引擎优化 (SEO)</span> </strong></p><p>一个网站，如果对搜索引擎有着比较好的友好度，一定会比较有竞争力。</p><p><strong>22 . <a href="http://www.urltrends.com/"><span style="color: #3f68a6">UrlTrends</span></a></strong> 会显示网站的访客是如何通过搜索引擎来到你的网站，还有各个流量是多少。这些数据是包括 Google, Yahoo, MSN, Alexa, AlltheWeb, AltaVista 和其他一些网站。（ <strong>强烈推荐</strong> ）</p><p><strong>23 . <a href="http://www.iwebtool.com/backlink_checker"><span style="color: #3f68a6">iWEBTOOL Backlink Checker</span></a></strong> 一个很好的工具，它能找出有什么站点链接到你的站点，那些站点是什么类型的站点。</p><p><strong>24 . <a href="http://www.iwebtool.com/multirank"><span style="color: #3f68a6">iWEBTOOL Multi-Rank Checker</span></a></strong> 显示你网站的 Alexa 和 Google PageRank 数值。</p><p><strong>25 . <a href="http://adlab.microsoft.com/default.aspx"><span style="color: #3f68a6">Microsoft adCenter Labs: Advertising and Keyword Research Tools</span></a></strong> 一个极好的工具，用于分析和预测你网站的来访者和市场。（ <strong>强烈推荐</strong> ）</p><p><strong>26 . <a href="http://whois.domaintools.com/"><span style="color: #3f68a6">Domain Tools Whois lookup</span></a></strong> 一个 WHOIS 网络工具。</p><p><strong>27 . <a href="http://www.seo-browser.com/"><span style="color: #3f68a6">SEO-Browser</span></a></strong> 可以让你看到在搜索引擎眼里一样的网站（ 去掉所有的&rdquo;美丽&rdquo;配件 ）。</p><p><strong>28 . <a href="http://www.seoworkers.com/tool/analyzer.html"><span style="color: #3f68a6">SEO Workers SEO Analysis Tool</span></a></strong> 非常有用的工具，分析了网站上的各种分类特征，包括 meta 标签、关键字密度及加载时间。（ <strong>强烈推荐</strong> ）</p><p><strong>29 . <a href="http://www.seekport.co.uk/seekbot/"><span style="color: #3f68a6">Seekport Seekbot</span></a></strong> 可以分析网站的数据和内容，以得出搜索引擎会如何有效的解释分析的网站。</p><p><strong>30 . <a href="http://www.seochat.com/seo-tools/"><span style="color: #3f68a6">SEO Chat SEO Tools</span></a></strong> 用以分析网站 Google adsense 盈利潜力，关键字密度，Meta tag 等等&hellip;&hellip;</p><p><strong>31 . <a href="http://www.marketleap.com/publinkpop/"><span style="color: #3f68a6">Marketleap Search Engine Marketing Tools</span></a></strong> 用来分析网页，让你知道你的网站检索、设定的关键字好不好。</p>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/851/</link>
<title><![CDATA[成就PHP高手的五个必由之路]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Mon, 23 May 2011 12:21:03 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/851/</guid> 
<description>
<![CDATA[ 
	经常有一些经验不足的PHP开发人员在Freenode的##php IRC频道上问问题。如果问题很琐碎，或者答案显而易见，或表现得象一个菜鸟，很快他们就会发现会受到如下一些回复的炮轰：“去读该死的手册去吧”，“好 好去学一学PHP吧”，“我们不是你个人的导师”或更直接的“你需要成为一个更好的PHP开发者”。但是，怎样才能成为一个更优秀的PHP开发者呢？在这 篇文章中，我列出了五种成为更优秀的PHP开发者的方法，让你在PHP开发过程中提高效率，用更少的代码来完成更多的事情。在PHP的开发过程中永远会有 更多的内容需要去学习,如新的核心函数，新的框架，新的设计模式，新的编码或文档规范等等。下面就是一些成为更优秀的PHP开发者的最佳途径。<br/> <br/>1.阅读手册<br/> <br/>没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西。特别是有关字符串和数组有关的函数。就在这些函数里面包括许多有用的 功能，如果你仔细阅读手册，你会经常发现在以往的项目开发过程中，很多时候你在“重复发明轮子”，而实际上你只需要一个核心函数就可以完成相应的功能。手 册是你的朋友。<br/> <br/>2.阅读程序源代码<br/> <br/>有很多使用PHP开发的开源程序。为什么不去学习和借鉴呢？下载一份开源的PHP应用程序的源代码，仔细阅读它吧。也许越大的项目越值得去阅读，虽 然它们也许有更复杂的结构和系统，但也有更详细的解释文档。<br/> <br/>3.学习一种框架<br/> <br/>现在的框架如雨后春笋般纷纷出笼;它们中的大部分都是开源的，可以直接从网上下载，当然你要知道从哪里去下载。可以先选择一些主流的框架 — 网站http://www.phpframeworks.com里有 一个非常好的主流框架的列表。<br/> <br/>4.研究<br/> <br/>在PHP网站开发过程和讨论中你可能听说过很多术语。从OOP到MVC,KISS到DRY,YAML到INI,甚至REST到XML-RPC，也许 有数百个与你的工作直接相关的技术概念。你也许对它们有了一个基本的了解，但你真的了解它们到底是什么，对你有什么意义吗？花一点时间去做些实实在在的研 究吧。Wikipedia是从事这些研究的很好的起点。你一定会从中学到一些新知识的。<br/> <br/>5.学习面向对象程序设计<br/> <br/>这也许是上一个方法的继续，但是OOP比你想象的更重要。你真的了解PHP5中OOP是如何实现的吗？例如，你真的了解抽象类，接 口，“implements”关键字，静态方法和静态属性，访问修饰符“protected”吗？甚至许多有经验的开发人员都倒在这些问题的面前。如果你 能充分利用OOP的特征，你就可以节省很多的开发时间。<br/> <br/>就是这些。要想成为PHP高手，这是五个最直接而又重要的的方法。<br/>Tags - <a href="http://www.zhanghaijun.com/tags/php/" rel="tag">php</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/850/</link>
<title><![CDATA[PHP入门指导：如何学习PHP？]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Mon, 23 May 2011 12:19:38 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/850/</guid> 
<description>
<![CDATA[ 
	每个人的学习方式不同，写这篇文章的目的是分享一下自己的学习过程，仅供参考，不要一味的用别人的学习方法，找对自己有用的学习方式<br/> <br/>经常在某些论坛和QQ群里看到一些朋友会问“怎样才能学好PHP，怎样才能学好***语言 ”，但别人回答最多的是：从最“简单”的开始。<br/> <br/>这个简单也许真的不简单，呵呵。下面我想分享一下自己学习的一些过程。先说些费话，语言组织能力差，说了不少费话，愿意看的就看，不要骂我就行。<br/> <br/>其实学习一门新语言并不是太难，重要的是你有没有准备好去学好它，时间的长短和个人的能力和决心有关。黑客界也流行一句话就是“没有入侵不了的计算 机”，这句话大概的意思是说：如果你的技术比维护这台计算机的管理员更胜一筹，那么就能拿下这台计算机甚至能拿下这个管理员管理的所有计算机，如果技不如 人，只能继续学习超过对方。我说这些话的意思就是让准备学习陌生语言朋友一定要下决心去学习，只要你下了决心去学了，就一定能学好，千万不要半途而 废。（退一万步来说，即使是没学好，但你懂的必然比别人多）<br/> <br/>了解什么是最简单:<br/> <br/>1、网页的基本构成就是html代码,所以必须熟悉HTML/CSS/JS等基本元素<br/> <br/>2、熟悉PHP语法，了解PHP和HTML的运行方式，学习将PHP与HTML结合完成简单页面<br/> <br/>PHP手册是比较好的入门老师<br/> <br/>影响学习进度和程序强大是否的几个可能因素：<br/> <br/>1、记忆力<br/> <br/>一门语言的强大是否，应该看它的函数库和代码执行效率。每门语言都是有自己强大的函数库，要学好它，就必须得花很多的时间去记忆，良好的记忆力能使 学习达到事半功倍的效果。<br/> <br/>2、数学和逻辑思维<br/> <br/>这个当然不是绝对影响，因为看开发项目的复杂程度。小的项目不需要太多的数学和逻辑思维能力，但如果是开发类似于财务或大量运算相关项目，这一点就 是非常重要了。<br/> <br/>3、有其它语言的基础<br/> <br/>“一通百通”，这句话的道理也是不容置疑。都说有C语言基础的人，学习PHP比较容易，我没学过C语言，所以不知道这句话的效果<br/> <br/>4、多看别人写的代码<br/> <br/>学习别人的长处，补自己的不足，当然不完全为这个我始终相信：一个有组织的团队写出来的程序不会比个人差我PHP入门就是从看代码开始的，我喜欢看 别人写的代码 。(入门是从disucz,PHPWind和国外的phpbb看起，还有就是目前最流行的开源BLOG程序)，我尽可能的收集网络上的 PHP开源程序，到目前为止，我收集并下载的PHP开源程序有2GB大小,包括BBS，BLOG，CMS等。我下载并不是为了收藏他们，是学习他们的编程 方式和实现方法,如果自己想实现的功能不知道怎么去实现，我就会学习他们的实现方法，并不是抄袭代码，最终结果是想通过学习，将技术变成属于自己的ASP 我也是以同样的方式学习的(动易和讯的程序及其它ASP开源程序)<br/> <br/>5、实践<br/> <br/>理论固然重要，但实践必不可少。你理论知识再好，如果不实践，就不能看到理论所产生的结果或效果，并不能使你的记忆深刻，所以不能纸上谈兵<br/> <br/>6、恒心<br/> <br/>广告不是有句话是这样说的么：“世界上最高的山是自己”，这句话相信朋友们都能理解<br/> 过自己这关，其它的都好办<br/> <br/>7、找对自己有用的学习方式<br/> <br/>这条可以参照4，我的入门是从看代码开始可能有朋友会问：“一开始看那些强大的代码，你能看懂么？”我的学习方式是从“使用”找“学函数”：PHP 的函数太多，短时间不可能记住所有的函数，因为我相信，一个大的项目肯定会使用常见和必须的函数，找到这些函数，才会有重点的学习这些函数，难道你能说写 BBS的函数会写BLOG用的函数少么？难道会写BBS还不会写BLOG么？找对学习方式是要经过多种学习方式的尝试，所以这个只有自己把握，毕竟每个人 的学习方式不一样<br/> <br/>8、尽可能的找视屏教程看<br/> <br/>别人说十句，还不如一个操作看的明白，这个相信朋友们都有体会吧<br/> <br/>9、从项目开始<br/> <br/>一定要”逼”自己从写项目开始。任何一个高手的“成长”都是要经历一个过程，这个过程是一步步走过来的，来之不易很多朋友学习PHP的第一个作品几 乎都是“留言簿”，因为是最简单的程序了会写留言簿，也并不能完全代表你已经入门了，也并不代表就会了PHP，我自己开始想以一个“网络书签”作为自己的 第一个作品，但写了基本功能后就没继续了，感觉没多大意思。现在写一个完全正确针对企业的CMS系统，包括针对企业的一些常用功能，我想以这个作为自己 PHP入门的第一个作品<br/> <br/>10、了解并学习和PHP有关的技术<br/> <br/>真正的高手必须得学习和PHP关联的技术，要想学好PHP，就必须得学习数据库，PHP+MYSQL被认为是“黄金搭档”所以你必须得接触 MYSQL或你认为比较好的数据库，开始设计比较”合理”的数据库，这里的合理就比较广泛了，包括数据库优化和查询优化等等<br/> <br/>最后想说的是：“不要依靠别人”没人愿意理会一个新手的提问，因为新手提问的在他们眼里太简单，不想去解释女性朋友很流行一句话是“男人靠的住，母 猪会上树” 引用这句话没别的意思，只是让朋友们知道这句话的意思<br/> <br/>还想说的是：“珍惜别人回答的次数”人的忍耐都是有限度的，一定要珍惜这个限度，不要什么问题都去问，有些问题自己花点时间能找到答案的也去问，每 问一次，别人的耐心就减去一次，等你真正需要帮助的时候，正好是别人不愿意回答你的时候，可以想像一下，你失去的太多了<br/> <br/>建议的是：“有问题？baidu一下”相信朋友们都已经注意到了，你问的问题，在搜索引擎里都能找到相关的提问，并且有详细的解决方案，你可以使用 搜索引擎来找到自己的答案，何必去问别人呢<br/> <br/>目前最大的中文搜索引擎是 baidu.com ,全球的google,当然还有其它的搜索引擎，一个找不到，多试几个，除非你的问题是第一个提问的 ，那么你是幸运的，也可能是你“长相”问题，呵呵，说笑的，不要介意，不过这句话倒是挺流行<br/> <br/>祝正准备入门的PHP的朋友能找到适合自己的学习方式，早日成功！！！<br/>Tags - <a href="http://www.zhanghaijun.com/tags/php%25E5%2585%25A5%25E9%2597%25A8/" rel="tag">php入门</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/849/</link>
<title><![CDATA[PHP面向对象分析设计的61条军规]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Mon, 23 May 2011 12:18:11 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/849/</guid> 
<description>
<![CDATA[ 
	你不必严格遵守这些原则，违背它们也不会被处以宗教刑罚。但你应当把这些原 则看成警铃，若违背了其中的一条，那么警铃就会响起 。&nbsp;&nbsp;&nbsp;&nbsp; —– Arthur J.Riel <br/>(1)所有数据都应该隐藏在所在的类的内部。<br/> <br/>(2)类的使用者必须依赖类的共有接口，但类不能依赖它的使用者。<br/> <br/>(3)尽量减少类的协议中的消息。<br/> <br/>(4)实现所有类都理解的最基本公有接口[例如，拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。<br/> <br/>(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。<br/> <br/>如果类的两个方法有一段公共代码，那么就可以创建一个防止这些公共代码的私有函数。<br/> <br/>(6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。<br/> <br/>(7)类之间应该零耦合，或者只有导出耦合关系。也即，一个类要么同另一个类毫无关系，要么只使用另一个类的公有接口中的操作。<br/> <br/>(8)类应该只表示一个关键抽象。<br/> <br/>包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响，则将对包中的所有类产生影响，而对其他的包不造成任何影响 .<br/> <br/>(9)把相关的数据和行为集中放置。<br/> <br/>设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。<br/> <br/>(10)把不相关的信息放在另一个类中(也即：互不沟通的行为)。<br/> <br/>朝着稳定的方向进行依赖.<br/> <br/>(11)确保你为之建模的抽象概念是类，而不只是对象扮演的角色。<br/> <br/>(12)在水平方向上尽可能统一地分布系统功能，也即：按照设计，顶层类应当统一地共享工作。<br/> <br/>(13)在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。<br/> <br/>规划一个接口而不是实现一个接口。<br/> <br/>(14)对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。<br/> <br/>(15)对包含太多互不沟通的行为的类多加小心。<br/> <br/>这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。<br/> <br/>(16)在由同用户界面交互的面向对象模型构成的应用程序中，模型不应该依赖于界面，界面则应当依赖于模型。<br/> <br/>(17)尽可能地按照现实世界建模(我们常常为了遵守系统功能分布原则、避免全能类原则以及集中放置相关数据和行为的原则而违背这条原则) 。<br/> <br/>(18)从你的设计中去除不需要的类。<br/> <br/>一般来说，我们会把这个类降级成一个属性。<br/> <br/>(19)去除系统外的类。<br/> <br/>系统外的类的特点是，抽象地看它们只往系统领域发送消息但并不接受系统领域内其他类发出的消息。<br/> <br/>(20)不要把操作变成类。质疑任何名字是动词或者派生自动词的类，特别是只有一个有意义行为的类。考虑一下那个有意义的行为是否应当迁移到已经存 在或者尚未发现的某个类中。<br/> <br/>(21)我们在创建应用程序的分析模型时常常引入代理类。在设计阶段，我们常会发现很多代理没有用的，应当去除。<br/> <br/>(22)尽量减少类的协作者的数量。<br/> <br/>一个类用到的其他类的数目应当尽量少。<br/> <br/>(23)尽量减少类和协作者之间传递的消息的数量。<br/> <br/>(24)尽量减少类和协作者之间的协作量，也即：减少类和协作者之间传递的不同消息的数量。<br/> <br/>(25)尽量减少类的扇出，也即：减少类定义的消息数和发送的消息数的乘积。<br/> <br/>(26)如果类包含另一个类的对象，那么包含类应当给被包含的对象发送消息。也即：包含关系总是意味着使用关系。<br/> <br/>(27)类中定义的大多数方法都应当在大多数时间里使用大多数数据成员。<br/> <br/>(28)类包含的对象数目不应当超过开发者短期记忆的容量。这个数目常常是6。<br/> <br/>当类包含多于6个数据成员时，可以把逻辑相关的数据成员划分为一组，然后用一个新的包含类去包含这一组成员。<br/> <br/>(29)让系统功能在窄而深的继承体系中垂直分布。<br/> <br/>(30)在实现语义约束时，最好根据类定义来实现。这常常会导致类泛滥成灾，在这种情况下，约束应当在类的行为中实现，通常是在构造函数中实现，但 不是必须如此。<br/> <br/>(31)在类的构造函数中实现语义约束时，把约束测试放在构造函数领域所允许的尽量深的包含层次中。<br/> <br/>(32)约束所依赖的语义信息如果经常改变，那么最好放在一个集中式的第3方对象中。<br/> <br/>(33)约束所依赖的语义信息如果很少改变，那么最好分布在约束所涉及的各个类中。<br/> <br/>(34)类必须知道它包含什么，但是不能知道谁包含它。<br/> <br/>(35)共享字面范围(也就是被同一个类所包含)的对象相互之间不应当有使用关系。<br/> <br/>(36)继承只应被用来为特化层次结构建模。<br/> <br/>(37)派生类必须知道基类，基类不应该知道关于它们的派生类的任何信息。<br/> <br/>(38)基类中的所有数据都应当是私有的，不要使用保护数据。<br/> <br/>类的设计者永远都不应该把类的使用者不需要的东西放在公有接口中。<br/> <br/>(39)在理论上，继承层次体系应当深一点，越深越好。<br/> <br/>(40)在实践中，继承层次体系的深度不应当超出一个普通人的短期记忆能力。一个广为接受的深度值是6。<br/> <br/>(41)所有的抽象类都应当是基类。<br/> <br/>(42)所有的基类都应当是抽象类。<br/> <br/>(43)把数据、行为和/或接口的共性尽可能地放到继承层次体系的高端。<br/> <br/>(44)如果两个或更多个类共享公共数据(但没有公共行为)，那么应当把公共数据放在一个类中，每个共享这个数据的类都包含这个类。<br/> <br/>(45)如果两个或更多个类有共同的数据和行为(就是方法)，那么这些类的每一个都应当从一个表示了这些数据和方法的公共基类继承。<br/> <br/>(46)如果两个或更多个类共享公共接口(指的是消息，而不是方法)，那么只有他们需要被多态地使用时，他们才应当从一个公共基类继承。<br/> <br/>(47)对对象类型的显示的分情况分析一般是错误的。在大多数这样的情况下，设计者应当使用多态。<br/> <br/>(48)对属性值的显示的分情况分析常常是错误的。类应当解耦合成一个继承层次结构，每个属性值都被变换成一个派生类。<br/> <br/>(49)不要通过继承关系来为类的动态语义建模。试图用静态语义关系来为动态语义建模会导致在运行时切换类型。<br/> <br/>(50)不要把类的对象变成派生类。对任何只有一个实例的派生类都要多加小心。<br/> <br/>(51)如果你觉得需要在运行时刻创建新的类，那么退后一步以认清你要创建的是对象。现在，把这些对象概括成一个类。<br/> <br/>(52)在派生类中用空方法(也就是什么也不做的方法)来覆写基类中的方法应当是非法的。<br/> <br/>(53)不要把可选包含同对继承的需要相混淆。把可选包含建模成继承会带来泛滥成灾的类。<br/> <br/>(54)在创建继承层次时，试着创建可复用的框架，而不是可复用的组件。<br/> <br/>(55)如果你在设计中使用了多重继承，先假设你犯了错误。如果没犯错误，你需要设法证明。<br/> <br/>(56)只要在面向对象设计中用到了继承，问自己两个问题：(1)派生类是否是它继承的那个东西的一个特殊类型？(2)基类是不是派生类的一部分？<br/> <br/>(57)如果你在一个面向对象设计中发现了多重继承关系，确保没有哪个基类实际上是另一个基类的派生类。<br/> <br/>(58)在面向对象设计中如果你需要在包含关系和关联关系间作出选择，请选择包含关系。<br/> <br/>(59)不要把全局数据或全局函数用于类的对象的薄记工作。应当使用类变量或类方法。<br/> <br/>(60)面向对象设计者不应当让物理设计准则来破坏他们的逻辑设计。但是，在对逻辑设计作出决策的过程中我们经常用到物理设计准则。<br/> <br/>(61)不要绕开公共接口去修改对象的状态。<br/>Tags - <a href="http://www.zhanghaijun.com/tags/php/" rel="tag">php</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/848/</link>
<title><![CDATA[PHP开发人员应熟悉的五个概念]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Mon, 23 May 2011 12:16:47 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/848/</guid> 
<description>
<![CDATA[ 
	语法结构教科书上的知识和实际的程序设计是有区别的，真正的知识要在实际的开发中获得。每个php的开发人员在开始开发web应用程序之前，都应该 熟悉下面的五件事：<br/> <br/>1. 框架<br/> <br/>框架可以说是php开发中的一个最重要的问题。 用php开发web应用程序时有很多方法，有很多开源的框架可以使用，可以帮助快速的开发，保持更高的一致性和有效性。 其中比较好的框架包括cakephp ，Symfony和CodeIgniter 。很多框架还按照MVC设计模式 ，如果你在这个模式下工作过，那你一定会很熟悉。过一段时间，你甚至可以根据自己的需要来创建框架。<br/> <br/>2. 模板引擎<br/> <br/>如果您使用的不是一个框架来执行一个具体的设计模式，那么您想要使用的是模板引擎。不论你是自己创建或是使用现有的模板(如 Smarty)，模板引擎都会使你的逻辑代码从HTML页面中独立出来(以及相关的CSS / js /等)。 这大大的简化了你的代码，使整个程序的修改变得快速简单，也使非开发者更容易修改你的程序。<br/> <br/>3. 代码重用<br/> <br/>正如我先前提过的，php是所用语言中代码重用性最好的。从多中小的文档到整个数据库类，php开发者需要的时候可以随意的选择重用现有的代码。其 实，你几乎可以不用编写一行代码就能建立起整个应用程序。<br/> <br/>4. 不重新开发现有的东西<br/> <br/>很明显的一件事，只有少数的php开发者知道php本身有很多可用之处。忘记新的图书馆，或复杂的代码例程-先看看PHP手册。 例如，你们有没有听过number_format(), parse_url(), wordwrap()或bbcode_parse()?看一下整个函数参考 ，选择一个类别，浏览一下，您一定会有所发现。<br/> <br/>5. IRC 是令人愉快的事<br/> <br/>当你有个复杂的问题不能解决的时候，可以到IRC上。php非官方的支持频道，很多经验丰富的开发者陶醉其中。你需要一个IRC客户端，如果你用的 Firefox，ChatZilla是一个很好的插件，当你需要帮助时，以irc://irc.freenode.net/php做为头部粘贴你的代码。 张贴您的问题，并耐心等待;某种热心人(或多个)会给你答案。当你得到答案后，考虑一下其他需要帮助人的问题。对于php庞大的函数库来说，没有人是泰 斗;在IRC上，汇集所有人的知识就可以解决任何问题。<br/>Tags - <a href="http://www.zhanghaijun.com/tags/php/" rel="tag">php</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/847/</link>
<title><![CDATA[2010年Web开发领域五项新技术和趋势谈]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Mon, 23 May 2011 12:14:55 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/847/</guid> 
<description>
<![CDATA[ 
	对于WEB开发，很多人想到的是HTML或者CSS+DIV等技术。看来在2010年的WEB开发方面，还是这些技术占据重要位置。<br/> <br/>2009即将结束，2010年的Web会是什么样，或者说，未来的Internet意味着什么，2010会是值得关注的一年。本文从5个方面展望 2010年的Web，包括HTML5，CSS3， 字体服务技术；浏览器；社会媒体；JavaScript框架；以及SAAS。<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=70" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=70" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>1.CSS3,HTML5以及字体服务<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=71" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=71" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>CSS3，HTML5，以及Typekit一类的字体服务，将给Web设计师带来更多自由。<br/> <br/>CSS3的新功能会让Web内容的展示变得更容易，从多背景图，到更强大的选择器，到颜色渐变，到圆角，这一切都让原先复杂的工作变得简单。<br/> <br/>HTML5虽然进展缓慢，但必将改变我们描述页面的方式，成为通往语义Web的重要阶梯，为Web带来真正的本地多媒体支持，并改善我们同Web内 容的沟通。<br/> <br/>而Typekit一类的字体服务联同@font-face，将允许我们在Web页面上使用任何字体，设计师们不必再依赖CSS背景 图，JavaScript或Flash。<br/> <br/>这意味着什么？<br/> <br/>这些新技术将为Web世界带来新的美学体验，当然，也会引发新的滥用潮，那些蒙古大夫式的设计师将会大量使用各种花里胡哨的字体和渐变色，使他们的 页面变得难以访问，对专业的设计师而言，这些新功能会让他们的创意更吸引人。<br/> <br/>2.Web的消费方式<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=72" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=72" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>浏览器领域重新繁荣，诸如GoogleChrome,Firefox,Safari,Opera一类的浏览器大行其道，用户如今拥有更广泛的选择， 厂商之间的竞争更加激烈。浏览器之战进入新的阶段，和过去不同，过去的浏览器之争是微软主导并最终将对手消灭，新的浏览器之争使IE身涉危境。<br/> <br/>人们消费Web的方式也在改变，上网不再意味着坐在电脑桌前打开电脑，智能手机越来越普遍，电视可以上网，SP3之类的游戏机，上网 本，iPhone，Android设备都可以在一个相对小的屏幕上给用户带来上网体验。<br/> <br/>浏览器本身也在改变，Google Chrome将WebKit引擎，将大部分CSS3和HTML5功能从苹果迁移到Windows，Google在未来几年的目标是争取到10%的市场份 额，这将撼动IE的统治地位，在德国，Mozilla Firefox已经在超过IE成为主导浏览器。<br/> <br/>这些因素也将改变我们对Web设计以及可访问性的看法，你的站点是否有一个移动版本？它们在小屏幕上看上去如何？在一个很大的屏幕上看上去又如何？ 在Weibit引擎，或是Gecko引擎，或是Trident引擎上看上去是否一致？<br/> <br/>人们对在不同设备上访问Web的观念也在改变，设计师们逐渐意识到，没必要在各种不同设备上输出相同的页面，也无需为不同的设备提供相同的用户体 验。<br/> <br/>这意味着什么？<br/> <br/>人们将发现Web在不同的浏览器上有不同的样子，诸如渐进式增强的Web技术越来越普遍，为不同Web用户提供不同的体验。同时，放弃对陈旧浏览器 的支持也逐渐为人接受，让用户将压力推向浏览器厂商而不是设计师。另外，人们会将注意力转向内容，功能，可访问性，并注重设计和创意。<br/> <br/>3.社会媒体<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=73" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=73" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>没有人会否认，2009年是社会媒体极其重要的一年，比如，Twitter已经成为热门话题，它还会继续热门。诸如 Twitter，Facebook一类的平台的发展使Web逐渐成为社区导向的Web，毫无疑问，社会媒体会有大的变革且会实现盈利。<br/> <br/>围绕着社会媒体的一个问题是，如何衡量它的价值并获得这份价值。1000个Twitter跟随者价值几何？他们是否将为此收费？在2010年，对这 类问题的解答将导致社会媒体的大变革。<br/> <br/>伴随着这些变革，信息的实时获取将成为焦点，Google已经在讨论针对Twitter等平台进行实时搜索的问题。这些改变如何同现有的系统，尤其 是搜索引擎技术集成，将引发一些技术革新。<br/> <br/>这意味着什么？<br/> <br/>随着越来越多的人参与　Web　信息的创建，我们获取信息的方式将从过去的单一来源向更社区化的来源转变，假如我们要搜索修车行，我们会看到修车行 最新的Twitter或Facebook消息而不是那些过时的静态内容。<br/> <br/>4.JavaScript<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=74" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=74" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>当CSS3和HTML5开始涉足JavaScript的地盘，JavaScript本身也向Flash逼宫。诸如jQuery一类的框架使富客户 端，异步与无缝用户体验变为现实，Web应用的开发变得更简单，并引发竞争和创新。<br/> <br/>JavaScript已经可以帮我们实现过去只能靠Flash实现的东西，如交互式游戏，复杂的交互式数据可视化技术，也使那些富客户界 面，Flash式体验变得更具可访问性。<br/> <br/>最近，已经10年没有升级的JavaScript也迎来了它的一次重要升级(中文)，一旦浏览器厂商们吸纳了这些标准，Web开发者们将拥有更强大 工具来创建Web应用。<br/> <br/>这意味着什么？<br/> <br/>随着CSS3和HTML5开始涉足一些JavaScript的功能（如复杂对象的选取，动态圆角，实时可编辑页面），JavaScript将趋向于 用来处理Web应用与客户端的程序逻辑。JavaScript的最新升级将使Web应用之间更容易相互操作（JavaScript的这次升级的一个主要目 标是实现JSON对象的安全细则）。<br/> <br/>5.SaaS-软件即服务<br/> <br/>SaaS（软件即服务）已 经不新鲜，象37Signals，GoogleEnterprise一类的SaaS越来越普遍。竞争会越来越激烈，引入门槛低，那些小厂商将有机会和大厂 商展开竞争，2010年，我们会看到这种竞争加剧并带来Web应用的创新。<br/> <br/>这意味着什么？<br/> <br/>SaaS商业模式会继续取代传统软件的位置，随着上网的人越来越多，人们需要的是基于Internet可以相互操作的系统。<br/>Tags - <a href="http://www.zhanghaijun.com/tags/web%25E5%25BC%2580%25E5%258F%2591/" rel="tag">web开发</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/845/</link>
<title><![CDATA[成为一名优秀的Web开发人员的十步]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Sun, 22 May 2011 15:22:12 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/845/</guid> 
<description>
<![CDATA[ 
	如果你已经是一名优秀的Web开发人员，那请路过即可。如果你还是一个准备入行或刚入行的菜鸟，那本文倒值得一读。要成为一名优秀的Web开发人 员，没有捷径可走，本文就是为那些还在苦苦寻找学习目标的人编写的。<br/> <br/>第一步：学好HTML<br/> <br/>HTML（超文本标记语言）是网页的核心，因此你首先应该学好它，不要害怕，HTML很容易学习的，但也很容易误用，学懂容易要学精还得费点功夫， 但学好HTML是成为Web开发人员的基本条件。（注：随着HTML 5规范出炉日期 将近，了解HTML 5也将成为Web开发人员的必修课）<br/> <br/>学习资源：<br/> <br/>HTML Dog （http://htmldog.com/）<br/> <br/>HTML入门指南 （http://www.w3.org/MarkUp/Guide/）<br/> <br/>W3C HTML学习教程 （http://www.w3schools.com/html/）<br/> <br/>第二步：学好服务器端脚本语言<br/> <br/>服务器端脚本编程也是Web开发人员的基本功之一，你只需挑选一个服务器端脚本语言，然后学好它，目前流行的服务器脚本语言有：<br/> <br/>PHP （http://php.net/）<br/> <br/>Python （http://www.python.org/）<br/> <br/>Ruby （http://www.ruby-lang.org/en/）<br/> <br/>第三步：学好SQL<br/> <br/>要构建动态页面就必须使用到数据库，但这么多数据库产品，该 如何是好呢？别担心，它们都会遵循标准的SQL原则，学习SQL的资源包括：<br/> <br/>W3C SQL学习教程 （http://www.w3schools.com/SQl/default.asp）<br/> <br/>MySQL主页 （http://www.mysql.com/）<br/> <br/>SQL维基百科 （http://en.wikipedia.org/wiki/SQL）<br/> <br/>第四步：学好CSS<br/> <br/>涉及到网页外观时，就需要学习CSS了，它可以帮你把网页做得更美观。<br/> <br/>学习资源：<br/> <br/>HTML Dog&nbsp;&nbsp;（http://htmldog.com/）<br/> <br/>CSS禅意花园 （http://www.csszengarden.com/） 已有中文版图书。<br/> <br/>第五步：学好JavaScript<br/> <br/>今天大部分Web开发人员都喜欢使用jQuery（http://jquery.com/）， 学习JavaScript的基本语法，以及如何使用JavaScript编程将会提高你的技能。<br/> <br/>学习资源：<br/> <br/>webmonkey.com上的JavaScript学习资源 （http://www.webmonkey.com/tutorial/JavaScript_Tutorial）<br/> <br/>W3C JavaScript学习教程 （http://www.w3schools.com/JS/default.asp）<br/> <br/>第六步：学好正则表达式<br/> <br/>虽然它并不像其它知识那么重要，但学习了正则表达式后，如果使用得当将会节省你很多时间，从验证到高亮显示它够能帮到你。<br/> <br/>第七步：学习一点Unix和Linux的基本知识<br/> <br/>这并不是必须的，但知道一点Linux命令不会伤害到你，或许你还不知道，大部分Web服务器都运行在Unix和Linux平台上，如果我是你，我 会去学习一些基本的Linux命令的。<br/> <br/>第八步：了解Web服务器<br/> <br/>你不必在这上面花太多精力，但对Apache的基本配置，.htaccess配置技巧有一些掌握的话，将来必定受益，而且这方面的知识学起来也相对 容易，不会花多长时间。<br/> <br/>第九步：熟悉版本控制系统的用法<br/> <br/>熟悉使用一种优秀的版本控制系统将很有用处，你在实际工作中就会发现精通一种版本控制系统是多么幸福。<br/> <br/>第十步：学好Web框架<br/> <br/>当你掌握了HTML，服务器端脚本语言，CSS和JavaScript后，就应该找一个Web框架加快你的Web开发速度，使用框架可以节约你很多 时间，如果你使用PHP，可选的框架有CakePHP，CodeIgniter，Zend等，Python程序员喜欢使用Django和 webpy，Ruby程序员喜欢使用 RoR。<br/> <br/>怎么样，从最简单的HTML到Web框架，内容还是不少吧，要想精通这里的每一样技术，都得下苦功夫才行。<br/> <br/>原文：10 Steps to Becoming a Great Web Developer<br/>Tags - <a href="http://www.zhanghaijun.com/tags/web%25E5%25BC%2580%25E5%258F%2591/" rel="tag">web开发</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/844/</link>
<title><![CDATA[Web开发者必备的十大网站资源]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Sun, 22 May 2011 15:20:34 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/844/</guid> 
<description>
<![CDATA[ 
	要成为一名优秀的Web开发者，并没有捷径可走，只能通过自己一步一步的努力去实现，但如果你拥有一些优秀的开发工具，则可以大大提高你的开发效 率。本文将从中挑选出十个最佳工具，供大家选择使用。<br/> <br/>1、MySQL Format Date<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=60" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=60" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://www.mysqlformatdate.com/<br/> <br/>MySQL Format Date可以帮助开发者使用MySQL DATE_FORMAT函数来规范化自己的日期数值。开发者只需选择一个通用日期格式，然后对其进行修改来满足自己的需求。页面底部将自动生成MySQL DATE_FORMAT代码，开发者可以直接将它们拷贝粘贴到自己的代码中。<br/> <br/>2、Script Src<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=61" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=61" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://scriptsrc.net<br/> <br/>为了及时发现自己所喜爱的Javascript代码库是否有最新版本，Web开发者可能需要不断定期在网络上搜索，这无疑会令人疲倦。 ScriptSrc.net则已经把jQuery、Mootools、Prototype和更多内容汇集到一个网页中，Web开发者只需要点击一下，就能 把相关最新版链接地址复制到自己浏览器的剪贴板中。<br/> <br/>3、Em Chart<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=62" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=62" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://aloestudios.com/tools/emchart/<br/> <br/>我从来不喜欢在CSS文件中使用ems来定义文本尺寸，但有时候却又不得不使用它。这时Em Chart可以帮助你省时省力，它能够把ems转化为像素值。<br/> <br/>4、Twitter API Explorer<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=63" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=63" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://twitapi.com/explore/<br/> <br/>如果你在自己创建的站点中使用了Twitter API，你一定会喜欢Twitter API Explorer网站，它可以让你通过Twitter API进行搜索。更绝的是，它可以生成立即可用的代码片段。你和你的客户能够实现即时获取。<br/> <br/>5、Browser Sandbox<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=64" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=64" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://spoon.net/browsers<br/> <br/>毫无疑问，跨浏览器兼容性是Web开发者在日常工作中不得不面对的最大问题之一。Browser Sandbox让开发者可以从网络上运行任何Windows浏览器。唯一的缺点是，你必须使用Windows系统，该应用不能运行在苹果Mac和 GNU/Linux系统之上。<br/> <br/>6、PHP Forms<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=65" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=65" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://www.phpform.org/<br/> <br/>Web表单是网站最重要的部分之一，但创建它们也是一件非常耗时的工作。不过，PHP Forms网站可以免费加速你的表单开发工作，它能够让你创建满足多数网站需求的高级表单。<br/> <br/>7、.htaccess editor<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=66" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=66" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://www.htaccesseditor.com/en.shtml<br/> <br/>对任何网站来说，.htaccess文件是必用的。不过即使你还不知道怎么编写一个.htaccess文件，也不用感到担忧，该网站通过一个向导来 帮助你创建.htaccess文件。虽然它不支持非常高级的处理工作，但对于你创建的95%网站来说，它可以满足需要。<br/> <br/>8、Smush it!<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=67" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=67" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://developer.yahoo.com/yslow/smushit/<br/> <br/>就信息表达来说，一个图片的价值可能胜过一千句话。但图片也以带宽杀手而闻名。通过使用Photoshop等软件，可以把图片优化以适应Web；但 是如果你没有这样的软件或不会使用它，Smush it也可以满足你的需要。这个在线工具的开发者是雅虎开发者网络，它可以在不降低图片质量的前提下降低图片大小。<br/> <br/>9、CSS Compressor<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=68" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=68" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>网址：http://www.csscompressor.com/<br/> <br/>假如一个网站拥有许多不同的页面布局，其CSS文件往往会变得非常庞大，并且占用大量服务器带宽。CSS Compressor可以通过移除注释、缩减和更多信息，来降低任何CSS文件的体积。另外，你还可以通过该工具配置压缩等级来满足自己的需要。<br/> <br/>10、Test everything<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=69" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=69" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>该网站是你必须收藏的精品网站之一。从其名称可以看出，它能够让你测试许多事情，诸如XHTML和CSS标记、PageRank和反向链接等。<br/> <br/>原文题目：10 must have resources for Web Developers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原文作者：Harsha M V<br/> <br/>原文链接：http://variable3.com/blog/2010/05/10-must-have-resources-for-web-developers/<br/>Tags - <a href="http://www.zhanghaijun.com/tags/web%25E5%25BC%2580%25E5%258F%2591/" rel="tag">web开发</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/843/</link>
<title><![CDATA[Web开发兵器谱：来自Google的15款免费工具]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Sun, 22 May 2011 15:13:14 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/843/</guid> 
<description>
<![CDATA[ 
	Google的使命是Web，在Google眼中，未来的一切应用都将Web化。一直以来，Google为Web开发与设计者推出了大量免费工具， 让他们更好地创建、维护、改善他们的Web站点，这些工具包含了开发、分析、维护、修补等等用途，本文将介绍15款这样的工具。<br/> <br/>1. Google Chrome Developer Tools<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=45" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=45" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>这是Google Chrome中类似 Firefox Firebug以及Web Developer Toolbar的一个扩展，用于调试你的网页，包含一个DOM探测器，一个JavaScript调试台，可以设置执行断点和跟踪，一个类似YSlow的执 行分析器。<br/> <br/>2. Webmaster Tools<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=46" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=46" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>一个对网站拥有者来说非常有用的程序，可以帮助你从各个角度改善自己的站点。可以发现站点中的恶意程序，发现搜索引擎爬虫遇到的错误，可以发现你的 HTML代码中需要改进的部分。还可以帮你发现你的站点中最热门的网页，并发现你站点中的错误链接。<br/> <br/>3. Google Web Toolkit<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=47" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=47" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Google Web Tootlkit （GWT）是一个Web开发基础框架，为开发者提供了一些基础类库，GWT同Google的其它产品，如 AdWords，FeedBurner，Google Ajax类库等紧密集成，这里有一个Google Docs教程。<br/> <br/>4. Google Code Search<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=48" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=48" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>帮助开发者搜索代码，支持正则表达式搜索，或在一个高级搜索界面中，很直观地搜索那些可能会让你事半功倍的公共代码。<br/> <br/>5.Page Speed<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=49" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=49" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Google现在已经将网站加载速度算到搜索排名算法中，Page Speed可以帮助你分析你的网站性能，基于Google Web性能最佳实践。<br/> <br/>6. Browser Size<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=50" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=50" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>该工具帮你分析，你的网页在不同浏览器，不同浏览尺寸下的显示状况，非常适合看看自己的网页在不滚动的情况下，在各种浏览尺寸下显示到哪里。<br/> <br/>7. Google Ajax Libraries API<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=51" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=51" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Google Ajax Libraries API包含多种流行的JavaScript库（目前有10种），并可以从Google高性能的CDN网络中加载，既节省了你的服务器带宽，同时，由于用户 可能已经在别的网站加载过这个库，因此可以显著加快这些库的加载速度。<br/> <br/>8. Google Website Optimizer<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=52" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=52" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>接着这个工具，你可以对自己的网站进行 A/B 测试，并对网站进行优化。<br/> <br/>9. Sites<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=53" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=53" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>顾名思义，Google Sites可以帮你创建一个托管的网站，可以将包括 YouTube，幻灯，Gmail日历，Google Gear小程序，Google Docs一类的应用集成其中。如果将站点设置为不公开，你可以将这个工具用于个人文档工具。<br/> <br/>10. Speed Tracer<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=54" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=54" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>以可视化方式，帮你分析你的Web程序中各种元素的加载或运行速度与实践，这里有一些关于这个工具的用例。<br/> <br/>11. Project Hosting<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=55" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=55" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>这是Google Code项目的一部分，可以帮你托管你的开源项目，Web开发与设计者还可以在这里找到大量现成的项目以供借鉴或套用。<br/> <br/>12. Google App Engine<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=56" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=56" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>这是一个可用来托管自己的Web程序的地方，甚至可以使用自己的域名。这里有一个教程，讲解如何使用Google App Engine来创建一个留言本。Google App Engine中已经托管了大量的Web程序。<br/> <br/>13. Google Chart Tools<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=57" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=57" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Google Chart Tools可以帮助你将数据转化为图表，并嵌入自己的网页，这些图表还拥有交互功能，可以钻入，或通过鼠标盘旋获取详细信息，还可以实现动画图表。<br/> <br/>14. Closure Tools<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=58" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=58" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>Closure Tools是Google Labs的一个开发套件，包含3个工具，闭包编译器（一个JavaScript优化器），闭包函数库（用于Ajax程序开发）以及一个用于动态生成 HTML的闭包模板。<br/> <br/>15. Google Analytics<br/><a href="http://www.zhanghaijun.com/attachment.php?fid=59" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=59" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>经典的Google流量分析统计工具。<br/>Tags - <a href="http://www.zhanghaijun.com/tags/google/" rel="tag">google</a> , <a href="http://www.zhanghaijun.com/tags/web%25E5%25BC%2580%25E5%258F%2591/" rel="tag">web开发</a>
]]>
</description>
</item>
</channel>
</rss>