开源项目:如何选择、使用以及二次开发?

本文探讨了在软件开发中如何明智地选择、使用和进行二次开发开源项目。强调了DRY原则的重要性,但指出选择合适的开源项目是关键,避免盲目追求最新或最优秀。在选择时,要考虑是否满足业务需求、项目成熟度和运维能力。在使用时,需深入研究、测试并谨慎部署,做好灰度发布和应急措施。对于二次开发,建议保持原项目纯洁,通过辅助系统或定制解决方案来满足特定需求。
摘要由CSDN通过智能技术生成

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

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

除此以外,虽然 DRY 原则摆在那里,但实际上开源项目反而是最不遵守 DRY 原则的,重复的轮子好多,你有 MySQL,我有 PostgreSQL;你有 MongoDB,我有 Cassandra;你有 Memcached,我有 Redis;你有 Gson,我有 Jackson;你有 Angular,我有 React……总之放眼望去,其实相似的轮子很多!相似轮子太多,如何选择就成了让人头疼的问题了。

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

选:如何选择一个开源项目

1. 聚焦是否满足业务

架构师在选择开源项目时,一个头疼的问题就是相似的开源项目较多,而且后面的总是要宣称比前面的更加优秀。有的架构师在选择时有点无所适从,总是会担心选择了 A 项目而错过了 B 项目。这个问题的解决方式是聚焦于是否满足业务,而不需要过于关注开源项目是否优秀

Tokyo Tyrant 的教训
在开发一个社交类业务时,我们使用了 TT(Tokyo Tyrant)开源项目,觉得既能够做缓存取代 Memcached,又有持久化存储功能,还可以取代 MySQL,觉得很强大,于是就在业务里面大量使用了。但后来的使用过程让人很郁闷,主要表现为:

  • 不能完全取代 MySQL,因此有两份存储,设计时每次都要讨论和决策究竟什么数据放 MySQL,什么数据放 TT。

  • 功能上看起来很高大上,但相应的 bug 也不少,而且有的 bug 是致命的。例如所有数据不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值