互动管理-评论表情组件的诞生
在互联网无处不在的背景下,其实我们已经生活在一个视觉文化的时代,人们在互动交流的时候纯文字内容显得过于单调和无聊。所以在交流时倾向于使用活泼生动,能体现出自己感情和个性的表情。于是就有了形象生动的小七系列表情包,在web端为了避免重复开发 互动表情功能,将该评论表情功能 封装成了 q-emojin-input 公共组件。…
在互联网无处不在的背景下,其实我们已经生活在一个视觉文化的时代,人们在互动交流的时候纯文字内容显得过于单调和无聊。所以在交流时倾向于使用活泼生动,能体现出自己感情和个性的表情。于是就有了形象生动的小七系列表情包,在web端为了避免重复开发 互动表情功能,将该评论表情功能 封装成了 q-emojin-input 公共组件。…
随着公司规模的不断扩大,业务程序变得越来越复杂,代码可读性、复用性和扩展性很差,技术优化无从下手,代码改动牵一发而动全身,业务推进困难,大量系统重复建设等等问题层出不穷。为了解决此类问题我们也尝试过不少的方式方法,例如加强设计评审,定义代码规范、代码评审等等用以提高系统以及代码质量。然而真正执行推进时我们发现代码还是太复杂、太难维护,同时大家对业务背景的理解程度不同,认知不同,沟通低效,在做评审时也很难找出代码、系统设计上的不合理性,我们几乎很难将代码与设计对应起来,代码无法正确的反应设计,代码评审也就仅仅变成了代码规范性、代码设计优雅度的评审,很难找出代码业务逻辑的问题。…
本文概括总结了多系统登录与授权功能的设计方案、内部逻辑和实现方法,当前的技术方案能够满足多业务后台的登录授权需求以及用户使用的便利性,但是仍然具有较大的优化空间。…
本文概述了七猫手机客户端 DevOps 流水线设计与实现思路,整体看下来非常简单,这主要得益于流水线这一模型本身非常强大且富有生命力,我们在 Web Service,云计算,以及大数据的流式计算等身上都看到了这一思维模型。七猫客户端 DevOps 流水线的设计就是遵循 Unix 管道的理念,将业务功能封装成独立的原子服务,通过业务流程将原子服务进行串联,从而能够动态的拼装业务流程,快速建立新的流水线。希望通过本文对客户端 DevOps 流水线的设计与实现的介绍,能够给大家的日常开发工作带来一些启发。…
Leo是一款可以快速构建可直接运行的高性能Go应用程序框架,它提供了很多工具,帮助开发者降低搭建分布式或者微服务系统的复杂度,专注于业务开发。目前已全面应用于七猫免费小说推荐引擎服务中,在这种高要求的场景下也检验了Leo的可靠性。Leo这个名字来自于我养的一只叫Leo的猫。…
在使用mysql的时候,发现尽管一张表删除了许多数据,但是这张表的实际占用空间却并没有变小。为什么会如此,本篇文章介绍了这一知识点。…
关于连接池,想必大家耳熟能详。从其定义上来说,连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。简单点来说,就是当我们的程序在运行时,将数据库的连接进行实例化,每个连接当成对象存储在内存中,并且用一个数量大小的池子将其管理起来,当后续需要与数据库进行网络通信的时候再从池子中取出已有且正常的连接对象进行复用即可。因此,其所带来的好处显而易见,比如:1.减少连接的创建时间;2.提高资源的复用性减少资源浪费;3.精简编程模式简化开发模型等…
通过制作一本EPUB书籍和了解其内部结构,可以让我们对EPUB这种格式的电子书有一个较为全面的了解和认知,今后不但可以编写属于自己的.epub格式的书籍,而且可以根据其结构去编写解析EPUB格式的阅读器和制作用于测试的书籍。希望此篇可以带你开启深入研究EPUB电子书的大门~…
一小时,解决你开会的常见烦恼: · 作为会议的发起者,如何明确主题,吸引参会者? · 作为会议的主持者,如何引导会议走向?及时总结、修正、控场? · 作为会议的参与者:如何发言不跑题、全面、有呼应? · 如何输出优秀的会议纪要? 课程不仅有方法和原则,更有落地的工具模板,手把手完成一次高效的会议。…
ClickHouse 是一款比较新型的列式分析型数据库。相比较传统的关系型数据库,ClickHouse能解决大数据量数据的查询场景。本文主要站在ClickHouse运维的角度上,结合业务实际运行中的具体场景,参考ClickHouse经典案例,总结故障实践经验,用于参考学习和对问题的分析。…
前段时间我们推荐引擎这边发现一个非常诡异的事情,具体表现为线上k8s每次滚动更新或发版时,都会有大批量请求出现超时,进而触发服务端的p99熔断报警,导致推荐服务发生短暂不可用等情况。接下来这篇文章就来说一说我是如何排查以及解决这个问题的。…
每年在年中战术会议或年底的战略会议上都有同事提公司“会议太多,会议效率低”等问题,目前这样的情况依然存在,最近在看冯唐的《成事心法》一书,看到“大部分人都不会开会”一章,他介绍了全球财富五百强的麦肯锡公司是如何高效开会的,接下来把书中主要内容分享给大家。…
本片文章讲述了如何使用 java 字节码技术优化线程创建。管理单独线程也是内存优化手段之一,使用线程池替代 new Thread 能起到复用线程、减少线程创建数量的作用,从而有效地降低因线程数量超限导致内存溢出发生的概率。…
2020 年对于七猫研发团队来说是变⾰的⼀年,这一年中我们完成了敏捷研发团队组建、微服务化、全业务上云等重⼤技术变⾰。在完成这些技术上的变⾰之后,我们的研发⼯作迎来了新一轮的挑战,用⼀句话来总结:如何频繁、快速的发布⾼质量软件?基于这个核心问题,如何有序推进研发中心 DevOps 构成了我们研发效能团队 2021 年的工作重点。…
历时两个多月时间,广告ADX系统从立项、需求分析、设计方案、成本估算、开发对接再到不断优化升级。目前接口已经升级到第三版了,系统已经能够稳定的承受最高11.5万的QPS。当然,这还仅仅只是个开始。接下来就让我来写一点系统开发过程中的一些设计思路和问题排错的过程,希望对大家有所启发。…
Charles是Mac平台上一款优秀的抓包工具,基本可以满足我们日常工作中对于接口抓包、mock数据、模拟弱网、设置代理等常见需求。下面就为大家介绍一下,平时工作中可能会用到的一些功能。…
在web大环境的潮水中,时代一直在飞速进步,七猫前端现有框架(`vue2`)也迎来了升级,升级后的框架(`vue3+ts+vite`)带来了更高的开发效率与更好的浏览器性能。本文主要讲述一下自己在学习的过程中,对`Vue3 + Ts + vite`的理解, 并结合 `一些概念` 与 `已经开发的业务demo` , 对此框架进行的详细介绍,以及展示升级后的demo带来的变化。…
目前公司正在搭建广告ADX平台,使用自研的七猫SDK渲染图文、视频广告,用户在阅读器内看书时,为了节省用户流量,视频广告在移动网络下不会播放视频,只会显示封面,但是用户选择看激励视频时,遇到了一些问题。下面分析下几种不同方案各自存在的问题,以及我们最后的解决方案。…
七猫一直坚持“对用户好一点”的经营理念。作为七猫的主打App,在产品开发设计的过程中也一直在遵循这一理念。为了能够给用户带来更好的交互体验,我们需要准确的捕获App使用过程中设备的网络状态,及时的根据当前的网络环境做相应的操作。…
七猫免费小说客户端团队对线上崩溃数据非常关注,线上崩溃率维持在万分之一是安卓客户端 2021 年度目标之一。所以我们相当重视线上崩溃率 Top 20 的问题,会花大量时间和精力去排查解决,而 OOM 一直占领着 Top 20 好几个位置。OOM 问题造成的因素非常多,比如内存泄漏,静态对象内存占用大,缓存过多,大图内存过大,线程超限,FileDescriptor 未释放超过限定的 1024个等因素。本文就线程数量问题讲述了安卓客户端团队是怎么监控线程创建,分析线程创建来源的。…