如果您为网络编写代码,则您已处理它们,在一个漂亮的包装中为您提供一切的巨大图书馆。一世’不谈论公用事业libs&框架等jquery和骨干。一世’m谈论灯箱,滑块,表格验证器,文件上传器,wysiwygs等。它们为您提供大量的功能,一个大代码基础,追随者,他们通常也有一大吨的错误。

我发现自己也犯了一个人,我的验证引擎在3年内从400到2000+ LOC获得。添加功能,一个接一个,它变得超重,它变得越来越难以调试。

很久以前..

4年前问我,如果你应该自己深入做灯箱,我会告诉你你是个傻瓜。问我现在吗?我的答案会更加差别。在整合任何第三方代码之前,我向自己询问一些问题(大致按此顺序):

  • 我可以轻松地代码吗?
  • 我有时间吗?
  • 这是什么浏览器的支持?
  • 公开问题的数量?
  • 什么’s the code size?
  • 我相信这个人(或团队)吗?

有时我可以’T代码我自己,我不会像Highchart那样代码,所以我需要使用它(或一些替代品)&有时我只是没有时间。但在我的经验中,大型图书馆长期呼吁麻烦。您将击中您必须要处理的错误,并在那个大代码库中’可能不会变得容易。

我如何来到这个心态

多年来我使用了多个大图书馆,他们都有2件常见的东西(主要是),他们有多个错误&他们很难调试。即使您可以调试它,您现在已粘在您的版本中,忘记更新。如果当然可以创建拉索请求Â以获得修复,但最多“hobby”LIBS你的拉出请求将长时间静止,并且通常被拒绝由于多种原因,那么您必须制作更好的拉动请求或放弃。

您还必须考虑您获得了大量的死人代码,我从不使用我的验证引擎的Ajax功能,但我在我制作的每个应用程序中得到了该代码。

一个例子?

第一个示例,ColorBox,一个jQuery插件,在每种方式中都可以想象地进行灯箱。嗯,所有这些功能都有成本,目前在GitHub上有128个打开问题。 ColorBox有1000个LOC&这是一个最小的灯箱脚本它’大约100个位置。我为cakemail编码的那个是130和i’m甚至不尝试优化大小,包括选项,传递变量和集成模板引擎。它’s consistent, it’s very small, and it’如果任何人都需要易于建立。

显然我不’T有色盒的所有功能都有,但真的,我不需要它们。

让’撰写另一个例子,选择了一个非常已知的lib,将选择框更改为更友好的可用框。如果您去选择的GitHub repo,您​​将看到该项目非常受欢迎,但您还将看到它有2个版本,一个使用jQuery和另一个使用原型。最重要的是,大约300个问题和50个拉出请求等待。那’肯定不是非凡的。

甚至更好,您可以复制一些选择的功能,如Switing Selecting使用一些CSS技巧,以及它’S有效期为IE7。谈谈性能增强功能。

代理商开发人员的例外

在多个Web机构中工作,我可以看到大图书馆如何方便。您立即在多个网站或应用程序上工作,紧缩预算&紧张的延误。创建一吨不同的产品,使其成为一大约一定的要求,这’这些图书馆进来的地方,你不’要在灯箱中为自己编码一个图像滑块,它’拿一个为你做的一切并希望最好的速度更快。

理论上也是,它Â即使有很大的话,它仍然可以让您的团队的长跑队更容易地协作和修复相同的插件。

验证引擎未来

就像我说的那样,我在这艘船上。我目前正在寻找制作许多更轻松的我的验证引擎版本,我想回到那个迅速和更易于管理的第一个版本的400 loc。一世’m not saying I’杀了这一点,当然’只是我目前在我的日常工作中缺少光明验证器,我想要它,糟糕。

4 thoughts on “对单片图书馆的死亡

  1. It’是一把双刃剑。您通过使用预烘焙的东西越来越多的时间越多‘at risk’你是。我更喜欢从头开始编码所有东西(如果业务逻辑很简单),因为这就是我拥有100%的问责制。没有比来自客户的讨厌的电子邮件更糟糕的是,你的真实答案是:‘oh, it’s the plugin’s fault…’

  2. 在决定库时,我有类似的过程:

    1.它是否托管在版本控制系统中?
    1A。如果是这样,它是活跃吗?
    还有很好的文件吗?
    3.他们是否依赖于其他流行的框架(jQuery等)
    他们提供测试吗?

评论被关闭。