.net 基础服务开源战略规划备忘录

公司现状

  1. 技术反馈渠道限制: 公司业务线暂不多,基础服务的应用面尚属狭窄;基础服务和镜像各种环境的适应性和性能不足以及时凸显暴露出来,框架bug和问题使用反馈周期太长,不足以快速跟进和改善基础框架。

  2. 人员招聘渠道限制: 高技术人才未中长期储备, 各招聘渠道未能招募到合适的技术人员。临时招聘也不能在中短期内补充恰好求职的合适人员。(.net 行业大环境下人员本身也很紧缺)

  3. 人员成本预算限制: 因公司业务的发展与现实情况,基础研发人员数量有限,人员成本预算有限;(即便遇到非常合适者,薪资情况仍需各方努力达成。)

  4. 基础开发人员培养: 基础研发不同于业务线研发, 难以通过业务发展提升自身满意度,技术成就感,对性能和技术的追求。需要通过内在和外在的压力,才能推动研发人员不断讨论,不断汲取学习,思考和沉淀技术,微创新,将基础服务真正用心做好。

解决方向

在考虑公司各方面的资源限制和现状,以及人员的限制和培养,基础服务的性能要求和稳定性等综合的考虑,采用开源战略方向,形成开源->反馈->交流->改进的生态圈有利于缓解以上公司的现状问题。

若能形成开源生态圈,则可以促进开源项目稳定性,优化开源代码,根据反馈不断的提升自身的基础服务产品,吸引相关的高级技术人才维护检验项目,减少项目的开发维护成本,同时提升公司在技术领域的影响力,提升开发人员的成就感。 (目前淘宝,当当网, 蘑菇街,大众点评,携程,小米, 58同城等都有部分项目开源)

目标原则

融入开源社区,借助开源的生态能力,在有限资源条件下更有效率验证基础服务的性能,稳定性,推动其发展。

组织形式

公司开源技术委员会(虚拟)

开源生态孵化规划

1. 开源计划

基础服务开源计划: @车江毅【开发细节收集,改进】@孙明【开发细节收集,改进】 @徐龙【安装咨询】 @陈虎伯【安装咨询】

1)分布式任务调度平台 (已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.TaskManager)

@车江毅 @徐龙 @陈虎伯

2)分布式消息队列平台(已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BusinessMQ)

@车江毅 @徐龙 @陈虎伯

3)OpenApi开放平台(已开源,开源版本未更新最新,开源名称待订正 http://git.oschina.net/chejiangyi/ApiView)

@车江毅 @徐龙 @陈虎伯

4)BSF.EntityFramework (待整理开源) @孙明 @徐龙 @陈虎伯

5)分布式配置中心(已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager)

@车江毅 @徐龙 @陈虎伯

6)分布式消息推送平台(待整理开源) @孙明 @徐龙 @陈虎伯

7)分布式缓存中间件(已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/XXF.BaseService.DistributedCache)

@车江毅 @徐龙 @陈虎伯

8)分布式Tcp服务中心(待研发)

@孙明 @徐龙 @陈虎伯

9)分布式文件系统 (功能暂不足以推进开源)

10)分布式监控中心(已开源,开源版本未更新最新 http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor)

@车江毅 @徐龙 @陈虎伯

执行步骤

1)上传代码(新版本须建立新分支),整理文档(需求+demo+压测报告等),相关安装包(+安装文档等),readme简介。

2)撰写博文介绍项目的功能,demo和使用等,发布到公司知识库,发布到开源群,发布到开源社区。

开源QQ群

.net 开源基础服务 238543768

开源基金

设立一定的开源基金和开源任务发布计划等。(未来较长期的发展方向,部分核心技术外包形式【部分高级核心技术人员无法招募,就通过外包技术合作等形式】)

2. 开放计划

执行步骤

1)发布基础服务镜像内部测试版本,通过一定的业务功能验证其稳定性。(验证周期约一个月)

2)发布基础服务镜像开放测试版本,通过收集开源的反馈问题,验证其稳定性。(验证周期约三个月)

