优化网站性能的14条规则 yahoo的14军规

前言:
对于一个高性能的Web站点,性能提升的2个主要突破点
.响应时间.
效率
当前集中考虑的主要是响应时间方面,平时我们关注比较多的是后台Web服务器端的优化,通过Yahoo的实际数据分析,80-90%的终端响应时间是由前端决定的,所以是前端的优化也是非常重要的,存在巨大的改善空间,本文集中讨论前端优化。8/2性能准则:80%的性能问题是由20%的原因引起的,我们集中精力在这20%的原因上来改善80%的性能。通常的经验告诉我们影响Web性能的几个主要因素由Cache的大小和有无,Http请求,静态和动态网页的分布,cookie的大小并行下等等,但是在具体的时间中到底如何去做,没有更多详细的探讨。从2004年起,yahoo专门成立了一个性能分析团队,他们通过开发实际工具和进行严格的数据分析,来改善他们那产品的性能。本文就是这些研究成果的最新总结,在提高网页速度方面Yahoo!的 Exceptional Performance团队提供了14种最佳实践,减少了Yahoo!25%-50%的响应时间,本文将详细介绍这些准则和背后的原理,从而使你可以更快地构建网页,减少响应时间,从前端到后端全面挖掘网页开发更大的潜能!到底如何优化一个网站,提高性能了?基本的原则是:

(1)优化网站资源,主要是图片

(2)优化脚本资源,例如JavaScript

(3)优化网页的样式表,例如CSS

核心思想是减少下载的数据量,尽可能使用少的HTTP请求,合并脚本和CSS表,使用合并的图片,尽量避免重定向和frames的使用。

来自Yahoo的14条准则[break]

由上述思想发散开发,总结起来yahoo的14条准则如下:

1.尽可能使用少的HTTP请求 Make fewer HTTP requests;

    这个是很重要的一条,具体措施是使用Image maps 和Inline Images;合并CSS和脚本代码。比如对于Image Maps

 

(服务器端)server-side

 

<a href="navbar.cgi"><img ismap src="imagemap.gif"></a>→ http://.../navbar.cgi?127,13

 

(客户端)client-side – preferred

 

<img usemap="#map1" border=0 src="/images/imagemap.gif">

 

<map name="map1"> <area shape="rect" coords="0,0,31,31" href="home.html" title="Home">

 

   …

 

</map>

 

(缺点是)drawbacks:

 

图片需要是连续的。

2.使用内容分发网络 Use a CDN;

 

在发布你的动态内容之前发布网站的静态内容,比如使用广泛的Akamai

 

3.增加一个期限头部 Add an Expires header

 

不仅仅是对图片设置,对于脚本和样式表同样需要设置,在Apache中具体的配置方法如下:

 

     ExpiresActive On

 

     ExpiresByType application/x-javascript "modification plus 2 years"

 

     ExpiresByType text/css "modification plus 5 years"

 

当你修改一个资源的时候,修改资源的名称(自动进行),给文件名称加一个时间戳,例如img_1385413733.png;

 

同时候将资源纳入版本控制系统中,比如使用CVS个SVN,例如img_1.2.png。

4.压缩组件Gzip components

 

当前90% 的浏览器都支持压缩,压缩不仅仅是指HTML,脚本,CSS和XML都可以压缩。

 

在Apache中修改下面的配置来支持压缩

 

Apache 2.x: mod_deflate

 

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

 

对于HTTP请求和响应,表现如下

 

HTTP request: Accept-Encoding: gzip, deflate

 

HTTP response: Content-Encoding: gzip Vary: Accept-Encoding

5.将CSS置为页面的顶部 Put CSS at the top

 

   主要原因是CSS样式表会阻塞HTML在IE中的显示(如果没有下载完的话)

 

6.将JS移植页面的底部 Move JS to the bottom

 

主要原因是脚本的执行会阻塞并行下载和阻塞其他元素在IE中的展示

 

7.避免使用CSS表达式 Avoid CSS expressions

 

