电子商务系统osCommerce评测

1. 简介

osCommerce,大概是最有名的源代码开放的在线电子商务系统,拥有众多的功能和丰富的插件,被很多在线商店采用。这是德国人2000年开始开发的一套基于PHP+MySQL的系统。

2. 评测

该系统在设计上是一个相当糟糕的系统。

该系统最糟糕的一点在于页面和程序是不分离的(或者说显示层和业务层是揉合在一起的)。这个缺陷是一种非常典型的重大的设计上的缺陷。

osCommerce系统设计的糟糕程度从一开始就表现出来了。在2001年的时候,它的管理系统和客户在线业务系统就是互相分离的2套系统,而且其中的管理系统缺乏相应的身份验证和身份管理机制(很难想象一套web开源系统能够这样子设计)。

该系统目前最新的版本是v2.2(里程碑2),发布于2003年7月左右。很容易理解为什么最近2年来该系统没有再更新了,因为设计上的缺陷导致该系统“没法”更新了:如果要更新的话,只能像别的很多系统一样,完全推倒以前的设计重新来过;但是这样一来,原先很多别的使用者、程序员开发的第三方模块都无法再用了,更何况,我们可以想象以osCommerce现有的技术团队的实力是不堪此重任的。

作为一个技术人员来讲,不值得在现有的osCommerce这样设计糟糕的系统上做二次开发;而osCommerce想要进一步发展,则必须推倒现有的,重头开始。

3. 编后语

很难想象,一贯严谨的德国人居然会开发出这么一套著名但却又内部设计丑陋的系统,虽然他们赋予了这套系统很丰富的功能。前2天,osCommerce应邀在德国慕尼黑举行的“2005互联网大会”展示osCommerce系统并作相关演讲,我不由得在想,这样一套让内行看了不得不“摇头”的系统,也好意思继续拿出来招摇撞骗?

盛名之下,难符其实。

Deminy第一次接触osCommerce大概是2001年。当时很欣喜地发现居然有如此功能完善的免费电子商务系统,以至于一年后Deminy把它略加改造,作为公司员工的订餐系统使用。但其实,在过去的几年中,Deminy一直没有对这套系统进行过深入的研究,而只是一直想当然地把这套系统想象成一套可靠的、健壮的系统。因此,Deminy曾多次向打算开展在线业务的朋友推荐该系统,并也曾数次打算在该系统的基础上创建自己的在线电子商务系统。直到大约2个月前,当Deminy准备基于该系统开发一套自己的电子商务系统的时候,开始深入地研究该系统的结构、代码的时候,才第一次真切地发现:该系统在设计上是一个相当糟糕的系统。

对此,Deminy对自己以往在评估、使用osCommerce过程中所表现出来的主观主义、经验主义等行为表示惭愧。


[补充说明] 接后文“对‘电子商务系统osCommerce评测’的补充”。

类别:

评论

关于“电子商务系统osCommerce评测”,有没有试图分析其如此糟糕的原因?如你一样,我也觉得惊讶,严谨的德国人,adoption rate又是这么好的一个系统。

还有,如何在你的文章下面直接留言,现在留言似乎很麻烦,还要特指是针对哪一篇文章的。

当你没有更好的选择的时候,你只能选择它。就像以前大家都受尽了拨号上网的折磨,但是还是只能接受它。

对你的问题的相关个人思考见““<a href="/msg/blog/0000/00000674.php">对‘电子商务系统osCommerce评测’的补充</a>”一文。

其实我写“<a href="/msg/blog/0000/00000673.php">电子商务系统osCommerce评测</a>”一文动机主要还不是批评这样一套系统,而是检讨自己的主观主义、经验主义等缺点,因为我之前我也没有细想到这么著名的系统会有这样糟糕的设计方面的问题。

“<a href="">关于开设本站Blog的评论功能</a>”这个问题我已经很认真地考虑过,但近期很忙,没时间增加该功能。会争取在明年春节前解决这个问题的,目前暂时只能用我回复的时候以注解的方式来解决这个问题。

很遗憾在这里看到有人这样评价oscommerce,就我个人看来deminy所认为的致命的缺陷正是osc完美的地方,deminy认为osc不能很好的做页面和程序的分离,不适应做模板.这个首先应该考虑当时岀的时代,那个时候模板分离的技术远没有当今这么普遍.就osc的结构而言,作者很多工作相当与做了一套模板.我曾经做过一些osc转smarty的工作,发现他的程序其实非常的容易转成smarty的模式.而且我觉得本来就没有必要每个想要架站的人都能自己改模板,这就好像一句话说的,如果你想座辆车,难道还要自己做轮子吗.更何况osc里面的目录结构等都是值得现在程序员学习的,如果说osc不好的话,真不知道什么样的才算好了.

仁者见仁,智者见智。我尚未决定改变我的相关看法,至少,我非常懒于去做二次开发工作,尤其是那种缺乏“向后兼容”特性的二次开发工作。

