Go 语言入门

Go 语言是诞生于 2009 年的编程语言,发展到今天已经有过去了 15 年。目前 Go 语言在国内外的社区都非常热门,很多著名的开源框架,例如:Docker、k8s、 Prometheus 等都使用 Go 语言开发,越来越多的公司也将 Go 作为技术选型之一。

465次阅读  |  3月以前  |  阅读全文 »
Android Native内存泄漏检测方案详解

本文将分三个部分阐述如何实现 Android Native 内存泄漏监控,包括代理实现的三种方案(Inline Hook、PLT/GOT Hook、LD\_PRELOAD)及其优缺点,以及如何检测Native内存泄露和获取Android Native堆栈的方法。本文将提供一套比较全面的解决思路,帮助大家更好地检测 Android Native 内存泄漏问题。

1829次阅读  |  5月以前  |  阅读全文 »
负载均衡器有什么用?

负载均衡器是一种在多个服务器之间分配网络或应用程序流量的设备或软件应用程序。其主要目的是确保没有一台服务器承担过多的需求,从而提高应用程序的响应速度和可用性。

443次阅读  |  6月以前  |  阅读全文 »
淘宝短视频流工程重构(上):理论篇

随着视频流业务的发展,业务的复杂性越来越高,视频流老工程在架构设计、代码质量、工程能力等方面的问题也逐渐凸显。在这样的背景下我们开启了一次对老工程的大型重构。

632次阅读  |  6月以前  |  阅读全文 »
哪些场景需要用到幂等?

幂等性是计算机科学和数学中的一个概念,它描述了一种运算,这种运算可以多次使用,而不会改变初次使用后的结果。换句话说,如果你应用一次或多次幂等运算,结果都是一样的。

587次阅读  |  6月以前  |  阅读全文 »
Redka - 父亲是Redis,母亲是SQLite

Redka 旨在使用 SQLite 重新实现 Redis 的优秀部分,同时保持与 Redis API 的兼容性。

508次阅读  |  6月以前  |  阅读全文 »
计算机程序如何运行?

计算机程序如何运行?下图显示了这些步骤。

452次阅读  |  6月以前  |  阅读全文 »
大模型RAG入门及实践

在大语言模型(LLM)飞速发展的今天,LLMs 正不断地充实和改进我们周边的各种工具和应用。如果说现在基于 LLM 最火热的应用技术是什么,检索增强生成(RAG,Retrieval Augmented Generation)技术必占据重要的一席。RAG 最初是为了解决 LLM 的各类问题的产生的,但后面大家发现在现阶段的很多企业痛点上,使用RAG好像是更好的解决方案。在介绍 RAG 之前,我们先来看一下现在LLM存在的问题。

764次阅读  |  7月以前  |  阅读全文 »
最佳实践|一文讲解端线程死循环的治理

本文旨在介绍钉钉 Android 团队死循环检测工具建设的思路和典型案例的修复历程。希望通过此次分享,对同样面临类似死循环问题的团队能够有所启发。

2892次阅读  |  9月以前  |  阅读全文 »
Redux Toolkit

阅读本文章前,需要先了解下 redux 的基本概念与用法,Redux Toolkit 是建立在 Redux 基础之上的工具包,因此需要对 Redux 的基本概念有一定的了解,包括 Action、Reducer、Store、Middleware 等。理解 Redux 的工作原理和数据流程有助于更好地理解和使用 Redux Toolkit。

2081次阅读  |  9月以前  |  阅读全文 »
frida入门使用介绍

frida是android逆向分析最常用的工具之一,其是一种hook框架,可以在不改动目标源码的情况下,动态查看函数运行入参,返回值,注入代码,更改程序逻辑等,使得android逆向人员能够快速掌握一些问题的本质。本文将带大家了解各种frida的使用方法以及其中的一些坑。

4551次阅读  |  9月以前  |  阅读全文 »
基于devfreq framework的GPU调频

AI时代已经来临,在日益增长的算力需求下,GPU已经成为AI世界不可或缺的工具,而移动端高渲染高帧应用也对移动端GPU提出越来越高的要求,本文将以高通的adreno gpu为例对GPU的调频进行介绍。