比如下面的例子:

 

   width: expression(

 

         document.body.clientWidth < 600 ?

 

       “600px” : “auto” );

 

原因是由于鼠标的移动,按下键等操作事件会是的上述表达式执行多次

 

8. 是JS和CSS从外部包含 Make JS and CSS external

 

可以减少HTML文档的大小,同时增加脚本的重用,但是会增加请求数

 

但是HomePage是一个例外,在Homepage中使用Inline和 PostOnload效果不错,yahoo和goolgede

 

首页都这样处理了;

 

9.减少DNS的查找 Reduce DNS lookups

 

一个典型的DNS查询是20-120ms,DNS 查询的时间直接影响到并行下载的效率,尽量减少主机的域名数目。

 

常用浏览器的缓存时间设置如下:

 

IE

 

DnsCacheTimeout: 30 minutes

 

KeepAliveTimeout: 1 minute

 

ServerInfoTimeout: 2 minutes

 

Firefox

 

network.dnsCacheExpiration: 1 minute

 

network.dnsCacheEntries: 20

 

network.http.keep-alive.timeout: 5 minutes

 

Fasterfox: 1 hour, 512 entries, 30 seconds

 

10.精简JS Minify JS

 

这个主要涉及到JS的编码和优化

 

11.避免重定向 Avoid redirects

 

通常Web服务器返回的是3XX的状态码,常常是301和302,可以通过添加过期头来缓存重定向


smarteng 发布于 2009-11-22 14:28

ubuntu 下开启root用户登录

其实我个人认为这没有多大必要,因为当你需要 root 的权限时,使用 sudo 便可以了。如果你实在需要在 Ubuntu 中启用 root 帐号的话,那么不妨执行下面的操作:

sudo passwd root

此命令将会重新设置 root 的密码,按照提示输入新的密码,并加以确认。之后,重启系统时,就可以用 root 登录了。

如果你想要禁用 root 帐号,则执行下列命令:

sudo passwd -l root


smarteng 发布于 2009-11-22 14:18

旧爱&新欢~~

很怀念在烟台的生活呀,

我的单车,哇哈哈。


smarteng 发布于 2009-11-20 06:36

smarteng 发布于 2009-11-20 06:36

网站运营策划被淡忘的关键指标

近几年无论在互联网上,还是在书店里可能在策划、设计方面关于交互设计、用户体验方面的内容比较多,包括我在面试的一些应聘人员时他们会经常会谈到其对用户体验方面的心得和经验,但是问之其在运营方面的产品规划的原则包括要求却含糊不清。。。

网站策划的目的是为了运营,以B2C网站为例,策划人员除了策划网站的前台页面之外,后台系统的策划也是必不可少的(如,产品发布模块,等某些大型网站可能会有订单处理后台、结算处理后台等),我们必须先指明关键指标的适用角色,操作后台的角色无疑是:数据录入员、订单处理人员、结算人员。

那对于他们而言是其关键指标就是:提升效率、降低差错率![break]

如何提升效率并降低差错率,就成了我这所述的网站运营策划的关键指标和原则:

原则1: 能在一个页面完成的工作,决不在两个页面实现!
其实这涉及到了一个表单的问题,通常我们在前台设计时的原则是让用户填写最少的内容,获得最满意的信息。但在后台设计时恰恰相反,多一步的保存就是对时间的损耗,多一步的页面跳转就是多增加一份差错率的几率!特别是在产品维护时,若维护一个数据需要跳转,翻山越岭才能针对那个字段进行修改,那其效率该如何保证呢?

原则2:如果可能,千万别忘记批量操作!
对于我们的顾客而言,批量操作无疑会增加顾客系统使用的学习成本,但在后台系统设计时,我们的数据操作人员应该接受过系统培训,所以不用担心学习成本问题。产品的批量操作无疑是大大节省了操作人员的时间成本;