也就是说,我不愿意哪天osc升级的时候,我被迫要对我二次开发后的代码做较多的修改以适应升级后的osc。

补充3点:

1. 我认为(几乎)任何一款软件/程序未来都需要升级,没有绝对稳定的软件/程序。osc也不例外。

2. web网页模版技术最近几年我没有见到有什么明显的的变化、改进或突破,暂不能理解“那个时候模板分离的技术远没有当今这么普遍”的具体含义。我对模版运用有一个根深蒂固的、不变的观念,正文中已经表达过了。

3. 我尚未使用、测试过另外一款著名的电子商务软件Zen Cart。未来几个月内会测试一次。

1.我没有说他不需要升级,但是目前的版本确实没有发现明显的bug,这比起国内许多所谓高手,牛人做的千窗百孔的系统不知道要好多少.
2.我不知道你说的模板是什么意思,你知道smarty吗,你会用吗?
另外你说你不需要对osc做2次开发,我想这就是你觉得osc不好的重要原因,如果你看过osc里面的源代码就会发现他是非常容易扩充的.我不理解你说的向后兼容是什么意思.
世界上没有十全十美的东西,但是你如果仅凭一点就把osc说的一无事处,未免显的太无知了吧.

我不想老讨论这个话题。

1. 一个bug少的系统,不一定代表是一个好的系统。本站目前的“任务列表”使用的是开源程序“TaskFreak!”。我很中意这套系统,几乎找不到别的更适合的了,但是在我的评价中,这套程序从技术/设计的角度来讲:比较糟糕!

http://www.deminy.net/blog/archives/3802-y.html

2.你说osc “非常容易扩充的”,部分技术人员也许也会这么说。首先,我个人并没有发现、认可这一点(关于什么是“容易”,我们的看法不一;我也懒得再去测试、阅读代码了);其次,但一个好的系统,也许不需要其它技术人员在上面做很多的二次开发。

我不细讨论了,就举个例子吧。我认识部分懂技术的朋友用osc,几乎无一例外地需要在上面做“二次开发”,但是,如果他们不懂技术呢???……

这样一套开源系统需要别人在上面不断地做二次开发而本身却无法更新到下一个版本,本身就说明这套系统设计上有问题。请你好好读读我相关的文字,当然,我们是无法取得共识的。

你也许会觉得我这一段说得虚,那么,就当我错了,我不想老扯这个问题。我已经说过了,“至少,我非常懒于去做二次开发工作,尤其是那种缺乏‘向后兼容’特性的二次开发工作。”

3. 关于我对Smarty的理解,请用Smarty作关键字在本站搜索一下,看看我对Smarty的理解到底是比你高还是比你低。在你没有做调研之前,不要井底之蛙一样说什么“你知道smarty吗,你会用吗?”,很无聊。

4. 关于我对PHP和web开发的理解,请用同样的方式做一些调研。

5. 关于我使用、测试、跟踪osc的历史,请用同样的方式做一些调研。

6. 最后,知道你为什么这么支持osc、这样反驳我吗?我想,其中重要的一点是因为你靠它做网站、靠它接业务,它是你的摇钱树。我的言论间接地打击了你的业务,因此……其实,我有一个很好的朋友,很早就用osc二次开发后的产品做类似的业务了(比你的域名注册日期还要早一、两年)……

你和我站的角度不一样,你现在站的角度也许偏重于程序员,而我偏重于评论家的角色,多动嘴、少动手,我对软件/程序的一个习惯是:只借用最好的,但同时也很挑剔。很多时候,就凭某一点,我就会否定某个软件的使用价值,这是我对软件挑选、使用的标准、风格。

很感谢你既然这么不想讨论osc竟然还能花这么多功夫来写这么长一篇文章反驳我.
我很奇怪我用osc帮别人架网站难道有错吗,你说这个是摇钱树,这不就证明了他的优秀吗.你说那个那些东西可能是不错,但是并不代表osc就不行了啊.
既然你对php这些方面都有这么深入的作品看来我不得不提醒下你网站下面有一个很大的waring了.呵呵

1. 你用osc架站当然没错,因为目前也许几乎没有比osc更好的PHP架设电子商务的程序了,但请不要肤浅地理解我对osc的相关评论;

2. 本站有warning(警告)很正常,你应该知道这程序不是我写的,虽然你可能不熟悉这套程序的名字(Serendipity),也许更没用过。我用的是世界上最棒的PHP写的网志程序,只不过即使最棒的程序也有bug,这很正常。

这个“最棒”不仅仅是我的看法,也是一些权威的第三方机构、(专业)用户的看法。而且,这个“最棒”考虑的是程序的综合素质,而不是某个单独方面。

不过,的确要谢谢你的提醒,我昨天测试相关插件的时候没有注意到这一点。我已经把这个warning去处了。

