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

开发工具

  • Node_modules 是该好好治一治了

    作为前端开发者,大家有没有被 node_modules 困扰过呢?反正我是有。。。因为npm特殊的包管理机制,往往一个很小的项目就会携带一个很大的 node_modules 。相信大家都刷到过下面这张图,这就是对前端依赖最大的讽刺了。有时候,可能不经意间我们就

  • 奇怪,为什么ArrayList初始化容量大小为10?

    看ArrayList源码时,无意中看到ArrayList的初始化容量大小为10,这就奇怪了!我们都知道ArrayList和HashMap底层都是基于数组的,但为什么ArrayList不像用HashMap那样用16作为初始容量大小,而是采用10呢?于是各方查找资料,求证了这个问题,这篇文章就给大家讲讲

  • 客观评价增长趋势比 Vite 还猛的 TailwindCSS

    前端社群常见的宗教战争文:TailwindCSS根本邪魔歪道,Class根本不是这样用的,看了真他妈一肚子火——硬派本格CSS/SCSS支持者。会有这样的言论,也许是你日常的工作流程中,不适合用这样的框架,又或许是你没有客观的理解过TailwindCSS的优点所以体会不到它的魅力。先说结论:如果你是

  • 如何用 RabbitMQ 解决分布式事务?

    要说哪种分布式事务处理方案效率高,必然绕不开消息中间件!基于消息中间件的两阶段提交方案,通常用在高并发场景下。这种方式通过牺牲数据的强一致性换取性能的大幅提升,不过实现这种方式的成本和复杂度是比较高的,使用时还要看实际业务情况。今天松哥想通过一个简单的案例,来和大家聊一聊如何通过消息中间件来处理分布

  • 记录项目日志,一个注解搞定

    前段时间做了一个支线任务,现在还是回到我们的主线上面来,继续完成TienChin项目。小伙伴们知道松哥最近在录制TienChin项目视频教程,这是一个基于RuoYi-Vue脚手架的项目,用过这个脚手架的小伙伴可能知道,这个脚手架有一个功能,就是如果你需要记录下来一个接口的操作信息,那么只需要在Con

  • 干掉if else!试试这三种设计模式,优化代码贼顺手!

    前言在原有代码基础上,如何一步步通过设计模式去优化代码?日常工作中,我们用得最多的设计模式,就是策略模式、工厂模式和模板方法模式啦。优化前伪代码的流程策略模式是如何应用进去的工厂设计模式是怎么使用的模板方法模式又是怎么应用进去的。唠叨几句1.优化前伪代码流程大家先看下,优化前,原有代码的大概逻辑哈。

  • 聊聊八种架构模式

    作为一名后端研发人员,好的代码架构肯定有章法可循,今天我们就来学习8种常用的架构模式,让你的系统不再是眉毛胡子一把抓。什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神

  • 为什么很多 SpringBoot 开发者放弃了 Tomcat,选择了 Undertow?

    前言在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我

  • 醒醒吧,你根本不适合用事件驱动架构

    一、什么是事件驱动架构当下,随着微服务的兴起,容器化技术的发展,以及云原生、serverless概念的普及,事件驱动再次引起业界的广泛关注。所谓事件驱动的架构,也就是使用事件来实现跨多个服务的业务逻辑。事件驱动架构是一种设计应用的软件架构和模型,可以最大程度减少耦合度,很好地扩展与适配不同类型的服务

  • 架构治理基石:基于规范 + 模式的工具化

    围绕于ArchGuard,我们一直在探索适合于大多数企业的治理模式。通常来说,对于应用架构的治理来说,我们的预期目标是,对应的 架构设计 (广义上的)能被采纳和遵守。如果过程中出现有流程上的问题,导致了架构在实施过程中,架构会不断偏离预期的设计。那么,我们就会致力于匹配设计相应的

  • 支持每秒上万单的秒杀扣库存事务

    该架构能够支持每秒超万单精准扣库存,并且在应用crash等情况下,也能保证创建订单和扣减库存的数据最终严格一致。现有秒杀系统的问题现有的秒杀架构,为了支持高并发,通常把库存放在Redis中,收到订单请求时,在Redis中进行库存扣减。这种的设计,导致创建订单和库存扣减不是原子操作,如果两个操作中间,

  • Rally vs Jira:项目管理软件比较

    要了解在Rally与Jira的战斗中哪个应用程序获胜,您首先应该了解敏捷项目管理的含义,然后了解软件如何有助于支持这一过程。只有这样,您才能希望判断哪个最适合您的公司和您的个人需求。基于敏捷方法的项目管理工具已成为软件开发的常态。这导致许多不同的解决方案被发布到市场上,通常很难决定哪种工具适合您的团

  • 注意:雪花算法并不是ID的唯一选择!

    在《悟空传》篇外篇里,有一个忧伤的故事。秋天,树上掉下两片叶子,你要和它们说再见。但你如何知道这片叶子,不是另外一片叶子?是通过它的形状,还是通过它的重量?当我们在分布式环境中存储一些数据的时候,不得不面对的一个选择,就是ID生成器。使用一个唯一的字符串,来标识一条完整的记录。这时候,不能使用md5

  • 一日一技:Bug分析,假删除导致文章发布成功却打不开的问题

    公司有一个内部博客,大家可以在上面创建自己的账号,然后写文章在全公司分享。昨天这个内部博客开通了API,因此我准备写一个Python程序,把自己公众号文章都搬运上去。然后我就发现这个API接口有一个bug。并且根据它的现象,猜到它问题出在哪里。我先来简单描述一下现象。假设我硬盘上现在有50个Mark

  • 有意思的鼠标指针交互探究

    今天,来实现这样一个有意思的交互效果:将原本的鼠标指针样式,修改成自己想要的效果,并且添加上一些特殊的交互效果。修改鼠标样式首先,第一个问题,我们可以看到,上图中,鼠标指针的样式被修改成了一个圆点:正常而言应该是这样:当然,这里比较简单,在CSS中,我们可以通过 cursor 样

  • Java多线程专题之Lock锁的使用

    Lock基本使用Lock它是java.util.concurrent.locks下的一个接口,它也是用来处理线程同步问题的。复制publicinterfaceLock{voidlock();voidlockInterruptibly()throwsInterruptedException;boole

  • 基于谷歌T5模型细调大型语言模型

    译者|朱先忠审校|孙淑娟还记得第一次开始构建一些SQL查询来分析数据吗?相信大多数时候,你只是想看看“有哪些畅销产品”或“每周产品访问次数”。那么,为什么要编写SQL查询,而不只是用自然语言询问自己的想法呢?由于NLP(NaturalLanguageProcessing,自然语言处理)技术的最新进展

  • 我本地明明是好的啊?前端怎么本地复现线上问题?

    试想一下,某天QA给你报了一个线上问题,那你会怎么做?我本地明明是好的啊?肯定是误报!当然这种情况大部分是你内心的YY,事实上是真的有问题。看完QA的复现路径,你尝试在本地复现,然后你本地却怎么也无法复现。究其原因,还是live和本地的环境差异导致,这里的原因就可能有很多,我理解主要是以下两点:数据

  • 这不会又是一个Go的BUG吧?

    hello,大家好呀,我是小楼。最近我又双叒叕写了个BUG,一个线上服务死锁了,不过幸亏是个新服务,没有什么大影响。出问题的是Go的读写锁,如果你是写Java的,不必划走,更要看看本文,本文的重点在于Java和Go的读写锁对比,甚至看完后你会有一个隐隐的感觉:Go的读写锁是不是有BUG?故障回放背景

  • 一篇了解组合模式应该怎么用

    1.什么是组合模式?Composeobjectsintotreestructurestorepresentpart-wholehierarchies.Compositeletsclientstreatindividualobjectsandcompositionsofobjectsuniformly

  • Monkey事件类型参数有哪些?

    Monkey的事件类型总共有11种,分别是触摸(Touch)、手势(motion)、二指缩放(pinchzoom)、轨迹(trackball)、旋转(rotation)、基本导航(nav)、主要导航事件(majornav)、系统按键(syskeys)、启动activity(appswitch)、键盘

  • Github超炫酷编辑器Atom即将退休:挺了11年,终究败给VS Code

    再见了,Atom!Github官网发布公告,陪伴开发者走过11年的文本编辑器Atom即将正式谢幕。今后,在代码编辑器这一块,恐怕就是VSCode一家独大了。这份公告中,除了宣布Atom即将告别的消息外,还为目前Atom下的项目和资源库留出了6个月的缓冲期。Github表示,将在2022年12月15日

  • 一日一技:如何让自己的工具函数在Python全局可用?

    我们在开发Python项目的时候,经常会写一些工具函数。为了在项目里面多个.py文件中使用这个工具函数,就不得不在多个地方都导入它,非常麻烦。例如下面这个例子:在A.py和C.py​文件都要使用clean_msg​这个工具函数,那么他们就都要从util.py​中导入clean_msg。这似乎理所当然

  • SpringCloud--扩展JustAuth多租户微信扫码登录

    目前很多平台都提供了单点登录授权服务器功能,比如我们经常用到的QQ登录、微信登录、新浪微博登录、支付宝登录等。如果我们自己的系统需要调用第三方登录,那么我们就需要实现单点登录客户端,然后跟需要对接的平台调试登录SDK。JustAuth是第三方授权登录的工具类库,对接了国外内数十家第三方登录的SDK,

推荐阅读