原则3:表单的设计,应该更贴和实际业务!
通常我们在进行表单设计时,会从其整体度或其结构的逻辑性去对一个表单进行设计,但是我们千万别忽视了用户的使用习惯、操作规范、流程守则,我们的表单设计应该与实际更加贴合,举个例子,通常数据录入人员录入数据是根据产品经理给予的文件进行数据录入,那我们的表单设计则应该尽量的与文件保持一致,这样数据录入人员将大大降低录入数据时判断时间,大大增加工作效率并能在一定程度上降低差错率;

原则4:如果系统能办到,千万别用人脑!
这主要体现在功能设计上,很多功能设计时可以通过系统自动读取数据或计算数据获得,而不用人脑自动的去识别,将可大大提高其工作效率;

原则5:系统设计需切合实际,别增加工作复杂度!
很多系统设计时并不能达到完全流水线操作,还是需要人工线下操作,则需判断是否我们的系统设计是否对其线下的工作造成阻碍,最终影响实际工作运营的效率;

原则6:后台设计也需讲究美观!
很多开发人员通常都会认为后台只要能用,反正都是自己用难看点也没关系,但是我们的后台操作人员每天将花费60%以上时间花在后台的使用上,若经常使用一个及其丑陋的后台,不仅他的工作效率难以保证,久而久之其的工作心态会发生变化,从而影响到所有业务运营;

原则7:关键按钮请谨慎放置,并加以不同识别!
该原则主要适用于降低差错率,通常差错经常出与删除,批量保存时会存在较高的差错率,所以需寻找出容易出现差错的位置和功能设计,考虑其位置是否合理,提醒信息是否完备,是否可以进行颜色区分,并进行逐渐优化;

原则8:后台设计也不要忘记信息、交互和反馈!
合理的功能设计和友好设计对于效率和差错率均会有非常大的提高,小小的设计可能会起到非凡的作用;

企业做网站的目的是为了赚钱,前台负责如何建立客户群增加销售量,而后台或运营平台则注重成本的降低,两者对于企业来说都是十分重要的!

 


smarteng 发布于 2009-11-18 03:49

40个技巧优化您的PHP代码

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;
2.echo的效率高于print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放内存,特别是大的数组;
5.避免使用像__get, __set, __autoload等魔术方法;
6.requiere_once()比较耗资源;
7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;
8.如果你需要得sexinsex到脚本执行时的时间,$_SERVER['REQUSET_TIME']优于time();
9.能使用字符处理函数的,尽量用他们,因为效率高于正则;//php100.com
10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;[break]
11.如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换,并且参数列表不是太长,可以考虑多用一些简洁的替换语句,一次只替换一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;
12.用@掩盖错误会降低脚本运行速度;
13.$row['id']比$row[id]速度快7倍,建议养成数组键加引号的习惯;
14.错误信息很有用;
15.在循环里别用函数,例如For($x=0; $x < count($array); $x), count()函数在外面先计算;
16.在方法里建立局部变量速度最快,97xxoo几乎和在方法里调用局部变量一样快;
17.建立一个全局变量要比局部变量要慢2倍;
18.建立一个对象属性(类里面的变量)例如($this->prop++)比局部变量要慢3倍;
19.建立一个未声明的局部变量要比一个初始化的局部变量慢9-10倍;
20.声明一个未被任何一个函数使用过的全局变量也会使性能降低(和声明相同数量的局部变量一样),PHP可能去检查这个全局变量是否存在;
21.方法的性能和在一个类里面定义的方法的数目没有关系,因为我添加10个或多个方法到测试的类里面(这些方法在测试方法的前后)后性能没什么差异;
22.在子类里方法的性能优于在基类中;//PHP100中文网
23.只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;
24.Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.
25.当输出字符串时用逗号代替点分割更快些。注意:这只对echo起作用,这个函数能接受一些字符串作为参数;
26.在apache服务器里一个php脚本页面比相应的HTML静态页面生成至少要多花2-10倍的时间,建议多用些静态HTML页面和少量的脚步;
27.除非你的安装了缓存,不然你的php脚本每次被访问都需要被重编译。建议安装个php缓存程序,这样通过去除一些重复的编译来很明显的提高你20-100%的性能;
28.建议用memcached,高性能的分布式内存对象缓存系统,提高动态网络应用程序性能,减轻数据库的负担;
29.使用ip2long()和long2ip()函数把IP地址转成整型存放进数据库而非字符型。这几乎能降低1/4的存储空间。同时可以很容易对地址进行排序和快速查找;
30.使用checkdnsrr()通过域名存在性来确认部分email地址的有效性,这个内置函数能保证每一个的域名对应一个IP地址;//php100.com
31.如果你在使用php5和mysql4.1以上的版本,考虑使用mysql_*的改良函数mysqli_*;
32.试着喜欢使用三元运算符(?:);
33.在你想在彻底重做你的项目前,看看PEAR有没有你需要的。PEAR是个巨大的资源库,很多php开发者都知道;
34.使用highlight_file()能自动打印一份很好格式化的页面源代码的副本; //php100.com
35. 使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。理想的错误报告应该被完全禁用在php.ini文件里。可是如果你在用一个共享的虚拟主机,php.ini你不能修改,那么你最好添加error_reporting(0)函数,放在每个脚本文件的第一行(或用 require_once()来加载)这能有效的保护敏感的SQL查询和路径在出错时不被显示;
36.使用 gzcompress() 和gzuncompress()对容量大的字符串进行压缩(解压)在存进(取出)数据库时。这种内置的函数使用gzip算法能压缩到90%;
37.通过参数变量地址得引用来使一个函数有多个返回值。你可以在变量前加个“&”来表示按地址传递而非按值传递;
38.Fully understand “magic quotes” and the dangers of SQL injection. I’m hoping that most developers reading this are already familiar with SQL injection. However, I list it here because it’s absolutely critical to understand. If you’ve never heard the term before, spend the entire rest of the day googling and reading.//php100.com
39.使用strlen()因为要调用一些其他操作例如lowercase和hash表查询所以速度不是太好,我们可以用isset()来实现相似的功能,isset()速度优于strlen();
40.When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. //php100.com This is something PHP specific and does not apply to other languages, so don’t go modifying your C or Java code thinking it’ll suddenly become faster, it won’t. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend’s PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.


