二手车频道b5版本升级

  二手车频道b5版本已经升级上线,主要针对某些用户利用灌水程序大量发布重复信息,开发了一套防灌水系统。我们所做的各项改进、升级,其本质还是为了提升用户浏览中国汽车网的体验。所以借助我们的产品博客,我再次强调一下,我们对用户体验有着极高的重视度,频道内任何不文明的行为,我们坚决会打击到底,而且力度会逐渐加强,惩罚也会愈加严厉。

  希望之前有过类似大量重复灌水行为的用户,眼光放长远一些,文明使用互联网,为其他网民创造一个和谐、安静、干净的空间。如此,越来越多有二手车购买意向的网民愿意加入到二手车频道中来,而这又意味着什么?意味着您的车源信息能被更多网民所关注,成交几率自然也就有所提升了。

  这次上线的灌水系统,不代表我们的打击封堵告一段落,这只是一个开始,当然,我们更希望这套系统“终日无所事事”,那将是我们非常愿意看到的:)

二手车频道b4版本升级

  二手车频道b4版本昨天已上线,这次我们主要针对二手车估价做了调整。

  原先我们的估价模块采用一套车辆残值算法,主要以车辆使用年限作为因子进行计算,但是,决定二手车整车估价的因素是比较多的,也没有特定的、精确的公式作为业界的标准。

  二手车估价师与估价程序的主要区别在于,估价师拥有极为丰富的估价经验及实车检验的条件,而程序从条件上,是无法达到的。然而,即使同一款车源,不同的估价师的估价结果也可能有所差异。

  作为提供网上免费估价平台的我们,可以对估价程序不断地优化升级、力求估价程序计算的结果接近于市场价格。

  这次优化调整是我们迈出的第一步,我们又引入了一套新的估价公式,车辆的行驶里程作为估价因子被计算在内,事实上,二手车买家对于二手车源的行驶里程还是比较关注的,毕竟它反映了车辆的实际使用程度,所以,行驶里程参与估价计算,将会更客观、准确地反映出整车价值。

  所以目前二手车估价是由两套公式同时计算,再进行一系列的平衡修正,尽可能地减少偏差波动。

  另外,我们把二手车频道程序的版本号“藏”在了频道首页,大家不妨找找看:)

二手车频道B3版本升级

  随着每周一个版本的周期,二手车迎来了B3版本的升级,本次升级主要在以下方面做了调整:

  车源发布、修改提交时的验证码:互联网上存在一些个人或企业,利用机器人软件大肆发布重复的信息,不论这些信息本身是否可靠,以刷屏方式进行业务的推广,给网站用户带来较差的用户体验。我们认为,车源信息的质量至关重要,二手车频道旨在给用户带来高质量的车源信息及良好的用户体验。因此,我们决定对上述两种操作加入了验证码校验的步骤,进一步提高频道内车源信息的整体质量,给用户一个清净、干净的浏览环境。

验证码截图

验证码截图

 

  增加了独立的估计页面:之前在车源发布步骤过程中,后台程序会根据用户填写的车源信息,实时地在后台进行估价并呈现给用户,给用户一个定价的基本参考。在B3版本中,我们在车源发布过程中保留了这个功能,同时将这个功能独立了出来,放在一个页面中,方便用户使用该功能。

二手车估价页截图

二手车估价页截图

  增加“相同价位车源”模块:在车源信息详细页中,我们增加了“相同价位车源”模块,该模块内会判断用户当前浏览车源所在省/直辖市及价格,自动从车源信息库中搜索出6条同一省份(直辖市)、价格较接近且人气较高测车源,并呈现给用户。不仅将用户可能感兴趣的车源信息主动推送给用户,更可以让用户有一个比较和参考。

 车源详细页截图

 

 

  搜索频道的整合:除了二手车频道内提供的筛选方式的搜索外,我们还在搜索频道内整合了二手车源信息的全文搜索功能,用户可以在搜索频道通过全文搜索的方式进行车源的搜索。

搜索频道首页

搜索频道首页

搜索频道二手车搜索结果页

搜索频道二手车搜索结果页

  B4版本即将推出,请大家密切关注。

