-
定了!Win10将迎全新搜索引擎
此前微软在Ignite 2018和Build 2019大会上宣布了Microsoft Search这款产品,并表示将会用其整合Windows 10、Office、Bing的搜索体验,并计划在2019年初将其带入Windows 10中。01 Windows 10将迎全新引擎Microsoft Search是一款基于Bing的搜索引擎,微软为其提供了AI技术加持,有很多全新特性,比...
-
CSS:度量单位(px,em,rem,vw,%等)
Photo by Charles Deluvio on Unsplash介绍我决定写这个博客的目的是希望探索更多有关使用CSS调整大小的方法。 有这么多种可能性,很容易感到不知所措和困惑。 浏览器当前支持16种度量单位:像素,英寸,皮卡,厘米,毫米,点,百分比,em,rem,视口尺寸(vw,vh),ex,ch,Vmax(最大视口)和vmin (viewportmin)在这16个...
-
Spring Boot 如何整合多个数据源?
SpringBoot现在是很多很多公司应用的后端框架,因为它搭建快,能更好、更快速的整合其他第三方。那么随着业务的不断扩展,业务量的增加,这时候就会牵扯到分库分表,虽然这个词听起来很熟悉,作为程序员也很容易理解,但是我想应该也有不少读者没接触过分库分表,今天我们不聊如何分库分表,而是聊SpringBoot如何整合多个数据源的事情。也就是如何接入不同的(多个)数据库。我们直接开始...
-
手把手教会你小程序登录鉴权
手把手教会你小程序登录鉴权导语为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口。乍一看文档,感觉文档上讲的非常有道理,但是实现起来又真的是摸不着头脑,不知道如何管理和维护登录态。本文就来手把手的教会大家在业务里如何接入和维护微信登录态。接入流程这里官方文档上的流程图已经足够清晰,我们直接就该图展开详述和补充。首先大家看到这张图,肯定会注意到小程序...
-
Web开发实用的图片预览插件,简单零依赖——PhotoSwipe
介绍PhotoSwipe是一个JavaScript库,没有依赖项。要说唯一的依赖项那就是Vanilla.js(原生js),因此你可以在你的任何Web项目中使用,包括主流的Vue、React、Angular以及传统jQuery的项目。PhotoSwipe可以被用到各种大中小型项目当中,并且PC和移动端完美支持!Githubhttps://github.com/dimsemenov...
-
纯CSS实现“文本溢出截断省略”的几种方法
在我们的日常开发工作中,文本溢出截断省略是很常见的一种需考虑的业务场景细节。看上去 “稀松平常” ,但在实现上却有不同的区分,是单行截断还是多行截断?多行的截断判断是基于行数还是基于高度?这些问题之下,都有哪些实现方案?他们之间的差异性和场景适应性又是如何?一般来说,在做这样文字截断效果时我们更多是希望:兼容性好,对各大主流浏览器有好的支持响应式截断,根据不同宽度做出调整文本超...
-
几分钟学会:SpringBoot2.0整合C3P0、Druid数据库连接池
SpringBoot整合数据库连接池其实是很简单的,不管是c3p0还是Druid,步骤都一样,都是在pom.xml中加入依赖,在application.yml加入连接信息,再加上一个配置类即可。一、整合C3P01、pom.xml加入如下依赖<dependency> <groupId>com.mchange</groupId> &l...
-
MySQL 亿级数据量实时同步,如何完美 Hold 住
背景MySQL 由于自身简单、高效、可靠的特点,成为小米内部使用最广泛的数据库,但是当数据量达到千万 / 亿级别的时候,MySQL 的相关操作会变的非常迟缓;如果这时还有实时 BI 展示的需求,对于 MySQL 来说是一种灾难。为了解决 SQL 查询慢,查不了的业务痛点,我们探索出一套完整的实时同步,即席查询的解决方案,本文主要从实时同步的角度介绍相关工作。早期业务借助 Sqo...
-
Web前端资源预加载
本文主要介绍前端性能优化中的资源预加载,不仅会介绍常规的一些预加载手段;还会介绍工程实践中的应用。涉及内容:link相关(rel、as、media、defer、async);缓存(4种缓存、缓存策略、ServiceWork);优化网络(HTTP/2 ServerPush、Preload/Prefetch、域名拆分);同步接口JSON数据内联,加速首页渲染;浏览器中各资源加载的优...
-
高并发环境下,先操作数据库还是先操作缓存?
前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库,如下流程图所示:1)线程A发起一个写操作,第一步del cache2)线程A第二步写入新数据到DB3)线程B发起一个读操作,cache mi...
-
HTML 编辑器 CKEditor 5 v18.0.0 发布,改进对表格和列表的支持
CKEditor 5 v18.0.0 发布了,并引入了两个主要功能: 选择多个单元格、行或列,以及支持从 Word 粘贴缩进列表。除此之外,所有版本中都添加了文本转换功能,并在内联和气球编辑器中启用了响应式工具栏。 自定义表格选择 此版本引入了选择多个单元格、行和列的可能性。它将某些格式或样式应用于任意表片段变得更加容易。 从 Word 粘贴嵌套列表 保留 Word 等文档的结...
-
基于canvas的JavaScript 二维码生成工具——QRCanvas
介绍在我们日常的开发中,特别是在现代的社会环境下,二维码的应用可谓是丰富多彩,各种各样让人眼花缭乱的二维码,可见二维码已经渗透进我们生活的方方面面,也可以说目二维码确确实实方便了我们的生活。因为作为开发人员,很多项目都会用到二维码,最多的莫过于生成二维码,而如今Web应用盛行,那么就有这样一个二维码生成的Javascript库诞生了,它仅仅依赖与canvas,因此它支持大多数浏...
-
解决跨域的八种方式
受制于同源策略,一个域去请求另一个域的资源时,就会出现跨域的现象,而在我们开发中,经常需要跨域去请求资源(例如:本地localhost,去请求测试环境的资源),所以我们也就需要一些方法去解决这个跨域的问题复制代码一、使用jsonp 解决跨域缺点:不安全,容易造成xss攻击;只能是GET请求原理:1.<script>标签的src属性不受同源策略的限制2.跨域请求的接口...
-
用JS开发跨平台桌面应用,从原理到实践
导读使用Electron开发客户端程序已经有一段时间了,整体感觉还是非常不错的,其中也遇到了一些坑点,本文是从【运行原理】到【实际应用】对Electron进行一次系统性的总结。【多图,长文预警~】本文所有实例代码均在我的github electron-react上,结合代码阅读文章效果更佳。另外electron-react还可作为使用Electron + React + Mob...
-
深入浅出一张图解析package.json文件
在 Node.js 中,模块是一个库或框架,也是一个 Node.js 项目。Node.js 项目遵循模块化的架构,当我们创建了一个 Node.js 项目,意味着创建了一个模块,这个模块必须有一个描述文件,即 package.json。它是我们最常见的配置文件,但是它里面的配置你真的有详细了解过吗?配置一个合理的 package.json 文件直接决定着我们项目的质量,本章就带大...
-
Nginx的学习,指令配置详解
前言之前的文章讲解了Nginx的安装,介绍等,可以看下我之前的文章,接下来讲解nginx的配置和指令的使用。全局属性配置#user nobody,user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。 error_log是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、erro...
-
Java程序员必须了解的20个lib库
一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提高我们的开发效率,下面就来看一下在开发过程中经常会用到的一些开发第三方库,也可能不是太全,就列举一些常见或者常用的吧。1,日志库日志库是最常用的,毕竟在开发项目的过程中都需要使用日...
-
【开源资讯】禅道 12.2.stable 版本发布,增加父子需求功能
前言禅道项目管理软件集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。禅道官网:www.zentao.net大家好,禅道项目管理软件开源版12.2.stable发布,该版本主要增加父子需求功能,兼容喧喧3.2.1版本。父子需求功能可以让用户更方便的管理需求。父需求这一层级的需求不可关联进计划和项目中...
-
Nginx双机主备(Keepalived实现)
前言首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,起初是专为LVS负载均衡软件设计的,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用。Keepalived以VRRP协议为实现基础,VRRP是Virtual Router Redundancy Protocol(虚拟路由冗余协议)的缩写,...
-
别再推荐 Git Flow 了
写在前面十年前,一篇名为《一个成功的 Git 分支模型》的文章将 Git Flow 推上了风口浪尖。在过去的十年里,无数个开发团队被这篇文章蒙在鼓里。说得严重一点,他们都被骗了。文章的作者宣称他们已经成功地将 Git Flow 引入到项目中,但对于如何在项目中取得成功的细节却只字未提。如果我们盲目地相信这篇文章所说的内容,那无疑是一个巨大的错误。我们必须承认,并不是所有的策略都...
-
Mysql数据库表引擎与字符集
Mysql数据库表引擎与字符集1.服务器处理客户端请求其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?客户端可以向服务器发送增删改查各类请求,我们这里以比较复杂的查询请求...
-
Spring Boot Actuator:健康检查、审计、统计和监控
Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。 Actuator同时还可以与外部应用监控系统整合,比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这...
-
推荐:前端用户福音,基于Vue的WTM 3.5发布了!
引言WTM的Vue前后端分离版本终于和大家见面了,这是一套用于快速搭建后台管理系统UI界面的平台。界面如下WTM原作者刘亮曾自述:WTM界面其实是LayAdmin界面的Vue实现。 而Layui原著作闲心也曾提过,Bootstrap作为一个通用的UI界面风靡全世界,但是Bootstrap只是提供了“零件”,LayUI借鉴了Bootstrap思想,自己制作了零件并且组装成了机器-...
-
数据库分库分表最佳实践及说明
数据库瓶颈不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象了(并发量、吞吐量、崩溃)。IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询会产生大量的IO,降低查询速度->分库和垂直分表第二种:网络IO瓶颈,...
-
代码详解:Async/Await优于基础Promises的7大原因
Async/await已被引入NodeJS 7.6,当前能在几乎所有先进的浏览器上运行。这绝对是自2017年以来JavaScript最好的附加语法,没有之一。Async/Await 101• Async/await是一种编写异步代码的新方法。以前编写异步代码会用callbacks和promises。• Async/await 实际上只是一种基于promises的糖衣语法,不能与...
-
Diboot 2.0.5 发布,自动化开发助理
一、前言Diboot 2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM与File组件相关代码进行自动化处理。除此之外,我们还为您准备了两套前端基础项目,分别是基于 Antd Pro Vue 和 基于 Vue Element Admin 的项目,有助于...
-
WebUploader之单个大文件分片上传(前端实现)
1、组件简介webuploader(官方定义):是一个以 HTML5 为主, Flash为辅的文件上传组件,采用大文件分片/并发上传的方式,极大地提高了文件上传的效率,同时兼容多种浏览器版本;链接: WebUploader官网.2、前端代码实现首先,下载组件,并引入到项目文件;t/wealth_nana/article/details/105051649本例子模拟后台所需参数:...
-
jqurey获取表单所有数据
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <script src="jquery-3.2.1.min.js"></script> <!--<link h...
-
JSON、XML、TOML、CSON、YAML 大比拼
我们坚持使用 web 系统可以理解或不需要太多努力就能理解的特殊格式,而且对人类可读性特别有用的格式。每个都有各自的优缺点和适当的用例场景。-- Tim Anderson一段超级严肃的关于样本序列化的集合、子集和超集的文字我是一名开发者,我读代码,我写代码,我写会写代码的代码,我写会写出供其它代码读的代码的代码。这些都非常火星语,但是有其美妙之处。然而,最后一点,写会写出供其它...
-
程序员,请停止学习框架!
每过几年都有类似的文章出现,然而程序员却依然疲于学习新的框架,看完此文希望对你有所启示。这是一篇译文,原文在 Hacker News 上获得接近 500 个点赞。那么,译文开始。我们程序员,每天都在了解最新的技术,每天都在学习编程语言、框架和库。因为我们知道的现代编程工具越多越好,对吧?不停地追随 Angular、React、Vue、Riot、Ember、Knockout 的脚...