smarteng 发布于 2009-11-18 01:16

PHP采集程的思路

最近在采集一下体彩的网络数据,看到了网上的PHP采集程的思路,

思路:
  采集程序的思路很简单大体可以分为以下几个步骤:
    1.获取远程文件源代码(file_get_contents或用fopen).
    2.分析代码得到自己想要的内容(这里用正规匹配,一般是得到分页)。
  3.跟根得到的内容进行下载入库等操作。
在这里第二步有可能要重复的操作好几次,比如说要先分析一下分页地址,在分析一下内页的内容才能取得我们想要的东西。[break]
代码:
记的以前发部过部分的代码今天我在这里在简单的发部一下 复制PHP内容到剪贴板 PHP代码:@$nl=file_get_contents($rs['url']);//抓取远程内容
preg_match_all("/var url = \"gameswf\/(.*?)\.swf\";/is",$nl,$connect);//进行正规匹配取得自己要的内容
mysql_query("insert ......插入数据库部分");
上面的代码就是所有采集要用到的代码了,当然大家也可以用fope来作,我个人喜欢用file_get_contents。

下面在共享一下我的下载图片flash到本地的办法,太简单了两行代码 复制PHP内容到剪贴板 PHP代码:if(@copy($url,$newurl)){
echo 'ok';
}

在论坛上以前还发过一个图片下载函数这会也放上来给大家 复制PHP内容到剪贴板 PHP代码:/*本存图片函数*/
function getimg($url,$filename){
        /*判断图片的url是否为空,如果为空停止函数*/
        if($url==""){
                return false;
        }
        /*取得图片的扩展名,存入变量$ext中*/
        $ext=strrchr($url,".");
        /*判断是否是合法的图片文件*/
    if($ext!=".gif" && $ext!=".jpg"){
                return false;
        }
        /*读取图片*/
        $img=file_get_contents($url);
        /*打开指定的文件*/
        $fp=@fopen($filename.$ext,"a");
        /*写入图片到指点的文件*/
        fwrite($fp,$img);
        /*关闭文件*/
        fclose($fp);
        /*返回图片的新文件名*/
        return $filename.$ext;
}

 

