阿里面试:说说自适应限流? 限流想必大家都不陌生,它是一种控制资源访问速率的策略,用于保护系统免受过载和崩溃的风险。限流可以控制某个服务、接口或系统在一段时间内能够处理的请求或数据量,以防止系统资源耗尽、性能下降或服务不可用。 常见的限流策略有以下几种: 令牌桶算法:基于令牌桶的方式,限制每个单位时间内允许通过的请求量,请求量超出限制的将被拒绝或等待。 漏桶算法:基于漏桶的方式,限制系统处理请求的速率,请求速率过快时将被限制 开发运维 2024-05-22 大白菜程序猿
前端跨平台开发框架大盘点 前端跨平台开发框架日益成为开发者的首选,它们允许开发者使用统一的技术栈构建适用于多个平台的应用。在 App 领域,React Native、Flutter、Weex 和 Hippy 提供了原生渲染的能力;在客户端领域,Electron、Tauri 和 Nw.js 使 Web 技术能够构建桌面应用;而在小程序领域,uniapp 和 Taro 则实现了一次编写、多端运行的愿景。本文将对这些框架进行简要 开发运维 2024-05-22 向阳逐梦
Rust 正在全面入侵前端 过年期间我没怎么发文章,但是我也没闲着。在这个空闲时间,把 rust 基础以及个别生态技术方案扎扎实实的,系统的学习了一下。学习他的初衷是因为 rust 可以支持鸿蒙应用的原生级别的开发,为进阶资深级别的鸿蒙开发者做技术储备。 可这不学不知道,一学吓一跳。这才发现 rust 生态,正在以一种锐不可当的气势,全方位、无死角的入侵前端开发的方方面面。最关键的是,由于有后发优势,这些技术方案往往都比已有 开发运维 2024-05-22 LOVEHL^ˇ^
当调用一个 Python 对象时,背后都经历了哪些过程? 楔子 在上一篇文章中,我们分析了对象是如何创建的,主要有两种方式,一种是通过特定类型 API,另一种是通过调用类型对象。 对于内置类型的实例对象而言,这两种方式都是支持的,比如列表,我们既可以通过 [ ] 创建,也可以通过 list() 创建,前者是列表的特定类型 API,后者是调用类型对象。 但对于自定义类的实例对象而言,我们只能通过调用类型对象的方式来创建。一个对象如果可以被调用,那么这个对象 开发运维 2024-05-22 贤蛋大眼萌
编程语言 Kotlin 2.0.0 现已发布,K2 编译器进入稳定状态 5 月 22 日消息,JetBrains 官方宣布 Kotlin 2.0.0 正式发布,其代码已上传到 GitHub 库。 Kotlin 2.0 亮点 K2 编译器现已进入稳定状态: 默认用于所有平台(JVM、Native、Wasm 和 JS),且性能显著提升。性能方面,JetBrains 团队编译了 1000 万行代码以确保其质量稳定,涉及 18,000 多名开发人员和 80,000 多个项目。 开发运维 2024-05-22 法医
高大上!五个python高级可视化图表! 1. 和弦图(Chord Diagram) 和弦图,作为一种数据可视化工具,独具匠心地展示了数据间的复杂关系。在图表中,节点井然有序地分布于圆周之上,点与点之间则以优雅的弧线相互连接,这些弧线不仅揭示了数据间的内在联系,还通过其长度的差异,直观地反映了连接间的数值大小。更进一步,弧线的粗细程度还巧妙地映射出数据间关系的重要性,使观察者能一目了然地洞察数据背后的故事。 此外,和弦图还巧妙地运用了色彩 开发运维 2024-05-22 张二河
聊聊针对Web应用的SQL注入攻击与应对策略 作者 | 陈峻 审校 | 重楼 引言 近年来,随着人们使用Web应用的与日俱增,各种与在线交易和通信相关的大量个人数据被存储在其后端的数据库中。对于那些由数据库驱动的Web应用而言,SQL注入攻击是一种相当严重的安全风险。攻击者可以通过利用系统漏洞,绕过应用防火墙,未经授权地访问到底层数据库,并窃取各种敏感的数据信息。因此,我们需要制定一套针对SQL注入攻击的有效应对措施,来提高Web应用的整体安 开发运维 2024-05-22 大猫
CSS 实现从上到下从左到右的列表布局 正常情况下,网页中的列表都是从左到右,从上到下的,如下: 但有时候可能需要从上到下,从左到右的排列方式,就像这样。 其实这种排序更符合日常生活中的排列方式。 虽然在网页中不常见,但如果真的碰到了这种布局,该如何处理呢? 有些同学可能会想到用 JS将元素数组分成三份,做成一个二维数组,然后每个数组嵌套一层容器水平排列就行了。其实呢,纯 CSS 也是可以完成的,一起来看看吧。 一、grid 布局 很多 开发运维 2024-05-22 醒在深海的猫
一款开源的 .NET 程序集反编译、编辑和调试神器 前言 说到.NET相关的反编译工具大家脑海里第一个想到的工具是什么?ILSpy、dnSpy、还是dotPeek?咱们今天的主要内容是讲讲dnSpyEx(dnSpyEx是dnSpy项目的非官方Fork维护版本)这个开源的.NET程序集反编译、编辑和调试工具该如何使用。 dnSpyEx dnSpyEx是dnSpy(该代码库已于2020年12月21日被所有者归档为只读状态)项目的非官方Fork维护版本, 开发运维 2024-05-22 大白菜程序猿
Python Selenium:网页自动化的利器 Selenium是一个自动化测试工具,主要用于模拟用户在Web应用程序中的交互操作。虽然它最初被设计用于自动化测试,但也被广泛用于网页数据抓取、网页自动化操作和网页测试。 1. 安装和设置Selenium 首先,需要安装Selenium库。使用pip来安装Selenium: pip install selenium 此外,需要下载并安装一个浏览器驱动程序,以便Selenium可以与浏览器进行通信。 开发运维 2024-05-21 大白菜程序猿
Java AOP实践指南:切面编程详解 哈喽,大家好,我是了不起。 AOP就是面向切面编程,或者叫面向方面编程,或者开玩笑的说叫面向方便面编程,如果粗俗的理解,就是可以自定义注解,然后通过自己定义的方式定义注解的作用。 什么是SpringAOP SpringAOP的全称是(Aspect Oriented Programming)中文翻译过来是面向切面编程,AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容 开发运维 2024-05-21 LOVEHL^ˇ^
DotNet开发之反射技术详解 一、介绍 1. 什么是反射技术 反射技术是指在程序运行时动态地获取类型信息、访问对象成员(如属性、方法、字段等)以及调用对象的方法的能力。在许多编程语言中都有反射机制,包括 Java、C#、Python 等。 2. 反射技术在.NET开发中的作用和重要性 在.NET开发中,反射技术具有非常重要的作用和意义,主要体现在以下几个方面: 动态加载和管理程序集:反射技术允许程序在运行时动态加载和管理程序集 开发运维 2024-05-21 宇宙之一粟
如此丝滑的API设计,用起来真香 故事 工位上,小猫一边撸着代码,一边吐槽着前人设计的接口。 如下: “我艹,货架模型明明和商品SKU模型是一对多的关系,接口入参的时候偏偏要以最小粒度的SKU将重复入参进行平铺”。 “一个接口居然做了多件事情,传入参数复杂异常,不是一块业务类型的东西,非得全部揉在一起”。 “如此长的业务流程,接口能快起来么,难怪天天收到接口慢的告警”。 业务告警 “这都啥啊,这名字怎么能这么取呢,这也太随意了吧. 开发运维 2024-05-21 竹子爱熊猫
如何为 Nest.js 编写单元测试和 E2E 测试 前言 最近在给一个 nestjs 项目写单元测试(Unit Testing)和 e2e 测试(End-to-End Testing,端到端测试,简称 e2e 测试),这是我第一次给后端项目写测试,发现和之前给前端项目写测试还不太一样,导致在一开始写测试时感觉无从下手。后来在看了一些示例之后才想明白怎么写测试,所以打算写篇文章记录并分享一下,以帮助和我有相同困惑的人。 同时我也写了一个 demo 项 开发运维 2024-05-21 LOVEHL^ˇ^
分享能提高开发效率,提高代码质量的八个前端装饰器函数 装饰器非常好用 前面给大家发了一篇文章xxx,给大家介绍了一遍JavaScript中的装饰器,今天就给大家介绍一下在我项目中用到过的几个装饰器的思路吧! 代码是伪代码,只是提供个思路,实际上代码不止这么少。 防抖装饰器 当我们在一些特殊场景时,需要使用防抖这个优化手段来进行优化,比如: 表单提交 数据的搜索 数据的筛选 某些数据的更改 数据改变时触发的回调 这些函数都可以使用防抖装饰器来进行性能优 开发运维 2024-05-21 爱可生开源社区
C# 线程池的使用方法 在C#中,线程池(ThreadPool)是一个用于并行处理任务的强大工具。通过使用线程池,可以有效地管理和复用线程资源,从而提高应用程序的性能和响应能力。本文将详细介绍C#线程池的使用方法,包括其基本概念、使用场景、如何创建和管理线程池,并通过示例代码展示线程池的具体应用。 一、线程池的基本概念 线程池是一种多线程处理形式,它预先创建了一组线程,并放在“池”中等待任务分配。当有新任务到来时,线程池 开发运维 2024-05-21 宇宙之一粟
Python 多线程编程的十个关键概念 今天我们要一起探索的是Python编程中的一个超炫酷领域——多线程!想象一下,你的程序能像超人一样同时处理多个任务,是不是很激动人心?让我们以轻松愉快的方式,一步步揭开它的神秘面纱。 1. 线程的初步认知 想象你是个厨房大厨,一边炒菜一边洗菜,这就是多线程的日常。在Python里,threading模块就是我们的厨房神器。 import threading def cook(): # 炒菜线程 p 开发运维 2024-05-21 Escape
Python vs. Rust:打破三大障碍 在我周围的每个人都知道我是Python 的忠实粉丝。大约15年前,当我对 Mathworks Matlab 感到厌倦时,我开始使用Python。虽然Matlab的理念看起来不错,但在掌握了Python之后,我再也没有回头。我甚至成为了我所在大学的Python传道者,"传播这个词"。 会编码并不等于成为软件开发者。当我了解到强类型、SOLID原则和通用编程架构等主题时,我也瞥见了其他编程语言以及它们 开发运维 2024-05-21 大树
.NET 6:生成单一可执行文件的应用 在.NET 6中,开发者可以享受到许多新特性和改进,其中之一就是能够更容易地生成单一的可执行文件(也称为“单文件应用”或“自包含应用”)。这种应用将所有依赖项和运行时都打包到一个可执行文件中,从而简化了部署和分发。以下是如何为WinForms应用或控制台应用创建这样的单文件可执行文件的步骤。 1. 创建项目 首先,你需要创建一个新的WinForms或控制台项目。这可以通过Visual Studio 开发运维 2024-05-21 醒在深海的猫
VSCode 前端开发新纪元:12款 AI 代码助手大推荐 在前端开发的世界里,VSCode以其强大的功能和丰富的插件生态,成为了无数开发者的首选工具。而近年来,随着人工智能技术的飞速发展,VSCode上的AI代码助手也如雨后春笋般涌现,极大地提升了开发者的编码效率。 今天,就为大家推荐12款VSCode前端开发AI代码助手,助你在编程之路上如虎添翼! 1. GitHub Copilot GitHub Copilot是一款备受瞩目的AI代码助手,它能深入理 开发运维 2024-05-21 大白菜程序猿