活动预告:七猫 AB 测试分享&培训

目前 AB 测试广泛应用于七猫业务迭代中,为了让大家更好地掌握 AB 测试相关知识、熟练地使用 AB 测试系统,七猫 AB 测试团队将于近期组织关于 AB 测试的分享与培训。…

Rxjava从0到1

Rxjava框架在七猫的安卓客户端项目中几乎无处不在,框架的优点非常明显:链式编程、丰富的操作符、与其他主流框架的互动(retrofit、room等)、函数式编程的思想让异步事件看起来像同步事件一样符合人们的思维习惯,得益于这些优点也是被Google官方推荐使用。但欲戴王冠必承其重,从某种程度上来说,Rxjava的上手比较难的,在看了源码及Rxjava相关的文档后,有了耳目一新的理解,给大家带来一些分享,希望可以让大家对这款优秀的框架有不一样的认识。…

Android-ANR:探索主线程到底卡在哪了

ANR 问题一直是 Android 性能优化的重点问题,当主线程消息调度不及时或者执行耗时方法时轻则造成卡顿,重则发生ANR,严重影响用户的体验。故而分析发生ANR时主线程在过去一段时间内调度的消息和执行的方法无疑是定位ANR原因的突破口,基于这两点,我们开发了一套主线程消息调度耗时采集和耗时方法采集工具,本文便是阐述相关的原理和实现。…

浅谈安全测试

安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。它是建立在功能测试基础上进行的测试,主要是对产品进行检验以验证是否符合安全需求定义和产品质量标准的过程。…

从推荐引擎设计谈解耦

我们常说解决问题的能力是一个人的核心竞争力,解耦就是我们提升解决问题能力的关键工具,让我们面对复杂问题、复杂项目和复杂任务时能够从容不迫,化繁为简,逐步解决遇到的任何难题。…

智能曝光打压策略的探索与实践

为保证推荐结果的新颖性,本文提出了一种新的策略,通过在推荐流程中的精排阶段引入交互特征(指用户、书籍间的曝光、点击交互数据),在保证不降低推荐精度,甚至略有提升的同时,降低过滤的复杂度,其中总存储由400GB降低为200GB(降低的曝光打压存储,新增的交互特征存储),提升推荐引擎性能, 同时模型更容易维护。…

浅谈Web端性能测试

Web性能测试是针对Web页面进行测试,以确认Web页面是否存在性能问题并为网站的优化提供依据与建议,最终提升网站的整体性能表现,提高用户体验满意度。 Kissmetrics 的一项数据调查显示:47% 的人希望网站加载时间在2秒以内。网站如果超过3秒还没有打开,40%的人会选择关闭页面离开。接下来将从以下五个步骤开始介绍如何处理Web端性能测试。…

完善Dubbo-go框架对Java枚举类可变长参数的支持

目前公司正在进行技术架构转型,原来的Java服务要改用Go来实现。重构后的Go服务必须可以完全替换掉原来的Java服务,这就要实现Java服务与Go服务的互通。考虑到Java服务使用了Dubbo框架,团队在经过探讨调研后,决定用Dubbgo-go框架来完成这一历史重任,理由也很简单,同源,这样可以完美实现服务互通。…

Clickhouse之物化视图实现高效查询

Clickhouse在单表字段特别多,查询带有聚合、列间计算操作等场景下,查询效率很低。本文主要分享一种利用Clickhouse预聚合方式,来提高查询效率的方法。…

阅读器优化—视图优化实践

随着免费小说业务快速的发展,免费小说客户端的优化也逐渐进入深水区,在2020年我们开始整体阅读器优化的调研工作。阅读器视图控件作为整个阅读器中业务交互最复杂,业务变更最频繁的组件,也是最贴近用户的组件,却面临数据UI耦合严重,广告与阅读器强耦合,代码的可维护性和可拓展性、性能都面临越来越难的境地。越来越多样化的业务视图、视频流化的广告视图,更多的业务刷新场景,多个业务模块数据视图都在阅读器中交汇,要求我们必须优化好阅读器视图,提升阅读器视图控件的性能,代码拓展性。本文主要讲述了免费小说阅读器视图控件重构的主要思路及实践经验。…

七猫免费小说 APP 内存优化实践(一)

2022年以来,七猫客户端基础组加强了对内存问题的重视,对于内存优化做了很多工作。通过线上及线下的监控手段,有效的解决了已有的线上问题,同时能够尽早发现尽早解决新增的内存问题。本文主要阐述我们团队做了哪些工作,为什么做以及如何做的(侧重于安卓端)。…

