升维打击,设计之道

《三体》让我们了解了什么是“降维打击”,在软件设计领域很多时候需要反其道而行。对于某个问题,如果不能有效的解决,可以考虑是否可以上升一个维度,从高维视角审视问题往往可以找到捷径。软件设计是抽象的艺术,“升维打击”实际上就是“维度”层面的抽象罢了。 目录 一、源起:一个接口,多个实现 二、根据当前上下…

vscode源码分析【二】程序的启动逻辑

上一篇文章:https://www.cnblogs.com/liulun/ (小广告:我做的开源免费的,个人知识管理及自媒体营销工具“想学吗”:https://github.com/xland/xiangxuema) 我们在package.json里能找到他的入口文件; "main": "./out…

普通索引和唯一索引,应该怎么选择?

如果业务能保证唯一性的情况下,还是选择普通索引性能更好 select id from T where k=5 首先,我们看下 查询过程 对于普通索引来说,查询到满足条件的第一个记录后,需要查找下一个记录,直到碰到第一个不满足k=5条件的记录 对于唯一索引来说,由于索引上有唯一性,查询到第一个满足条件…

博客园细节美化,打磨

原作者 感谢 @Summertime-Wu 巨佬写出这样漂亮简洁的主题,本蒟蒻是在原主题的基础上改的。 原主题地址:https://www.cnblogs.com/summertime-wu/p/9356736.html。 本人新手,如有可改进之处,欢迎指出 优化 添加 fork me on git…

nginx中共享内存的使用

在nginx的进程模型下,类似流量统计、流量控制、数据共享、等需要多个工作进程共同配合完成任务,共享内存是一个重要的进程通讯的方案。本文介绍在nginx的代码中与共享内存相关的功能,包括ngx_shmem与ngx_slab的使用与注意事项,但不包括ngx_slab中实现的内存管理算法。 ngx_sh…

Activiti6.0教程 28张表解析 (三)

使用Activit的朋友都知道Activiti对应的有28张表,今天我们就来说下Activit中28张表对应的含义是什么? 如何创建表? 在Activiti中创建表有三种方式,我们依次来看下: 一、通过硬编码的形式直接指定 // 创建一个流程成引擎对像 ProcessEngineConfigurat…

asp.net core 系列之Performance的 Response compression(响应压缩)

本文,帮助了解响应压缩的一些知识及用法(大部分翻译于官网,英文水平有限,不准确之处,欢迎指正)。 什么是响应压缩?响应压缩简单的说就是为了减少网络带宽,而把返回的响应压缩,使之体积缩小,从而加快响应的一种技术(个人理解) 网络带宽是有限的资源。减少响应(response)的大小通常可以增加应用的响应…

SpringBoot解决跨域请求拦截

  前言  同源策略:判断是否是同源的,主要看这三点,协议,ip,端口。 同源策略就是浏览器出于网站安全性的考虑,限制不同源之间的资源相互访问的一种政策。 比如在域名https://www.baidu.com下,脚本不能够访问https://www.sina.com源下的资源,否则将会被浏览器拦截。…