-
netty技术基础入门
简介 官网简介 Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protocol servers & clients. Netty是一个异步事件驱动的网络应用程序框架,...
-
JavaScript 中,5 种增加代码可读性的最佳实践
为了保证的可读性,本文采用意译而非直译。简介如果咱们关注代码本身结构及可读笥,而不是只关心它是否能工作,那么咱们写代码是有一定的水准。专业开发人员将为未来的自己和“其他人”编写代码,而不仅仅只编写能应付当前工作的代码。在此基础上,可读性高的代码可以定义为自解释的、易于人理解的、易于更改或扩展的代码。以下列表一些好编写方式,仅供参考,当然,如果你有更好的方式,欢迎留言。以下的方式...
-
PHP2020年趋势
您在2020年特别感谢哪种工具,框架或功能,为什么呢?Ralf Geschke(软件开发人员和PHP老手):它与PHP没有直接关系,但是Web应用程序近年来发生了变化,因此我必须在这里提名Vue.js。在JavaScript库的第一个版本之后,我将Vue.js视为下一代JavaScript框架的代表,这些框架不仅使前端开发变得更加容易,而且还很乐于脱离后端。特别是在Vue.js...
-
ElasticSearch安装详解及采坑
ElasticSearch是一个分布式的,高性能,高可用的,可伸缩的搜索和分析系统(1)可以作为大型分布式集群(数百台服务器)技术,处理PB级的数据,服务大公司;也可以运行在单机上服务于小公司(2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES:lucene(全文检索),商用的数据分析软件,分布式数据库(...
-
分享一份大佬的MySQL数据库设计规范,值得收藏
概述MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。1、数据库设计以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。1、库名【强制】库的名称必须控制在32个字符以内,相...
-
高逼格开源聊天系统 推荐 Spring+Netty+Websocket实现
很多技术人对聊天系统比较感兴趣,当年马哥,靠一个聊天系统搞出一个帝国,所以聊天系统对技术人心中总有一种好感。今天推荐一个聊天开源聊天系统,大伙有空可以学习下,提高下;github开源地址:https://github.com/Kanarienvogels/Chatroom互联网实时聊天系统 (Spring + Netty + Websocket)0. 前言最近一段时间在学习Ne...
-
Nginx+keepalived 实现高可用,防盗链及动静分离配置详解
一、Nginx Rewrite 规则1. Nginx rewrite规则Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好,提高收录量及排名等。语法:rewrite <regex> <replacement> [flag]关键字 || 正则 || 替代内容 || flag标记Rewr...
-
12年来第二次!Linux QQ终于更新了
2019年10月24日,也就是“1024程序员节”的时候,腾讯突然发布了Linux系统版本的QQ,官方也宣称“全新回归”。这是因为在2008年的时候,腾讯曾经发布过一次Linux QQ,但如同浪花一般随即消失得无影无踪,如今随着Linux生态日益完善,QQ回归也是顺应大势。不过,在第一个2.0.0 Beta版本放出之后,一切又回归沉寂,此后腾讯官方再也没有更新过Linux QQ...
-
开发者注意!微信宣布收回小程序“用户实名信息授权”接口
4月1日 消息:昨天,微信团队发布了关于收回小程序"用户实名信息授权"接口的相关说明,建议小程序开发者尽快调整方案。微信称,近期根据用户投诉反馈建议,及监管合规指导,结合业务方的使用情况分析,需回收小程序“用户实名信息授权”接口(下文简称接口),以进一步提升用户使用的安全体验,并计划于 2020 年 05 月 31 日下线本接口。具体的回收下线计划如下:1、目前已不再支持小程序...
-
SQL Server 常用近百条SQL语句(收藏版)
1. sqlserver查看实例级别的信息,使用SERVERPROPERTY函数select SERVERPROPERTY ('propertyname')2. 查看实例级别的某个参数XX的配置select * from sys.configurations where name='XX'3. 更改实例级别的某个参数XX的值sp_configure 'XX','0' RECON...
-
聊一聊二维码扫描登录原理
扫二维码登录现在比较常见,比如微信、支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录都不好意思。作为技术人员,不知道您对这背后的实现逻辑是否敢兴趣,反正我是一直都对这背后实现好奇。最近刚好看到一个关于扫码登录原理的视频,于是就整理出来了这篇文章,希望对您有所帮助。本文共三个主题:什么是二维码。移动端基于 token 的认证机制。二维码扫码登录的原理。...
-
腾讯发布硬件版微信WeChatBox
2020年4月1日,腾讯公司发布了一个名为WeChat Box的硬件产品,这是腾讯公司成立以来发布的首个硬件产品。WeChat Box采用了一个非常微型的操作系统,操作系统上仅有一个应用程序,即机器版微信。该产品的发布,被认为是腾讯走向操作系统研发的开始。WeChat Box内置了多种自动化产品的驱动,该产品主要市场为机械设备领域,据悉,自动化产品驱动的供应商为美国PTC旗下的...
-
Win10出现大面积断网!微软让用户自己动手解决
据外媒报道称,越来越多Windows 10用户出现了断网的情况,为此微软提前送出了紧急补丁,不过需要大家手动下载补丁。微软在最新的说明中指出,只有安装了KB4535996补丁的Windows 10用户,才可能出现断网的情况,所以在这样的情况下,需要去下载补丁手动修复。总的来说就是,KB4535996补丁带来的Bug可能阻止某些类型的应用程序访问互联网内容,目前已知的有微软自家的...
-
定了!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,日志库日志库是最常用的,毕竟在开发项目的过程中都需要使用日...