春游:逃离城市计划

一次说走就走的团建旅行,为期两天的团建内容可谓行程满满,这是一次从从无到有,从大家熟悉到更熟悉的过程,无论景点还是娱乐环节还是参观活动,都让我们在轻松的氛围下得到凝聚与朝气和活力,"每一次成功都勇于一次大胆的尝试",不论是8公里的山路还是海拔296米的高空都像工作时一样不惧阻碍直面挑战,在紧张的工作之余有机会互相了解、配合、支持,感受到了彼此的重要性。公司也十分注重员工的生活质量,这次团建活动也让我们有机会放松身心,远离工作的烦恼,更好地调整自己的状态。…

Pytest框架下pageobject实现作家专区自动化创建数据

一直以来在测试书籍相关业务的过程中,创建测试书籍都是必不可少的。创建测试书籍不仅种类繁多,流程复杂,书籍状态随流程的不同变化多样,手动添加不仅耗时费力而且测试完成后处理不当极易产生测试垃圾影响线上业务。本文提供了一套在Pytest框架下使用Pageobjrect实现UI自动化操作书籍创建签约的方案。使用Pytest的主要原因有二,一是Pytest的文档丰富,属于较为成熟的测试框架。二是Pytest基于python的框架相较于其他的框架安装方便。Pytest的其他优势及使用方法已有其他人进行过充分的介绍,本文不在赘述,本文主要针对Pageobject设计思路,搭建的UI自动化框架的介绍。…

Apache Superset 数据安全管理

目前各业务团队的产品经理、产品运营、数据分析师都在使用 Apache Superset 来查询数据仓库中的数据。Superset 能够基于 Hive、ClickHouse、Trino、StarRocks 中的数据进行数据探索和自助制作报表。…

ADX 流批一体架构的演进

随着商业化业务的快速发张,业务人员对 ADX 后台系统的使用要求也提高了,ADX 的技术架构进行了一轮重构来满足新的业务需求,其中也包括 ADX 数据架构的升级。本文从业务需求出发,结合七猫数据现状,进行技术选型,升级到了新一代流批一体的数据架构。…

Flink 数据处理通用代码开发

Flink 在七猫大数据发展过程中,一直扮演着重要角色。Flink 作为实时计算引擎,经历了多个发展阶段,实时计算平台也在不断地迭代完善。在七猫内部,主要以 Flink Jar 包任务为主,并逐步引入 Flink Sql ,不断的降低了使用门槛和提高了任务的开发效率;从起初基础的 Flink 任务开发,发展到跨网络、跨云厂商的任务多版本任务开发,满足了业务发展的需求。…

Go单元测试综合指南

为了保证软件开发的质量,我们需要借助单元测试来确保代码的正确性,从而及早发现并修复代码中的错误。此外,单元测试还可以帮助开发人员更快地完成软件开发,并减少软件开发过程中的错误,同时也可以为新人提供指导。…

StarRocks在七猫的应用(一)

之前七猫采用的是clickhouse用于存储明细和聚合数据。随着业务的快速发展,已经越来越不满足用户的需求,主要表现为以下几点:1、使用门槛高,不支持标准sql,做分片后关联需要注意sql写法。2、并发能力差,join性能不理想。3、运维成本高,故障恢复难度高。4、数据快速膨胀,查询性能达到瓶颈。5、clickhouse去重效果差。为了解决以上问题,我们研究了StarRocks,使用下来,较好的解决了以上一些问题,整体较满意。…

七猫中文网首页性能优化

七猫中文网首页重新改版,并且实现前后端分离,之前的首页是php渲染的静态页面,前后端分离后是nuxt框架实现的服务端渲染。…

七猫中文网阅读器

七猫中文网阅读器页面实现前后端分离,除了要保留原有页面功能(皮肤切换、字号、字体设置),还需要支持vip用户在登录后可以正常阅读vip章节。…

浅谈PHP性能优化-APCu

提到PHP,大家的第一印象都是简单易用好上手。只需几个小时即可大致了解它的结构,然后几分钟的时间即可搞定一个web服务,这就是PHP的魅力。凭借这一点PHP成为七猫飞速发展的见证者,在开山之初立下汗马功劳。但提到性能,就不禁唉了一声,于是各种性能优化呼之欲出,便有了APCu。…

Clickhouse bitmap实现标签筛选功能

随着业务的发展,运营对报表的要求越来越多,为了满足运营需求,我们使用clickhouse bitmap实现了数据打标签功能,方便其对数据进行各维度的聚合、查询。本文记录了详细的实现过程,希望对大家有所帮助。…

我在七猫做阅读器——排版篇

随着产品不断迭代,阅读器作为一个占据用户99%使用时长的模块,承载了愈加复杂的业务功能。开发一个能供人看书的阅读软件并不困难,但是如何打造一个高可用的阅读器却是门道颇深。本篇文章结合本人阅读器新架构实操经验,为大家阐述开发设计中的诸多细节,希望能对大家有所帮助。…

IP库-IP段生成Trie树过程的剪枝实现

APP需支持IPv6 访问,所以需要研究下怎样能同时支持IPv4和IPv6的高并发访问。查找资料的过程中发现多篇论文提到Trie树,结合之前实现禁词库的经验,深入研究之后发现可行。该处就将IP段生成Trie树过程的剪枝实现进行简单的讨论。…

IP库-ip2region结构分析和实现

ip2region 是一个准确率99.9%的ip地址定位库。 0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java, php, c, python查询客户端和Binary,B树,内存三种查询算法。…

活动预告:七猫 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(降低的曝光打压存储,新增的交互特征存储),提升推荐引擎性能, 同时模型更容易维护。…