共享一下个人的采集心德:
1.不采那些作防盗链了的站,其实可以作假来路但是这样的站采集成本太高
2.采集尽量快的站,最好在本地进行采集
3.采集时有很多时候可以先把一部分数据存入数据库,等以后进行下一步的处理。
4.采集的时候一定要作好出错处理,我一般都是如果采集三次没有成功就跳过。以前经常就因为一条内容不能采就卡在那里一直的采。
5.入库前一定要作好判断,检查内容的合法,过滤不必要的字符串。
 


smarteng 发布于 2009-11-18 01:12

09年个性签名

1、执子之手,方知子丑,泪流满面,子不走我走。
2、西游记告诉我们:凡是有后台的妖怪都被接走了,凡是没后台的都被一棒子打死了。
3、你有什么不开心的事?说出来让大家开心一下。
4、我那么喜欢你,你喜欢我一下会死啊。
5、我又不是人民币,怎么能让人人都喜欢我?!
6、令人不能自拔的,除了牙齿还有爱情。 [break]
7、当生活心怀歹毒地将一切都搞成了黑色幽默,我顺水推舟把自己变成了一个受过高等教育的流氓。
8、时间太瘦,指缝太宽。
9、小姑娘们梦中都想找一匹白马,睁开眼发现满世界都是灰不溜秋的驴,悲痛欲绝后,只能从驴群中挑个身强力壮的,这样的驴就被命名为:经济适用男 。
10、我就要哭,我就要闹,一宿一宿不睡觉,手里拿瓶安眠药,拿根小绳要上吊。再丑也要谈恋爱,谈到世界充满爱。
11、我们的目标:向钱看,向厚赚。
12、我是你转身就忘的路人甲,凭什么陪你蹉跎年华到天涯?
13、没有医保和寿险的,天黑后不要见义勇为……
14、挤公交是包含散打、瑜珈、柔道、平衡木等多种体育和健身项目于一体的综合性运动。
15、老娘法眼一开就知道你是个妖孽了。
16、手插口袋,谁都不爱 。
17、手拿菜刀砍电线,一路火花带闪电。
18、单身并不难,难的是应付那些千方百计想让你结束单身的人 。
19、幸福是什么?幸福就是你吃鱼,我吃肉,看着别人啃骨头。
20、念了十几年书,想起来还是幼儿园比较好混!
21、我当年也是个痴情的种子,结果下了场雨……淹死了。
22、很多人说婚姻是爱情的坟墓,但是能够入土为安的爱情总比暴尸街头要好 。
23、有空学风水去,死后占个好墓也算弥补了生前买不起好房的遗憾
24、据说,人只有两个选择,忙着死或是忙着活,我想我有了第三种选择:忙着等死 。
25、春困夏乏秋无力,冬日正好眠。
26、思念不能自已,痛苦不能自理,结果不能自取,幸福不能自予。
27、小时候我以为自己长大后可以拯救整个世界,等长大后才发现整个世界都拯救不了我。
28、如果你注定不能给予我期待的回应.那么就保持在安全距离之外吧。
29、请不要把我对你的容忍,当成你不要脸的资本。
30、女子无才便是德,我一定是太缺德了。
31、诸葛亮出山前也没带过兵啊,你们凭啥要我有工作经验。
32、用嘻哈的蓝调精神来过二胡一样的生活。
33、鸵鸟的幸福,只是一堆沙子。
34、老天,太蓝!大海,太咸!人生,太难!工作,太烦!和你,有缘!想你,失眠!见你,太远!
35、一觉醒来,天都黑了。
36、喝药递瓶,上吊给绳,跳楼的挥着小手绢送行。
37、铁杵能磨成针,但木杵只能磨成牙签,材料不对,再努力也没用。
38、你要搞清楚自己人生的剧本——不是你父母的续集,不是你子女的前传,更不是你朋友的外篇。
39、树愈静而风不止,我愈恋而他不在。
40、多想某天醒来睁开眼,发现自己坐在小学教室的课桌椅上。老师掷来的粉笔头正好打在额头上。
41、少年不胡作妄为,大胆放肆,试问老年时哪来的题材话当年。
42、作为一个怪兽,我的愿望是至少消灭一个奥特曼。
43、再过几十年 我们来相会 送到火葬场 全部烧成灰 你一堆我一堆 谁也不认识谁 全部送到农村做化肥~
44、学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨;女人之美,在于蠢得无怨无悔;男人之美,在于说谎说得白日见鬼。
45、我以为我很颓废,今天我才知道,原来我早报废了。
46、不成熟男人的标志是可以为了理想壮烈的牺牲,成熟男人的标志的可以为了理想卑贱的活着。
47、生活就像宋祖德的嘴,你永远都不知道下一个倒霉的会是谁。
48、阳光温热,岁月静好,你还不来,我怎敢老去?
49、人又不聪明,还学别人秃顶。
50、我以神的姿态,闪耀在这美的瞬间.凡人勿扰…
51、年轻的时候,我们常常冲着镜子做鬼脸;年老的时候,镜子算是扯平了。
52、要努力!!为了你的奥迪我的迪奥。
53、我是白领:今天领了薪水,交了房租水电,买了油米泡面,摸了口袋,感叹一声,这个月工资又白领了…
54、执子之手,将子拖走。子说不走,好吧,关门放狗!
55、生活,就是这样.永远占领着绝对领导的位置,当无数的傻子高呼着自己控制了生活,掌握了命运.却没看到,生活在更高的苍穹上.露出讥笑的嘲讽的面孔。
56、他就是一盆水,倒入你的米堆里,若干年后,清水变成了醇香的酒,而你变成了一堆废弃的烂米,不是没用了,还可以拿来喂猪的。
57、不愿做奴隶的人民,愿做人民币的奴隶。
58、我不是天桥上算命的,唠不出那么多你爱听的磕。
59、生活二字二几十年来回味得我大小脑抽搐,脊髓痉挛。始终不得要领。
60、真的猛士,敢于直面自己未化妆的脸。
61、天山童姥——外表正太,内心却有三百六十五道裂痕,每道裂痕上书春夏秋冬四字,沧桑到妖。
62、世事往往如此,想回头也已经来不及,即使你肯沦为劣马,不一定有回头草在等着你。
63、曾经我们都以为自己可以为爱情死,其实爱情死不了人,它只会在最疼的地方扎上一针,然后我们欲哭无泪,我们辗转反侧,我们久病成医,我们百炼成钢。你不是风儿,我也不是沙,再缠绵也到不了天涯,擦干了泪,明天早上,我们都要上班。
64、曾经和朋友一起仰望星空,随之我们泪流满面,他是因为失恋,我则是因为扭伤了脖子。
65、其实你我都一样,人人都在装,关键是要装像了,装圆了,有一个门槛,装成了就迈进去,成为传说中的性情中人,没装好,就卡在那里了。就是卡门。
 