3)发布基础服务镜像正式稳定版本,仅对内提供,一般不对外公开。(产品发布的镜像版本须为稳定版镜像,并记录版本更新信息)

总体原则

1)稳定版镜像不对外公开,对外开放仅为最新开放测试的基础服务版本和跟进反馈。

基础服务镜像暂不对外允许商业使用权利,仅用于学习测试使用。(避免同行业商业竞争)

3. 反馈计划

交流QQ群: net 开源基础服务 238543768

交流社区: oschina,博客园,csdn,51cto等

源码开源: git.oschina.net,github等

通过线上qq群,社区,源码分享等多种渠道(还有线下的交流渠道),分享基础服务设计的成果和思路,汇聚志同道合或者同样需求的人才,一起探讨总体方向,细节,性能优化,同类产品建议等。

(根据经验: 一般至少80%的交流都是一些基础和废话,约20%的交流是值得思考的,10%的交流是值得改进和有价值的; 10%当中结合公司实际业务和具体问题,5%的建议可以形成一轮小版本迭代需求)

4. 线下计划

方向: 打通线上和线下交流,汇聚行业精英人才,打开技术交流渠道

形式: 以QQ群和微信群为交流汇聚点,通过策划线下圆桌会议,1对多小型技术分享会议,技术专家邀请分享,技术沙龙交流等交流会议

间隔: 一季度一次,不限人数,不限大小

人员: 公司内部人员推荐的(其他公司)人才,QQ技术交流群的高级人才,业内知名技术人才等

资金: 公司预算支持

场地: 咖啡馆,小会议室等安静休闲场所

效果: 拓宽技术眼界,了解行业技术动向,反馈一些价值的技术建议, 吸纳技术精英。

5. 人才计划

方向: 以基础服务开源为核心,宣传并推广开源技术为手段,高级技术人才人脉互相传递(人才)特性,打通线上反馈交流和线下会议分享,吸引并聚拢相关类型的技术人才(同时提高公司的技术影响力),形成一定规模的开源技术圈子。

目标: 以开源吸引形成技术互补,互动,培养,并到合适时机招聘入职;且适用于用于长期技术人才储备。

形式: 反馈计划,线下计划,人才储备关注(高级人才招聘时推荐公司开源社区并加入),公司内部员工推荐(曾经认为不错的技术同事),开源社区人才推荐(人脉传递)。

资金: 开源基金支持(未来考虑开源基金计划,如部分高级核心技术人员无法招募,就通过外包技术合作,发布开源任务模式等形式)

6. 培养计划

方向:为公司技术开发人员打开技术交流另一扇窗口,有交流才会有进步。(除了公司内部培训,交流外)

目标:以外部技术人才与内部开发在开源社区的互动交流,了解实时的行业技术动态(行业技术新闻和咨询,相关技术框架和更新等),打开开发人员的技术视野和思考,提升技术能力。

形式:在线社区(QQ,git技术反馈,开源社区)等沟通交流。

举例:一些技术难点,一些技术疑难问题,一些压测的性能指标等都可以在开源社区提出并咨询讨论。

开源规划总结

开源社区和生态的发展,如同公司业务的发展一样,是逐步形成的;虽然以目前公司的各方面现状,想法真正各方面切实落地为时尚早;

但是做为技术长期规划和发展展望,我们仍然需要时刻提醒自己的目标和方向,并严格要求自己代码和文档等各方面的质量要求,并不断完善且逐步推进。

(为了解并清晰未来公司开源技术的目标和方向,本规划文档需保留以作备忘。文档分不同时段完成,未校验文字,不足之处须见谅)

