快讯

掌握技术趋势,了解最新行业动向

周一

2020-09-28

  • 基于数组的有界阻塞队列 —— ArrayBlockingQueue

    前言 在阅读完和 AQS 相关的锁以及同步辅助器之后,来一起阅读 JUC 下的和队列相关的源码。先从第一个开始:ArrayBlockingQueue。 公众号:liuzhihangs,记录工作学习中的技术、开发及源码笔记;时不时分享一些生活中的见闻感悟。欢迎大佬来指导! 介绍 由数组支持的有界BlockingQueue阻塞队列。 这个队列的命令元素FIFO(先入先出)。 队列的头是元素一直在队列中时间最长。 队列的尾部是该元素已经在队列中的时间最短。 新元素插入到队列的尾部,并且队...

  • 万字谈监控:解答Zabbix与Prometheus选型疑难

    Zabbix与Prometheus 两者适用于多大规模的监控场景?超过5000以上监控节点时怎么办?高可用怎么解决? 两者怎么解决存储问题?对于监控信息是否有历史存储和分析,能从历史信息中挖掘到哪些有价值的信息? 两者怎么应对告警风暴和误报? 在智能监控和自动治愈方面是否有可借鉴的实践?基于什么算法或策略?怎么进行故障预判和预处理? 监控大屏是怎么设计的? 自动化运维管理是两者同时使用还是二选一更合适? 两者在配合使用时,应该怎么分工?怎么落地? 如果已经部署了Zabbix,怎么平稳过渡到Pr...

  • 同义变换在百度搜索广告中的应用

    导读: 关键词匹配位于整个搜索广告系统的上游,负责将query和keyword按照广告主要求的匹配模式连接起来。该问题面临着语义鸿沟,匹配模式判定和可扩展性方面的挑战。在本文,我们会就同义变换这个主题展开讨论,讲述如何用数据驱动的方式做同义变换,如何将知识推理融入到变换中,以及如何用这些技术解决匹配问题中的核心挑战。 01 背景介绍 1. 搜索广告 搜索广告中有三个角色,分别是用户、广告主、搜索引擎。 广告主侧会向引擎提供物料,同时竞价关键词。比如一个做双眼皮的美容机构,会买例如“双眼皮手术...

  • 聊聊账务系统

    在讲解账务系统之前,先讲解什么是记账。 记账的历史可追溯到古代,我们的祖先在很早以前就会通过结绳记事来记录实物和部落的收获。随着社会和生产力的发展,结绳记事已经不能满足人们记录的需求了,现代社会活动中人们需要记录的物品种类也越来越多,看待财产的角度也多种多样:在日常生活中有消费流水的记账,在企业经济经营活动中有成本、收入与利润的记账,还有银行和金融机构交易过程中资金流水的记账。 如果按以上记账类型来分类,则可以把记账分为如下三种。 (1)以个人、家庭流水记账为主体的个人财务软件。在移动互联网高速...

  • WebAssembly上手:基础指南

    只需Web开发的一般知识就能通过本文轻松上手WebAssembly。要通过本文的可运行代码示例尝试WebAssembly,你只需要一个编辑器、任意现代浏览器和本文随附的,带有C和Rust工具链的Docker映像。 WebAssembly已经诞生三年了。它可以在所有现代浏览器中使用,还有一些公司甚至开始勇敢地在生产环境中使用它了(说的自然是Figma)。它背后的名字如雷贯耳:Mozilla、Microsoft、Google、Apple、Intel、RedHat——它们和其他很多公司的一些最...

  • 逼着面试官问了我ArrayList和LinkedList的区别,他对我彻底服了

    ArrayList 和 LinkedList 有什么区别,是面试官非常喜欢问的一个问题。可能大部分小伙伴和我一样,能回答出“ArrayList 是基于数组实现的,LinkedList 是基于双向链表实现的。” 关于这一点,我之前的文章里也提到过了。但说实话,这样苍白的回答并不能令面试官感到满意,他还想知道的更多。 那假如小伙伴们继续做出下面这样的回答: “ArrayList 在新增和删除元素时,因为涉及到数组复制,所以效率比 LinkedList 低,而在遍历的时候,ArrayList 的...

周日