2787次阅读  |  9月以前  |  阅读全文 »
负载均衡策略和技术的基本指南

负载均衡器将传入的网络流量分配到多台服务器上,以确保没有单个服务器承受过多的负载。通过有效地分发请求,它们提高了应用程序的容量和可靠性。

747次阅读  |  9月以前  |  阅读全文 »
OpenGL 计算着色器(Compute Shader )你用过吗?

Compute Shader 是 OpenGL ES(以及 OpenGL )中的一种 Shader 程序类型,用于在GPU上执行通用计算任务。

3054次阅读  |  10月以前  |  阅读全文 »
java序列化之Gson库的使用和原理

Gson 是由 Google 开发的一个流行的 Java 库,用于处理 JSON 数据的序列化和反序列化。它提供了简单易用的 API,使得在 Java 应用程序中操作 JSON 数据变得非常方便。以下是 Gson 库的一些主要特点和用法

896次阅读  |  10月以前  |  阅读全文 »
这些年背过的面试题——Kafka篇

本文是技术人面试系列Kafka篇,面试中关于Kafka都需要了解哪些基础?一文带你详细了解,欢迎收藏!

826次阅读  |  10月以前  |  阅读全文 »
Android Clear架构最强官方指南Kotlin版

在这篇文章中,我将介绍关于Android应用程序架构的一些内容。尽管自从早期更稳健的Android架构方法在移动开发中变得流行以来已经说了很多话,但改进和演进的空间总是存在的。

2906次阅读  |  10月以前  |  阅读全文 »
阿里终面:Netty 如何做到单机百万并发?

Netty,我们知道他极其强悍的性能以及纯异步模型,释放出了极强的生产力,内置的各种编解码编排,心跳包检测,粘包拆包处理等,高效且易于使用,以至于很多耳熟能详的组件都在使用,比如 Hadoop,Dubbo 等。但是他是如何做到这些的呢?本章将会以庖丁解牛的方式,一步一步的来拔出此剑。

702次阅读  |  10月以前  |  阅读全文 »
​微信图片智能裁剪技术介绍

微信的公众号、视频号等产品每天有大量的图片内容,这些图片的长宽比各异,但是为了展示的美观性,在产品的某些场景需要固定图片长宽比,这就需要算法对图片自动剪裁。我们自研了一款轻量的图片智能裁剪框架,基于艺术美学分析与深度学习技术,自动判断图片主体区域,裁剪图片以适配不同尺寸要求。目前该算法已经在微信公众号的快讯、推荐流、图片落地页等多个场景中落地应用,取得了不错的业务收益。同时该方法也被 AAAI 2024 会议接收录用。

800次阅读  |  10月以前  |  阅读全文 »
Linux内核解读

工作过程中遇到的调度、内存、文件、网络等可以参考。

748次阅读  |  10月以前  |  阅读全文 »
Git 工作流程

协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去。"工作流程"在英语里,叫做"workflow"或者"flow",原意是水流,比喻项目像水流那样,顺畅、自然地向前流动,不会发生冲击、对撞、甚至漩涡。

673次阅读  |  10月以前  |  阅读全文 »
一看就懂的TypeScript工具类型

TypeScript是一种静态类型检查的编程语言,它内置了许多基本数据类型,如字符串、数字和布尔型等。除了基本数据类型,当某种类型对于大多数代码来说都非常有用时,它们就会被添加到TypeScript中并且被大家使用而无需担心它们的可用性。这些内置在TS中的类型我们称之为工具类型,这些工具类型位于TS安装目录typescript/lib/lib.es5.d.ts,熟悉这些工具类型,可以帮助我们提高开发效率。

671次阅读  |  10月以前  |  阅读全文 »
Docker 是怎么工作的?

本文展示了 Docker 的架构,以及当我们运行 "docker build"、"docker pull "和 "docker run "时它是如何工作的。

727次阅读  |  10月以前  |  阅读全文 »
你想要的图片优化方案都在这里!

当谈到前端性能优化,不得不提图片资源的优化,图片可谓是网站的主要构成部分,尤其是对于商城类的网站。

