<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Read Me Read You</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/8970/rss</id><updated>2012-01-23T06:53:31Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/8970/rss"/><entry><id>http://www.cnblogs.com/istep/archive/2012/01/23/2328966.html</id><title type="text">昨天购入mac mini一台，4688元港币</title><summary type="text">终于购入一台苹果机，mac mini一台，4688元港币，比大陆价有汇率优势。</summary><published>2012-01-23T06:54:00Z</published><updated>2012-01-23T06:54:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2012/01/23/2328966.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2012/01/23/2328966.html"/><content type="html">终于购入一台苹果机，&lt;div&gt;mac mini一台，4688元港币，比大陆价有汇率优势。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2328966.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2012/01/23/2328966.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/11/09/2242188.html</id><title type="text">[转]用星际快速入门PHP面向对象编程</title><summary type="text">前言面向对象博大精深，对于从未接触过得的人，会觉得一头雾水。学习的资料很多，但大多比较抽象，所以我用经典的游戏-星际争霸来讨论PHP 面向对象。现在假设我们来用PHP 开发星际争霸，从而接触PHP 面向对象。注意，为了便于学习，除了特殊说明，否则，各部分代码之间没有关联。而且同一件事情往往用的是不同的代码。另外我也不去考证各个兵种的属性数字，仅仅用来说明。一、类和对象如果玩家制造了一个机枪兵，那么我们怎么表示他呢，因为每个机枪兵有几个基本的数据要记录：剩余的血，杀敌数量，攻击力等等。我们可以用一个数组来记录一个机枪兵剩余的血和杀敌数量，因为这对于每个机枪兵是独立的。但攻击力比较麻烦，因为经过升</summary><published>2011-11-09T02:50:00Z</published><updated>2011-11-09T02:50:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/11/09/2242188.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/11/09/2242188.html"/><content type="html">&lt;div&gt;前言&lt;br /&gt;面向对象博大精深，对于从未接触过得的人，会觉得一头雾水。学习的资料很多，但大多比较&lt;br /&gt;抽象，所以我用经典的游戏-星际争霸来讨论PHP 面向对象。&lt;br /&gt;现在假设我们来用PHP 开发星际争霸，从而接触PHP 面向对象。&lt;br /&gt;注意，为了便于学习，除了特殊说明，否则，各部分代码之间没有关联。而且同一件事情往往&lt;br /&gt;用的是不同的代码。另外我也不去考证各个兵种的属性数字，仅仅用来说明。&lt;br /&gt;一、类和对象&lt;br /&gt;如果玩家制造了一个机枪兵，那么我们怎么表示他呢，因为每个机枪兵有几个基本的数据要记&lt;br /&gt;录：剩余的血，杀敌数量，攻击力等等。我们可以用一个数组来记录一个机枪兵剩余的血和杀敌数&lt;br /&gt;量，因为这对于每个机枪兵是独立的。但攻击力比较麻烦，因为经过升级，攻击力会增加，这就必&lt;br /&gt;须要找出所有表示机枪兵的数组，然后进行修改，非常麻烦。从这里我们可以看出一件事情，首先&lt;br /&gt;每个机枪兵有独立的数据需要记录和修改，比如剩余的血。同时他们有相同的数据需要共用，比如&lt;br /&gt;攻击力。&lt;br /&gt;这时候面向对象就能帮上我们的忙了。&lt;br /&gt;1.1 类的定义&lt;br /&gt;我们先来处理一部分问题，也就是每个机枪兵独有的数据。&lt;br /&gt;这叫做类，我们建立了一个表示所有机枪兵的类marine，这里面保留了需要每个兵独有的数据，&lt;br /&gt;比如上面代码里的剩余的血。&lt;br /&gt;1.2 对象的创建和使用&lt;br /&gt;接下来我们来使用对象，也就是每个机枪兵：&lt;br /&gt;通过new 后面加一个类的名字和括号，我们新建了一个机枪兵$m1，$m1 被叫做类marine 的对&lt;br /&gt;象，我们可以把它想象成一个特殊变量，只不过里面保存了多个数据。&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》87/104&lt;br /&gt;如果需要使用或者操作某个机枪兵的血（对象的属性），只要用$m1-&amp;gt;blood 来表示就可以了：&lt;br /&gt;我们再建立一个机枪兵：&lt;br /&gt;如果此时$m1 被敌人攻击过了，还剩下10 个血。而$m2 没受过攻击：&lt;br /&gt;使用对象可以很简单的保存每个机枪兵的血，不会互相影响。&lt;br /&gt;如果机枪兵$m1 攻击敌人的时候，可以这样使用对象的方法：&lt;br /&gt;不同的类内可以用同名的函数，比如小狗的类Zergling 里面也可以有一个函数attack。&lt;br /&gt;要注意的是，从PHP5 开始，无论在哪里改变一个对象的属性，都能改变它。比如上面一个小&lt;br /&gt;狗对象被作为参数传入机枪兵的attack 函数，执行函数之后这个小狗对象的血减少了，这和一般的&lt;br /&gt;函数不同。但这是很直观的，如果一个小狗被攻击了，它的血就应该减少。&lt;br /&gt;二、构造函数和析构函数&lt;br /&gt;每次我们新建一个机枪兵的时候，总人口应该加1，如果一个机枪兵被杀，人口应该减少1。&lt;br /&gt;可以通过构造函数和析构函数来自动处理：&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》88/104&lt;br /&gt;在一个类中，名字为__construct 的函数叫做构造函数，每次new 新建一个类的对象的时候就会&lt;br /&gt;执行：&lt;br /&gt;在一个类中，名字为__destruct 的函数叫做析构函数，每次销毁一个类的对象的时候就会执行：&lt;br /&gt;三、静态&lt;br /&gt;机枪兵的攻击力是属于所有机枪兵对象，每个机枪兵的攻击力都是一样的，如果升级，应该一&lt;br /&gt;起变化。&lt;br /&gt;这就用到static，表示静态：&lt;br /&gt;静态属性表示类所有的对象都共享的属性，一旦改变，所有的对象都跟着变化。&lt;br /&gt;静态属性用static 开头，比如上面的static $attackNumber。&lt;br /&gt;静态属性可以用类直接访问：&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》89/104&lt;br /&gt;如果类以内的函数访问，用self::$attackNumber 表示本类的$attackNumber 属性，所以如果我们&lt;br /&gt;升级了机枪兵的攻击力，所有的机枪兵都受影响，这就是面向对象的好处之一，也解决了我们前面&lt;br /&gt;讨论的共同数据的问题。&lt;br /&gt;函数也可以是静态的，这样就可以用类直接访问，不需要新建对象来调用：&lt;br /&gt;如果科技建筑升级完毕，直接就调用这个函数：&lt;br /&gt;四、继承&lt;br /&gt;兵营用来造机枪兵，坦克房用来制造坦克，他们都是建筑，但是却有很多不同，如果用一个类&lt;br /&gt;&amp;#8220;建筑&amp;#8221;来表示，很困难。但我们要保留他们的共性，比如都能飞行，不希望飞行的代码在各个类&lt;br /&gt;重复写，又要让他们能各自独立的生产不同的东西。所以我们可以用继承来处理，继承表示父子关&lt;br /&gt;系，被继承的叫父类，继承的叫子类。用extends 表示继承&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》90/104&lt;br /&gt;接下来，我们看看继承产生的效果：&lt;br /&gt;同样是继承建筑类的坦克房类，就无法制造机枪兵，因为这是兵营类的个性。&lt;br /&gt;如果在子类中的函数调用父类的函数，要使用parent，比如&lt;br /&gt;注意，一个类只能有一个父类，PHP 不允许多重继承，也就是说一个孩子只能有一个爹，一个&lt;br /&gt;爹可以有N 个孩子！&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》91/104&lt;br /&gt;五、访问控制&lt;br /&gt;如果用$attackNumber = 10 表示属性的话，系统默认是public $attackNumber = 10，所以建议这&lt;br /&gt;样写：&lt;br /&gt;public 表示这个属性是公共的，也就是在任何地方都可以访问和操作的。但这就存在一些问题，&lt;br /&gt;如果有玩家知道了类marine 的一些代码结构，那他做个简单的补丁程序，运行的时候加载上去：&lt;br /&gt;//补丁&lt;br /&gt;这样的话，他的机枪兵有10000 的攻击力，呵呵，这样的话，谁打得过他！&lt;br /&gt;为此我们要用private，表示这个属性只有类里面的函数才能访问：&lt;br /&gt;这样一来，只有升级才能改变机枪兵的攻击力。但是现在往往是团队开发，而且很多用到类的&lt;br /&gt;继承，如果private 的话，子类就无法访问了，但又不希望随便都可以修改某些属性。&lt;br /&gt;那么可以用protected，protected 的属性可以被子类的函数访问。&lt;br /&gt;六、重载&lt;br /&gt;6.1 属性重载&lt;br /&gt;如果我们把地面部队作为一个类，让机枪兵类来继承他，这时候如果地面部队类和机枪兵类里&lt;br /&gt;面都定义了攻击力$attackNumber，那么每个兵的攻击力就决定于机枪兵类，而不是地面部队。这就&lt;br /&gt;叫做重载。&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》92/104&lt;br /&gt;6.2、函数重载&lt;br /&gt;重载也可以用于函数，子类的函数如果和父类函数同名，除非另行说明，否则子类的对象默认&lt;br /&gt;调用子类内的函数。&lt;br /&gt;比如人族的鬼兵类ghost 和神族类的黑暗圣堂类（隐刀），都是隐形兵种，但是鬼兵隐形的时候&lt;br /&gt;会减少能量，黑暗圣堂根本没有能量属性。&lt;br /&gt;如果我们把隐形能力作为父类，鬼兵类ghost 和神族类的黑暗圣堂类DarkTemplar 来继承它，&lt;br /&gt;同时实现不同的隐形代码：&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》93/104&lt;br /&gt;我们来看看效果：&lt;br /&gt;七、接口&lt;br /&gt;PHP 不允许多重继承，那么有些问题就难办了。&lt;br /&gt;假如为了规范处理，我们把隐形的能力建立一个类，然后把飞行能力放一个类，那么人族的侦&lt;br /&gt;察机怎么处理？不能继承两个类！那我们不用继承也行，但是开发组的其他人一旦涉及到侦察机，&lt;br /&gt;要把长长的代码读一遍吗？有没有可能知道类的所有方法的简要描述？&lt;br /&gt;可以用到接口interface，一个类可以执行（继承）多个接口，接口中定义的函数不能有函数体，&lt;br /&gt;执行接口的类必须将这些函数完整定义。&lt;br /&gt;这样我们知道侦察机实现了飞行能力接口，必然有接口里面描述的飞行方法：&lt;br /&gt;教程连载：用星际快速入门PHP 面向对象编程（一）&lt;br /&gt;网站：http://www.phpchina.com 投稿：phper@phpchina.com 《PHPer》94/104&lt;br /&gt;八、总结&lt;br /&gt;我们讨论了PHP 面向对象的基本知识，通过星际争霸这一经典的游戏来说明，大家可以看到面&lt;br /&gt;向对象的初步作用。&lt;br /&gt;我们看到通过面向对象可以使代码更加清晰，类将代码组织起来，比较方便的重复使用。同时&lt;br /&gt;对象也减少了变量的冲突，方便相关性数据的保存和使用。&lt;br /&gt;如果要解决的问题涉及很多方面，面向对象可以演化出更加灵活和有技巧的方式，比如通常提&lt;br /&gt;到的设计模式，和很多框架。&lt;br /&gt;当然，面向对象也有缺点，从上面的代码可以看到，首先代码就多了，简单的任务如果定义许&lt;br /&gt;多类，反而麻烦。对于简单任务，面向对象也可能使代码运行的效率降低。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2242188.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/11/09/2242188.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/08/27/2155307.html</id><title type="text">vs ide中使用正则表达式替换</title><summary type="text">编码多了，经常会重构，这样就产生一个问题，比如代码中有很多片断需要批量替换，这时如果用正则表达式，可以大大提高效率。比如代码中有大量Teachersubject+数字.aspx需要替换成teacherlist/subjectid+数字.aspx这时，打开ide的查找替换对话框，分别输入 Teachersubject{:z}.aspxteacherlist/subjectid\1.aspx选中使用正则表达式即可</summary><published>2011-08-27T01:23:00Z</published><updated>2011-08-27T01:23:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/08/27/2155307.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/08/27/2155307.html"/><content type="html">&lt;p&gt;编码多了，经常会重构，&lt;/p&gt;&lt;p&gt;这样就产生一个问题，比如代码中有很多片断需要批量替换，&lt;/p&gt;&lt;p&gt;这时如果用正则表达式，可以大大提高效率。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;比如代码中有大量&lt;div&gt;Teachersubject+数字.aspx&lt;/div&gt;&lt;p&gt;需要替换成&lt;/p&gt;&lt;p&gt;teacherlist/subjectid+数字.aspx&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这时，打开ide的查找替换对话框，&lt;/p&gt;&lt;p&gt;分别输入 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Teachersubject{:z}.aspx&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;teacherlist/subjectid\1.aspx&lt;/div&gt;&lt;p&gt;选中使用正则表达式&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;即可&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;img src="data:image/png;base64,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" alt="" /&gt;&lt;/div&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2155307.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/08/27/2155307.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/08/27/2155269.html</id><title type="text">webform也是一种mvc</title><summary type="text">最近了解了php的模板技术，是一种mvc技术，主php是controller 获取数据的php是mocel模板页面htm是view其实回想asp.net的webform技术，何尝不是mvcm是codebehind的.cs文件中的获取数据代码v是.aspxc是.cs文件当然个人理解后来asp.net搞的mvc是为保持与其它web开发技术如php模板、struts的竞争力。</summary><published>2011-08-26T22:45:00Z</published><updated>2011-08-26T22:45:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/08/27/2155269.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/08/27/2155269.html"/><content type="html">&lt;p&gt;最近了解了php的模板技术，&lt;/p&gt;&lt;p&gt;是一种mvc技术，&lt;/p&gt;&lt;p&gt;主php是controller &lt;br /&gt;&lt;/p&gt;&lt;p&gt;获取数据的php是mocel&lt;br /&gt;&lt;/p&gt;&lt;p&gt;模板页面htm是view&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;其实回想asp.net的webform技术，何尝不是mvc&lt;/p&gt;&lt;p&gt;m是codebehind的.cs文件中的获取数据代码&lt;/p&gt;&lt;p&gt;v是.aspx&lt;br /&gt;&lt;/p&gt;&lt;p&gt;c是.cs文件&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;当然个人理解后来asp.net搞的mvc是为保持与其它web开发技术如php模板、struts的竞争力。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2155269.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/08/27/2155269.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/08/26/2154775.html</id><title type="text">asp.net程序就是IIS的插件</title><summary type="text">asp.net程序就是IIS的插件，用户发送http请求给iis,iis给一些系统对象赋值，然后这些对象与应用程序中代码一起来完成应用逻辑。</summary><published>2011-08-26T08:47:00Z</published><updated>2011-08-26T08:47:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/08/26/2154775.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/08/26/2154775.html"/><content type="html">&lt;div&gt; asp.net程序就是IIS的插件，用户发送http请求给iis,iis给一些系统对象赋值，然后这些对象与应用程序中代码一起来完成应用逻辑。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2154775.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/08/26/2154775.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/07/12/2104128.html</id><title type="text">NuGet</title><summary type="text">NuGet is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development. NuGet is a member of the ASP.NET Gallery in the Outercurve Foundation (see the press rel</summary><published>2011-07-12T04:30:00Z</published><updated>2011-07-12T04:30:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/07/12/2104128.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/07/12/2104128.html"/><content type="html">&lt;div&gt;NuGet is a free, open source developer focused package management system for the .NET platform intent on simplifying the process of incorporating third party libraries into a .NET application during development. NuGet is a member of the ASP.NET Gallery in the Outercurve Foundation (see the press release).&lt;/div&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2104128.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/07/12/2104128.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/06/29/2093173.html</id><title type="text">函数式编程--js学习的进阶</title><summary type="text">今天看了discuz.net的common.js脚本，发现它使用了很多不怎么熟悉的js语法。在网上搜了下，原来是函数式编程。函数式编程包括匿名函数、调用函数的不同方法，以及将函数作为参数传递给其他函数的方式。学习完这些，在js方面算是进阶了。 参考文章用函数式编程技术编写优美的 JavaScript</summary><published>2011-06-29T04:04:00Z</published><updated>2011-06-29T04:04:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/06/29/2093173.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/06/29/2093173.html"/><content type="html">&lt;div&gt;今天看了discuz.net的common.js脚本，发现它使用了很多不怎么熟悉的js语法。&lt;/div&gt;&lt;p&gt;在网上搜了下，原来是函数式编程。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;函数式编程包括匿名函数、调用函数的不同方法，以及将函数作为参数传递给其他函数的方式。&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;学习完这些，在js方面算是进阶了。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;参考文章&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;a target="_blank" style="background-color: #008080; color: #000080;" href="http://www.ibm.com/developerworks/cn/web/wa-javascript.html#functional"&gt;用函数式编程技术编写优美的 JavaScript&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: 12pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2093173.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/06/29/2093173.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/05/13/2045489.html</id><title type="text">Linux服务器程序编程的几个坎</title><summary type="text">TCP、IP、SOCKET基础知识服务器模型（参考http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html） 协议数据包的封包、解包DB读写负载均衡系统运维</summary><published>2011-05-13T06:24:00Z</published><updated>2011-05-13T06:24:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/05/13/2045489.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/05/13/2045489.html"/><content type="html">&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;div&gt;TCP、IP、SOCKET基础知识&lt;/div&gt;&lt;p&gt;服务器模型（参考&lt;a&gt;http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html&lt;/a&gt;） &lt;br /&gt;&lt;/p&gt;&lt;p&gt;协议数据包的封包、解包&lt;br /&gt;&lt;/p&gt;&lt;/p&gt;&lt;p&gt;DB读写&lt;/p&gt;&lt;p&gt;负载均衡&lt;/p&gt;&lt;p&gt;系统运维&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/2045489.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/05/13/2045489.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/03/21/1990188.html</id><title type="text">文档单一化、版本化</title><summary type="text">经常需要编写各种文档，有时觉得文档多了，难以管理，于是就将多个主题的内容揉在一份文档中。后来发现这样有一些弊端，比如往往只需要看其中某一个部分的内容，却要打开一个大文档，时间浪费在文档加载上了。这2天，想了一个改进办法，就是将文档内容单一化，而且要版本化。因为同一个主题的文档，读者不同，内容、排版就要相应不同。</summary><published>2011-03-21T05:56:00Z</published><updated>2011-03-21T05:56:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/03/21/1990188.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/03/21/1990188.html"/><content type="html">&lt;p&gt;经常需要编写各种文档，有时觉得文档多了，难以管理，于是就将多个主题的内容揉在一份文档中。&lt;/p&gt;&lt;p&gt;后来发现这样有一些弊端，比如往往只需要看其中某一个部分的内容，却要打开一个大文档，时间浪费在文档加载上了。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这2天，想了一个改进办法，就是将文档内容单一化，而且要版本化。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;因为同一个主题的文档，读者不同，内容、排版就要相应不同。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/1990188.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/03/21/1990188.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/istep/archive/2011/03/18/1987730.html</id><title type="text">推荐一个图标搜索引擎</title><summary type="text">推荐一个图标搜索引擎http://findicons.com/</summary><published>2011-03-18T01:52:00Z</published><updated>2011-03-18T01:52:00Z</updated><author><name>step</name><uri>http://www.cnblogs.com/istep/</uri></author><link rel="alternate" href="http://www.cnblogs.com/istep/archive/2011/03/18/1987730.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/istep/archive/2011/03/18/1987730.html"/><content type="html">&lt;p&gt;推荐一个图标搜索引擎&lt;/p&gt;&lt;p&gt;&lt;div&gt;http://findicons.com/&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/istep/aggbug/1987730.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/istep/archive/2011/03/18/1987730.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