搜索频道v3.8升级

  搜索频道此次阶段性的升级终于和大家见面了。

  此次升级,由于构架的调整,将在一定程度上提高搜索的性能。并且,在这次的升级过程中,改善了大家较为关注的报价搜索,结果全部指向买车频道的最新经销商报价信息,在效率和准确性上有了进一步的提高。

  搜索首页报价搜索标签下的高级搜索,现阶段暂时取消了原高级搜索的功能,取而代之的是一个指向买车频道搜索页的超链地址。

  此次升级还添加了用户关注的二手车搜索,信息全部来自二手车频道的第一手资料。

  至此,现阶段的搜索分类已经扩充至以下五个了:新闻、车型、报价、二手车和社区。

  下一阶段的改进工作我们仍将努力,呈现给大家的将是更加完善的搜索。

二手车频道B2版本升级

  二手车频道我们采用一周发布一个build的方式进行项目的开发与更新,此次更新的B2版本,在页面设计及一些易用性方面做了适当的调整与优化。

二手车频道首页截屏

二手车频道首页截图

  从频道的首页截图中大家可以发现,我们更新了频道导航栏菜单的样式及菜单的顺序,对于车源搜索这里的下拉菜单,也把省辖区内的城市进行了隐藏,只有当用户选择了省份之后,城市下拉菜单才会进行呈现。对于“推荐车源”这个模块,我们增加了一行推荐车源,是用户可以在首页看到更多的推荐车源。

车源搜索页面截图

车源搜索页面截图

  在车源搜索页面中,我们加入了“重置搜索条件”的超级链接,方便用户清除目前所有已选择的搜索条件,而对于用户已选择的省份或直辖市,我们调整了右侧边栏中呈现的内容,由原先的“最近浏览过的车源”调整为“相关车源”,此模块内将会根据用户选择的省份/直辖市,将该省份/直辖市内被其他用户查看次数最高的6款车源信息推送给用户。
  在“我的车源”页面中,我们采用了MutilView选项卡控件,当用户进入该页时,默认选中的选项卡为“当前在售二手车源”,在B1版本中,用户如果在“已下架车源”选项卡中进行翻页,则页面刷新后,默认选项卡会移至“当前在售车源”,因此在B2版本中,我们对此进行了调整与优化,程序将会记录用户当前选中的选项卡,已保证用户使用的流畅度与舒适性。
  根据项目进度的安排,我们在本周将会把二手车频道升级至B3版本,届时会加入新的功能,并进一步提升用户体验,敬请大家关注。

小团队网站项目开发方法探讨

最近在做实验,看怎么样才能够提高小团队的的项目开发效率。我碰到的场景,相信很多互联网公司也会碰到,在有限的时间、有限的资源情况下完成一个项目,并且在一定时间范围内升级功能达到具有竞争力。

这里定义的小团队是有一个项目经理,1-2个程序员,1个网页设计,测试则是不同项目组交叉设计。

原来存在的问题:

1 团队之间口头沟通多,书面沟通少,项目开发到后期发现会遗漏一些重要功能或者出现原来想到的问题。
2 页面设计和程序开发发生死锁,导致进度受到影响。
3 功能设计描述不清,造成页面设计和程序开发理解上的歧义。
4 测试时间的紧张造成没有很多时间和资源进行错误修正,影响产品质量。
5 由于进度始终不能如期完成,总是有项目的特性没有完成,造成团队疲惫,没有成就感,影响士气。
6 产品开发无法达到设计期望值,所以无法和竞争对手拉开差距,影响公司整体战略。

我再借助一下“敏捷开发”这个术语,下面的方法绝对不是真正的敏捷开发,只是觉得这个词可以很好的描述我要表达的意思,当然也可以称呼为“有效率的逼迫性的按照时间管理的项目基于有限资源的小团队开发方法”

首先是准备工作:
1 通畅的电子邮件系统,因为大量的消息将通过电子邮件来传递。这一点我仍然不满意目前自己团队使用的的系统,我理想中的电子邮件系统是google mail企业版,免费,并且7G的容量,加上google日历和文档共享,足够小团队使用了。不用再担心自己的邮件服务器什么时候会出问题,google 日历可以和很多中应用同步,不管你是windows,还是leopard或者iphone。

