为了全面监控用户行为,我写了个超级前端工具库! 简介 sunshine-track 应用于前端监控, 基于 行为上报,实现了 用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于 Vue、React、Angular 等框架 本项目源码:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果觉得喜欢的话,可以点个 star 哦~ 功能 sunshine-track具备以下功 开发运维 2024-06-06 穿过生命散发芬芳
关于 Python 数据分析的 15 个 NumPy 应用 欢迎来到Python数据分析的世界!对于初学者来说,NumPy是你的第一站,它是Python科学计算的基石,特别是当你想要处理数组和进行大规模数据操作时。本文专为那些希望深入了解并掌握NumPy核心功能的数据分析新手设计。我们将通过10个实用的应用示例,带你从基础操作到一些高级技巧,让你的数据分析之旅更加顺畅。 1. 数组创建与基本操作 应用示例: 创建数组: import numpy as np 开发运维 2024-06-06 向阳逐梦
喔!React19 中的 Hook 可以写在 If 条件判断中了。Use 实践:点击按钮更新数据 接下来,我们将会以大量的实践案例来展开 React 19 新 hook 的运用。 本文模拟的实践案例为点击按钮更新数据。这在开发中是一个非常常见的场景。 案例完成之后的最终演示效果图如下: 我们直接用 React 19 新的开发方式来完成这个需求。 一、基础实现 首先创建一个方法用于请求数据。 const getApi = async () => { const res = await fe 开发运维 2024-06-06 爱可生开源社区
解密Tenacity:Python中最强大的重试库 在编写应用程序时,经常需要处理与外部服务通信或其他不稳定操作相关的问题。这些问题可能包括网络错误、服务不可用、超时等。在这些情况下,重试操作是一种常见的解决方案。Tenacity是Python中一个强大且灵活的重试库,它可以帮助你有效地处理这些问题。 这篇文章将介绍Tenacity重试库的使用,包括如何安装和配置Tenacity,以及如何在不同场景下使用它来处理重试操作。还有Tenacity的各种 开发运维 2024-06-06 大猫
提升系统吞吐量,详解JDK21虚拟线程,炸裂 环境:JDK21 1. 虚拟线程简介 虚拟线程是轻量级的线程,可以减少编写、维护和调试高吞吐量并发应用程序的工作量。线程是可以调度的最小处理单元。它与其他类似单元并发运行,而且在很大程度上是独立运行的。它是java.lang.Thread的一个实例。线程有两种,平台线程和虚拟线程。 2. 什么是平台线程 平台线程被实现为操作系统(OS)线程的薄包装器。平台线程在其底层操作系统线程上运行Java代码 开发运维 2024-06-06 大白菜程序猿
终于搞懂了!原来Vue3中Template使用Ref无需.Value是因为这个 前言 众所周知,vue3的template中使用ref变量无需使用.value。还可以在事件处理器中进行赋值操作时,无需使用.value就可以直接修改ref变量的值,比如:change msg。你猜vue是在编译时就已经在代码中生成了.value,还是运行时使用Proxy拦截的方式去实现的呢?注:本文中使用的vue版本为3.4.19。 看个demo 看个简单的demo,代码如下: {{ msg } 开发运维 2024-06-06 捡田螺的小男孩
前端构建工具大盘点 今天来盘点一下前端构建工具。 图片 Bun Bun 是一个爆火的 JavaScript 运行时,它不仅仅局限于运行时,更是一个全能的工具集,集成了包管理、测试、构建和转译等多项功能。作为构建工具,Bun 的速度表现尤为出色,其性能远超其他主流构建工具。 受到 edbuild 的启发,Bun 不仅继承了其优秀的设计理念,还提供了与之兼容的插件API,确保了生态的延续性和扩展性。另外,Bun 引入了J 开发运维 2024-06-05 大树
离线部署 Jenkins 填坑指南 本文目录如下: 一、背景 在实际项目中,通过这些实践,目前已经稳定运行了两个月,现在又有了一个新项目也是需要用 Jenkins 来实现自动化部署,但新项目的部署环境是 Linux 离线环境,所以我需要在离线环境上再部署一遍。 因为部署 Jenkins 的机器上没有网络,所以部署的过程中遇到了很多坑,本篇文章也是为了记录期间遇到的坑,以及解决方案。 二、依赖项 部署后端项目时需要依赖 Java、Ma 开发运维 2024-06-05 张二河
解决消息队列中的关键问题:消息丢失、顺序消费、消息积压与重复消费 在分布式系统中,消息队列扮演着至关重要的角色,它解耦了系统组件,提高了系统的可扩展性和可靠性。然而,在使用消息队列时,我们经常会遇到一些问题,如消息丢失、顺序消费、消息积压和重复消费。本文将深入探讨这些问题的原因,并提供相应的解决方案。 1. 消息丢失 消息丢失可能发生在生产者、消息队列或消费者中的任何一个环节。为了防止消息丢失,我们可以采取以下措施: 生产者确认机制:确保消息已成功发送到队列。许 开发运维 2024-06-05 LOVEHL^ˇ^
微服务下认证授权框架的探讨 在微服务架构中,服务的认证与授权是保障系统安全的重要环节。随着微服务架构的普及,越来越多的企业开始将其应用拆分为多个小型服务,以提高系统的可扩展性、灵活性和可维护性。然而,这种分布式架构也带来了新的安全挑战,特别是在认证和授权方面。本文将探讨微服务下的认证授权框架,以期为读者提供一些实用的指导和建议。 一、微服务认证授权的挑战 在微服务架构中,每个服务都是独立的,并且可以通过网络进行通信。这种分布 开发运维 2024-06-05 爱可生开源社区
面试官:说说延迟任务的时间轮调度算法? 本文继续讨论 Netty 相关的面试题,今天咱们来看一道 Netty 中的高频面试题:说说 Netty 延迟任务的时间轮调度算法? Netty 框架是以性能著称的框架,因此在它的框架中使用了大量提升性能的机制,例如 Netty 用于实现延迟队列的时间轮调度算法就是一个典型的例子。使用时间轮算法可以实现海量任务新增和取消任务的时间度为 O(1),那么什么是时间轮调度算法呢?接下来我们一起来看。 1. 开发运维 2024-06-05 醒在深海的猫
快看,我的代码能“自己说话”! 开发人员什么时候最崩溃? 别人我不知道,就我而言,要是我耗费了几个小时来研究代码,试图破译它的目的,却迟迟不得门路,真是恨不得找到写代码的那个家伙,让他回炉重造。 今天我们将在这篇文章中探讨如何编写自文档化的代码,让代码自己会说话。 什么是自文档化的代码? 自文档化的代码是以清晰、富有表现力的方式编写的代码,无需大量的注释和外部文档,就能让人理解代码的目的和功能。 自文档化代码的特点: 可读性:代 开发运维 2024-06-05 宇宙之一粟
被严重低估!React 19 又是一次开发方式的变革,useEffect 将会逐渐退出历史舞台 目前写 React 19 的文章已经有很多很多了,但是,写到点子上的并不多。包括官方文档,只是简单的罗列出了它新增了一些 hook,一些特性,却并没有进一步说明这些 hook 背后所代表的含义,它们的最佳实践是什么。 以至于,在这个时间节点,期待 React 19 的人也并不是很多。 但是,我要告诉大家的是,我们都严重低估了 React 19。 beta 版在 npm 上可用之后,我就创建了一个项 开发运维 2024-06-05 泡泡
Axios Node 端请求是如何实现的? 本文我们将讨论 axios 的 Node 环境实现。我们都知道使用 axios 可以让我们在浏览器和 Node 端获得一致的使用体验。这部分是通过适配器模式来实现的。 axios 内置了 2 个适配器(截止到 v1.6.8 版本)[8]:xhr.js 和 http.js。 图片 顾名思义,xhr.js 是针对浏览器环境提供的 XMLHttpRequest 封装的;http.js 则是针对 Node 开发运维 2024-06-05 向阳逐梦
用户被盗号了!为什么前端要被骂? 密码强度 平时我们在浏览各种网站和 APP 的时候,都接触过密码这个东西! 密码设置的好不好,关乎到你的账号安全性,越复杂的密码越安全,所以密码强度很重要,而我们在做注册功能的时候,也有责任去帮协助用户设置一个高密码强度的密码! 那么密码强度怎么计算呢? 且应该如何实现以下这样的密码强度动画展示效果呢? 图片 思路 其实思路很简单: 1、监听密码输入框的变化。 2、密码变化时,获取密码文本,并通过 开发运维 2024-06-05 大树
成功实施 Data Mesh 的十条指导建议 作者 | Kelsey Beyer 自2019年 Thoughtworks 员工 Zhamak Dehghani 首次提出 Data Mesh 概念以来,Thoughtworks 便开始尝试在全球范围内与客户共同实施 Data Mesh。 以下是根据我们的经验总结的十项建议。对于每项建议,我们都指出了在实施过程中观察到的反模式、我们推荐的替代方法及其原因。这些建议将按照组织中的层级顺序从高到低列出 开发运维 2024-06-05 穿过生命散发芬芳
Vite 是什么(并且为什么如此流行)? 在Web开发的大千世界里,想要不听到关于Vite[1]的讨论,那可真是难上加难。 自2020年4月发布以来,Vite的人气就像坐了火箭一样直线上升。截至写这篇文章的时候,这个项目在GitHub上已经获得了超过64k的star,并且在每周的npm下载量上超过了1200万,现在它支持着大多数开源框架,比如Nuxt[2]、SvelteKit[3]、Astro[4]、SolidStart[5]和Remix 开发运维 2024-06-05 大树
Python 实现命令模式、中介者模式和解释器模式 今天介绍三种行为型设计模式:命令模式、中介者模式和解释器模式。 1.命令模式 它将请求封装成一个对象,从而使得可以用不同的请求对客户进行参数化。命令模式也支持撤销操作。 (1) 命令模式的结构 命令模式的核心是命令对象和接收者对象之间的关系。命令对象封装了一个特定的请求,包含了执行该请求的方法。接收者对象负责实际执行请求。 以下是命令模式的基本结构: # 命令对象接口 class Command: 开发运维 2024-06-05 LOVEHL^ˇ^
.NET 中的数据交互:生成和读取YAML文件 YAML(YAML Ain't Markup Language)是一种易于阅读的数据序列化格式,常被用于配置文件、数据交换等场景。在.NET环境中,处理YAML文件通常需要使用第三方库,因为.NET Framework和.NET Core并未内置对YAML的原生支持。本文将介绍如何在.NET中使用YamlDotNet库来生成和读取YAML文件。 1. 安装YamlDotNet库 首先,你需要在你的 开发运维 2024-06-05 剑圣无痕
为什么要限流?常见的限流算法有哪些? 实际开发中,当业务流量过大时,为了保护下游服务,我们通常会做一些预防性的工作,今天我们就一起来聊聊限流! 一、为什么需要限流? 在实际应用中,每个系统或者服务都有其处理能力的极限(瓶颈),即便是微服务中有集群和分布式的夹持,也不能保证系统能应对任何大小的流量,因此,系统为了自保,需要对处理能力范围以外的流量进行“特殊照顾”(比如,丢弃请求或者延迟处理),从而避免系统卡死、崩溃或不可用等情况,保证系 开发运维 2024-06-05 Escape