smarteng 发布于 2009-11-15 07:24

周鸿祎的产品经理语录

曾经认识一个朋友在周鸿祎手下做过产品,看到这个就转发一下

- 打动用户的需求,这个话题好像很废话,但是最质朴。有很多产品他们并不是在真正打动用户需求,他们是在发明用户需求甚至幻想用户需求,甚至逆着用户需求在做,在一小群高端用户里获得一种认可,就以为获得成功。

-在开心网之前,所有人都在抄袭FaceBook,但是一个比一个抄得像,颜色、界面大家都在抄,但是都不太成功。就是因为大家没有摸对用户的脉,最后开心可能自觉不自觉地,碰对了用户的脉,中国互联网用户到社交网站,跟朋友打交道,实际上是以开心、娱乐为主旨,所以这种简单、容易上手、好玩的小游戏,而且门槛非常低,这种小游戏就成了触动用户的点。[break]

- 互联网产品是一个需要不断运营、不断持续打磨的一个产品。人家说好的产品是运营出来的,不是开发出来的。

- 好的互联网产品有两个特性: 首先它要能在一个点上打动用户。第二,它一定是一个靠持续改进、持续运营出来的东西。

- 今天微软如果还拿做软件这种几年磨一剑的思路做互联网,而不是用运营的思路,这叫缘木求鱼,等于你没有按照互联网产品的规则里做,你的产品自然不成功。所以最后微软也明白不能再用原来自己的文化来做,来找雅虎的人做,一定要用互联网的规则来做。

