V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
switch2
V2EX  ›  问与答

开发为什么要从零开始搭建属于自己的统一研发平台和中台架构

  •  
  •   switch2 · 2019-06-24 14:11:58 +08:00 · 1354 次点击
    这是一个创建于 1934 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从零开始搭建的意思,就是从需求分析,系统规划,设计分析和落地实践几个步骤,从无到有的过程。考虑左右,为了个人学习和提升,选型基于流行的 springboot+springcloud,从零开始搭建一套自己用于学习的研发平台。

    产出方向为企业基础架构和统一研发云平台,为企业提供统一研发平台,同时在统一研发平台上建设企业中台业务服务, 整体平台从 基础规范 - 组织结构 - 基础架构 - 业务开发 - 持续集成- 自动化部署 - 自动化测试 - 生产运维监控 - 在线升级 的全方位企业级研发平台开发解决方案,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关 API 管理等多个模块,结合多个组件,为开发提供基础开发架构和支持,同时结合多种单点登陆方式(Cookies+SpringSession 和 Cas),支持多业务系统并行开发。

    整个研发平台产物: https://gitee.com/landonniao

    整体研发平台使用的基线规划如下

    平台所有基线及所有项目目录结构,整体从零开始进行平台基线搭建及规划,多个基线的规划,考虑更合适多个岗位角色的管理

    个人为什么要搭建一个统一研发平台

    1、为了有方向感,不迷茫,不浪费时间,有可行的学习计划

    上大学的时候,就开始学习计算机,从基础的 Java 到 Java web,再到框架,再到在学校接一些小项目,如企业网站,兼职网,报名网站等,这几步路大概走了 2 年左右,而在学完两年之后,人还是很迷茫,方向感还不是特别强,而在找方向和突破迷茫上面,走过了很多弯路,终于找到点方向。后来才发现,很多这个专业的同学,可能毕业几年之后,依然还找不到方向和定位,东学一点西学一点,很浪费时间,可能醒悟的时候,已经过了 3~5 年,很难再转回头。

    2、为了在工作和学习过得中不断积累和提高学习效率

    学习和工作的几年里,几乎每个项目,资料,文档,规范都是有共性的,而由于各个项目的不统一,在接收新项目的,几乎都从零开始,一些非功能性需求的建设已经占去了实际项目的很多时间,投入需求建设的时间其实没多少,最简单的,代码的 CURD 都是一样,自己在做的时候,针对每个项目都有改进,比如这个项目统一了 CURD,那个项目梳理出了公共代码,但是项目是分开的,最终新的项目,也是从零开始或者复制,再加上人工,手工,人肉运维,不断的繁琐而简单的工作的学习中无法脱身,影响进入下一步学习。这类似于温水煮青蛙,没有感觉,可能慢慢拖死自己,特别是做项目的前两年,除了数据的添加删除,还是这些。重复开发,无法共用这些都消耗了很长的时间。比如一直想学大数据,但是由于没有好的平台依托,目前还是无法投入学习。

    3、为了可以总结和反思,可以不断的打磨出一个平台,一个产品或者一个精品

    这几年的工作和学习中,有很多都是在学习,在努力,也很上进,资料有不计其数,但是却在用的时候,没有深入或者精通某一个模块,最常见的,连自己精通的模块都无法界定,不自信,没有自己的深入心得,比较浮在表面上。自己近乎有两年的状态如此,一直在努力,但是却一直没有达到预期的,别人认可的效果,接触的面好像很多,但是却没有哪一样是完全吃透的。最终发现的原因是没有做好总结和复习,反思,一个知识点以为看过了就懂,但是没有结合实际进行提炼与打磨,没有吃透,就往下一个模块,最终导致好像不断的在捡东西,但最终这些东西都不是自己的。所以需要打磨自己的东西,能谈出自己心得,这就是自己的产品,就是自己的精品,或者自己就一个精品。

    4、为了扩大自己的视野和学习心态,开放心态

    学习中最怕和就是无沟通与交流,没有他人的指点和自己的固步自封,坐井观天等心态,在学得一些技术之后,开始自以为自,然后偏向于安逸。明显,这种心态自己曾经有过,而且持续很长一段时间。这间接造成不管是沟通、技术方面都慢慢出现问题。自己一直相信,心态有多开放,有多宽容,帮助的人越多,自己也才更好的成长,不管是技术还是管理,包括生活等。

    个人需要搭建怎么样的研发平台来学习

    1、可以随时随地的学习,只要有网络和电脑,就可以学习

    闲碎的时间常常存在,比如学校上机,看手机,还有一些无聊的聚会,甚至上厕所,这些都要能可以用来学习,网络现在无处不在,有个手机就可以上网,所以这些时间要能充分利用起来。

    2、可以好的工具和学习环境

    学习过程,工具的成熟度和熟练程度很多时间影响到自己的学习效率。比如 vim 的配置使用,熟练之后,不管在编辑和代码方面,速度都比一般的操作快得多。还有 jenkins,在这个工具上不断的学习和积累,不管是配置和权限,发布,运维,分布式都能很大的帮助,同时节省很多时间。

    3、可以不断的学习目标,最好从基础程序员到总监

    学习有一个从零开始,到不断往上的过程,并且有目标,知道每个目标阶段需要什么样的技术,能力,成长时间等,做到心知肚明,不浪费多余时间 。可以不断的有学习积累,在积累上由量变到质变

    5、可以不断的跟外界沟通交流,避免闭门造车,固步自封

    需要不断的与外部学习,获取到外部的建议,看到自己的不足,同时也看到自己的优点。在自己不断学习的过程中,同时不断的成果,并让别人看到,给自己提建议,在自己把自己的思路成果对外贡献的同时,别人也一样帮自己提升。

    其它的建议,如包括人才培养,大数据,人工智能,项目管理,都是在研发平台中慢慢积累和培养的产物,而最终的结果是为了整理出一套完整的企业统一研发平台。

    总结

    以上为目前搭建整体个人整体研发平台的思路和设计,一个优秀的研发人员的工作并非只是编制代码,更多的是自己能做什么,完成什么,有什么价值,能帮别人做什么。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1401 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 17:25 · PVG 01:25 · LAX 10:25 · JFK 13:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.