665次阅读  |  10月以前  |  阅读全文 »
如何实现一个Canvas渲染引擎(一):节点和层级关系

canvas中没有节点和层级的概念,我们通过DisplayObject和Container等类,实现了节点和层级的概念;通过Transform属性实现了类似DOM的transform属性;通过叠加节点相对于父节点的变换(localTransform)和父节点相对于canvas视窗的变换(parent.worldTransform),得到了每个节点相对于canvas视窗的变换,然后调用ctx.setTransform设置画笔的状态,来进行绘制;通过requestAnimationFrame实现了自动清除画布和重新绘制。

966次阅读  |  10月以前  |  阅读全文 »
云音乐自研客户端UI自动化项目-Athena

网易云音乐是一款大型的音乐平台App,除了音乐业务外,还承接了直播、K歌、mlog、长音频等业务。整体的P0、P1级别的测试用例多达 3000 多个,在现代互联网敏捷高频迭代的情况下,留给测试回归的时间比较有限。

711次阅读  |  10月以前  |  阅读全文 »
Flutter抓包绕过

最近工作上让做个app的复测,把apk发我后,开始尝试挂代理抓包,结果发现抓不到。分析后发现是使用Flutter开发的。

2881次阅读  |  10月以前  |  阅读全文 »
我知道你想用useEffect,但你先别急

useEffect是React提供给我们的一个“逃生舱”,是React 的纯函数式世界通往命令式世界的“逃生通道”,选择合适的时机使用useEffect会让我们的代码既优雅又高效,反之会造成不必要的负担。

858次阅读  |  10月以前  |  阅读全文 »
Go语言中的Pinner.Pin

`Pinner`是一组固定的 Go 对象。可以使用 `Pin` 方法来固定一个对象。`Pinner`固定的所有对象都可以使用 `Unpin` 方法解开固定。

655次阅读  |  10月以前  |  阅读全文 »
Springboot集成rocketmq快速入门demo

RocketMQ是一个纯Java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里参考Kafka特点研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高性能、高可靠、高实时、分布式特点。

711次阅读  |  10月以前  |  阅读全文 »
React之Effect详解

在React中,Effect是一种用于处理副作用的机制,它允许我们在组件生命周期中执行诸如数据获取、订阅事件、手动操作DOM等副作用操作。

849次阅读  |  10月以前  |  阅读全文 »
一图解释进程间通信的5种方式

共列举5种常见的IPC通信机制,这些IPC机制有时被组合在一起以实现高效的进程通信。

1135次阅读  |  10月以前  |  阅读全文 »
【滴滴】如何实现 chunk 函数,数组进行分组

滴滴面试题:如何实现 chunk 函数,数组进行分组。

566次阅读  |  10月以前  |  阅读全文 »
一图读懂OAuth2.0工作原理

OAuth 2.0 是一种授权机制,主要是颁发令牌。应用程序通过颁发的令牌(也就是一串字符,类似于密码),就能够访问该用户在其他服务(如 Facebook 或 GitHub)上的数据,而不再需要用户的密码。

1068次阅读  |  10月以前  |  阅读全文 »
Maven依赖冲突问题

依赖冲突是指:在 Maven 项目中,当多个依赖包,引入了同一份类库的不同版本时,可能会导致编译错误或运行时异常。

690次阅读  |  10月以前  |  阅读全文 »
看图聊算法:为什么排序算法还是不够快?

排序是一种组织数据的方式,目的是确保数据元素之间的相对顺序正确。当我们提到比较排序,意味着我们通过两两比较来确定元素之间的顺序。理论上,一个最优的比较排序算法应该在每次比较后尽量减少剩余的可能性。

630次阅读  |  10月以前  |  阅读全文 »
JavaScript中的设计模式

JavaScript设计模式是编程世界的智慧结晶,提供了解决常见问题的优秀方案。无论你是初学者还是经验丰富的开发者,掌握这些模式都能让你的代码更清晰、更灵活。本文将为你介绍一些常见的设计模式,帮助你提高代码质量,构建更可维护的应用。让我们一起深入了解这些设计模式的精妙之处吧!

