GrowingIO Reactor速成指南

2021-12-20
阅读 14 分钟
2.7k
Reactor is a fully non-blocking reactive programming foundation for the JVM, with efficient demand management (in the form of managing “backpressure”). It integrates directly with the Java 8 functional APIs, notably CompletableFuture, Stream, and Duration. It offers composable asynchronous sequen...
封面图

GrowingIO Terraform 实践

2021-12-09
阅读 5 分钟
1.8k
为满足 GrowingIO 客户多样性的需求,在公有云设施上使用 Terraform 作资源管理。采取 Terrform 具有以下相关优势:
封面图

一文搞定前端错误捕获和上报

2021-11-18
阅读 4 分钟
3.8k
众所周知,几乎没有一个开发者能够做到开发时100%没有Bug,那么一旦我们的产品出了问题,快速定位问题是迫切需要做的事。好在我们在Web场景中Js运行出现异常不会导致JS引擎崩溃,最多只会终止当前执行的任务。然后逐级上抛错误,类似冒泡事件,在遇到最近的一层catch时停止上抛,如果中间都没有错误处理的catch时,直至w...
封面图

GrowingIO Design 图标库:从原理到实现

2021-11-12
阅读 7 分钟
1.6k
随着前端技术的发展,网页中的图标(Icon)已经不再局限于 <img> 标签,还有很多实现方式,比如:Sprites(俗称雪碧图)、Icon Font(字体图标)、SVG 等等。而一个被工程师所熟知的前端框架 Bootstrap,用这些技术实现了它的图标库。
封面图

ClickHouse用户资源隔离在 GrowingIO 的实践

2021-11-05
阅读 11 分钟
3.3k
对 ClickHouse 做多租户,是一个非常必要的场景。如果不加限制,用户可能会过度消耗数据库服务的资源,影响其他用户使用。本文尝试在硬件级别的隔离之外,给大家展示另外一种相对便宜的方法。
封面图

GrowingIO 数据安全实践

2021-10-22
阅读 5 分钟
1.4k
根据《中华人民共和国数据安全法》中第三条,给出了数据安全的定义,是指通过采取必要措施,确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。
封面图

GrowingIO Design 组件库搭建之 CI/CD

2021-10-15
阅读 8 分钟
1.6k
在《GrowingIO SaaS 产品 CI/CD 实践》一文中,介绍了持续集成(Continuous Intergration,简称 CI)、持续交付(Continuous Delivery,简称 CD)和持续部署(Continuous Deployment,简称 CD)三个概念,以及在 GrowingIO SaaS 产品中的实践。 文中还强调一个典型的 CI/CD 流程建设至少需要具备以下功能的工具:
封面图

Flutter 无埋点SDK实现

2021-10-09
阅读 13 分钟
1.5k
前言先看下各个平台自动化埋点支持从编译期进行代码插桩,则需要修改编译期的中间件文件。Dart文件编译会先编译成Dill文件,然后再编译成二进制代码。如果能在编译器拿到Dill文件,然后进行修改插桩,再进行编译成Binary Code就可以达到AOP埋点的效果flutter_tool是flutter的编译工具,其并没有提供接口供开发者hook,以...
封面图

Flink 实时 metrics

2021-09-23
阅读 5 分钟
2.8k
目前我们的 flink 任务跑在 yarn 集群上,在面对以下问题时常驻实时 job 是否在稳定运行?实时数据的处理能力如何?消费过慢?是否需要申请更多资源提升消费能力?实时数据质量可靠?是否有丢数据的风险?实时任务现有的资源是否足够支撑现有的数据量?资源是否闲置浪费?虽然 flink web ui 提供了一些监控信息,但是对...
封面图

Growing 账号认证实践

2021-09-18
阅读 7 分钟
1.5k
GrowingIO 作为专业的数据运营解决方案提供商,我们的客户来自不同的行业,但他们都有相同的安全需求。在众多的客户中,许多客户都有自己的账号认证系统。因此我们需要能通过简单的配置接入客户的账号认证系统。目前 GrowingIO 一共支持了 CAS, OAuth2, LDAP 三种不同的接入协议。本文将详细介绍我们是如何支持这三个接...
封面图

Frida笔记 - Android 篇 (一)

