草庐IT

从Multirepo到Monorepo 袋鼠云数栈前端研发效率提升探索之路

一、困境频生前端代码管理何解?前端代码管理一直是困扰不少前端开发团队的难题,从开发到发布的整体工作流程中,除了常规的技术问题外,往往还伴随着沟通成本、维护成本及协作效率等问题。这些问题在团队规模较小的时候可能不太明显,但是当团队规模变大时就矛盾越发凸显。数栈前端开发团队负责着离线开发,实时开发,数据服务等多条产品线的开发和维护工作,面对众多的产品线,如何合理的管理代码,成了团队需要思考的问题,虽然借助了Multirepo进行管理,但还是遇到了许多难题:●私有源维护成本增加为复用相关业务逻辑,团队内部抽象出一些私有包,由于不能在公网暴露,为了管理这些私有包团队使用了私有源,但由于搭建私有源服务器

列存引擎 Tianmu 如何实现 Delete?| StoneDB 研发分享 #3

作者:李红建责编:宇亭在第一期研发分享中,我们解释了,为什么Tinamu作为一款列式存储引擎在初期不支持Delete功能的原因,然后对一些友商列式存储引擎的Delete方案进行了一些调研和总结,感兴趣的同学可以查看我们上一期的分享:关于列式数据库实现Delete功能的调研之旅。本期文章,我将向社区小伙伴们详细地介绍一下给StoneDB的Tianmu存储引擎添加Delete功能的开发思路,希望对感兴趣的同学提供帮助。Tianmu引擎的存储结构首先我们需要知道Tianmu引擎的数据是怎么样存储的,这样才知道应该怎么删除数据,所以我们先研究下Tianmu引擎的存储结构。Tianmu为每个表单独建立了

列存引擎 Tianmu 如何实现 Delete?| StoneDB 研发分享 #3

作者:李红建责编:宇亭在第一期研发分享中,我们解释了,为什么Tinamu作为一款列式存储引擎在初期不支持Delete功能的原因,然后对一些友商列式存储引擎的Delete方案进行了一些调研和总结,感兴趣的同学可以查看我们上一期的分享:关于列式数据库实现Delete功能的调研之旅。本期文章,我将向社区小伙伴们详细地介绍一下给StoneDB的Tianmu存储引擎添加Delete功能的开发思路,希望对感兴趣的同学提供帮助。Tianmu引擎的存储结构首先我们需要知道Tianmu引擎的数据是怎么样存储的,这样才知道应该怎么删除数据,所以我们先研究下Tianmu引擎的存储结构。Tianmu为每个表单独建立了

表格识别与内容提炼技术理解及研发趋势

引言:表格是各类文档中常见的对象,其结构化的组织形式方便人们进行信息理解和提取。表格的种类根据有无边框可以划分有线表、少线表、无线表。表格样式复杂多样,如存在背景填充、光照阴影、单元格行列合并等情况。大数据时代存在大量电子文档,应用表格识别技术能够减少表格处理时间,因此表格识别是文档理解领域的重要研究课题,也是合合信息这几年的技术突破点方向之一。表格识别主要包括表格检测和表格结构识别两个子任务。表格检测主要检测表格主体,即样本中表格区域。表格结构识别是对表格区域进行分析,提取表格中的数据与结构信息,得到行列分布与逻辑结构。未经特殊说明,以下表格识别专指表格结构识别。研究现状与解决方案:近年来,

表格识别与内容提炼技术理解及研发趋势

引言:表格是各类文档中常见的对象,其结构化的组织形式方便人们进行信息理解和提取。表格的种类根据有无边框可以划分有线表、少线表、无线表。表格样式复杂多样,如存在背景填充、光照阴影、单元格行列合并等情况。大数据时代存在大量电子文档,应用表格识别技术能够减少表格处理时间,因此表格识别是文档理解领域的重要研究课题,也是合合信息这几年的技术突破点方向之一。表格识别主要包括表格检测和表格结构识别两个子任务。表格检测主要检测表格主体,即样本中表格区域。表格结构识别是对表格区域进行分析,提取表格中的数据与结构信息,得到行列分布与逻辑结构。未经特殊说明,以下表格识别专指表格结构识别。研究现状与解决方案:近年来,

