你怎么看第三方库? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
conis
V2EX    程序员

你怎么看第三方库?

  •  
  •   conis
    conis 2012-11-17 12:13:49 +08:00 5111 次点击
    这是一个创建于 4710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我对使用第三方库是比较慎重的,特别是对于比较重量级的第三库,因为学习起来本来就需要成本,如果你不了解就冒然引用,本身就是一个潜在的灾难。我对第三方库的选择原则如下:
    1.尽量选择开源或者大厂商的产品
    2.Team中是否有人对这个产品了解
    3.我能否用上80%的功能,起码也要用50%吧。我见过仅仅为了$("#id")而使用jQuery的,这种引用第三方库实在是没有必要。
    4.是否可替代
    5.和项目的耦合度是否很低,有时候我可能因为工期紧张的原因使用了某个库,但我希望以后能很轻松的替换掉它,最好是数行代码就可以搞定
    6.轻量级
    13 条回复    1970-01-01 08:00:00 +08:00
    ssword
        1
    ssword  
       2012-11-17 13:04:44 +08:00   1
    更倾向于认为自己造的轮子不会比三方库质量高。

    选个好用的就行了。
    ElmerZhang
        2
    ElmerZhang  
       2012-11-17 15:23:47 +08:00
    还有一条最重要的,是否还有人在维护。
    PrideChung
        3
    PrideChung  
       2012-11-17 15:32:36 +08:00
    个人倾向
    轻量的,重量级的库通常意味着更高的学习成本而且很多功能可能根本用不到。
    开发活跃的,看git最近的提交,x years ago那种就算了。
    文档齐全的,否则库再nb不会用也不行。
    yech208
        4
    yech208  
       2012-11-17 15:39:45 +08:00
    三点建议:
    1. 选择主流库{更新有保证;用的人多了遇到的问题自然好解决};
    2. 与项目的耦合度低{同第5点};
    3. 把重心放在业务逻辑上而非UI的实现。
    BigZ
        5
    BigZ  
       2012-11-17 21:01:43 +08:00   1
    干活最重要是按时交付,其次才是满足程序员的洁癖

    要尽量的忍住
    hyq
        6
    hyq  
       2012-11-17 22:05:37 +08:00
    那得看学习那个库的成本和自己造轮子成本
    ccp0101
        7
    ccp0101  
       2012-11-17 22:13:26 +08:00
    首先是基本上主流库需要就加吧. 什么jQuery啥肯定直接加进去了.. =.=

    我觉得不需要使用50%功能才加入.. 我比较看好的是一直在被维护的库. 假如我只需要underscore.js里面某个很简单的估计自己实现就十行的函数我还是会直接引用别人的库。比较很多情况下自己的实现是没有在大量使用的情况下测试的。
    insraq
        8
    insraq  
       2012-11-17 22:20:57 +08:00
    jQuery, underscore.js 基本算标配了吧,其他的看需求。
    gucheen
        9
    gucheen  
       2012-11-17 22:26:49 +08:00
    jquery都快变成官方库了
    catfan
        10
    catfan  
       2012-11-17 23:06:36 +08:00
    Qatrix应该适合你的部分需求

    http://qatrix.com
    cyberscorpio
        11
    cyberscorpio  
       2012-11-18 01:39:18 +08:00
    我是凡是能自己实现的都自己写,不用第三方库。。。
    lepture
        12
    lepture  
       2012-11-18 03:54:15 +08:00
    > 3.我能否用上80%的功能,起码也要用50%吧。我见过仅仅为了$("#id")而使用jQuery的,这种引用第三方库实在是没有必要。

    完全不认同,这样使用正好就是正确的,本质上来说 jQuery 所做的一切事情都是 DOM 相关的。
    chone
        13
    chone  
       2012-11-18 06:54:38 +08:00
    可以尝试一下closure library,配合上closure compiler的高级模式,很多项目根本不需要的就东西不会出现在build版本中了。而且可以一goog的lib为基础建立适合自己的子集或者扩展集。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1401 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:43 PVG 00:43 LAX 09:43 JFK 12:43
    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