2022-10-30 16:30:00 ~ 2022-10-31 16:30:00
如何建立高效的分片索引?
本文将介绍支持美团、大众点评、微信、支付宝、美团钱包等多种 App 的扫码付项目。
本文从严选品牌的视角分享2B系统架构设计上的一些挑战和实践,希望在2B领域的一些架构思考和方法论能够引起更多的探讨和共鸣。本文内容涉及供应链、物流、商品、客售等相关系统的一些案例。
登录后可查看文章图片
苹果在 WWDC22 中,提出了实时活动(Live Activity)的概念,以便于用户在锁屏查看一些应用实时活动的更新,这与盒马的配送场景十分贴合。因此,我们将 Live Activity & “灵动岛” 特性第一时间落地到盒马 30 分钟配送场景,并作为第一批适配实时活动的 iOS 应用,获得 App Store Today 推荐。
登录后可查看文章图片
React 最新提出了一个叫 use 的 Hook,用于在客户端消费 Promise,而 use 和其他 Hook 不同之处在于,它可以在条件语句、block 和循环里使用。
本文通过分析Lettuce的特性和内部实现,及其与Jedis的对照比较,对这两种客户端以及Redis服务端进行深度探讨。
登录后可查看文章图片
Keeping code clean is not easy. That’s why in this article, I present some useful tools which can help you with PHP static code analysis.
Matrix 是一款微信研发并日常使用的 APM (Application Performance Manage) ,当前主要运行在 Android 平台上。Matrix 的目标是建立统一的应用性能接入框架,通过对各种性能监控方案快速集成,对性能监控项的异常数据进行采集和分析,输出相应问题的分析、定位与优化建议,从而帮助开发者开发出更高质量的应用。
携程无线平台化系列文章之二 - 2017年携程无线工程团队针对国际化业务发展需要,重新梳理出运营阶段的端到端性能监控平台设计思路,打造出携程全新无线APM平台。
登录后可查看文章图片
APM全称为Application Performance Management,即应用性能管理,对于一款成熟的App,各项性能指标的监控是必不可少的。公司内部早前有个1.0版本的APM系统,主要存以下问题:筛选功能薄弱、缺少日报和告警功能、功能混杂、且只支持单一App。鉴于以上问题,我们发起了APM2.0版本的重构,在开始之前,我们重新梳理了APM的定位,以及该做哪些功能。
登录后可查看文章图片
转转新测试环境,在每台测试服务器都部署了一套HttpAgent(以下简称agent),由eig测试环境管理平台下发命令,agent完成命令接收、解析和响应,实现并发和调度控制,异步调用环境维护脚本。之所以自己开发一整套agent,是因为转转测试环境由多业务组成,复杂度非常高,我们可以根据自己的业务高度定制,做一套适合我们转转的,好用的系统。
登录后可查看文章图片
持续集成是一种软件开发实践,即团队成员经常集成自己的工作。通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编辑、发布、自动化测试)来验证,从而尽快地发现集成错误。许多团队通过实践发现这个过程可以大大减少集成时的问题,让团队能够更快的开发内聚的软件。
本文主要介绍在测试分级和风险准出两个场景,引入质量度模型,通过客观数据和模型策略对风险进行精准评估,从而解决完全靠人工评估带来的误判和因担心风险而进行重复测试的问题,实现质效合一,即在保证质量的情况下提升交付效率。
登录后可查看文章图片
在持续的业务测试中,接口用例会逐步沉淀形成一定规模。RD自测或者QA测试时,RD要执行冒烟级别接口测试用例进行冒烟测试,QA要执行接口测试用例测试新需求、回归老业务。在需要执行用例时,要去接口用例工程中反复查找相关用例进行执行。如何更高效的管理和使用接口用例?通过平台化,降低管理成本和执行成本,即根据业务场景、用例类型等维度进行分类管理,可视化执行。
登录后可查看文章图片
转转增量代码扫描数据作为上线准入的重要依据,目前所有测试环境执行的测试均有覆盖率统计,但是部分需求或服务更加适合使用单测进行验证,也有部分RD有单测的好习惯。单测覆盖率的缺失无法通过覆盖率分析补充case也对上线准入评估造成了一定的困扰。因此,我们将单测的增量代码覆盖率融合至测试环境覆盖率中,解决以上问题。
登录后可查看文章图片
代码覆盖率是业内常用的统计代码被执行程度的手段。覆盖率数据结果是对测试工作的一种保证,可以赢得信任、增加上线信心。今天就让我们来聊聊 转转App代码覆盖率方案的实现及应用,希望可以给大家带来一些思路和参考。
登录后可查看文章图片
本篇文章主要介绍 java instrument和 ASM,文中部分内容来自Java API doc和 ASM user guide。有兴趣深入研究的同学可以从这两份资料获取更详细的内容。关于工具的具体使用场景和落地。
登录后可查看文章图片
中台营销业务涉及丰富的玩法和众多组合场景。活动优惠价格计算,再加上复杂的叠加互斥规则,很容易造成场景遗漏,甚至造成资损。传统的功能测试需要极大的人力成本,且大量重复性的回归测试会导致测试积极性受挫。因此,流量回放成了主要的自动化回归手段~
登录后可查看文章图片
白盒测试是基于对系统内部一定了解之上的测试技术。测试人员需要拥有源代码相关权限与对系统架构的了解。测试人员需要进行源代码分析,在此基础上再根据源代码设计测试用例,并最终达到一定的代码覆盖率。
目前有赞共享技术团队测试介入的微服务应用有几百个,大部分底层应用的单测覆盖率在 70% 以上,同时测试组提供的多纬度集成测试自动化的覆盖率也在 70% 以上。有赞的业务发展非常快,当存量代码较多时,新项目功能测试的整体覆盖率偏低是正常现象,另外开发提测时,并不能依据已有的全量覆盖率来判断对新增代码的自测完成度,基于这个背景,我们研发了增量代码覆盖率工具,作为项目质量的参考纬度之一,支持统计功能测试、单测和集成测试,并集成到了 DevOps 平台。
登录后可查看文章图片
登录后可查看文章图片
死锁是多线程和分布式程序中常见的一种严重问题。死锁是毁灭性的,一旦发生,系统很难或者几乎不可能恢复;死锁是随机的,只有满足特定条件才会发生,而如果条件复杂,虽然发生概率很低,但是一旦发生就非常难重现和调试。使用锁而产生的死锁是死锁中的一种常见情况。Linux 内核使用 Lockdep 工具来检测和特别是预测锁的死锁场景。然而,目前 Lockdep 只支持处理互斥锁,不支持更为复杂的读写锁,尤其是递归读锁(Recursive-read lock)。因此,Lockdep 既会出现由读写锁引起的假阳性预测错误,也会出现假阴性预测错误。
本工作首先解密 Lockdep工具,然后提出一种通用的锁的死锁预测算法设计和实现(互斥锁可以看做只使用读写锁中的写锁),同时证明该算法是正确和全面的解决方案。
Super-Jacoco是基于Jacoco、git二次开发打造的一站式JAVA代码全量/diff覆盖率收集平台,能够低成本、无侵入的收集代码覆盖率数据;Super-Jacoco除了支持JVM运行时间段的覆盖率收集外,还能够和环境无缝对接,收集服务端自定义时间段代码全量/增量覆盖率;并提供可视化的html覆盖率报表,协助覆盖率分析,支撑精准测试落地。
登录后可查看文章图片
SFF(Serverless For Frontend)一站式node服务管理平台,是基于Serverless服务提供的一套node服务整体解决方案,让开发者专注业务开发,大幅提升开发和运维效率。
登录后可查看文章图片
《⼤型微服务框架设计实践》是一个很大的话题,这个题目其实分为三个方面,“微服务框架”、“大型”和“设计实践”。我们日常看到的各种开源微服务框架,在我看来都不算“大型”,解决的问题比较单纯。大型微服务框架究竟是什么,又应该怎么去一步步落地实践。
登录后可查看文章图片
2021 年我们看到 Istio 不少新的进展,eBPF、Multi-buffer、Proxyless 等,每一次 Istio 的变化都牵动人们的神经——是时候采用服务网格了吗?
登录后可查看文章图片
本文介绍了通过PHP扩展的方式实现WEB API自动化监控系统,让58安居客的PHP业务接口监控更简单。
登录后可查看文章图片
PHP技术栈的开发同学如果想实现服务化的微服务怎么办,58房产基于Swoole的RPC框架也许能给你带来不一样的思考和帮助。
登录后可查看文章图片
Dropbox originally used Amazon S3 and the Hadoop Distributed File System (HDFS) as the backbone of its data storage infrastructure. Although we migrated user file data to our internal block storage system Magic Pocket in 2015, Dropbox continued to use S3 and HDFS as a general-purpose store for other internal products and tools. Among these use cases were crash traces, build artifacts, test logs, and image caching.
Using these two legacy systems as generic blob storage caused many pain points—the worst of which was the cost inefficiency of using S3’s API. For instance, crash traces wrote many objects which were rarely accessed unless specifically needed for an investigation, generating a large PUT bill. Caches built against S3 burned pricey GET requests with each cache miss.
登录后可查看文章图片
关注公众号
接收推送