深圳幻海软件技术有限公司 欢迎您!

开发工具

  • 还在用 JS 做节流吗?CSS 也可以防止按钮重复点击

    众所周知,函数节流(throttle)是JS中一个非常常见的优化手段,可以有效的避免函数过于频繁的执行。举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用

  • 前端:Nodejs版本管理工具Nvm介绍,你学会了吗?

    大家使用vue框架开发的朋友可能会遇到首次运行公司项目环境的时候,会出现使用npminstall命令安装依赖包的时候出现各种各样的问题,其中很重要的一个错误原因就是因为你的nodejs版本和当时搭建环境的版本不一致造成的。今天就来给大家推荐nvm这款nodejs版本管理工具,可以解决你在实际运行vu

  • 扒去Spring事件监听机制的外衣,竟然是观察者模式

    前言Spring中提供了一套默认的事件监听机制,在容器初始化时便使用了这套机制。同时,Spring也提供了事件监听机制的接口扩展能力,开发者基于此可快速实现自定义的事件监听功能。Spring的事件监听机制是在JDK事件监听的基础上进行的扩展,也是在典型观察者模式上的进一步抽象和改进。所以,结合Spr

  • 再续如何防止接口重复提交?

    ​一、摘要在上一篇文章中,我们详细的介绍了对于下单流量不算高的系统,可以通过​请求唯一ID​+​数据表增加唯一索引约束​这种方案来实现防止接口重复提交!随着业务的快速增长,每一秒的下单请求次数,可能从几十上升到几百甚至几千。面对这种下单流量越来越高的场景,此时数据库的访问压力会急剧上升,上面这套方案

  • 如何使用ORM链式操作?如何优雅的实现软删除?

    ​ORM链式操作-时间维护需要注意,该特性仅对链式操作有效。gdb模块支持对数据记录的写入、更新、删除时间自动填充,提高开发维护效率。为了便于时间字段名称、类型的统一维护,如果使用该特性,我们约定:字段应当设置允许值为null。字段的类型必须为时间类型,如:date​,  dat

  • 忘了又看,看了又忘?保姆级教学,一口气教你玩转三种高频设计模式!

    大家好,我是楼仔呀。无论大家工作还是面试,都会用到设计模式,如果不结合具体的场景,通过书本学到的设计模式非常容易忘。本文通过具体的示例,教大家如何学习设计模式,保证你看完这篇文章后,这3种常用的设计模式,能妥妥掌握!不BB,上文章目录。1.一起打豆豆有个记者去南极采访一群企鹅,他问第一只企鹅:“你每

  • 漫画 | 为什么说CRUD是所有程序员的最终归宿?

    张大胖看了几篇公众号的文章,心事重重地来找大师咨询。张大胖觉得大师的这个主意相当不错,他发奋图强,刻苦学习云计算相关的知识。经过过五关斩六将的面试,他如愿以偿,进入了一个大厂做云计算。经过了适应期,领导开始给张大胖派活了,张大胖非常激动

  • Go 要违背初心吗?新提案:手动管理内存

    背景由于手动管理内存普遍会给程序员带来一定的心智负担,提高一门编程语言的入门门槛(还记得大学写OC时经常有同学写着写崩了...)。对应到Go语言上,他是一门带垃圾回收的编程语言。也就是说不需要程序员手动的去管理、释放程序的内存。无需手动管理也是Go核心开发团队一直引以为傲的特性之一。最近有人发起了一

  • 硬核 | 基于ASM实现Java类与接口的动态代理

    asm是一款编写字节码的框架,熟练使用可以加深对字节码指令的掌握。Java的动态代理​Java动态代理是基于接口代理的,所以首先我们得定义一个公共接口。现在代理用户接口,实现登陆逻辑和来打印登录的花费时间复制publicinterfaceUserService{booleanlogin(String

  • 前端常用的数据可视化工具库

    1.D3.jsD3(Data-DrivenDocuments或D3.js)是一个JavaScript库,用于使用Web标准将数据可视化。D3可以使用SVG、Canvas和HTML将数据变为现实。D3将强大的可视化和交互技术与数据驱动的DOM操作方法相结合,让你拥有现代浏览器的全部功能,并可以自由地为

  • PyTorch常用五个抽样函数

    PyTorch是一个开源的深度学习框架,它提供了一个用于高级特性的Python包。在本文中,我们将介绍PyTorch中的常见抽样函数。抽样是一个统计过程,它从总体中提取一个子集,通过子集来研究整个总体。torch.bernoulli()伯努利分布是一个离散分布,有两个结果,即成功和失败。如果成功的概

  • 使用GitHub Actions实现自动化部署

    前言大家在工作中想必都是通过自动化部署来进行前端项目的部署的,也就是我们在开发完某个需求时,我们只需要将代码推送到某个分支,然后就能自动完成部署,我们一般不用关心项目是如何build以及如何deploy的,这就极大得提高了我们的开发效率。在没有自动化部署的情况下,前端项目的部署流程一般是这样的:(手

  • 如何在React导航栏实现搜索功能

    作者丨HrushiM译者|涂承烨本文向你展示如何在React导航栏中实现搜索功能,具体包括如何配置搜索输入,监听用户数据输入回调,以及如何设置它的样式。本文假设你已经安装了Superflows库,启动并运行了默认导航栏,添加了品牌信息,并自定义了菜单。本教程将从这里展开。步骤1-显示/隐藏搜索输入框

  • 两万字盘点那些被玩烂了的设计模式

    大家好,我是三友~~之前有小伙伴私信我说看源码的时候感觉源码很难,不知道该怎么看,其实这有部分原因是因为没有弄懂一些源码实现的套路,也就是设计模式,所以本文我就总结了9种在源码中非常常见的设计模式,并列举了很多源码的实现例子,希望对你看源码和日常工作中有所帮助。单例模式单例模式是指一个类在一个进程中

  • ORM链式操作的字段过滤&为什么GoFrame不支持migrate功能?

    初学者必须搞懂:在Go中,没有null、none、NULL、None任何类型在未初始化时都对应一个零值:布尔类型是false,整型是0,字符串是""而指针,函数,interface,slice,channel和map的零值都是nil结合场景,平衡利弊,做出取舍下图是一位读者问我的问题,我翻遍了文档也

  • 记一次“雪花算法”造成的生产事故的排查记录

    你好,我是悟空。本文主要内容如下:前言最近生产环境遇到一个问题:现象:创建工单、订单等地方,全都创建数据失败。初步排查:报错信息为duplicatekey,意思是保存数据的时候,报主键id重复,而这些id都是由雪花算法生成的,按道理来说,雪花算法生成的ID是唯一ID,不应该出现重复的ID。大家可以先

  • 自建 MongoDB 实战 | MongoDB 文档查询

    文档操作MongoDB中的文档操作与关系型数据中的增删改查,没什么两样,只是形式不同而已。复制//命令格式为db.<collectionname>.insert({"name":"McLeod"})//插入文档>db.dogs.insert({"name":"toby"})Writ

  • 我服了,整理了 40 余种图片优化工具,论图片压缩,直接甩给他这个列表

    图像往往是任何特定网页上最大的资源。虽然许多开发者花时间优化网页性能的其他方面,但减少图像的大小对性能的影响比所有其他方面加起来还要大。这篇文章将纯粹关注于可用于减少图片大小的不同工具。WebUtilsBulkImageCompress地址:https://www.webutils.app/imag

  • 基于AOP思想构造RocketMQ组件

    1.背景1.1RocketMQ集群简介RocketMQ集群架构图如图所示,RocketMQ集群由4部分组成:Producer会根据业务需要发送消息;Broker负责接收、存储和分发消息;Consumer负责按需消费消息;NameServer负责通过长连接、Topic路由、心跳检测等手段保证集群的高可

  • JavaScript错误处理完整指南

    大家好,我是CUGGZ。本文将带你了解JavaScript中常见的错误类型,处理同步和异步JavaScript/Node.js代码中错误和异常的方式,以及错误处理最佳实践!1.错误概述JavaScript中的错误是一个对象,在发生错误时会抛出该对象以停止程序。在JavaScript中,可以通过构造函

  • Node.js 是怎么找到模块的?你知道吗?

    大家好,我是前端西瓜哥,今天我们来看看Node.js模块查找的原理。模块种类模块有三种来源。核心模块:Node.js内置的包。比如http、fs、path。自定义模块:NPM包。比如axios、express,位于node_modules目录下的同名目录,并通过package.json的main字段

  • Go 程序里 if else 分支太多?试着用策略模式治理一下吧!

    大家好,我是每周在这里陪你一起进步的网管。上篇文章我给大家分享了设计模式中的模版模式,给大家讲了用模版模式在项目开发时提炼流程、减少重复开发的技巧。同时,在上一篇文章我也分享了我总结的一个暴论,那就是“模板、策略和职责链三个设计模式是解决业务系统流程复杂多变这个痛点的利器”。今天我们继续接着一起学习

  • 基于Sentry高效治理前端异常

    一个前端项目上线后的各种指标监控是极其重要的,通过各种指标数据可以知道项目存在的问题及未来优化的方向,在各种维度监控中的异常监控是必不可少的,通过异常数据可以及时发现用户遇到的问题,而异常上报中的各种数据指标可以给解决问题提供参考及方向。文章内所有异常上报及异常分析都是基于异常处理开源平台&nbsp

  • 聊一聊 JavaScript 中的 Super() 是什么?

    当你在js代码中看到有调用super()时,会不会好奇这个super()到底有什么作用?在子类中,您可以使用super()调用其父级的构造函数,并使用super.<方法名>来访问其父级的方法。本文将假定您至少对构造函数以及子类和父类的概念有所了解。如果你不了解这些,则可能需要从Mozil

推荐阅读