因为做的项目较小,数据处理也不是很多,所以上述做法也行得通,而且自我感觉良好。但是我最近仔细思考了我做过的项目,几乎所有的业务都是对数据的处理,归根结底还是对数据的枚举和对数据的修改。数据库的存储工作不是能以最好的性能满足对数据的枚举和对数据的修改么?而且存储过程的优点很多:
- 减少网络带宽,按理论存储过程会提高性能.
- 无需重新编译,更改后即可运行,无需重新编译代码
- 由专门的dba写的sql语句更高效
- 安全性(在传输用户名密码时,可防止注入等情况)
后来的几个项目我又改变了风格,纯粹用存储过程来开发,中间的业务逻辑层几乎纯粹成了数据传递层,完全抛弃了模型类和场景类,从前端到后台都是DataTable过来过去,中间用了微软的强类型表。项目也照样完成得很好,而且速度奇快。当然,存储过程也有他的缺点:
- 依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)
- 业务逻辑大的时候,封装性不够,难调试难以维护
- 复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了。没有办法通过中间层来灵活分担负载和压力.均衡负载等
但我们又有多少项目需要移植数据库呢,又有多少业务逻辑是存储过程解决不了呢,又有多少项目是让数据库系统满负荷运行呢?可能我是菜鸟,但我做的几十个项目中,真的极少遇到上述的情况。
两厢对比,迷糊了,晕菜了,我潜意识里知道存储过程实现所有的业务是不好的,而且存储过程的IDE没有“重构”“查找所有引用”这样贴心的小功能,维护确实很恼火。但我又说不出这东西究竟差在那些大地方,求园子里面的达人指点指点呀,你们的业务逻辑是如何在业务逻辑层实现的呀,求解惑……
最后,帮公司发个招聘启示:
成都九洲电子信息是一家有军工背景的企业,在物联网、 RFID方面有核心竞争力,现在因为项目需要,大量招聘 .Net开发人员,月薪4000-8000。详情请见:
今天上园子看到《面试官,请不要装高深》,我为那个面试官打抱不平,很巧的是,我也刚刚好去参加了软件园里面的那家公司的面试,公司也不是网友们猜测的新蛋,而是一家偏做硬件的公司,最近成立了一个软件项目部,正招兵买马,是一家有军工背景的国有大企业,在天府软件园里面工作的同学应该猜得到那个公司的名字了。
为什么会抱不平呢,因为《面试官,请不要装高深》的作者把题目搞错了。正确的题目是这样的:
代码
{
public virtual void DoSomething()
{
}
}
class B : A
{
public override void DoSomething()
{
}
public static void Main()
{
B b = new B();
b.DoSomething();//调用方式一
((A)b).DoSomething();//调用方式二
}
}
我的回答是:
方式一和方式二本质上没有任何区别,在搭建程序框架或实现某种设计模式时,我可能会倾向于第二种调用方式。
也不知道我回答得对不对,请园子里面的大侠指正一下。我可是冒着被禁用帐号的危险发到首页哦。
最后说下这个面试官的资历,他是一个有了7、8年开发经验的人,php,嵌入式等等都搞过,三年的.Net经验。因为我通过了面试,而且有一段无聊的等人的时间,面试官和我偶然的聊到了他的从业经历。
这篇blog主要由我完成,Tinyfool提出了大量修改意见,亦有重要贡献。
1 google,不作恶,信息流动
众所周知,google的目标是"整合全球信息"。从另外一个角度看来,这可以看作加快信息流动。信息流动变快是有巨大的经济价值的。加速,始终是人类经济活动的主线,快即是价值。从蒸汽时代到现在,每一次让移动速度加快的方式都造成了人类巨大的变化,只不过,在蒸汽和机械的时代,加快的是人和货物的移动,信息时代加快的是信息的流动。
仔细观察,可以发现,很多事情不再需要实体物质的流动。比如,我们不再需要人去送一封信,而只需传递一封电子邮件。我们也不那么需要去订阅一份报纸送上家门,而只需要浏览门户网站。这是信息时代带来的改变。而Google所做的,是继续加快这种信息流动的速度,让人们需要的东西更快的呈现在眼前。
Google始终坚持Pagerank排名,除了惩罚作弊者,并未干预过任何排名。这是因为,信息的正常流动才会加速,加速信息是Google的价值,也带来巨大的经济价值。Google绝对不允许把广告插入到搜索结果中。否则搜索结果质量会下降 ->用户不满意->搜索量降低->广告点击降低,最终仍然造成收入下降。(后面我们会讲到百度完全不同的做法)
投放过Adwords的同学会发现,并非价格越高越好,就算单价非常高,如果匹配度很低,广告点击率就会很低。这样Google仍然会降低这种匹配的出现频率。这样就避免了在A在B的搜索结果中投放"我是B"的广告来误导用户。
在这个体系下,有用的东西就是有用的,信息流动会变快,Google会推动这种信息变的更快,没用的东西就是垃圾,会阻碍信息流动,Google就让他变的更慢,直到被放弃。
Don't be evil 这句口号,可以理解为东欧出生的布林对人生的追求,也可以理解为Google商业利益的准则。因为,越是不作恶,越是让信息有序,正常的流动,给 Google带来的实际利益也就越大。很多人认为这只是一句作秀的口号,事实上这是商业和个人追求的双重准则。
2 baidu,竞价排名,Google
百度显然看到了搜索的巨大价值,于是挤进了这个市场。我们且不论搜索质量,先看百度的利润来源。
百度同样有右侧广告(类似Adsense)和左侧排名。左侧排名就是所谓的竞价排名,这是百度的"创新"。竞价排名是百度收入的主要来源(注1)。
前面说过,竞价排名会干扰用户搜索体验,这大家都深有体验,某些热门关键词,百度前几页的结果都是竞价结果。那么为什么Google不敢这样做,而百度这样做就赚翻了呢?
昨天我在twitter上说过一句话:"adsense是促使信息有序流动并盈利,竞价排名是破坏信息流动并盈利。也难怪两个公司的人看问题截然不同。"
很多人有体验,如果你的搜索结果比较靠前,百度会有销售来找你做竞价排名,如果不做的话,很快你的搜索结果就骤减。这种"巧合"正好说明了阻碍信息流动也是可以盈利的。换言之,帮助别人照看孩子可以赚钱,威胁别人家孩子来收保护费也可以赚钱。
那么,按照前面的说法,阻碍信息流动的应该会被用户抛弃,在百度这边为什么情况相反呢?
搜索引擎的结果好坏实际很难评价,通常来说,"好10%"是完全没有意义的。这在这个市场上反复被证实,仅仅让搜索结果比对方好10%,或差10%,不会对用户体验影响太大。第二梯队中的搜狗,有道,搜索结果未必真的比百度差多少,但无论如何也无法翻身。同样的竞争也发生在了 Google,Bing,Yahoo之间。换言之,搜索引擎产品是一种先入为主的产品。
在百度起家的年代,Google遭遇了最严重的屏蔽。大家应该都有体验,在大公司内基本无法正常访问Google。我们且不去讨论这种屏蔽的始作俑者是否是百度(无论百度是否加快了这种行为,最终的结果也必然发生)。那几年,又正好是中国互联网用户增长最快的年代(注2)。大量的新互联网用户直接成为了百度的用户。
搜索引擎市场上,“获得第一批用户”是至关重要的。
比较百度和Google的产品和收购策略,百度通常收购能带来巨大流量的产品,包括hao123,天空软件站等等。而Google收购的通常是具有独特的技术,可产生独特数据的产品,比如Analytics,blogger。
百度的主要企业运营行为是围绕“获得第一批用户”的。这些方法包括:工具条,hao123,和软件下载站合作等等。Google被屏蔽看作这种行为的反向手法,无论是否百度造就的,至少这个结果导致了百度获得了更多的第一批用户。
在一个基本没有竞争对手的市场上,百度可以"挟流量以令诸侯",这时候,他破坏一部分信息正常流动也不会造成太严重的后果。因为用户毫无比较。
Google 的铁杆用户分为两类。一类是早期用户,这部分用户用过Google,也用过百度。有明确的比较和鉴别能力。他们最终选择了Google。另外一类是专业用户,他们真的发现百度找不到他们需要的东西。这时候Google对比百度的优势大大增加,到达了用户满意程度的临界点,于是这部分用户也选择了 Google。
在中国互联网上,大部分用户偏重娱乐。这些用户很难分辨Google和百度的区别。甚至他们会觉得百度更好一些,因为百度提供了方便无比的MP3搜索。他们一旦先尝试了百度,那么就会留下,继续成为百度的用户。这就是我们今天看到的样子。
3 谷歌做了什么
2006年,Google决定开设中国办公室,并命名为谷歌。这是Google创始以来,最大胆,也是最小心的尝试。他们从来没有过试图进入一个需要过滤某些内容的国家(如前所述,这是阻碍信息流动,同时也背叛了Google的价值观)。
我们可以从一些细节看到Google的小心翼翼。比如,Google.cn是没有Google Account的。用户不能注册,也就没有密码,因此也就没有泄密之忧。后来有人嘲笑谷歌音乐可以用各种帐号登录,但就是不能用Google Account登录。所有需要登录的Google服务都没有进入中国。包括Gmail,Gtalk,Blogger等等等。
Google从进入中国那一天,就给自己设置好了底限。这种底限,就是李开复所说的“总部压力”。
李开复的谷歌,是谷歌,绝不是Google。是一个像百度的外企。
3 个字可以来概括谷歌几年的工作:“倒流量”。倒流量的工作由一系列的合作(迅雷,sina,天涯,265)完成。这和Google的传统做法完全不同,Google几乎不去主动谋求流量,产品质量会解决所有问题。但谷歌必须谋求流量,一个急进,喜欢去大学讲座和写书的职业经理人,不会有创始人那样的耐心慢慢的守着一个市场。这让谷歌越来越像百度。
众所周知,用和对手一样的手段不可能打倒对手。
谷歌推出的最重量级产品,是谷歌音乐。这显然是看到了百度在MP3搜索上获得的好处,意图获得以娱乐为主的用户。当然,鉴于Google全球的品牌,这些音乐需要有版权。我不评价这个产品的好坏,但这显然和Google总部习惯格格不入。难道Google不知道去做一个音乐下载产品吗?难道Google不能去做一个下载站吗?总部不去做,只不过是因为这和价值观不符。
同样的价值观不符,还包括和天涯合作的来吧。之前说过,除了独特的数据,Google不会主动创造内容。以Google的胸怀,可以去索引百度贴吧和知道,并放在结果的显著位置,但没必要自己去模仿一个贴吧出来。这种竞争的水平太低了。
甚至,谷歌把中国访问Google.com的流量"劫持"到了Google.cn,以便提高自己的"占有率"。这件事让很多Google老用户恼火,Zola曾经在某个李开复参与的活动中举手提问,如何才能在中国正常的访问Google.com。
“倒流量”之后,谷歌的市场占有率有所上升。这是应该的。不过,新上升的占有率中,有多少是真正的搜索流量就不得而知了。正如百度搜索和贴吧等产品的比值是个秘密一样。
百度跟在Google后面,而谷歌跟在百度后面。
除了倒流量,谷歌也在“抓收入”。
投放过Adsense的朋友,大概会记得,Adsense的匹配质量越来越差,医疗方面的内容也越来越多。之前经常有人因为作弊被封掉帐号,后来再也没人说过自己的帐号被封。
我07年的两篇blog提到了这件事:
对不起,这是谷歌,不是google
去掉了blog上的google adsense
这两个特点都不是Google Adsense应有的特性。Google Adsense应该是匹配准,不干扰用户,且提供有用信息。时常读英文内容的人会时常看到Adsense广告的匹配相当精确,时而有点击的必要。
离开了这两个特点,可以把谷歌的广告看作一个大的广告联盟。这和拿了很多小网站的Banner的流量去找广告主谈价本质是一样的。在这种广告销售策略下,不需要匹配,不需要杜绝点击欺诈。最舍得花钱投这种广告的,无非是医疗,美容几类。
这几类是最赚钱的部分。不仅对于谷歌,对于百度,甚至对电视台都是一样的。
关于Adsense的故事,可以看看Tiny这篇文章 :我和Google Adsense那点故事
在这5年中,最常被记者们提起的"谷歌困境"就是"总部压力"。在我列出的这些部分,都已经触及到了Google价值观,所以Google必然不满。
有兴趣的同学可以对比一下2005~2010这5年,Google做了什么,谷歌做了什么。你会看到截然不同的项目。虽然结果看起来似乎都是:"市场份额增加,收入增加",Google在这几年,砸实了搜索的基础,扩大了搜索的内容来源和范围,把索引伸向了非数字内容,完成了地图/卫星图/Earth/街景等一系列重要产品,完成了在移动和3G方面的布局。谷歌做了什么呢?音乐,热榜,还有一个抄袭的输入法。
从谷歌存在的那天,我就写过一篇文章,核心意思是:要么把中国当作研发基地,投资,研发,但不运营,要么就干脆去印度开分公司。不幸言中。
4 孙云丰的观点
从商业价值和经济利益方面考量,都可以看出Google的不作恶,并不是作秀的口号。对于一个靠信息有序化赚钱的公司,必须要不作恶才行。百度正好相反,必须要作恶才行。
Google是幸福的,可以把商业价值建立在一个正确的价值观之上。这确实是可遇不可求的机会。很不幸,百度不行。
孙云丰的言论是无法自圆其说的。一方面,他认为Google不是人权斗士,只是个为了利润的市侩分子。另一方面,他又高举社会公平的大旗,宣称百度的道德感。这两者之间有明确的冲突。如果Google只为了利润,那么百度同样不应该有道德可言。
一方面,他宣称自己观点毫无错误,另一方面,他又删掉了自己的文章。有人说删贴未必是他自己的意愿。那么,作为宣称"有道德感"的百度员工,他不应该屈从别人的意见删掉自己认为正确的东西。作为百度高管,不应该允许百度公关去打电话要求别人删贴。
今天有一些百度员工为孙云丰辩护,这些说法同样无法自圆其说。试图证明百度是一家很好的公司,并不能证明孙云丰说的正确。正如纳粹德国有一支很有战斗力的军队,并不能证明希特勒是正义的。他们甚至自相矛盾,认为孙云丰对竞争对手恶言相对是正确的,其他人骂孙云丰是错。如果孙云丰代表自己骂了一家公司,该公司的用户有权回击。如果孙云丰代表百度,那他严重的缺乏职业道德。从任何角度,我也得不出百度员工和前员工的那些结论。
当然,我从来也没认为过百度是一家很糟糕的公司,甚至很多次认为百度正在逐渐变成一家有责任感的公司。遗憾的是,从高管到员工,似乎都没和这家公司一样完成这种转变。
不要以为这次事件打击了Google在中国的份额就幸灾乐祸,事实上,中国的互联网市场消失了。这和市场份额无关,和宏观形势有关。这个国家温情脉脉的互联网时代就此结束,就好比IT精英们看不起的那些传统生意人一样,慢慢被兼并,重组,消亡,剩下的那一点,会被扫倒利润微薄的边边角角。就好比,你家楼下菜市场那个可怜的菜农,守着那一点点收入,还要担心城管。这是这个行业中每个人的悲剧。
Tinyfool说:百度的矛盾在于,Google的成功是他在全世界资本市场受宠的原因,但他们可能无时无刻不想google死掉会更好。在全世界范围内,这是不可能出现的,现在在中国出现了,他们真的会高兴吗?
Google 给我们的最大价值,除了信息流动加速,就是信息永存。当我写完这篇blog,发布在我的blog上,按下"发布"之后的几分钟,各种蜘蛛就会蜂拥而至,把这篇文章复制若干次,存在这世界的各个角落。这文章即永存。无法被某个组织控制或删除,也无法阻止其流动。公关公司不行,某个国家政府也不行。孙云丰的言论,和百度其他员工的言论,也将和这篇文章一样,被永存,成为历史的一部分。这是我们热爱Google的原因。
现在,我要按下发布按钮了。
我第一反应就是电脑中了病毒, 打开杀毒软件扫了一遍,什么都没发现。
想想了,难道是我使用了代理上网?代理自动连续的发送了请求。检查一遍IE设置,也没问题。
又想了想,难道真如很多网友所说的是IE自己的问题?我于是安装一个谷歌浏览器,问题依旧。
然后就是想尽了法子,清空IE缓存,清除上网历史记录,用360修复IE……
无解…… 依然是一输入关键字,一点搜索就弹出那样的提示!
纳闷,抓狂,自己身为一个程序员,这点小问题就解决不了??
静下心了,仔细想想,谷歌的提示再明白不过了,应该是有人对我的数据感兴趣,中间拦截了我的请求数据,再转发给了google.那是谁在网络上拦截了我的数据呢??在链路层拦截???不太可能,这个技术含量太高深了。在IP层拦截??这个是有可能的,任何一份IP数据报都携带了我的IP地址和我请求的信息。应该就在IP层拦截了。问题想明白了,就好办了,我直用VPN连接,看你是不是还能拦截。使用VPN后,谷歌果然给我很快的打开了搜索页返回了N多结果给我。这就证明,我所在的局域网内是安全的,拦截应该在ISP服务商的路由器上。
问题基本解决,我就想,是谁对我的搜索数据感兴趣呢,一般的人绝对没那个能力去做这样的事情。突然,我想起我昨天搜索的几个关键字“何清涟”“雾锁中国”“钟海涛”等等,这些关键字应该都是我们党不愿意让我们去搜索的……明白了,捣乱的人是国家安全部人,一定在通往谷歌服务器的路由器上做了手脚,在这一层监测什么人在搜索一些什么信息,肯定背后有一个庞大的敏感字段的数据库,若是某个IP请求的字段与这个数据库里面的匹配,他就会自动记录下来,若是你被记录的次数多了,呵呵,就像我一样,他就要重点关注你了,可能就是捕获我的 IP数据报,再给谷歌发一份或几份一模一样的数据报过去,于是就有了我的请求被谷歌服务器拒绝的原因,因为谷歌觉得数据有异常,可能是恶意的软件所发的自动请求。在这点上,我很佩服谷歌,不知道他是怎么检测出来的。我打开百度就没这回事,可能安全部门在这个监控程序直接装在百度的服务器上了,而谷歌是外资企业,去人家服务器上装这个东西,谷歌可能不干……
想到这里我浑身激灵了一下,特务真TMD的厉害啊。幸好现在IP地址在我们严重不足,我们上网需要一个NAT转换,所以我断开了一下我家里的路由器一会,再联上,ISP那边的路由器就会重新给我的路由器分配一个映射端口,这样就避开了安全部门的监测。若IP6真的普及了,我完全可能分配到一个公网固定的IP,如果不用代理,那我就完全被盯死了,若加上实行IP和身份证绑定,密钥全部要在某部门备案…… 我不敢想了,呵呵 ,那样我就完全没自由了,网上再无秘密可言啊。(听说金盾工程第二期就是做这个事情……)
唉,想想还有有点怕,幸好我没做什么坏事,只是搜索了一些敏感信息,满足一下我的好奇心……
以上是我对安全部门网络监察的一点猜想,呵呵
