discuz这种混乱的结构的程序在中国大行其道,真是一种悲哀 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2code
V2EX    问与答

discuz这种混乱的结构的程序在中国大行其道,真是一种悲哀

  •  
  •   2code 2013-11-08 10:34:57 +08:00 8790 次点击 /div>
    这是一个创建于 4354 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各种函数调用形成一个网状结构,要debug简直是自虐
    24 条回复    1970-01-01 08:00:00 +08:00
    cxe2v
        1
    cxe2v  
       2013-11-08 10:42:23 +08:00
    呵呵!!
    HiVPS
        2
    HiVPS  
       2013-11-08 10:45:03 +08:00
    Ecshop不也是这个熊样
    misaka
        3
    misaka  
       2013-11-08 10:48:07 +08:00 via Android
    你付费了?
    enirehtac
        4
    enirehtac  
       2013-11-08 10:48:45 +08:00
    show me a clean one
    molinxx
        5
    molinxx  
       2013-11-08 11:03:07 +08:00
    DZ不论程序写的如何不好,运行效率如何之差,都不可否认它是国内论坛程序中最优秀的一款。首先,它的定位用户群就是草根站长,使用最多的也是草根站长,对于不是程序员出身的草根站长来说,DZ的安装、配置、优化非常容易,而且它的官方论坛基本能搜索到所有出现过的程序问题,并有人给出过永久或临时解决方法,这是其他论坛程序比不上的。这样一个傻瓜式操作的免费论坛程序,我们还能要求什么?

    真实情况,我的论坛也是DZ程序,最开始想用XenForo或者Discourse,无奈其他的管理人员都不会用,他们告诉我只会用DZ。对于现在的国内个人网站发展情况来说,我只能说DZ很优秀,但是,从一个Coder的角度来看,DZ的程序渣出翔啊啊啊!
    jybox
        6
    jybox  
       2013-11-08 11:12:04 +08:00
    phpwind 也算是 dz 可能的竞争对手之一,虽然现在好像没什么动静了。
    前一阵 phpwind 有一次比较大的重构,几乎所有代码都重写了,重写后的代码我个人以为还是很不错的。
    mongodb
        7
    mongodb  
       2013-11-08 11:26:29 +08:00   3
    dz代码结构混乱是事实,我常年和各类dz用户打交道,但是早早的脱离了帮助进行改进和二次开发的行当,我也受不了。

    但这个和在国内流行颇广就悲哀了,有个屁的关系。

    早年还不叫discuz叫cdb的时候,我也加入一起完善过,那已经是比较后期了,1.5版本的时候。当时因为功能简单,代码量不大,还算是看的过去。也应该说,当时我水平比较菜,真有什么问题也看不出,但至少我能看得懂,虽然我当时只学了两个月时间不到的PHP。不像现在的discuz x,打开一个文件我就头大。

    也是时间赶的好,赶的巧,赶上了个人网站蓬勃发展的时代,赶上了BBS文化盛行的时代。同一批出现的论坛程序数不胜数,数据库的,文本的,国外的国内的,但最后只剩下了discuz和phpwind。

    再后来,满世界都是discuz了。

    这不是什么悲哀不悲哀的事,我也看不起现在discuzx的架构和代码实现,觉得完全没有我喜欢的那种耦合形式。但我觉得戴志康真牛逼,这个公司的管理层也牛逼,在BBS程序铺天盖地厮杀的年代里能挺住并出头到现在哦对了,早年只靠给客户做付费服务,其实赚的并不是很多真心牛逼。

    而且被那么多人选用,在大多数时候也能表现出良好的功能与性能特性,有强大的兼容性和二次扩展开发,我觉得这时候已经不用看代码了,只管点赞就是了。这已经无关代码洁癖了,这是一款能适应绝大部分中国站长用户群的产品。

    再读一次,这是 一款 能适应 绝大部分 中国 站长用户群体 的产品。

    能做到这一点,比写几个好看漂亮的代码,难度多了去了。
    molinxx
        8
    molinxx  
       2013-11-08 11:41:11 +08:00
    @jybox PW重写后的数据表精简很不错,初始安装完是147张表,DZ的X3初始安装完是230多张表~
    Ricepig
        9
    Ricepig  
       2013-11-08 11:48:49 +08:00 via iPhone   1
    码农思维要转变阿,功能王道的同时,代码可维护,对于用户和开发者就都足够了
    raincious
        10
    raincious  
       2013-11-08 12:05:28 +08:00
    Discuz由于历史原因一路走过来,每次重构都不干净。但是不可否认的是,确实是国内做的最好的论坛程序之一(另一个是PHPWind)。

    另一方面说,能做到这么复杂的功能同时保持可维护性,代码的耦合稍不留神就混乱了。这真不能怪开发者。

    此外为啥PB系的程序这么精简?其实是功能不多的原因。

    相信Discuz等完成一次整体重构之后,代码结构会好很多。但是Discuz现在被腾讯的市场和政策折腾来折腾去,不知道是否有精力去弄了。
    shinwood
        11
    shinwood  
       2013-11-08 12:17:48 +08:00 via iPhone   1
    Discuz! 的代码我10年一直看过来的,X3 的架构虽然复杂,但是具有一定合理性,很多实现虽然不是那么优雅,但我总觉得高度抽象的接口后面必然有着十分难懂的代码,dz算是做到了一种平衡吧,至少在X的架构下写插件真是舒服很多。当然如果要改变核心代码或者流程的话,那不是蛋疼2字能概括的。
    airyland
        12
    airyland  
       2013-11-08 12:44:12 +08:00
    其实我就想吐槽它的前端代码。
    impony
        13
    impony  
       2013-11-08 12:58:27 +08:00
    技术绝对不是市场占有率的决定性因素
    davidyin
        14
    davidyin  
       2013-11-08 13:16:59 +08:00
    用户觉得好用才是生存之道,特别是适合国情
    akira
        15
    akira  
       2013-11-08 13:17:15 +08:00   1
    如果你看到代码差,就觉得是悲哀,而看不到他在用户体验\市场方面做的诸多努力,我觉得,这才是真正的悲哀。

    技术再好,做的东西不好用没人用,最终也只能消失在历史。
    felinx
        16
    felinx  
       2013-11-08 13:22:09 +08:00
    写的一手漂亮的代码不若一手实用的代码。
    dexter
        17
    dexter  
       2013-11-08 17:03:01 +08:00
    DZ确实看上去挺恶心的,
    但是换个思路想想,你能写出这样的代码么?无数的函数
    写不出来,就不要扯蛋了

    很多写程序不懂的人,就喜欢追风所谓的“更好的风格”,都是没有意义的
    能写出来,并且理解就很不错了
    andyhuax
        18
    andyhuax  
       2013-11-08 17:08:38 +08:00
    其实我觉得他们是故意的
    sun019
        19
    sun019  
       2013-11-08 19:43:55 +08:00 via Android
    discuz好很多了~ phpcms v9更不错了 恶心的是ecshop好多年的代码了啊。
    x86
        20
    x86  
       2013-11-08 19:50:01 +08:00
    这么悲哀但是它活下来了
    momo5269
        21
    momo5269  
       2013-11-08 19:55:46 +08:00
    新版都是走的膨胀件的道路,不过确实功能丰富,适用性强,不难上手,至于开发可能就是一团糟了。
    dz和phpwind的老版本都功能健全,风格简洁,一些有趣的论坛至今还是这些版本呢。
    Kvm
        22
    Kvm  
       2013-11-09 03:54:53 +08:00
    从码农的角度看:是的 丫的就是一坨翔

    @momo5269 老版本说是有些漏洞没有修补,的确老版本更有感觉些但始终要前进.......
    iamdbc
        23
    iamdbc  
       2013-11-09 09:33:59 +08:00
    最近在做一个dz的,打开一个文件都是近千行的if else...
    不过函数调用部分高度抽象,这里觉得很不错。虽然感觉那种方式很蛋疼

    但是从用户角度,dz把能想到的都做到了(例如在自定义分类里面,手工加入多级select,居然会出现联动菜单,真的很意外),很多地方都做的特别“简单”,相对于普通建站的站长群体来说,只管操作就行了。

    只是要修改代码就痛苦很多了。
    master
        24
    master  
       2013-11-09 09:57:51 +08:00
    Discuz 虽然说存在诸多历史遗留的代码问题,但是这并不妨碍他的二次开发,并不是所有的二次开发都需要动其原始的代码的,动源代码的修改本身就会导致更加混乱,而且难以进行版本升级。
    虽然依旧还存在混乱的问题,但是进入X之后不断完善的抽象模型的提供了相当多对于开发非常友好的框架和hook机制,使得要补充、修改的功能模块也都可以独立的文件存在,可维护性显然也比在直接动其本身的程序要高得多
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3459 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:17 PVG 08:17 LAX 17:17 JFK 20:17
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86