思想

LSM 树 设计思想总结

LSM 树的设计思想很有意思。 LSM 树将对磁盘的随机写入转化为了磁盘友好型的顺序写(无论机械磁盘还是 SSD,随机读写都要远远慢于顺序读写),从而大大提高了写性能。 1、怎么转化顺序写? 核心就是在内存中维护一个有序的内存表(memtable),当内存表大于阈值的时候批量刷入磁盘,生成最新的 S ......
设计思想 思想 LSM

读写分离的思想

要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺。 CQRS(Command Query Responsibility Segration)架构,命令查询职责分享架构。一个系统,从架构上把它拆分为两部分:命令处理(写请求)+查询处理(读请求)。 C端负责数据存储,Q端负责数据查 ......
思想

分块思想基础莫队

分块 将数组分成sqrt(n)块,每次进行区间操作或者查询的时候,对于完整的块可以通过预处理的信息o1得到, 不完整的块直接暴力跑,所以最坏复杂度是sqrt(n)。 分块模板 const int N = 100010, B = sqrt(N); int block; int st[B], ed[B] ......
思想 基础

day 57 代码思想录 647. 回文子串 |

给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:"abc" 输出:3 解释:三个回文子串: "a", "b", "c" 示例 2: 输入:"aaa" 输出:6 解释:6个回文子串: "a ......
回文 思想 代码 day 647

关于代码优化-池化思想

我们都用过数据库连接池,线程池等,这就是池思想的体现,它们解决的问题就是避免重复创建对象或创建连接,可以重复利用,避免不必要的损耗,毕竟创建销毁也会占用时间。 池化思想包含但并不局限于以上两种,总的来说池化思想的本质是**预分配与循环使用,**明白这个原理后,我们即使是在做一些业务场景的需求时,也可 ......
思想 代码

GitLab-DevOps思想

1、什么是DevOps: DevOps是 Development(开发) 和 Operations(运维)的缩写,是一组过程、方法与系统的统称;强调“应用程序/软件工程”的开发、技术运营和质量保障(QA)人员之间沟通、协作一体化。实现持续集成、持续交付,包括持续部署。 2、DevOps的意义: ......
GitLab-DevOps 思想 GitLab DevOps

聊聊微服务治理体系思想

你的微服务项目真的支持集群部署吗?真的做到业务解耦了吗?我相信现在大一点的项目,基本都会选择微服务,但是,真的能体现微服务核心价值的项目不多。在我上篇文章《聊聊微服务架构思想》中,基于个人认知,讲述了软件架构的发展历程和微服务核心思想,主要阐述了微服务架构要解决的痛点和使用微服务带来的好处。凡事都有 ......
体系 思想

分治思想

算法介绍 分治,字面上的解释是"分而治之",就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 适用情况 该问题的规模缩小到一定的程度就可以容易地解决 该问题可以分解为若干个规模较小的相同问题。 利用 ......
思想

从一维到十维,延伸至思想的一维到高维

https://www.bilibili.com/video/BV17s4y1S7E7/?spm_id_from=333.1007.tianma.2-1-4.click&vd_source=e4991eff671e2c8b3ce1f748b6cca451 https://www.bilibili.c ......
高维 思想

扎实打牢数据结构算法根基,从此不怕算法面试系列之010 week02 01-01 最简单的排序算法-选择排序法的设计思想

#1、基础排序算法 接下类,我们学习另外一类非常基础的算法,即排序算法。 排序算法是计算机科学领域研究的非常深入的一类算法,排序这个动作本身也是非常重要的, 很多时候面对无需的数据,首先需要做的就是对他们进行排序。 排序算法——目的:让数据有序。 排序算法——种类:种类也非常多,适用于不同的情景。 ......

没有杯子的世界:OOP设计思想的应用实践

