JavaEye技术网站创始人 范凯( 二 )

velocity/freemarker那样的页面模版库,所以写helper动不动要用字元串去拼html片断,如果是特别複杂的view需要拼的话,代码就会写的很丑陋 。当然总体来说,RoR还是让我感觉非常满意的,特别适合网际网路套用 。做网际网路产品的节奏感从无到有刚开始做一个网站或者一个产品,要非常聚焦,没有旁的多余功能,只有一个做的极其牛X的核心功能,牛X到别人没有办法模仿你,于是网站开始崭露头角;等核心功能成功以后,网站开始声名鹊起,为了扩展用户规模,产品开始多元化,各种各样时髦功能,各种各样用户要求的功能纷纷上马,于是用户规模开始快速扩张;等用户规模已经起来之后,开始聚焦商业目标,于是删繁就简,开始砍掉与商业目标不符合的枝节功能,加强和商业目标符合的核心功能,网站进入健康的商业循环;大部分网站都可以做到第一个阶段,但其中大部分都会倒在第二个阶段,而迈过第二阶段能够做到第三个阶段的就凤毛麟角了 。到了第三个阶段,一个产品才真正开始成熟起来,才具有顽强的生命力,在IT垂直领域里面,JavaEye处于第二个阶段,需要向第三个阶段转变 。也曾经盲目的想把JavaEye的规模做到行业最大,于是上了各种各样的产品和功能,很多都没有细化和雕琢,现在想来都有些多余,而符合商业目标的核心功能又用力不足 。现在总算想明白一个道理:规模最大又如何?还是不赚钱 。所以接下来怎幺做就很清楚了 。另外一条思路是做平台,网际网路的未来生态系统肯定是由平台和内容提供商构成的,你要幺做平台,要幺做内容提供商 。但在IT垂直领域,用户规模和市场空间过于狭小,平台没有足够的空间生存,所以这条路不通 。不要企图做大而全的门户,不要企图做无所不包的平台 。定位好目标,不要做无关的功能,突出符合商业目标的核心功能和产品,足矣!思维方法范凯是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程 序的时候感觉很彆扭,因为我早以习惯用C来编写程式,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的牴触情绪很强 。范凯对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程式,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎幺下手,一不小心,又会回到原来的思路上去 。举个例子,要发广告邮件,广告邮件列表存在资料库里面 。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连线资料库,循环取邮件地址,调用本机的qmail的sendmail命令传送 。然后考虑用Java来实现,既然是OOP,就不能什幺代码都塞到main过程里面,于是就设计了三个类:一个类是负责读取资料库,取邮件地址,调用qmailsendmail命令传送;一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;一个主类负责从命令读参数,处理命令行参数,调用发email的类 。把一件工作按照功能划分为3个模组分别处理,每个类完成一件模组任务 。仔细的分析一下,就会发现这样的设计完全是从程式设计师实现程式功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的 。因此在设计的时候,就已经把程式编程实现的细节都考虑进去了,企图从底层实现程式这样的出发点来达到满足现实世界的软体需求的目标 。这样的分析方法其实是不适用于