2021-09-09
阅读 8 分钟
3.2k
相信不少小伙伴对Xposed、Cydia Substrate、Frida等hook工具都有所了解, 并且用在了自己的工作中, 本文主要分享Frida的环境配置以及基本使用, 以及相关功能在日常开发调试带来的帮助
封面图

数据结构和算法在流程画布中的实际应用

2021-09-02
阅读 11 分钟
1.7k
图灵奖的获得者,Pascal 之父——Niklaus Wirth ,有个经典说法:“算法+数据结构=程序”(Algorithm+Data Structures=Programs)。我们以这个说法为思路,看在流程画布这个场景中,如何应用数据结构和算法来解决实际的业务需求。
封面图

GrowingIO Design 组件库搭建之单元测试

2021-08-19
阅读 6 分钟
1.6k
GrowingIO Design 是用 React 编写的组件库,本质上就是 React 组件,你可以用像测试其他 JavaScript 代码类似的方式测试 React 组件。现在有许多种测试 React 组件的方法。大体上可以被分为两类:
封面图

iOS App注入SDK调试

2021-08-19
阅读 5 分钟
2k
前言本文仅作为技术分享,对于一些iOS SDK开发以及维护所遇到的场景问题进行处理,例如:客户想提前知晓线上App集成我们SDK后,是否会有SDK兼容性问题,例如Crash,符号冲突客户线上App集成了我们SDK,出现了问题,如何进行排查我们想测试SDK在某一款App中是否功能正常对于这些问题,一般来说我们无法拿到App的源码,想...
封面图

Jira Automation 探索与实践

2021-08-18
阅读 10 分钟
2.3k
​2020 年上半年,Atlassian 在 Jira Cloud 上推出了一个非常不错的新功能 Jira Automation,将强大的无代码自动化功能带入 Jira Cloud 原生功能中,不用安装额外的插件,就可以非常方便的实现如下能力:
封面图

hbase运维故障案例分析

2021-07-22
阅读 6 分钟
1.3k
在实际运维HBase集群时,各位小伙伴总会遇到RegionServer异常宕机、业务写入延迟增大甚至无法写入等类似问题。本章结合笔者的经验、列举真实生产线环境常见的几个问题,并介绍这些地问题的基本排查思路。同时,重点对HBase系统中的日志进行梳理介绍,最后对如何通过监控、日志等工具进行问题排查进行总结,形成问题排查...
封面图

Web UI自动化的设计和实践

2021-07-16
阅读 6 分钟
2.8k
UI 自动化测试,即通过自动化的手段来控制机器模拟人进行手工操作。随着 GrowingIO 业务的不断发展,新需求的不断增加,回归测试的任务越来越重,现有测试的资源已经不足以应对繁重的回归测试任务,亟需 UI 自动化来代替人手工进行回归测试,解放回归测试的人力去做更精准的测试。因此,引出下文在 GrowingIO 的Web UI ...
封面图

Clickhouse Projection 特性探索

2021-07-08
阅读 6 分钟
3.6k
​年初的clickhouse meetup上快手团队分享了clickhouse projection在其公司内部的实践。分享包括了projection原理、使用、性能测试等内容。从性能测试的数据上看,projeciton对查询性能有着百倍级别的提升,意味着之前分钟级的查询响应延迟,将会提升到秒级响应。秒级的查询响应延迟,将会提升到毫秒级的响应,对于使用者...
封面图

GrowingIO Design 组件库搭建之Select组件

2021-07-05
阅读 10 分钟
1.6k
Select 是最频繁使用的UI组件之一,它可以运用在很多场景。大多数情况下,原生HTML的<Select>标签无法满足业务的功能过需求,以及原生HTML的<Select>标签在各个浏览器版本里样式表现不太一样。在这样的情况下,多数人都会选择实现一个符合UI要求以及产品功能需求的Select组件,或者选择使用一些开源组件库提...
封面图

使用 Scala 宏解决对象转换

2021-06-28
阅读 6 分钟
1.8k
在 GrowingIO 服务端的开发中,我们使用 gRPC 进行微服务之间的数据通信,每个提供服务的项目,都要定义一套自己的 Protobuf 消息格式,然后利用 protoc 去生成对应语言的适配代码。在我们维护的项目中,主要使用 Scala 语言来实现各个服务,每个服务都会定义一套自己的领域模型(一般是一些 case class),而 protoc 默...
封面图

Taro3无埋点的探索与实践

