关于使用第三方插件(库、包)的观念 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yibuyisheng
V2EX    程序员

关于使用第三方插件(库、包)的观念

  •  
  •   yibuyisheng 2013-11-01 20:59:06 +08:00 3720 次点击
    这是一个创建于 4451 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近开发项目,遇到对待第三方库的使用问题,存在一些分歧,有下面两个观点:
    1、不能改变别人的源代码,因为这是别人的思想结晶,必须尊重;
    2、只要在可控范围内,可以适当改变别人的源代码,以便与自己的项目结合的更好。比如使用seajs来封装jquery,就可以在jquery外面加一层seajs的模块代码,以便方便使用。
    对于这两种观点,各位大牛们怎么看?
    5 条回复    1970-01-01 08:00:00 +08:00
    dorentus
        1
    dorentus  
       2013-11-01 21:26:35 +08:00   2
    如果我选择不修改的话,那么理由不会是「这是别人的思想结晶,必须尊重」,而是因为改了之后如果它再有更新,想要再把更新的部分集成进来会比较麻烦……
    est
        2
    est  
       2013-11-01 21:29:05 +08:00   1
    同LS

    比较好的第三方库,都设计得比较巧妙可以融入自己的需求。那种写得又死又烂万年不更新的,就随便改吧。
    xhacker
        3
    xhacker  
       2013-11-01 21:49:12 +08:00   1
    改完发 pull request。
    laihj
        4
    laihj  
       2013-11-01 21:51:59 +08:00   1
    该改就改

    如果是开源代码,接它自己的开源协议处理

    这个尊重没什么关系
    otakustay
        5
    otakustay  
       2013-11-01 22:12:35 +08:00   2
    一般我选择改动以后回馈到社区,不然人家升个级看你怎么跟上,国内好多公司自己随意改nginx、hardoop之类的,现在已经落后最新版一大截,完全无法正常升级

    如果自己的需求是比较限定型的本身和第三方库的基本目标没关系的,则把它抽象成第三方库的一个扩展点,以扩展点的形式提交pull request,再把自己的需求挂载成扩展,同样以后版本也能跟进
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:17 PVG 13:17 LAX 21:17 JFK 00:17
    Do have faith in what you're doing.
    ubao msn 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