前言最近有幸在前端团队里面做了一次关于webpack的技术分享。在分享的准备过程中,为了能让大家更好的理解webpack,特意对市面上以前和现在流行的构建工具做了一个梳理总结。在整理和分享的过程中,获益匪浅,对前端构建工具有了新的认识。在这里,将自己的一些思考总结写出来,希望也能给到对构建工具同样感
vim编辑器就像海洋一样,美好和快乐,如果你深入其中,你就会情不自禁地爱上它,并且再也不愿走出来。vim编辑器之所以经久不衰,就是因为它有着一股魔力,无论你使用它多少年了,你总能在某一天看到其他人对它更优雅的操作,它的上限很高,高到可以让你使用它快速地完成任何你想编辑的代码。接下来,我将分享一些可
译者|赵青窕审校|孙淑娟你是否经常回头看看6个月前写的代码,想知道这段代码底是怎么回事?或者从别人手上接手项目,并且不知道从哪里开始?这样的情况对开发者来说是比较常见的。Python中有许多方法可以帮助我们理解代码的内部工作方式,因此当您从头来看代码或者写代码时,应该会更容易地从停止的地方继续下去。
SpringCloudAlibaba是阿里巴巴提供的一站式微服务开发解决方案,目前已被SpringCloud官方收录。而Nacos作为SpringCloudAlibaba的核心组件之一,提供了两个非常重要的功能:服务注册中心(服务注册和发现)功能,和统一配置中心功能。Nacos简介Nacos致力于帮
@Autowired和@Resource都是Spring/SpringBoot项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它。@Autowired和@Resource的区别主要体现在以下5点:来源不同;
前些年做云盘产品的时候,一个很核心的功能就是Office文件预览,当时还没有使用.NETCore,程序部署在WindowsServer服务器上,文件预览的方案采用了微软的OWA。目前在做的零代码产品中的表单附件控件,同样面临着Office文件预览的问题,现在技术栈采用了.NETCore,并使用容器化
关于HashMap阿粉相信大家再面试的时候,是非常容易被问到的,为什么呢?因为至少是在JDK8出来之后,非常容易被问到关于HashMap的知识点,而如果对于没有研究过他的源代码的同学来说,这个可能只是说出一部分来,比如线程安全,链表+红黑树,以及他的扩容等等,今天阿粉就来把HashMap上面大部分会
前言花了点时间利用广度与深度优先搜索算法实现了一个文件选择插件,支持无限层次的文件夹嵌套,已开源并打包上传到了npm。本文将跟大家分享一下这个插件,欢迎各位感兴趣的开发者阅读本文。插件安装复制yarnaddfile-folder-selector#ornpminstallfile-folder-se
一、前言哈希表的历史哈希散列的想法在不同的地方独立出现。1953年1月,汉斯·彼得·卢恩(HansPeterLuhn)编写了一份IBM内部备忘录,其中使用了散列和链接。开放寻址后来由ADLinh在Luhn的论文上提出。大约在同一时间,IBMResearch的GeneAmdahl、ElaineM.Mc
大家好,我是树哥。之前我们聊过CMS回收器,但那时候我们说CMS回收器已经落伍了,现在应该是用G1回收器的时候了。那么G1回收器到底有什么魔力,它比CMS回收器相比强在哪里呢?今天,就让树哥带大家盘一盘!文章思维导图G1回收器的历史G1(Garbage-First)回收器早在JDK1.7的时候就确
最近读到一篇关于Go反射的文章,作者通过反射给结构体填充字段值的案例,充分利用Go的各种内在机理,逐步探讨让代码运行得更快的姿势。文章(原文地址:https://philpearl.github.io/post/aintnecessarilyslow/)非常有学习价值,故翻译整理了下来。不要使用反射
怎么把一个对象当做数组使用?我们知道在JS中对象和数组的操作方式是不一样的,但是我们可以通过封装,给对象加一层包装器,让它可以和数组拥有同样的使用方式。我们主要借助Object.keys()、Object.values()、Object.entries()、Proxy。Object.keys看一下M
作者:仕禄1.前文回顾在上一篇中,我们主要介绍了分布式系统中常见的复制模型,并描述了每一种模型的优缺点以及使用场景,同时阐述了分布式系统中特有的一些技术挑战。首先,常见的分布式系统复制模型有3种,分别是主从模型、多主模型以及无主模型。此外,复制从客户端的时效性来说分为同步复制&&异步
作者:仕禄分布式系统设计是一项十分复杂且具有挑战性的事情。其中,数据复制与一致性更是其中十分重要的一环。数据复制领域概念庞杂、理论性强,如果对应的算法没有理论验证大概率会出错。如果在设计过程中,不了解对应理论所解决的问题以及不同理论之间的联系,势必无法设计出一个合理的分布式系统。本系列文章分上下两篇
今天这篇文章介绍七种常见的SpringBoot性能优化方向。1.异步执行实现方式二种:使用异步注解@Aysnc、启动类:添加@EnableAsync 注解。JDK8本身有一个非常好用的Future类——CompletableFuture。复制@AllArgsConstructorpubl
是这样的,我在学习rocketmq的时候遇到了一个奇怪的问题,就是同一个消费者组内的消费者订阅同一个主题topic,不同的tag的时候看到一个消息丢失的问题这个问题我也是向《RocketMQ技术内幕》一书的作者丁威大哥,然后他给我解释了我对于这个问题的困惑,我来给大家解释一下先给大家描述一下这个具体
设计模式中的工厂模式是我们编写代码时常用的一种建造型模式,用于创建指定类的实例。在不使用设计模式的时候,我们是怎么创建类的实例的呢?别多想,这个问题没坑,就是我们写代码时直接用new关键字,直接创建实例。比如Java语言里是通过new关键字直接调用类的构造方法,完成实例的创建。复制classPers
大家好,又见面了。在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览、在线编辑、多人协同编辑等种种能力的诉求。对于人力不是特别充裕、或者项目投入预期规划不是特别大的公司或者项目而言,通常会选择基于一些开源方案来实现,但是开源组件选择之后,如何将其无缝对接融入到自己的业务系统
大家好,我是小马哥。线程池是一种基于 池化思想管理线程 的工具,使用线程池可以减少 创建销毁线程的开销,避免线程过多导致 系统资源耗尽。在 高并发以及大批量 的任务处理场景,线程池的使用是必不可少的。如果有在项目中实际使用线程池,相信你可能
哈喽,大家好,我是指北君。今天带大家认识下DDD,一个听起来很垃圾却真的很牛X的设计思想,架构师必备!前言在日常工作中,接手或维护的工程,大多数使用的是三层架构,即controller、service、dao三层,在使用的过程中,会遇到很多问题:面向数据建模,面向过程编程,没有真正“面向对象”只
vue要求任何传递给组件的数据,都要声明为 props。此外,它还提供了一个强大的内置机制来验证这些数据。这就像组件和消费者之间的契约一样,确保组件按预期使用。这节课我们来看下这个验证机制,它可以帮助我们在开发和调试过程中减少but,增加我们的自信心(摸鱼时间)。基础原始类型验证基本类型比
一、背景集群联邦(Federation)的目的是实现单一集群统一管理多个Kubernetes集群的机制,这些集群可能是跨地区(Region),也可能是在不同公有云供应商上,或者是公司内部自行建立的集群。一但集群进行联邦后,就可以利用FederationAPI资源来统一管理多个集群的Kubernete
无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成可编辑的格式。网上绝大多数的工具也都是收费的,今天小编就给大家制作了一款批量将PDF文件转换为Word的神器,使用起来也是相当的方便。实现效果我们首先来看一下出来的效
作者|TomaszNurkiewicz译者|李腾辉策划|信远微服务不能“包治百病”。时下微服务是一个不错的架构,它具备模块化、可伸缩和高容错这些优点。许多公司都采用微服务架构并取得了巨大的成功,自然而然地,如果你正开始一个新项目,微服务似乎是最佳选择。然而,大多数采用微服务取得成功的公司并不是一开始