2021-06-17
阅读 8 分钟
2.2k
对于Taro框架,相信大多数小程序开发者都是有一定了解的。借助Taro框架,开发者们可以使用React进行小程序的开发,并实现一套代码就能够适配到各端小程序。这种促使开发成本降低的能力使得Taro被各大小程序开发者所使用。使用Taro打包出来的小程序和原生相比是有一定区别的,GrowingIO小程序的原生SDK还不足以直接在Taro...
封面图

GrowingIO 增长平台产研项目管理实践

2021-06-11
阅读 5 分钟
1.8k
GrowingIO 从 2018 年引入 Jira Cloud 产品及服务,主要用于产研团队的项目管理,本文尝试从工作、人员、时间这几个方面介绍 GrowingIO 增长平台产研部门在项目管理设计上的选择,以及使用 Jira 这款项目管理工具进行的一些实践。
封面图

PostgreSQL 的审计和权限控制系统

2021-06-09
阅读 5 分钟
1.3k
GrowingIO 作为一家大数据公司,核心资产虽然在大数据平台上,但关系型数据库仍扮演着不可或缺的角色。它担负着存储产品逻辑,配置信息等重要数据信息。GrowingIO 目前的数据库实例较多,例如按环境区分为开发环境,测试环境,生产环境等不同环境。按需求来说,又存在运维人员需要直接修改线上脏数据,开发人员本地访问...
封面图

GrowingIO Design 组件库搭建之组件开发

2021-06-03
阅读 4 分钟
1.5k
组件是标准化的、可互换的 UI 模块。它们封装了 UI 部分的外观和功能。想想乐高积木。乐高积木可用于建造从城堡到宇宙飞船的所有东西,组件可以拆开并用于创建新功能。组件通过将状态与应用程序业务逻辑隔离来实现互换性。这样,你可以将复杂的屏幕分解成简单的组件。每个组件都有定义明确的 API 和可被 Mock 的系列状态...
封面图

GrowingIO 前端团队对于 GraphQL 的实践总结

2021-06-03
阅读 6 分钟
2.5k
社区里已有很多有关 GraphQL 入门和原理的文章,GraphQL 和 Apollo Client 的官方网站也有较为详细的介绍。相对于 RESTful API(简称 REST),社区也从各个方面分析了 GraphQL 的优劣利弊。本文主要是从前端角度出发,在如今前后端开发分离盛行的前提下,分享一些我们如何利用社区中热门的工具提高开发效率和工程质量的经...

BitMap 转置算法:不一样的 Count 求解方式

2021-05-19
阅读 5 分钟
2k
通常在移动端 APP 的数据统计分析中,用户在未登录的情况使用 APP 都会被赋予一个基于设备标识 ( 例如 IDFA , AndroidID ) 的访问用户 ID ,在登录后会被 APP 端根据账号信息赋予一个全局唯一的登录用户 ID ,基于访问用户 ID 或登录用户 ID , 数据平台可以轻松的统计出该用户在 APP 端的访问情况。
封面图

如何让研发新同学快速 Onboarding

2021-05-17
阅读 3 分钟
1.3k
这个问题牵涉了很多角色,除了研发新同学和 Mentor,还有团队 Leader、架构师,HR 也可能要关注这个问题,尤其是在公司技术转型的过程中。
封面图

针对 Restful 协议下的接口测试平台设计

2021-05-17
阅读 5 分钟
977
目前市场上很多 Web 应用转向了 RESTful 的架构,往往暴露给用户的往往就是一组 REST API,这样的好处就是,研发人员可以根据需要调用不同的 API,整合出自己的应用出来。
封面图

GrowingIO SaaS 产品 CI/CD 实践 (一)

2021-02-04
阅读 10 分钟
2k
作者:郝阔君GrowingIO QA Leader,曾任职于中国惠普、奇虎 360。带领 QA 团队负责 GrowingIO 全产品线质量保证工作,目前专注于 DevOps 实践,帮助团队提升质量和效率。
封面图

GrowingIO Design 组件库搭建之开发工具

2021-01-13
阅读 6 分钟
1.7k
在 20 世纪 60 年代,计算机技术开始超过软件编程的速度。计算机变得更快、更便宜,但是软件开发仍然缓慢,难以维护,并且容易出错。这种差距,以及如何应对,被称为“软件危机”。