Original: https://www.cnblogs.com/chejiangyi/p/6386143.html
Author: 车江毅
Title: .net 基础服务开源战略规划备忘录

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589168/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python爬虫配置IP代理池(ProxyPool)

    关注我的公众号【靠谱杨的挨踢生活】回复 ProxyPool可以免费获取网盘链接。也可自行搜索下载:https://github.com/Python3WebSpider/Proxy…

    Java 2023年6月15日
    094
  • JS跨域通信方法及SF相关问题

    iframe的跨域通信比较推荐的是采用信使的方式。基本地原理是在iframe的内部再创建一个iframe(称之为信使),父子页面轮询信使的window.name,父子页面各自使用变…

    Java 2023年6月7日
    061
  • Docker Container 就是一个进程,多新鲜啊?

    大家对 Docker 都应该有了或多或少的认识了,相信大家都是从这两张图来粗旷的理解 Docker 及容器概念的 那我们如何更轻松的理解容器 Container 呢?说白了 Con…

    Java 2023年6月5日
    0104
  • 计算Java对象内存大小

    本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内…

    Java 2023年5月29日
    098
  • RocketMQ集群的Slaver同步异常wait response on the channel <” + addr + “> timeout源码跟踪

    导航 RocketMQ集群的Slaver同步异常wait response on the channel posted on2021-05-17 20:22 光辉飞翔 阅读(142…

    Java 2023年5月30日
    067
  • 关系数据库元数据处理类(二) 定义查询元数据接口

    1 /// 2 /// 数据库元数据处理 3 /// 4 public interface IMetadata 5 { 6 #region DataBase 7 /// 8 ///…

    Java 2023年6月5日
    082
  • 年年出妖事,一例由JSON解析导致的”薛定谔BUG”排查过程记录

    前言 做开发这么多年,也碰到无数的bug了。不过再复杂的bug,只要仔细去研读代码,加上debug,总能找到原因。 但是最近公司内碰到的这一个bug,这个bug初看很简单,但是非常…

    Java 2023年6月8日
    086
  • 程序员进去了,还会写代码吗?

    因为删库跑路,我坐牢了。 公司老板经营不善,拖欠工资半年,我终于忍无可忍,提出离职。 而老板居然说:爱走就走,一毛没有。滚吧! 我气愤的直接设置了全盘删除的自动任务,明天凌晨定时执…

    Java 2023年6月9日
    073
  • Day1 使用MarkDown

    二级标题 三级标题 Hello,world Hello,world Hello,world Hello,world java 分割线 超链接 A B VC https://imag…

    Java 2023年6月5日
    082
  • Hbase初识

    简介 数据模型 相关数据库 典型应用 优势 劣势 key-value Redis 缓存 快速查询 存储数据缺乏结构化 列族 Cassandra,Hbase 分布式的文件系统,大规模…

    Java 2023年6月8日
    086
  • SSM常见面试

    HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。 Han…

    Java 2023年6月9日
    094
  • JAVA对象相互转换的多种实现方式

    是一个代码生成器,它基于约定优于配置的方法,极大地简化了 Java bean 类型之间的映射实现。生成的映射代码使用普通的方法调用,因此速度快、类型安全且易于理解。 官方文档htt…

    Java 2023年5月29日
    067
  • Jquery——-获取网页参数

    作者:风清扬 No.1 出处: 如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的 按钮。 如果,您希望更容易地发现我的新博客,不妨点击一下右下角的 因为,我的写作热情也离…

    Java 2023年6月7日
    078
  • 从零开始实现lmax-Disruptor队列(二)多消费者、消费者组间消费依赖原理解析

    在v1版本的MyDisruptor实现单生产者、单消费者功能后。按照计划,v2版本的MyDisruptor需要支持多消费者和允许设置消费者组间的依赖关系。 由于该文属于系列博客的一…

    Java 2023年6月8日
    080
  • MySQL基础

    1、select语句及其执行顺序 select 要返回的列或者表达式 from 从中检索数据的表仅在从表选择数据时使用 where 行级过滤 group by 分组说明仅在按组计算…

    Java 2023年6月8日
    076
  • maven工程servlet实例之导入项目依赖jar包

    maven工程servlet实例之导入项目依赖jar包 添加 jar 包的坐标时,还可以指定这个 jar 包将来的作用范围。每个 maven 工程都需要定义本工程的坐标,坐标是 m…

    Java 2023年6月6日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球