712次阅读  |  10月以前  |  阅读全文 »
springboot集成 mysql快速入门demo
662次阅读  |  11月以前  |  阅读全文 »
Android 逆向:最近大火的 ChatGPT 客户端是如何实现的?

这两天在 B 站刷视频,看到了 ChatGPT 新出的语音对话,非常惊叹。不得不说,OpenAI 不出手则已,一出手则一鸣惊人。那我作为一个 Android 学习者,却也不免想到了一个别的问题:作为新的 App,ChatGPT 的 Android 端是用什么写的呢?

3220次阅读  |  11月以前  |  阅读全文 »
写一个 Vue3 Hooks,计算网页的帧数 FPS

平时我们在打游戏的时候,都会接触到 帧数 这个名词,也就是 fps,帧数越高,说明画面的显示更加流畅。

540次阅读  |  11月以前  |  阅读全文 »
作为前端,工作中处理过什么复杂的需求?

我今天提到的“复杂度”则比较普适,所有团队都存在面临这种场景的可能性,而对于每个团队而言,我认为没有一个团队会觉得应对起来很简单。更多需要的是公司资源调度+团队技术积累+个人能力的配合。

540次阅读  |  11月以前  |  阅读全文 »
一张架构图让我认识到前端的渺小

本文想通过一次后端架构分析, 让我们前端人意识到自己的不足与眼界的狭窄,我们前端er需要对一个完整的大型项目有一个整体的认知,意识到自己的不足,才能在这条路上更好的走下去。不要满足于html拼拼页面,写写样式,做做一些简单的工作。

606次阅读  |  11月以前  |  阅读全文 »
【GPU】部署到硬件

前几天我们过了一遍,现在的GPU在逻辑上应该包含哪些功能模块?当然要直接设计成硬件,必然会遇到很多问题,成本,性能,功耗,性能等。下面就来探讨一下这些问题的解决方法。

710次阅读  |  11月以前  |  阅读全文 »
【GPU】逻辑上的模块划分

上期我们介绍了一个基本的图形应该包含什么样的流水线,随着时代的发展,新的需求逐渐出现。我们就来看看如何从基本的图形流水线逐步扩充成现在的样子。

713次阅读  |  11月以前  |  阅读全文 »
【GPU】图形流水线基础

不小心算是邂逅了龚大的视频,看了一遍视频之后,仿佛记得,但是很多的东西又仿佛记不住。于是乎想着写一篇笔记记录一下,我自身最近也在学习做媒体相关的东西,那必须学习一下GPU啊。

660次阅读  |  11月以前  |  阅读全文 »
React之条件渲染

条件渲染是指根据特定条件选择性地渲染React组件或元素。这可以通过JavaScript中的条件语句(如`if`语句或三元运算符)来实现。在React中,条件渲染通常与组件的`render`方法结合使用,根据某些条件返回不同的React元素。

741次阅读  |  11月以前  |  阅读全文 »
企业微信大型Android系统重构之路

企业微信本地部署版(下文简称为本地版)是从2017年起,脱胎于企业微信的一款产品。本地版的后台服务能独立部署在政府或者大型企业的本地服务器上。在一个已经迭代了7年的大型Android系统中,企业微信本地版不可避免地会暴露出一些遗留系统的特点。本文将探讨我们在实践中采用的一些行之有效的重构案例,以及如何让一个大型软件系统持续保持活力。

3059次阅读  |  11月以前  |  阅读全文 »
聊聊C语言中的malloc申请内存的内部原理

我们今天来深入地了解一下malloc函数的内部工作原理。

575次阅读  |  11月以前  |  阅读全文 »
临时抱佛脚必看|一个月速通高级系统架构设计师!(低分飘过版)

本文写给已决定报考高级软件架构设计师的同学,从软考报名到正式考试,有40天时间,本文纯应试备考经验,一个月速成,仅供参考。

608次阅读  |  11月以前  |  阅读全文 »
Swift 闭包

在 Swift 中,闭包是自包含的功能块,可以捕获和存储上下文中任意常量和变量的引用。Swift 闭包有多种形式,包括闭包表达式、尾随闭包、逃逸闭包等。

545次阅读  |  11月以前  |  阅读全文 »

Copyright© 2013-2019

京ICP备2023019179号-2