- 今天在互联网上大部分的产品都是免费的,用户把你抛弃的成本就是用户点一下,而且搜索引擎提供了很多便利性,让你找到很多同类的东西。所以在这种情况下,用户对产品变得更加挑剔。反过来这个产品激发了用户的很多需求。

- 无论你的想法高明或者不高明,都不如用户的选择高明,所以任何美妙的想法,不如先把它简单地做出一点点,就拿到市场上做实验,因为一旦对了,你马上能看到增长,你能迅速跟进。一旦不对,你调整的成本也很低。这样的话,你用用户来作为你的试金石,集小胜为大胜,通过点点滴滴的进展最后来获得成功。

- 虽然我们每个人都会说以用户为中心,以市场为中心,这话太俗了。但是正是因为这话太俗了,很多人做不到,只是停留在嘴面上。比如很多人做着做着就会又以公司为中心。

- 都说要做到专注和极致,但是怎么进一步理解?我的感觉是伤其十指,不如断其一指。在产品方向上一定要先学会做减法,而不是做加法。很多产品经理第一个阶段是学会加法,希望在自己的产品里做很多功能,其实这往往违背了互联网的规则。

- 反正产品是持续改进的,所以不要期望某一个版本做到革命,是靠很多个小版本来做到革命。

- 我要求自己首先是个大产品经理。事实证明,丁磊也好,马化腾也好,他们到现在都不脱离产品岗位,你搞所谓抽象的管理,你就容易失去所谓的方向感。所以我们还是要靠一个产品团队在做。

- 特别强大的推广,有时反而成为了一个把自己眼睛蒙蔽住的东西,让你没有意识到当时面临的危机。

 


smarteng 发布于 2009-11-14 07:48

学习PHP的时候同时应该学习SVN的使用

相信很多新手在初学PHP的时候和我一样重心放在,PHP程序的开发,html代码,数据库操作,相关开发工具使用等等,往往忽略了学习版本控制软件的使用。为什么今天在新手区提出这个问题,原因就在于,想让广大朋友在使用php作为coder生涯开始的时候的能得到正规化的发展及少走一些弯路,我是走过了,这里分享我的经验,希望大家看过之后能有些心得,少走弯路。

   &n...


smarteng 发布于 2009-11-13 05:15

Windows系统下架设svn服务器


Windows系统下架设Subversion服务器
w2000,2003都应该一样
1.需要的软件
(1)、获取 Subversion 服务器程序
(2)、获取最新的 TortoiseSVN
(3)、SVNService  (这个是用来在,计算机-服务,里增加一下svn的服务项)
2.开始建立版本库。[break]
首先建立 e:\svn 空文件夹作...


smarteng 发布于 2009-11-13 05:12

svn简介---Subversion

版本控制是管理信息变化的艺术,它很早就成为了程序员重要的工具,程序员经常会花时间做一点小修改然后第二天又把它改回来。但是版本控制的作用不仅在软件开发领域,任何需要管理频繁信息改变的地方都需要它,这就是Subversion发挥的舞台。
Subversion是什么?
Subversion是一个自由/开源的版本控制系统。也就是说,在Subversion管理下,文件和目录可以超越时空。也就是Subve...


smarteng 发布于 2009-11-13 05:03

博主

    blogger

    smarteng

    人生就流星,虽然转瞬即逝,但也有永恒。

日历

恰饭

标签