2 trac。我一再推荐使用trac来管理项目特性,简洁有效。除了安装稍微有点麻烦,基本没有缺点,基于sqlite数据库,便于管理。trac支持多人多项目的管理,可以有效的非配工作,不需要再手工写工单了,当然也不需要昂贵的ms project了。trac是免费开源的软件。

3 svn。不用再说了,如果主要还是基于windows开发的话,暂时不要去想git了,用svn足够应付小团队开发所需要的版本管理功能,加上强大的windows桌面端tortoiseSVN的话。

4 im工具,推荐使用msn或者gtalk,后者的好处是所有的对话都会存盘,便于以后搜索。如果你使用的mac的话,那么只有adium了,足够了。 windows的话除了原生的那些im程序以外,推荐pidgin,除了可以集成多个聊天帐号以外,还可以支持otr加密方式,这样windows、 linux下的pidgin+otr和adium(本身自带支持)之间的对话都将是加密的,基本不能窃听。

开发工具项目不同,各有所长,这里就不说了。

现在说说我设计的开发流程,先来说说要达到的效果:
1 目前设定所有项目在每周可以发布一个build版本,除了第一个b1达到最基本要求以外,之后的b2、b3等等要每周增加需要的功能,功能可能来自用户,可能来自市场竞争所需。
2 每一个build包括功能设计、特性分解、可行性分析、页面设计、程序开发、功能测试、整体测试。
3 根据项目需要完成的指标,一般网站来说,无非是用户数(包括用户活跃度等)、pageview(包括uv)、商品(条目)数量、成交情况等,每周根据数据情况来调整本周build的功能和优先级,来尽可能的完成既定指标。

所以前面说这是一种逼迫式的开发,对于项目管理的要求很高,这不是传统上用个project画一个甘特图就可以的,而是时间和资源的限制,效果的逼近。

目前在公司里,有两个项目采用了这样的方法,刚刚开始不久,还不能说取得很好的效果,不过感觉已经比以前效率高了。

整个方法的实施过程如下:

1 每周一开会讨论本周build要完成的特性,并估计下一个build要做的特性。本周build特性一般在10个以内,排好优先级顺序,按照1个程序员 3-4个人天来计算。下一个build甚至后一个build的特性确认主要是列出必须做但是在本周肯定来不及实现的功能,这样可以根据之后的数据分析来再次客观的评估是否这个功能真的是”必须”,或者实现的细节有否和初衷有所差异。另外,这样可以让整个团队从产品角度清楚自己项目在本周会做到什么样子,下周什么样子,对于功能设计、数据监测、测试、市场推广都有益处。一般开会时候要确认项目上线时间和相关工作计划,主要是数据是否有升级、服务器部署是否有问题、数据监测方法、测试计划以及最重要的运营安排。

2 开发,这个就和一般项目没有什么区别,按照规划好本周要完成的特性的优先级进行,所有重要的沟通全部用邮件进行,项目经理需要在最快时间内响应需要决定的事宜,并有可能去调整特性优先级、build特性规划等。

3 bug and fix,当项目在运行的时候,会暴露出诸多小问题以及一些可以改进的UI、UE和功能点,为了不影响原来build在本周设定的目标,这些一律归到bug and fix这个trac上的milestone。然后区分几种情况:

致命bug:立刻修改,因为已经在运行了,所以需要立刻修改。
提升UI和UE:根据本周工作量,纳入本周的build或者下周的build,在下周一的会议上提出。
功能优化:在下周一的会议上讨论,原则上本周build不考虑。

凡是完成了的bug and fix都在close后注明是在哪一个build完成。

4 测试,测试通过邮件做内部测试,一般没有时间和资源做广泛的外部beta测试和用户面对面访谈,就只好不同的项目小组交叉测试了。测试人员可以当着项目经理或者开发人员逐一支出问题在哪里,这样便于项目经理描述问题。所有发现的错误和问题记录到上面的bug and fix,致命错误由开发人员立刻纠正。