3. 我在本站公开申明过,我“谢绝咨询、讨论PHP具体技术问题,并谢绝讨论其它电脑类技术问题。觉得有自己参与的技术讨论往往挺浪费(自己的)时间和精力”。我不愿意跟你讨论因为我觉得你跟我理解的南辕北辙,暂时谁也说服不了谁,谈不来,因此没有必要讨论。

我不惜笔墨来“反驳”你,是因为如果我选择沉默的话,你的观点(可能)会让本站的读者产生片面的理解。

http://www.deminy.net/blog/archives/3833-y.html

请不要动不动就拿权威来吓唬人.迷信权威的时代早就过去了,有几个科学家感说自己百分百正确.另外你说说你谢绝这个,又谢绝那个的,不就为了你方便你发表你那些权威而片面的评论吗.

总算我们的话题可以就此打住了。

我不反对用osc(不排除以后我也可能会使用、借鉴它),只是我对软件、对开源程序的选择很挑剔。仁者见仁,智者见智。

周末愉快,并祝你事业顺利、静心。

"不就为了你方便你发表你那些权威而片面的评论吗."

phpwhy:你为什么说deminy发表的评论“权威”呢?他只不过在他自己的网站上发表他自己的看法,你也可以在你自己的网站上发表反驳他的看法。人生而平等。互联网让我们更平等。

好象不错的样子

***PHP培训***,你就别扯蛋了,ECSHOP也管拿出来显,且不说这是一群根本不懂业务的程序员拿头撞出来的程序,一点实践经验都没有,单就系统的结构来讲也不一定是合理的,仅是一堆堆出来的代码,可以就程序员本身来讲,你们也不配称做"程序员",OSCCOMMERCE虽然在当时那个年代没有这个概念,但是大家可以看到其数据库结构设计的严谨性,非ecshop之流可比,如果说osccommerce是业务人员做的,那ecshop就是业务人员做梦的时候梦遗出来的。shit...

oscommerce就是垃圾一个。简直是对我们程序员的侮辱!!!每次看公司的那套oscommerce系统我就要多折几年寿。抛开代码不分离不说,代码基本上没有可读性,程序效率极低~慢的我想拿头撞墙~~~这是一个完全由业务员炒作起来的垃圾系统!无论从结构还是代码还是效率连国内的ECshop的毛都赶不上~~为一点就是受骗的人多,插件多,花里胡哨的功能多
我建议没有看过哦这套垃圾系统程序的程序员们最好不要看它。真的会折寿的~~痛苦,
举个最基本的例子,它连最基本的代码格式都没有~~括号都没有一个对其的~~形象一点说看它就像看google加密过的JS一样的感觉

我也是用这个系统做着二次开发,感觉真的不太好,编代码的时候因为要适应它原有的架构,搞得我N辛苦,妈妈的,把我搞死了~~~

上个星期刚刚作过一个osc的二次开发,刚开始看的时候就是觉得它挺垃圾,没有任何规范或者模式,代码与界面混为一体。但深入进去分析它的时候,感觉它还是很不错的。毕竟这套系统出生的比较早,当时的PHP可能没有这么多新的技术,osc的扩展和稳定性也是很棒的。
随着PHP5--6的兴起,会有更多更好的开源系统。

各位高手:
我们是一家美国的网络销售公司,寻一熟悉OSCOMMECE(CRE LOADED)软件的PROGRAMMER作软件维护和提升.有意者请和我们连系

email: sensualfitters@yahoo.com

www.sensualfitters.com

看oscommerce 的源代码刚开始的时候是有点乱,但是过了一段时间,你如果你对html, php,css 熟悉了,你就发现其实很简单。 而且,它的结构性很好,我曾经看过很多ecommerce方面的系统,没有一个能在其上。。。
我和一楼的意见相反,oscommerce ,特别是集成了很多插件的cre loaded,程序的设计不错, 但是对于北美中小公司的需求了解不是很完美,因此从2002 年开始,我就间断的开始对它进行了修改,很多意见都是从小企业主得来的意见。
对于CRE loaded, 插件太多太乱,而且很多插件对于他们没有用。 几个用它的客户最终都改用我的建议。 用了我这几年修改的oscommerce.

由于时间关系,我就不多说了,但有一点,对于大部分程序员,osc都有很多值得借鉴的地方。
本人的部分osc作品
www.mikepc.ca
www.shoppc.ca
www.spasolutionalberta.com
www.cdngeekjewels.com
www.xinegg.com(中文)
project.xinegg.com(in coding)

模仿osc抄了一个程序,感觉osc是不错的..那年代有特有的东西。

抄出来的效果:http://www.tendweb.com/

好像用xcart的人也是很多的啊,

我的这个站http://www.timersky.com,是仿xcart做的

添加新评论

友情提醒:您的言论自由在本站会得到充分保证;不过,由于广告留言等猖獗,因此本站的内容过滤系统有可能会暂时屏蔽您新发的留言或评论。不便之处,希望理解。