48 | 再谈开源项目:如何选择、使用以及二次开发?
李运华
该思维导图由 AI 生成,仅供参考
我在专栏特别放送第 3 期谈了如何高效地学习开源项目,主要聊了我在学习开源项目的一些看法和步骤。今天我们再聊开源项目,谈谈如何选择、使用以及二次开发。
软件开发领域有一个流行的原则:DRY,Don’t repeat yourself。翻译过来更通俗易懂:不要重复造轮子。开源项目的主要目的是共享,其实就是为了让大家不要重复造轮子,尤其是在互联网这样一个快速发展的领域,速度就是生命,引入开源项目可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢?
然而现实往往没有那么美好,开源项目虽然节省了大量的人力和时间,但带来的问题也不少,相信绝大部分技术人员都踩过开源软件的坑,小的影响可能是宕机半小时,大的问题可能是丢失几十万条数据,甚至灾难性的事故是全部数据都丢失。
除此以外,虽然 DRY 原则摆在那里,但实际上开源项目反而是最不遵守 DRY 原则的,重复的轮子好多,你有 MySQL,我有 PostgreSQL;你有 MongoDB,我有 Cassandra;你有 Memcached,我有 Redis;你有 Gson,我有 Jackson;你有 Angular,我有 React……总之放眼望去,其实相似的轮子很多!相似轮子太多,如何选择就成了让人头疼的问题了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文从如何选择、使用和二次开发开源项目三个方面进行了详细讲解。首先,强调了对开源项目进行深入研究和仔细测试的重要性,以避免出现因使用不当而导致的问题。其次,提出了在应用开源项目时需要小心谨慎,进行灰度发布,并做好应急准备以防万一。最后,针对基于开源项目进行二次开发,建议保持纯洁并加以包装,同时提出了发明符合自身需求的轮子的观点。总的来说,本文为读者提供了在选择、使用和二次开发开源项目时需要考虑的关键因素,帮助读者更加聪明地选择和应用开源项目。文章内容丰富,涵盖了开源项目的实际应用场景和二次开发的技术思考,对读者具有一定的指导意义。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学架构》,新⼈⾸单¥68
《从 0 开始学架构》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(37)
- 最新
- 精选
- 何磊如果公司规模小建议可以直接使用云厂商的产品,因为运维方便。但是如果业务大,很多个性化的配置以及有自己的整套监控系统等,不适合用云厂商产品,无法进行系统整合。
作者回复: 点赞👍
2018-08-1662 - 文竹依据情况做出选择。比如:我们公司有些组件,mysql,redis都是使用阿里云上的。数据平台则是自己搭建的。 使用云上的mysql,redis省去了很多运维成本和一些复杂性问题,不如高可用,高性能。总的来说成本较低。 自己搭建数据平台有如下原因: 1、集团下面有很多子公司,如果每个公司都要自己专门处理大量数据的话,总合计成本很高。 2、技术更容易沉淀,能更有效地为集团产业链提供服务。
作者回复: 你们的思路挺好,大数据确实要统一维护
2018-08-2630 - 问题究竟系边度业务初期,云平台本身提供的服务性能已经满足需求了,同时提供可视化运维,极大降低运维和部署成本,同时有熟悉的专家团队帮忙特殊问题。 业务发展后,在考虑根据业务特性做定制开发
作者回复: 正解,参考架构设计的合适原则
2018-08-2016 - William个人认为: 用云产品的好处是,1.方便快捷,既然是产品那肯定经过包装,对很多bug进行了处理,因此上手快和使用方便;2.云产品自带维护功能,专业性比自建强,不用自己投入大量人力到维护的事情上; 缺点也有两个:1.羊毛出在羊身上,自带维护功能,意味着费用也会贵一些;2.维护交给第三方,意味着依赖第三方,出现影响业务的紧急情况可能出现支撑不到位,响应缓慢,解决问题需要时间长等问题; 自己用云服务器搭建的话,自己还是得亲力亲为,坑要自己踩,出现问题自己解决,但是也相应的灵活,有些问题可以结合业务情况来回避。
作者回复: 正确👍👍👍
2018-08-1612 - SeeSharp我身边很多人有个坏习惯,开源库版本喜欢用最新稳定版–0.1,以为遇到坑可以在网上获得别人的解决方案,真遇到坑的时候自己又没有能力改或者已经被最新稳定版fix了要么手动把这单个bug fix搬过去要么被迫升版本,怎么劝都劝不动
作者回复: 哈哈,确实如此,其实我建议用最新的稳定版就可以了
2018-08-168 - 呵呵DRY,不是说的是不要随意复制、粘贴代码么
作者回复: 代码层面不要拷贝粘贴,设计层面不要重复发明轮子
2018-08-187 - pding团队、业务从小到大,对于开源项目的应用也是不同的方式,从不用,拿来就用,附加功能开发到最后的自己造轮子。在这个过程,BUG都是无法避免,要做的是备份、容灾,做好运维,管理好风险!
作者回复: 总结到位
2020-05-235 - Jun我倾向于直接用服务。第一,运维压力小。云厂商会提供大部分基础架构的运维和调优。客户集中精力在业务运维。第二,上线扩容方便快速。客户可以自己申请新实例。但安装和配置都是问题,也无法利用云厂商已有的经验。这些经验都是其他客户血泪基础上得到的,非常宝贵。第三,软件升级有保障。新版本不一定兼容,也许有bug。自己升级需要大量人力物力确认。第四,出了问题有人背锅。
作者回复: 云服务是大趋势了
2019-12-2235 - 小喵喵为了存储高可用,比如在 mongdb写一份,然后在MySQL也写一份,具体怎么写呢?是写找到mongdb,然后由mongdb同步到MySQL吗?还是有其他更好的方法?
作者回复: 1. 代码写两次,简单粗暴,但可能数据不一致 2. 脚本同步,但可能出现同步延迟导致数据丢失一部分
2018-08-2025 - 波波安根据团队的开发实力来决定吧。前期团队小,业务量不大,可以购买成熟方案。
作者回复: 正解
2018-09-053
收起评论