5 发布,一般每周四开第二个会,决定是否进行发布,以及发布中可能存在的各类问题,当一个项目进行到build3之后,一般发布上也不会有太多的数据迁移和运营准备要做了。发布前做好数据备份当然是必须的,同时视情况调整产品运营手册等。周四的会基本上也可以知道本周的工作量完成情况,再思考一下,下周一又要开始新一轮的build了。

6 竞争对手分析,如果是竞争性产品,项目经理要有很清楚的产品路线图,以周为单位来知道自己负责的产品目前和竞争对手差距在哪里,若干时日之后,还有多少差距。一般得不到竞争对手的数据,所以各类数据只好自己进行监测和目标设定了。当你的产品经过一年50个build的发布,我想竞争对手日子会很难过了。如何针对竞争对手设计产品,我还有一个曾经在2004-2005年获得收益的”半盲法”,以后再分享。

基本流程就是这样,实际实施还有很多细节,比如文档管理、设计标准规范、开发规范、对于销售的支持和响应带来的影响、矛盾的功能如何平衡、怎么进行数据分析(怎么看懂google analytics)、设计、开发、测试、运营的同步和异步操作等。之后慢慢再讨论。

小团队的项目开发,还有一点就是士气和团结,不团结的团队,没有士气的团队,不喜欢互联网的团队,那么就算有再好的方法,也是无用的。这个话题已经超越项目管理的范畴。

(以上经验得益于诸多前辈:winamp开发小组、微软以特性列表为核心的项目开发管理、Borland早期Delphi和JBuilder开发成功的经验等)

网站LAMP架构的优势

这个话题很大,大到可以写本书出来,因为它涉及到操作系统、web编程语言、数据库、web服务器等等方方面面的比较。

当然,在这里,我只能去简单的描述下LAMP架构的优势到底是什么。

首先解释下什么是LAMP?LAMP是Linux操作系统、Apache作为Web服务、MySql数据库及Php开发语言(Perl有时候也被列入其中,但实际上现在用perl做web开发语言的已经非常少了)的缩写。