2020-09-27

  • 一篇搞定前端高频手撕算法题(36道)

    目前互联网行业目前正在处于内卷状态,各个大厂不断提高招人门槛,前端工程师找工作也越发艰难,为了助力各位老铁能够在面试过程中脱颖而出,我结合自己的面试经验,准备了这三十六道面试过程中的手撕算法题,与各位共享。 一、冒泡排序 冒泡排序的思路:遍历数组,然后将最大数沉到最底部;<br/>时间复杂度:O(N^2);<br/>空间复杂度:O(1) function BubbleSort(arr) { if(arr == null || arr.length <= 0){ ret...

  • 网易严选质量数仓建设(二)—— 质量数仓项目建设及管理

    在《严选质量数仓建设(一)——数据仓库基本概念》中介绍了一些数据仓库的基本概念,本文将继续介绍质量数仓建设过程和使用到的产品。 1. 项目规划&需求定义 DW/BI自主开发的整个过程如上图所示,数仓的建设过程从项目规划开始,在项目规划过程中主要任务在于项目目标和范围的界定。 随着严选整体业务的发展,常规手段的质量保障工作在覆盖业务需求上越来越吃力,为了衡量业务过程中质量保障工作的效果,提升研发、质量保障、项目管理等项目各阶段的效能,决定由严选已有的质量数仓系统承载,建设一个由指标、模型...

  • 网易严选质量数仓建设(一)—— 数据仓库基本概念

    对所有组织来说,数据都是重要的财富,数据的存在有两个目的:操作型记录的保存以及分析决策的制定。 对于质量保障团队来说,质量数据能够客观反映开发、测试团队的工作量、工作效率以及工作质量。通过数据指标,查找质量保障工作中的薄弱环节,予以加强;通过数据指标在时间上的纵向对比,反映各项工作开展的效果;通过数据指标在各个团队之间的横向对比,找出优秀团队,借鉴工作经验。 鉴于以上诸多好处,严选质量保障组开展质量数仓建设工作。在建设数据仓库之前,先了解一些数据仓库的基本概念。 1. 数据库&数据仓库 从广泛...

  • 网易云音乐全链路跟踪系统实践

    本文讲述了云音乐全链路跟踪系统的设计思想、实践路线以及在技术选择与功能迭代方面上思考总结。 为什么我们在三年前要立项做这个系统?当然是我们遇到了服务问题。当时最明显的问题就是,随着我们的服务化拆分越来越多,服务间调用关系越来越复杂,我们已经完全无法跟踪系统的调用关系,某个链路出了问题,我们无法追溯,甚至那时候我们也没有一个统一的日志查询平台,我们需要不断的登录到不同的主机上去查询日志,可以想见当时的开发人员的生存环境是多么的恶劣。所以,我们迫切的需要一个全链路跟踪的系统,我们认为有了全链路...

  • 从四个问题透析Linux下C++编译&链接

    摘要:编译&链接对C&C++程序员既熟悉又陌生,熟悉在于每份代码都要经历编译&链接过程,陌生在于大部分人并不会刻意关注编译&链接的原理。本文通过开发过程中碰到的四个典型问题来探索64位linux下C++编译&链接的那些事。 编译原理: 将如下最简单的C++程序(main.cpp)编译成可执行目标程序,实际上可以分为四个步骤:预处理、编译、汇编、链接,可以通过 g++ main.cpp –v看到详细的过程,不过现在编译器已经把预处理和编译过程合并。 预处理:g++ -E main.cpp -o...

  • Windows XP、Server 2003源代码泄露,但这事不简单

    据多家国外媒体报道,Windows XP、Windows Server 2003以及其他的微软操作系统源代码在网上泄露。 据悉,泄露的操作系统资源是一个大小为42.9GB的种子文件,出现于4chan论坛。维基百科表明,4chan是于2003年模仿2chan风格、以ACG相关讨论为主题的美国贴图讨论版网站,它还是匿名者和玩家们网络行动的起源。 在4chan论坛,用户发布了所谓的Windows XP SP1源代码(种子,未验证)。有独立研究人员表示它是可信的。 除了Windows XP,这个种子...

  • 程序员技术选型:写Go还是Java?

    老实说,我很喜欢 Java。我在 Spiral Scout 工作的那几年,使用了 EJB2、DB2 和 Oracle 等后端技术,积累了很多软件开发方面的专业知识。过去几年,我转向基于自然语言处理的机器人项目,涉及的技术包括 Spring Boot、Redis、RabbitMQ、Open NLP、IBM Watson 和 UIMA。一直以来,我选择的语言是 Java,它一直很高效,有时还会觉得它很有趣。 初遇 Go 2017 年初,我接手了一个非常有趣的项目,一个用于监控和种植水培植物的自动化编...

  • MySQL是如何实现可重复读的?

    简单理解一下可重复读 可重复读是指:一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。 我们可以简单理解为:在可重复读隔离级别下,事务在启动的时候就”拍了个快照“。注意,这个快照是基于整个库的。 这时,你可能就会想,如果一个库有 100G,那么我启动一个事务,MySQL就要拷贝 100G 的数据出来,这个过程得多慢啊。可是,我平时的事务执行起来很快啊。 实际上,我们并不需要拷贝出这 100G 的数据。我们来看下”快照“是怎么实现的。 拍个快照 InnoDB 里面每个事...

  • Java中的遍历(遍历集合或数组的几种方式)

    image.png 本文主要总结了Java中遍历集合或数组的几种方式,并介绍了各种遍历方式的实现原理,以及一些最佳实践。最后介绍了Java集合类迭代器的快速失败(fail-fast)机制。 Java中的循环结构 遍历必然需要使用到循环结构,Java中有以下几种循环结构: while语句 do...while语句 基本for语句 增强for语句 对于do...while语句,其第一个循环体是必须会执行的,这对于空集合或者空数组是不适用的。所以我们一般不会使用do...while语句来进行遍历。其...

  • graylog日志分析系统上手教程

    日志分析系统可以实时收集、分析、监控日志并报警,当然也可以非实时的分析日志。splunk是功能强大且用起来最省心的,但是要收费,免费版有每天500M的限制,超过500M的日志就没法处理了。ELK系统是最常见的,缺点是配置麻烦一些,比较重量级。graylog是开源免费的,配置上要比ELK系统简单。综上,本文尝试容器方式搭建一套graylog系统,不做实时收集日志和报警的配置,只完成非实时被动接收网站日志,分析日志各项指标的功能。 docker官方镜像国内速度我觉得慢,改成国内镜像。新建文件d...

  • 苹果开源 Swift 系统,增加对 Linux 的支持

    9 月 27 日消息 据 Phoronix 报道,今年早些时候,苹果工程师宣布将 Swift System 作为其用于底层系统接口的新库。现在他们已经开源了 Swift System,同时还引入了 Linux 支持。 Swift 支持访问 C 接口,Swift System 也为低级系统库提供惯用的 Swift 接口。Swift System 根据平台及其功能提供单独的 API 和行为。值得注意的是虽然现有的 Swift 添加了 Linux 支持,但尚不支持每个系统调用。除了扩大覆盖范围外,...

  • 超棒 Vue Github可视化分析系统GitDataV

    今天给大家分享一款功能超强大的Vue实现github可视化数据系统GitDataV。 GitDataV?基于vue.js构建的github可视化数据开源平台,star高达1.2K+。让你更加直观的查看git展示数据。 可查看的github数据 个人信息 仓库stars情况 仓库语言分类 仓库公开数量 粉丝数量、跟随数量 仓库数据 最近操作记录、最近的粉丝、最近的跟随 快速安装 #?克隆项目?git?clone?https://github.com/HongqingCao/GitDat...

  • Flutter包大小治理上的探索与实践

    Flutter作为一种全新的响应式、跨平台、高性能的移动开发框架,在性能、稳定性和多端体验一致上都有着较好的表现,自开源以来,已经受到越来越多开发者的喜爱。 但是,Flutter的引入往往带来包体积的增大,给很多研发团队带来了很大的困扰。美团外卖前端团队对Flutter的包大小问题进行了调研和实践,设计并实现了一套基于动态下发的包大小优化方案,希望对从事Flutter开发相关的同学能够带来一些启发或者帮助。 一、背景 随着Flutter框架的不断发展和完善,业内越来越多的团队开始尝试并落...

  • H5项目踩坑及出坑实践

    相比于PC项目只需要关注功能实现,H5项目兼容性似乎是前端开发和测试童鞋需要重点关注的问题。我做H5项目也有一段时间了,下面从自己项目中遇到的问题稍稍做一下复盘,回顾一下踩坑和出坑的过程。 1 iphoneX系列手机适配问题 表现 头部刘海两侧区域或者底部区域,出现刘海遮挡文字遮挡、点击区域,或者呈现黑底或白底空白区域。 产生原因 iPhoneX及以上版本手机都采用了状态栏、圆弧展示角、传感器槽、主屏幕指示器和屏幕边缘手势(具体名词注释看下图)。头部底部侧边栏都需要做特殊处理,使得content...

扫码关注云+社区

领取腾讯云代金券

http://www.vxiaotou.com