全球通史阅读笔记 历史 第一章 人类-食物采集者在史前时代的几百万年中,有两大转变为此后的全部历史奠定了坚实的基础:其一是灵长类逐渐转变为人类,即具有思维能力的真正的人类;其二是人类的先祖从坐享大自然恩赐的食物采集者转变为日益摆脱大自然束缚、掌握自己命运的食物生产者。 对过去的研究和描述,是现代人所取得的一项杰出成就...
Go语言笔记之单元测试 Go语言笔记 Go语言作为一个较为现代的语言, 其工具链中已经内置了单元测试相关的组件, 仅需要在当前模块下创建以_test.go结尾的文件来表明一个文件是测试文件, 并使用特定的前缀表明一个函数是测试函数. 基本测试基本测试的函数名前缀为Test, 例如 123456789// 测试函数的参数为*test...
Kafka学习笔记 Kafka是一个分布式, 高吞吐量, 高可扩展性的消息系统. Kafka基于发布/订阅模式, 通过消息解耦, 使生产者和消费者异步交互, 无需彼此等待. Kafka具有高可用, 数据压缩, 同时支持离线和实时数据处理等优点, 适用于日志压缩收集, 监控数据聚合, 流式数据集成等场景....
缓存设计原理与实现 内容施工中, 请稍后查看… 一个好的缓存应该保证的目标 可复用, 对于不同的接口不需要重复开发 妥善解决 缓存雪崩, 缓存击穿, 缓存穿透 问题 可配置缓存策略(例如存储方式, 是否存储空值) 提供监控能力
Clojure学习笔记 Clojure是一种在JVM上运行的LISP风格的语言. 由于其函数式编程的风格和强大的宏系统, Clojure在并发编程的理念上非常先进, 不仅支持常规的函数式并发模式, 也支持Go语言的并发风格以及其他的并发模式. 其中设计的许多概念在Vue框架中也有类似的表达. 虽然从实践角度来说, 由...
ClickHouse学习笔记 ClickHouse是由俄罗斯的Yandex开发, 并于2016年开源发布的一种分布式列式数据库管理系统(DBMS). 其专为处理大规模数据分析和数据仓库工作负载而设计, 别适用于处理大规模数据集和复杂查询, 被广泛应用于数据分析, 日志分析, 实时报表和数据仓库等场景. ClickHous...
统计学习笔记之时间序列 统计学 时间序列分析是一种统计技术, 专注于对随时间变化的数据序列进行深入研究, 旨在解决一系列问题, 包括预测未来趋势, 解释观察变化的驱动因素, 识别周期和持续时间以及监控异常情况. 传统的时间序列分析技术具有良好的数学解释性和严格的数学证明, 但在深度学习技术出现显著发展以后, 基于神经网络的...
MySQL笔记之高级优化 MySQL笔记 本文主要讨论如何实现高并发, 高性能, 高可用的MySQL集群. 实现此目标的核心是复制, 扩展和切换. 复制通过binlog传送实现数据冗余, 获得并发量与可用性提升, 但会占用更多硬件资源. 扩展通过数据分片, 分库分表方式实现实现数据库容量提升, 获得并发量与可用性提升, 但可能会降低可...
Nginx学习笔记 Nginx是一款高性能的Web服务器和反向代理服务器, 由俄罗斯的程序设计师Igor Sysoev开发. 它以其轻量级, 高并发处理能力和低内存消耗的特点, 广泛应用于互联网领域, 特别是用于构建高性能的网站和应用程序. 本文主要讨论Nginx在个人项目中的一些使用, 例如构建Web服务, 进...
Redis源码分析笔记之指令执行 Redis笔记 Redis对象Redis中最核心的数据结构是Redis对象, Redis中几乎所有东西最终都以Redis对象的形式表示, 其定义如下 123456789struct redisObject { unsigned type:4; unsigned encoding:4; ...
统计学习笔记之基本原理 统计学 概率论本质上是定义了一组接口, 满足其接口定义的任何东西都可以视为概率, 统计学则是构建在这组接口上的实际应用. 在大学的课程中, 比较侧重于学习概率论的理论知识, 而弱化统计相关的概念与方法. 本文根据<<统计学>>介绍与统计相关的基本概念与方法. 第一章 统计学基本...
如何进行代码CR 代码CR的目的与关注点代码CR的目的是使得代码库的整体质量能随着代码开发不断提升, 而不是不断地下降. 应该关注如下方面: 设计评审中最重要的内容是 CL 的整体设计。CL 中各段代码的交互是否合理?此更改属于您的代码库还是库?它是否能与系统的其余部分很好地集成?现在是添加此功能的好时机吗? ...
物理学笔记之数学知识 物理学 矢量运算给定几个矢量, 则有如下的一些矢量的积运算 数量积$$\vec{a} \cdot \vec{c} = \left | \vec{a} \right | \left | \vec{c} \right | \cos \theta$$ 矢量积$$\left | \vec{a}...
物理学笔记之经典力学 物理学 质点运动的两类基本情况如果质点受到的力仅与时间相关, 即$\vec{F}(t)$, 则有 $$\begin{align}\vec{F} &= m \frac{\mathrm{d}\vec{v}}{\mathrm{d}t} \\vec{F}\mathrm{d}t &...
Go语言笔记之性能分析 Go语言笔记 垃圾回收算法Go的垃圾回收算法是三色算法,即根据对象之间的引用关系,将对象分割为白色对象,灰色对象和黑色对象。 垃圾回收过程使用单独的线程进行处理,并使用写屏障维护指针的关系。 三色标记法将程序中的对象分成白色 黑色 和灰色三类: 白色:潜在的垃圾,可能会被回收 黑色:活跃的对象,不会被回收...
Redis源码分析笔记之数据结构 Redis笔记 Redis是一个C语言实现的高性能内存数据库, 在日常的业务开发过程中, Redis占据重要的地位. 因此阅读和学习Redis源代码有助于理解Redis的具体实现原理, 从而更好的将其运用到业务开发过程之中. 同时Redis源码本身由C语言实现, 因此并不包含复杂的语言特性, 相对较为容易阅读...
数学之美阅读笔记 由于这本书的写作年代已经稍微有些久远了(写于2012年), 因此最初并未对这本书抱有太多期待. 但实际阅读下来发现, 这本书实际上涉及了大量关于自然语言处理的内容, 较为详细地介绍了除神经网络以外的大量自然语言处理技术. 虽然现在的自然语言处理在ChatGPT出现后, 可以说是”开始的终结”...
Web开发笔记之TypeScript基础 Web开发笔记 TypeScript是JavaScript的超集, 可以视为一个具有类型的JS语言. 因此TS既可以在浏览器中运行(传统的前端开发), 也可以在Node.js环境中运行(写Vscode插件). 由于JS的语法特性TS均支持, 因此学习TS语言, 主要就是学习类型系统. 基本类型12345678...
VSCODE插件开发笔记 VsCode由于其跨平台的特性, 已经成为JetBrains全家桶以外, 我使用最多的IDE. 由于VsCode相对轻量的特性, 在写博客, 写Python脚本的场景中, 实际上比JetBrains全家桶更好用. 近期在一些开发过程中, 一直苦于没有合适的IDE支持自定义的语言, 因此我决定...