最近看到一个有趣的问题:Person类具有Hand,Hand可以操作杯子Cup,但是在石器时代是没有杯子的,这个问题用编程怎么解决? 简单代码实现 我们先用简单代码实现原问题: @Data public class Person { private final String name; privat ......
设计思想 杯子 思想 世界 OOP

伟大思想论文:Cantor–Bernstein-Schröder 定理及其证明简介

Cantor–Bernstein-Schröder 定理及其证明简介 1 定理简介 Cantor–Bernstein-Schröder 定理,也称作 Schröder–Bernstein 定理、Cantor–Bernstein 定理,是集合论中的重要定理。它的内容十分简单:如果集合 $A$ 到集合 ......

react的思想和数据流

最近忙着写前端界面,粗略讨论以下 react 的函数式编程思想和组件通信的应对思路。 纯函数和副作用 函数式编程中函数是一等公民。一个函数的返回值只取决于输入参数时,那么这个函数的行为是确定的,我们称之为纯函数。那么反过来,如果函数的输入参数相同,而返回值不确定,那么该函数就是有副作用的,是不纯的。 ......
数据流 思想 数据 react

Stream流的思想和获取stream流

stream流打印单列集合: //单列集合获取ArrayList<String> list=new ArrayList<>();Collections.addAll(list,"a","a","a");//stream流Stream<String> stream = list.stream();// ......
思想 Stream stream

读书分享:《程序员修炼之道:通向务实的最高境界》的思想经验

相较于全书众多的干货笔记,这篇文章是个别思想经验的总结,希望和大家交流。 武侠影视剧中,江湖各路豪杰可以多年苦苦追寻一本武林秘籍,希望能够得到高人指点,从而功力突飞猛进。对于程序员来说,《程序员修炼之道》就是顶尖高手的智慧结晶,它的第一版风靡了二十年,更难能可贵的是,二十年后原作者又与时俱进重写了第 ......
程序员 境界 思想 经验 程序

矩阵链(DP思想)

引入 按顺序排列的的三个矩阵 M1,M2,M3 计算三个矩阵相乘结果,有两种乘法 (M1 M2) M3 M1(M2 M3) 但两种乘法计算次数不同 三个矩阵维度如下 4 * 5 5 * 6 6 * 7 第一种计算次数 4 * 5 * 6 + 4 * 6 * 7 第二种计算次数 5 * 6 * 7 + ......
矩阵 思想

算法与思想——二分查找与二分答案

算法与思想——二分查找与二分答案 @ 一、二分算法 log2n速度 1.二分前提:有序的数列,,整体成升序或降序,可以中间有相等的数值。 2.二分写法:定义寻找的头和尾,以及中间的量,不断迭代找出最终答案; 代码如下 int Binary_Search(int a[], int n, int key ......
算法 答案 思想

Taro架构构析(2):Taro 设计思想及架构

微信小程序从文件组织上看,一个小程序页面或组件,需要同时包含 4 个文件:脚本逻辑、样式、模板以及配置文件(page.js、page.wxss、page.wxml 、page.json) ......
架构 设计思想 Taro 思想

算法思想

$\mathcal{Part}$ 1. 前提提要 注意:本文为提高组难度的算法思想,主要为前缀和,差分等优化 因为是思想,讲的会比较玄乎,能理解就好 $\mathcal{Part}$ 2. 双指针 双指针通常解决区间问题 步骤是,确定一个右节点或左节点作为一个参考点,通常取右节点,记为 $j$ 我们 ......
算法 思想

Java编程思想

......
思想 Java

Java中子类重写父类方法的思想本质!

Java语言中,在子类中定义与父类同返同名同参的方法将会出现“重写(覆写)”,子类将屏蔽父类的相同方法,调用子类的方法将不会调用到父类的该方法。 许多初学者也许会被“覆写”一词迷惑,以为覆盖掉了父类的方法,其实这两种方法是同时独立存在的,只是子父类调用该方法的入口不一样,彼此互不干扰。 /* 需求: ......
子类 本质 思想 方法 Java

算法思想

$\mathcal{Part}$ 1. 前提提要 注意:本文为提高组难度的算法思想,主要为前缀和,差分等优化 因为是思想,讲的会比较玄乎,能理解就好 $\mathcal{Part}$ 2. 双指针 双指针通常解决区间问题 步骤是,确定一个右节点或左节点作为一个参考点,通常取右节点,记为 $j$ 我们 ......
算法 思想

JS封装思想

js: ......
思想

React 编程思想 #2

React 编程思想 #2 接上文,已经实现了一个静态的页面,现在就要给页面加上交互了。 寻找 State 状态是应用需要记录的最小变化,构建状态的最重要的原则是 DRY(Don’t Repeat Yourself,不要重复自己)。对于一个应用,构建出它的状态的绝对最小表示,并通过这些状态计算其他需 ......
思想 React

乘法 (20200 CCPC Wannafly Winter Camp Day1) (二分,在线->离线预处理思想优化时间复杂度,桶+前缀和)

思路: 发现直接去存所有的数,一定会超时超空间 那么如何去get到某个数呢? 二分 (遇到第K大, 一般也是利用二分处理) 二分某个数看他是 第几大, 枚举ai ,然后判断相应的bi有多少个, 这里在线直接判断bi是logn的 因此要先预处理,利用捅记录数的次数然后利用前缀和处理, 这样就是 O1的 ......
复杂度 前缀 乘法 Wannafly 思想

React 编程思想 #1

React 编程思想 #1 看太多语法,都不如简单尝试一下,跟着官方文档做了一下 DEMO,文档写的真不错,就是没翻译完,一大半都还是英文(×_×),本篇其实大部分也是在重复文档内容,不过加上了自己的尝试。 从原型开始 React 可以改变你对所看到的设计以及所构建的应用程序的看法。以前你看到的是一 ......
思想 React

聊聊微服务架构思想

用了好多年微服务架构了,我经常会反思,这个项目为啥用微服务?真的能帮我们解决一些痛点吗?这个项目有必要用微服务吗?这个项目体现出微服务的价值了吗? 我是从2017年开始入手微服务,距今已经五六年了。在此期间,遇到的大小项目,基本都是用微服务架构开发的,其中有数字化工厂项目、教辅系列平台、政府行政审批 ......
架构 思想

探究平台化设计的核心思想和Lattice的设计原则

一. 平台对业务敏捷支撑的挑战 早期阿里的交易中台遇到了一些挑战,这个在毗卢的博客中有提到,主要遇到了这些问题:新小业务都有一个成长规律,在早期业务模式验证阶段,需要的玩法比较简单,希望能频繁的发布快速试错。我们以电商领域为例,在成熟的电商体系下,有众多复杂、庞大的平台,如交易平台、商品平台、营销平 ......
原则 核心 Lattice 思想 平台

Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿。 3 2 1 Go! 我们将通过编写一个 Countdown 函数来处理这个问题,然后放入 main 程序,所以它看起来这样: package main func ......
Mocking 语言 思想 TDD Go

积性函数+筛法的思想计算

积性函数 f(ab)=f(a)*f(b) 链接:https://ac.nowcoder.com/acm/contest/53485/I #include<iostream> #include<algorithm> using namespace std; typedef long long ll; ......
函数 思想