Clickhouse实现主键(排序键)更新

随着业务的发展,报表类业务数据量越来越大、属性也越来越多,数据来源多样化,然后出现mysql查询慢,添加字段越来越困难等问题。为了解决以上问题,我们开始探索新的方案,首先想到的就是clickhouse(之前的业务中已有大量使用),作为一款优秀的OLTB数据库大数据量从来都不是问题;采用列式存储,加字段也没有问题;唯一需要解决的就是如何更新数据。…

bitmap在过滤场景的应用

Roaring Bitmap是应对大数据查询、去重业务场景,很成熟的解决方案,非常适合推荐系统过滤场景的应用,高效解决了大批量查询性能的问题。在技术方案的设计上,需要考虑方案的通用性,将变化与不变化的拆分开进行“动静分离”,降低业务耦合性,提升系统的扩展性,在类似的场景上能够复用,进行快速应用。…

通过Ingress解决gRPC长连接负载不均衡的问题

Ingress是一套经过了时间的考验非常成熟的解决方案,nginx-Ingress又依托于nginx的强大历史背景,其性能和带来的价值都是让人值得称赞的.推荐引擎此次接入Ingress,不但可以解决让我们头疼已久的负载均衡问题,而且让我们节省了多个SLB的公网IP开销,同时新的通过域名请求的方式,对我们日常开发,性能问题排查,需求测试等都带来了较大的便利…

Leo框架系列(二)gRPC服务、服务注册与发现

在Go语言生态中,gRPC的使用场景相当的广泛,已经有与HTTP分庭抗礼的趋势。七猫推荐引擎全部服务都使用gRPC来传输数据与远程调用。Leo对gRPC进行了适配,简化配置,方便gRPC的启动与关闭。…

互动管理-评论表情组件的诞生

在互联网无处不在的背景下,其实我们已经生活在一个视觉文化的时代,人们在互动交流的时候纯文字内容显得过于单调和无聊。所以在交流时倾向于使用活泼生动,能体现出自己感情和个性的表情。于是就有了形象生动的小七系列表情包,在web端为了避免重复开发 互动表情功能,将该评论表情功能 封装成了 q-emojin-input 公共组件。…

DDD理念探索

随着公司规模的不断扩大,业务程序变得越来越复杂,代码可读性、复用性和扩展性很差,技术优化无从下手,代码改动牵一发而动全身,业务推进困难,大量系统重复建设等等问题层出不穷。为了解决此类问题我们也尝试过不少的方式方法,例如加强设计评审,定义代码规范、代码评审等等用以提高系统以及代码质量。然而真正执行推进时我们发现代码还是太复杂、太难维护,同时大家对业务背景的理解程度不同,认知不同,沟通低效,在做评审时也很难找出代码、系统设计上的不合理性,我们几乎很难将代码与设计对应起来,代码无法正确的反应设计,代码评审也就仅仅变成了代码规范性、代码设计优雅度的评审,很难找出代码业务逻辑的问题。…

多系统场景的登录授权方案

本文概括总结了多系统登录与授权功能的设计方案、内部逻辑和实现方法,当前的技术方案能够满足多业务后台的登录授权需求以及用户使用的便利性,但是仍然具有较大的优化空间。…

七猫客户端 DevOps 之路

本文概述了七猫手机客户端 DevOps 流水线设计与实现思路,整体看下来非常简单,这主要得益于流水线这一模型本身非常强大且富有生命力,我们在 Web Service,云计算,以及大数据的流式计算等身上都看到了这一思维模型。七猫客户端 DevOps 流水线的设计就是遵循 Unix 管道的理念,将业务功能封装成独立的原子服务,通过业务流程将原子服务进行串联,从而能够动态的拼装业务流程,快速建立新的流水线。希望通过本文对客户端 DevOps 流水线的设计与实现的介绍,能够给大家的日常开发工作带来一些启发。…

Leo框架系列(一)开篇介绍与Leo启动分析

Leo是一款可以快速构建可直接运行的高性能Go应用程序框架,它提供了很多工具,帮助开发者降低搭建分布式或者微服务系统的复杂度,专注于业务开发。目前已全面应用于七猫免费小说推荐引擎服务中,在这种高要求的场景下也检验了Leo的可靠性。Leo这个名字来自于我养的一只叫Leo的猫。…