开源项目的正确打开方式:如何发明完美符合自己业务特点的轮子?

软件开发领域有一个流行的原则:DRY,Don’t repeat yourself,我们翻译过来更形象通俗:不要重复造轮子。开源项目主要目的是共享,其实就是为了让大家不要重复造轮子,尤其是在互联网这样一个快速发展的领域,引入开源项目,可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢?

然而现实往往没有那么美好,开源项目虽然节省了大量的人力和时间,但带来的问题也不少,相信绝大部分同学都踩过开源软件的坑,小的影响可能是宕机半小时,大的问题可能是丢失几十万数据,甚至灾难性的事故是全部数据都丢失。

除此以外,虽然DRY原则摆在那里,但实际上开源项目反而是最不遵守DRY原则的,重复的轮子好多,尤其是国外,一看哪个开源方案不爽,自己就吭哧吭哧搞一个差不多的:你有MySQL,我有PostgreSQL;你有MongoDB,我有Cassandra;你有Memcached,我有Redis;你有Gson,我有Jackson;你有Angular,我有React。总之放眼望去,其实相似的轮子很多!相似轮子太多,选择就是让人头疼的问题了。

怎么办?完全不用开源项目几乎是不可能的,我们需要更加聪明的去选择和使用开源项目。形象点说:不要重复发明轮子,但要找到合适的轮子!你开的是保时捷,可别找个拖拉机的轮子。

接下来我将根据加入UCWeb 5年与开源项目有关的经历,总结出一些“如何正确使用开源项目”的经验和教训。有的项目是我亲身经历,有的是我接触到的,有的是我观察的,其中部分描述细节可能并不完全准确,大家可以结合自己的经历一起探讨。

原文发布于微信公众号 - 星流全栈(MeteorFullStack)

原文发表时间:2016-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

想让微信更好玩?这些新出炉的小程序,你一定要试试 | 晓榜 #27

如果你也想做一张「我们是谁」的爆笑图片,这里有一款小程序能帮你一键生成,不懂 PS 也能轻松作图。

8120
来自专栏架构师之旅

系统设计黄金法则:简单之美

最近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自己的一些实践教训,让我觉得应该把这些资料汇总整理一下。如果要从讨论不同系统的众多资料中总结...

23360
来自专栏王磊的博客

Spring Boot 终极清单

我上学那会主要学的是 Java 和 .Net 两种语言,当时对于语言分类这事儿没什么概念,恰好在2009年毕业那会阴差阳错的先找到了 .Net 的工作,此后就开...

10420
来自专栏施炯的IoT开发专栏

2015 MVP OpenDay 及 Community Camp 演讲PPT分享

这两天来到首都北京参加一年一度的MVP OpenDay 和 MVP Community Camp。其中,31号下午有我的课程:What Will You Mak...

20460
来自专栏养码场

回顾15年我从嵌入式转至Java后端阅读的一些书籍,让我变成了自己想要的样子

很早就想整理下自己读过的一些书了,想把感觉还不错的分享和推荐给大家。然而,写这篇文前面的一个月一直在忙着公司的项目和另一本技术书的阅读。感觉需要做一点事情来定下...

52420
来自专栏好好学java的技术栈

[脑图]如何入门技术、进阶技术(技术开发人员)

12340
来自专栏VRPinea

AMD推出多款硬件与软件更新,为VR带来部分支持

近期AMD消息频出,让人眼花缭乱,光光在台北国际电脑展上,其就展示出了不少新品,如:Threadripper代32核、面向消费级显卡市场的RX Vega 56 ...

12000
来自专栏cloudskyme

云计算读书笔记(一)

云计算的概念 云计算是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。 云的核心理念就是资源池。 为...

53360
来自专栏Kirito的技术分享

【真荐书】双11书单,我们一起共读 36 + 1 本书

《Redis开发与运维》全面讲解 Redis 基本功能及其应用,并结合线上开发与运维监控中的实际使用案例,深入分析并总结了实际开发运维中遇到的“陷阱”,以及背后...

16230
来自专栏黑白安全

安全研究人员提醒AI助理需谨防人耳听不到的“海豚攻击”

中美研究人员已经验证了一种可向 Siri 等 AI 助理发出“隐藏式攻击命令”的方法,因其采用了人耳察觉不到的音频,从而强迫智能助理执行非机主下达的恶意命令。《...

10730

扫码关注云+社区

领取腾讯云代金券