说到项目中使用开源项目或第三方解决方案。决策层有时不考虑业务特点,自身熟悉程度而是排除竞争对手,凸显公司能力来选择方案。但作为具体开发实施人员是要有客观的看法和声音, 转载一下博客,深以为然。
https://yq.aliyun.com/articles/6042?&utm_campaign=sys&utm_medium=market&utm_source=edm_email&msctype=email&mscmsgid=3240116060100637134&
分别是“选”、“用”、“改”。
选:如何选择一个开源项目
【聚焦是否满足业务】
记住:不要过早优化,过早优化是万恶之源 —— 《UNIX编程哲学》
【聚焦是否成熟】
形象点说:宁要2.0的熟女,不要0.2的处女!
【聚焦运维能力】
用:如何使用开源方案
【深入研究,仔细测试】
【小心应用,灰度发布】
我们的经验就是先在非核心的业务上用,然后有经验后慢慢扩展。
【做好应急,以防万一】
对于重要的业务或者数据,使用开源项目时,最好有另外一个比较成熟的方案做备份,尤其是数据存储。例如:如果要用MongoDB或者Redis,可以用MySQL做备份存储。这样做虽然复杂度和成本高一些,但关键时刻能够救命!
改:如何基于开源项目做二次开发
【保持纯洁,加以包装】
建议是不要改动原系统,而是要开发辅助系统: 监控,报警,负载均衡,管理等
建议是直接给开源项目提需求或者bug,但弊端就是响应比较缓慢,这个就要看业务紧急程度了,如果实在太急那就只能自己改了,不过不是太急,建议做好备份或者应急手段即可。
【发明你要的轮子】
如果你有钱有人有时间,投入人力去重复发明完美符合自己业务特点的轮子也是很好的选择!
分享到:
相关推荐
综上所述,这个开源项目涵盖了Android客户端应用开发和服务端开发的诸多知识点,对于想要深入了解Android商城应用开发或者提升自己在这一领域技能的开发者来说,是一份非常宝贵的学习材料。通过分析源码,可以学习到...
根据提供的文件信息,我们可以从标题、描述以及标签中提炼出几个关键知识点,这些知识点主要围绕“Unity开源项目”展开。接下来将对这些知识点进行详细阐述。 ### 一、Unity开源项目的概念 Unity是一款由Unity ...
QT开源项目源码是软件开发领域中的宝贵资源,尤其对于想要深入理解图形用户界面(GUI)编程、跨平台应用开发以及C++编程实践的开发者来说,具有极高的学习价值。QT是一个广泛使用的开源框架,由Qt公司开发并维护,它...
总的来说,这个开源项目提供了一个难得的学习机会,让你深入理解C#编程语言,掌握.NET框架的应用,以及如何编写高质量的、可维护的代码。通过研究源代码、分析设计文档,你可以学习到实际项目中的最佳实践,提升自己...
其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用...
"liugh-openResources"这个文件名可能指的是一个开源项目或资源库,其中包含了与Java Web相关的各种组件、文档、示例代码和配置文件。这个压缩包可能包含了一个完整的Web项目实例,或者是一些用于教学或参考的开源...
3. **最新技术应用**:开源项目往往紧跟技术潮流,可能包含如MVVM(Model-View-ViewModel)架构、Retrofit网络库、Dagger依赖注入、Room数据库等最新技术的使用,为开发者提供实际应用的参考。 4. **性能优化**:...
在Java的生态系统中,存在诸多著名的开源项目,这些项目各有特色,为Java开发人员提供了丰富的开发工具和应用架构。以下是对一些Java著名开源项目的详细介绍,它们分别在不同的开发领域中扮演着重要角色。 首先,...
在IT行业中,Android开源项目是开发者们学习、借鉴和创新的重要资源。开源意味着代码公开,允许任何人查看、使用、修改并重新分发。".Android开源项目分类汇总"是一个集大成的资源包,包含了众多优秀Android开发者的...
通过参与和学习这样的开源项目,开发者不仅可以提升自己的Android编程技能,还能了解到大型应用的架构设计和优化策略。对于那些想进入社交应用开发领域的开发者,这是一个绝佳的起点。同时,这样的开源项目也鼓励了...
在IT行业中,Android开源项目是开发者们学习、借鉴和创新的重要资源。这些开源项目提供了丰富的代码示例,有助于提升开发者的技术水平,同时也推动了整个Android生态系统的进步。下面,我们将详细探讨这些开源项目的...
阿里作为中国领先的互联网公司,其发布的26款Java开源项目无疑具有极高的参考价值和实践意义。这些项目涵盖了各种领域,包括但不限于Web框架、大数据处理、云计算、物联网(IoT)等,能够帮助开发者拓宽视野,了解最新...
3. `[安卓开源]百度推聊.zip`:这个开源项目可能是百度公司的一个聊天应用的复刻版。推聊可能是基于推送消息服务,类似于即时通讯应用。它提供了学习和研究即时通讯技术的机会,包括实时数据传输、消息队列管理和...
- 一些开源项目专注于提供美观且实用的UI设计组件,如`MaterialDesignLibrary`,它实现了谷歌的Material Design规范,包括按钮、输入框、滑动选择器等,有助于提升应用的用户体验。 2. **图片加载库** - 如`Glide...
本资源提供了111个Java项目的开源源码,涵盖了各种Java项目类型,包括Web开发、移动应用开发、桌面应用开发等。这些源码可以作为学习Java编程的参考资源,也可以作为实际项目开发的基础。 Java项目类型 从源码中...
本篇文章将详细探讨一个名为"SUSHIDO Project"的开源项目,旨在帮助读者理解其核心功能、设计思想以及可能的应用场景。 【描述】:尽管描述信息为空,但通过提供的博客链接(https://auauau.iteye.com/blog/716596...
这十个Android开源项目是初学者和进阶开发者学习Android编程的重要资源,它们展示了各种实用功能和技术的应用,有助于提升编程技能和理解Android平台的工作原理。 【描述】:“十个Android经典开源项目”的完整项目...
开源项目“jandre-dockerpc”是一个利用Docker容器技术和RPC(远程过程调用)机制构建的工具。这个项目的核心是将Docker作为服务提供,允许开发者通过RPC接口来管理和控制Docker容器。下面我们将详细探讨这个项目所...
压缩包中的"开源项目示例.apk"可能是这些开源项目的一个实际应用示例,开发者可以通过安装和运行这个APK来直观地了解这些框架在实际应用中的效果,观察其功能和界面设计。APK文件包含了编译后的Android应用程序,它...
"golang值得学习的优秀开源项目4合1"正是这样一份资源,它包含了四个精选的Go语言开源项目,旨在帮助新手深入了解Go语言的实践应用。 1. **项目一:Beego** Beego是一个快速开发Web应用的Go框架,它借鉴了Python的...