【原创】K8S环境下研发如何本地调试?kt-connect使用详解

K8S环境下研发如何本地调试?kt-connect使用详解背景注:背景有点啰嗦,讲讲一路走来研发本地调试的变化,嫌烦的可以直接跳过,不影响阅读。2019年我在的公司当时是个什么情况,只有两个Java应用,还都跑在一个TomcatServlet容器。当时是如何本地调试?都是研发自己电脑装个Mysql,装个Tomcat,自己电脑运行调试,好处嘛就是后端研发互不干扰,想怎么改就怎么改,APP端研发就直连后端的笔记本调试。上线部署嘛就是一个研发手动编译个Jar包丢到云服务器上面,大体就是个草台班子,能干活,但是也就那样。2020年到了2020年,公司买了一台服务器,Centos的系统,给装上了Mysq

【原创】K8S环境下研发如何本地调试?kt-connect使用详解

K8S环境下研发如何本地调试?kt-connect使用详解背景注:背景有点啰嗦,讲讲一路走来研发本地调试的变化,嫌烦的可以直接跳过,不影响阅读。2019年我在的公司当时是个什么情况,只有两个Java应用,还都跑在一个TomcatServlet容器。当时是如何本地调试?都是研发自己电脑装个Mysql,装个Tomcat,自己电脑运行调试,好处嘛就是后端研发互不干扰,想怎么改就怎么改,APP端研发就直连后端的笔记本调试。上线部署嘛就是一个研发手动编译个Jar包丢到云服务器上面,大体就是个草台班子,能干活,但是也就那样。2020年到了2020年,公司买了一台服务器,Centos的系统,给装上了Mysq

产品与研发相处之道

    方才一个开发经理和兄弟项目组的产品经理怼起来了。事情大概是,两边对接,那边希望我们出一个接口,而我们这边实际上是两个完全不同的实体概念,开发经理觉得应该提供两个基础接口,合成一个不科学。  吵得难分难解,我则狗在一边不说话,希望他们最后能自行解决。结果还是被抓到,锅,你说到底要咋整……  之前则有一对更合不来的项目经理和产品经理,来找我分别聊,“这项目经理是不是管太多了……”,“这产品经理是不是管太多了……”。矛盾日积月累,最后公开化,群里国骂都出来了,公司只好做了调离处理。   触景生情,聊聊产品经理与研发…… 一、产品与研发的前世今生  这类冲突往往爆发于,研发的leader与产品

产品与研发相处之道

    方才一个开发经理和兄弟项目组的产品经理怼起来了。事情大概是,两边对接,那边希望我们出一个接口,而我们这边实际上是两个完全不同的实体概念,开发经理觉得应该提供两个基础接口,合成一个不科学。  吵得难分难解,我则狗在一边不说话,希望他们最后能自行解决。结果还是被抓到,锅,你说到底要咋整……  之前则有一对更合不来的项目经理和产品经理,来找我分别聊,“这项目经理是不是管太多了……”,“这产品经理是不是管太多了……”。矛盾日积月累,最后公开化,群里国骂都出来了,公司只好做了调离处理。   触景生情,聊聊产品经理与研发…… 一、产品与研发的前世今生  这类冲突往往爆发于,研发的leader与产品

浅谈研发实践的技术债与效能提升

在软件研发过程中,往往随着为了快速满足业务要求的压力,用户需求的变更,软件代码的增多,以及版本的迭代,团队成员的变化等等因素,导致一个软件项目随着时间推移,欠的技术债会越积越多,用户使用容易出错,部署流程也变得复杂。技术债务不及时还掉,就会产生“利息”,进而导致软件复杂度呈指数级增长。代码行越多,逻辑越复杂,技术债务就会欠的越来越多,最终到了某个临界点的特定时刻,软件代码就会变得失控,没人知道里面改动会带来什么后果。每一次的需求修改调整,引发即使很小的代码修改,可能由于软件复杂度变高,都会带来新的问题,轻则导致软件无法正常使用,重则导致出现严重的问题,甚至系统崩溃无法正常使用等问题。随着时间的