七猫utools插件分享

七猫utools插件这个工具其实已经在测试团队内部使用了很长一段时间了,在很多体验过同学的自来水推广下,很多业务组的开发同事也开始使用这个工具。可以说是很实用也广受好评的一个测试工具箱。…

七猫日志接收系统之客户端埋点 SDK

七猫日志接收系统系列文章将会向大家介绍七猫日志接收系统及相关的埋点 SDK,总共分为四篇, 本文为系列的第三篇,将介绍客户端埋点 SDK 的实现,主要涵盖了埋点日志的采集、存储、上传等一系列流程。…

纵横Android阅读器-绘制优化

随着纵横小说app各模块的迭代升级,阅读器所承载的功能也日益复杂。由于诸多历史遗留问题,阅读器内控件的绘制和点击实现方式变得相当繁琐,导致即便是对阅读器的微小调整,也需要耗费较长的开发周期,尤其是在当前一周一版的发布节奏下。因此,阅读器的需求变得难以快速响应,很难实现每周小步迭代。在本文中,将探讨纵横小说阅读器中可交互控件在简化现有实现方式上所做的一些尝试。…

七猫研发中心参加 Gopher China 2023 大会上海站回顾

2023 年 11 月 19 日,时隔三年 Gopher China 大会终于回归上海(Gopher China 2023 - 上海站)。Gopher China 大会是为广大的 Go 语言开发者以及大规模应用 Go 的示范企业精心准备的一场技术盛宴。自 2015 年由 Go 中国社区发起的第一届 Gopher China 大会在上海成功举办以来,历时 8 年它已经成为了国内最权威和最干货的 Go 大会。…

七猫日志接收系统之架构设计(下)

七猫日志接收系统系列文章将会向大家介绍七猫日志接收系统及相关的埋点 SDK,总共分为四篇。本文为系列的第二篇,我们将基于当前的 v4 版本详细介绍七猫日志接收系统架构,并从日志处理效率、系统的高可用以及成本控制等方面进行架构设计分析。同时随着七猫的继续壮大,日志接收系统必将迎来越来越多的挑战,我们也会对后续的迭代版本进行规划与展望。…

xorm与go-sql-driver的时区问题

go-sql-driver时区的默认配置是零时区,xorm默认的是本地时区,那么在DSN的配置中,加上loc=Local,让go-sql-driver与xorm使用相同的时区,这样就能避免我们在使用time.Time传递参数时,各个模块时间转换不一致的情况出现。…

Prometheus TSDB 的设计与实现

TSDB(时序数据库)是 Time Series Database(时间序列数据库)的简称,TSDB是一种高性能、低成本、稳定可靠的在线时间序列数据库服务,提供高效读写、高压缩比存储、时序数据插值及聚合计算等服务,广泛应用于物联网(IoT)设备监控系统、企业能源管理系统(EMS)、生产安全监控系统和电力检测系统等行业场景,除此以外,还提供了时空场景的查询和分析的能力。…

媒体推广业务架构演进

在互联网APP项目推广中,媒体在线推广是市场推广中重要的推广手段之一,通常在运营中称之为买量或者付费推广,在推广的过程中,广告主需要与媒体进行对接,广告主需要对媒体侧下发的点击信息进行接收,用户下载完成激活后,还需要通过媒体下发的点击信息对新增或者沉默后又活跃的用户进行识别,主要识别来源于哪个平台及具体的广告效果,最后还需要回传通知广告平台激活用户设备相关的信息,从而实现广告平台与广告主之间推广及效果追踪溯源的链路闭环。七猫的媒体推广业务架构也随着业务的发展进行了一系列的演进,本文整理了整个过程中重要的调整节点,介绍整个架构的演进过程。…

StarRocks之视图及物化视图的实践

StarRocks提供了高效查询和数据处理的功能。为了方便用户进行复杂的查询操作,StarRocks引入了视图和物化视图技术,在 StarRocks在七猫的应用(二)中也提到视图与物化视图的作用。…

探索Go函数式编程:提升你的代码品质与可维护性

在2014年软件工程基础(FSE)大会上发表的一篇学术论文“A Large Scale Study of Programming Languages and Code Quality in Github”声称,函数式编程范式具有更低的代码错误率等四个结论。Go 支持一等函数、高阶函数、用户定义的函数类型、函数文字、闭包和多个返回值。 这些丰富的功能正好支持一门强类型语言编写出函数式编程风格的代码。…

OpenResty + Lua 实现灰度发布

七猫作为一家成熟的互联网公司,业务有超百万QPS的高并发。我们的产品开发逃不开的特色就是不停的升级升级再升级。随着敏捷小组的建立,发版频率也逐渐提升至每两周一次或者每周一次。然而系统升级总是会伴随着各种风险,一些系统风险比如:宕机风险,服务不可用的风险;还有一些用户体验风险:业务改动使得用户体验改变导致用户流失等风险。为了规避或者提前预知这些风险,灰度发布的概念应运而生。…

七猫日志接收系统之架构设计(上)

七猫日志接收系统系列文章将会向大家介绍七猫日志接收系统及相关的埋点 SDK,总共分为四篇,本文为系列的第一篇,将带大家一起回顾七猫 2020 年至今,七猫日志接收系统近四年来的演化历程。如果您之前未了解过统计埋点系统,强烈推荐您阅读本站发布的七猫统计埋点实践一文。…

领域驱动分层设计-达人平台

领域驱动设计(DDD)是一种架构设计方法,它利用领域、子域、核心域、通用域、界限上下文、自顶向下的概念作为黏合剂,利用实体、值对象、聚合和聚合根等构造物作为砖头,将复杂的系统构造成多个从整体到局部高内聚、低耦合的子系统。…

七猫算法推荐引擎架构演化之路

转眼间,七猫的算法推荐平台已走过了近三个年头,三年来,算法推荐引擎从0到1,经过一次次迭代更新,逐渐变得完善。这篇文章主要从我们推荐引擎的技术架构出发,给大家分享一下我们的架构演化之路,以及对未来演进方向的展望。…

七猫分布式追踪实践

Metrics(指标)、Logging(日志记录)、和Tracing(追踪)通常被称为可观测性的三大支柱。在微服务架构下,分布式追踪是一种关键工具,用于帮助排查和理解服务问题,它允许跟踪请求流程并提供关键的信息,以便更容易发现和解决问题。…

七猫消息推送系统演进之路

七猫推送系统经过近两年的开发迭代,已逐渐稳定完善,作为成本较低的拉活手段,已成为七猫越来越不可缺少的基础能力。本文将带大家一起回顾七猫推送系统从诞生到成熟稳定的演进…

系统测试中的Go代码覆盖率统计

传统软件测试技术主要基于测试人员对业务的理解,但由于经验的局限性、被测系统的复杂性以及与真实业务数据的差距,肯定存在测试不充分的情况,所以,虽然整个测试流程很规范,但最终软件质量还是不尽如人意。随着分布式、微服务架构、大数据技术的出现,软件越来越复杂,迭代越来越快,测试的挑战性越来越大。引入系统测试的代码覆盖率统计,可以帮助研发识别无效代码,辅助测试提高测试覆盖度等…

使用ARMS+LTS监控告警应用实践

鉴于之前调研的夜莺等一体化监控告警工具,我们综合总结下来,使用阿里云提供的ARMS告警系统,以减轻运维成本,目标是解决当前多而繁杂的业务系统中各式各样的告警机器人治理问题,我们需要一个聚合的,可容错的,可削峰的,可溯源的监控告警系统…