一直以来,在涉及搜索引擎的空间数据检索、空间数值数据查询或范围查询问题领域,BKD或BKD-Tree技术作为空间索引技术的重要方面,一直是被讨论的一个绕不开的热门话题。在网络上有关BKD的技术文章或博客、贴文,虽然也有一些,然而多是言之不精,浅谈辄止,良莠不齐,让很多想学习、掌握BKD技术要点和技术内幕的人不得其法,徘徊在困惑迷茫的新手之路上。着眼于此,本文正是这样一篇全面、深入讲述BKD前世今生、技术内幕和算法本质的技术文章,力求呈现细胞级的深刻论述表达,演绎透彻流畅的算法思想理解脉络,通篇辅以详实的算法伪代码展现,力求达到"理解后即可实践", 全在这一篇文章。关于BKD技术,只看这一篇就足够了。
作为一名从业将近 20 年的设计师,我在许多项目中都使用过按钮,但从来没有花时间仔细考虑过按钮设计。直到最近,我才意识到自己在设计按钮时犯了一些常见错误(而且我不是唯一一个)。 当你拿出手机,打开几个应用程序并浏览一些內容,我敢打赌你会遇到很多按钮。我还敢打赌,其中许多按钮存在影响可用性和可访问性的问题。甚至有很多有问题的按钮,是出自经验丰富的设计师之手。所以我整理了一些实用的按钮设计技巧,以避免这些问题并设计更好用的按钮。 首先,我将介绍一些流行的按钮设计,并客观地使用设计原则来指出它们的问题。在这里我将摈弃所有主观因素,比如美学、“直觉”或外观漂亮等。我也不会在这里介绍代码,因为我们可以先在设计方面做很多事情。最后,我将总结一些按钮设计技巧和最佳实践。
软件开发中遇到异常才是正常,很少有人能写出完美的程序跑在任何机器上都不会报错。但极为正常的软件异常,却经常出自不同的原因,导致不同的结果。怎么样科学地认识异常、处理异常,是很多研发同学需要解决的问题。本文作者根据自己多年的工作经验,撰写了《异常思辨录》系列专栏,希望能体系化地帮助到大家。本文为系列第三篇,本篇文章将主要聚焦业务开发对异常处理的需求点和一些优秀的异常处理案例,欢迎阅读。
metricserver2 (以下简称Agent)是与字节内场时序数据库 ByteTSD 配套使用的用户指标打点 Agent,用于在物理机粒度收集用户的指标打点数据,在字节内几乎所有的服务节点上均有部署集成,装机量达到百万以上。此外Agent需要负责打点数据的解析、聚合、压缩、协议转换和发送,属于CPU和Mem密集的服务。两者结合,使得Agent在监控全链路服务成本中占比达到70%以上,对Agent进行性能优化,降本增效是刻不容缓的命题。本文将介绍我们在Agent性能优化上的探索和实践。
分布式数据传输系统是一种用于在多个计算节点之间高效传输大量数据的系统,诣在高效的解决大规模数据迁移、备份、跨地域复制等问题,其广泛应用在实时数据流传输、跨数据中心数据迁移、多媒体传输等场景,在大多数企业中的日志管理、业务数据建库等场景中也都会使用到。众所周知,数据的高效传输往往直接影响着企业对市场先机的把握,对企业发展有重要意义,特别是在金融领域,如证券行业,它对分布式数据传输系统的设计提出了更高的要求,证券领域数据变化飞快,一个高时效、稳定的数据流传输系统不仅能有效的提升用户体验,更能提供用户一手的投资信息,有助于用户的投资决策,进而拉进企业与用户的距离。本文将通过一个百度搜索下的金融案例来分享分布式数据传输系统的设计。