有比较才能有鉴别,既然是分析LAMP架构的优势,我这里用于比较的是国内用的比较多的另外一种架构:Windows操作系统+IISweb服务、asp.net开发语言(C#/VB.NET)、MS SQL SERVER数据库。

第一个优势是LAMP架构成本低廉。LAMP均为开源产品,只要遵循GPL协议,可以自由获得和免费使用,极大降低了部署成本。而服务器上常用的windows 2003 server、MS SQL SERVER2005、用于asp.net开发的编辑器Visual Studio 2005的费用不菲:

Windows Server 2003,企业版
Windows Server 2003简体中文企业版 \开放式许可 \¥39946
Windows Server 2003简体中文企业版 \2年软件升级保障 \¥19973
Windows Server 2003简体中文企业版 \开放式许可+2年软件升级保障 \¥59919

正版MS SQL server2005
工作组版
1 处理器许可证 ¥45,806 服务器用户/设备增加客户端访问许可证(包含10个客户端访问许可证) ¥18,048

标准版
1 处理器许可证 ¥71,034 ; 服务器用户/设备增加客户端访问许可证(包含15个客户端访问许可证) ¥40,969

微软系列软件开销如此之大,LAMP的第一个优势实在是非常的明显了(有些人可能会说,盗版也不花钱,对不起,我不鼓励使用盗版,同时,如果你希望你的网站做大做强,是不可能一直使用盗版的,微软的律师信随时会寄给你)。

第二个优势是LAMP架构的灵活性更强。开源就意味着整个架构的源代码你都可以去做适合自己的修改(部分开源协议要求不得用于商业途径),这一点是微软系列的架构无法比拟的。整个架构既没有技术上的限制也没有许可证的限制。这允许你能够以适合你的方式灵活地构建和部署应用程序,而不是以你正在使用的技术的提供商规定的方式。

第三个优势是LAMP架构的个性化更强。已经建立了大量的额外的组件和提供额外功能的模块,能够让你个性化设置组件和功能以便满足你的需求。

第四个优势是LAMP架构更容易开发。相比ASP.NET作为web编程语言的PHP代码更加简洁,由于有大量成熟的模板技术存在,使得功能和界面分离非常容易,有利于团队开发。同时,PHP本身也在跟随互联网技术的发展的需要而在不断升级,一些需要用复杂算法才能实现的函数已经内置了。另外,和asp.net不同的是,PHP不需要编译即可运行(当然,你也可以编译加密后运行),对于PHP代码的后续维护提供了便利。而PHP开发环境下的框架逐渐也丰富起来,有Zend FrameWork、CafePHP、ThinkPHP等等,我有个同事也写了篇关于Zend FrameWork开发的文章

Zend Framework的MVC设计模式在二手车频道中的应用

  Zend Framework(下称ZF)是由Zend公司推出的基于PHP语言的开发框架,旨在帮助开发人员能够高效、迅速地开发满足企业业务的应用,并且应用内部保持良好的层次结构。

  此次二手车改版项目,我们就采用了ZF框架技术对二手车频道进行了重构。

  ZF框架要求开发人员遵循MVC的开发模式,什么是MVC开发模式?

  MVC由三个英文单词的首字母组成,分别为Model(模型)、View(视图)和Controller(控制器)

  Model在应用中,可以看作是数据存储层,负责对底层数据的各项操作,通常这类操作,不会涉及到业务逻辑及特定的数据格式,以保证这些数据能被其他各个控制器调用,减少了重复开发的工作。

  View在应用中,可以看作是前端表示层,负责对用户请求的数据及人机交互等界面的呈现。简单的概括,就是用户所看到的前端的网页页面。

  Controller在应用中,可以看作业务逻辑层,负责处理各种业务逻辑及业务规则,是Model及View的中间纽带,是整个MVC模式的核心。

  在ZF的MVC模式中,有一个最为核心的控制器,称为FrontController(前端控制器),它负责判断用户请求的页面,并通过ZF内部的Router(路由器)的路由规则,将用户的请求Dispacth(分发)到对应的Controller,接到FrontController的Dispatch通知,对应的Controller则开始通过调用Model来获取或处理业务中所要涉及的数据,处理完毕后,将这些数据传递给View,并开始Render(渲染)View,最后带有逻辑规则的页面便呈现给了用户。

  由上述开发模式,我们可以发现,使用这种开发模式,使得无论是程序代码层次、业务逻辑层次,都非常清晰。代码的重用性得到提高。对于参与项目二次开发的开发人员而言,不必迷茫于庞大的函数库,以及可能混杂于页面中的业务逻辑关系。修改哪一个页面,只需找到其相应的Controller,修改其中的业务逻辑代码,即可迅速地对业务逻辑进行调整,而不会影响到其他页面的业务逻辑,因为ZF的MVC模式推荐以页面为单位,将Controller进行划分,即每一个页面,都有一个Controller、View和Model。

  以我们二手车频道中,车源搜索为例,介绍一下ZF的MVC的具体工作模式。

  首先在车源搜索对应的Controller中,有一个默认的方法,该方法的功能为“显示用户不加入任何搜索条件所呈现的页面”。而这个页面中,所呈现的数据,并不是这个Controller具体负责抽调的,而是该Controller负责通知对应的Model,在数据库中进行查找,Model将查找出来的结果,以数组的方式返回给Controller,Controller再将数组传递给View,View在进行呈现。

  当用户点击了某一项搜索条件之后,这个搜索条件将会最先传递到Controller,Controller会对参数进行分析,进行一定的业务逻辑处理,随后通知Model,让Model去按用户选择的搜索条件在数据库中进行数据检索,检索完毕后,再将数据以数组方式返回给Controller,Controller再传递给View,View对数组内的数据进行拆分,于是用户就能看到经过筛选过的搜索结果了。

  从实际的工作流程中,我们明显的发现数据流是按照一定的规范和约定进行流动的,View与Model间,没有数据的传递,任何数据、参数的传递,均由Controller统一调配处理,如此清晰的层次,确保了MVC中各个模块井然有序的在自己负责的业务范畴内工作,对于程序的错误,也能进行迅速、精确的定位。

  使用ZF的MVC模式进行开发的项目,我们遵循以下项目流程:

  1、PM对业务规则进行收集及明确、项目需求及特性的确定。

  2、PM划分项目的各个Build(内部标号),对当前Build内,各个需实现的功能模块及其描述,在Trac系统中逐一输入,并根据工作职责,指派给不同的项目人员。同时,建立一个Bug & Fix的Milestone(里程碑),对于项目开发中,或后期测试阶段暴露出来的各种问题及bug(程序漏洞),进行跟踪管理。

  3、PM画出各个页面的设计草图,网页设计师根据设计草图开始设计页面,并对已完成的工作,在Trac系统中进行及时更新。

  4、程序开发人员,根据项目需求,划分出项目中的公共模块及非公共模块,根据模块的权重,逐一进行开发,对已完成的工作,在Trac系统中进行及时更新,通过SVN系统进行源码管理。

  5、PM每天查看Trac中,跟踪各个模块具体实施的进度,并根据项目结项日期,对在本Build内来不及完成的功能模块,向上汇报,得到批复之后,移至下一个Build中实现。

  6、页面嵌套,将开发完毕的程序与静态设计页进行嵌套。

  7、Alpha测试,测试小组对项目进行内部测试,测试结果反馈至Trac系统中的Bug & Fix中,PM根据它,再指派给具体修正人员进行项目修正。

  8、Beta测试,较大规模的线上测试,测试小组根据Alpha测试反馈在Bug & Fix中的条目,重点进行再测。

  9、各项规范的最后检查,如页面Title标签、页面关键字、统计代码、页面编码等。

  10、项目上线。

  11、项目小组开始研讨并部署下一个Build的相关工作。

二手车频道栅格系统

  根据网站的实际情况,并经过一系列的尝试,我们目前在部分页面使用28列970栅格系统。以期使页面中模块尺寸更具规律性,提高不同页面布局的一致性,达到节约设计制作时间、提升用户体验的目的。

  在最近正在进行的二手车频道项目中,我们也使用了这套栅格系统。页面横向分隔为38个栅格单元,每个栅格单元宽度为35px,栅格间隙为10px。下图就是在二手车频道中较多出现的左右两列布局。左侧栏占用19个栅格单元,宽度为655px。右侧栏占用9个栅格单元,宽度为305px。

二手车频道栅格系统

二手车频道栅格系统(图1)

二手车频道栅格系统(图2)

二手车频道栅格系统(图2)

  在此次的页面设计中,也存在一些缺憾是需要总结和注意的。由于页面内容决定了高度的不确定,所以在高度上并没有考虑使用栅格系统。页面中,如以单个或多个模块为单位局部的来看,也没有使用栅格系统。

  虽然栅格系统的布局尺寸没有绝对的规定,但是目前使用的28列970栅格系统的确不是非常合理。在经过一些项目的实践与分析后,我们会站在整个网站的高度,对栅格系统做进一步的优化,与之配套的还有 UI/UE、js、html及css的严格规定,最终形成一套完整的可持续发展的规范。届时再与大家共同分享。

搜索频道v3.7改版了

  搜索频道在较长的时间里没有做大规模改进了,此次的改版仅是一个开始,是一个阶段性的升级。

  从此次改版中可以看到,搜索的速度更快了,准确性更高了,操作更加简便了,页面风格也完全统一了,一些按钮的布局及功能性设计也更加的趋于合理。

  搜索的分类整合为:新闻、车型、报价和社区。

  新闻搜索,将两种排序方式整合在了同一种界面下,使用户不再因迥异的界面而产生歧义或减少思索的时间。

  车型搜索,配合新版的车型数据库上线,所有车型的搜索结果同步更新至最新的车型内页。

  报价搜索,长久以来一直是用户最关心的内容,也是被用户使用最多的一项,此次暂时未做调整,留待下次揭晓。

  社区搜索,整合了目前线上的UCHome、Discuz,以及博客、论坛和相册等用户关注且可直接参与的频道。

  感兴趣的朋友可以到这里看下。