精要主义读后感(一)
精要主义:在纷繁世界中找回人生的掌控力引言在这个信息爆炸、选择过剩的时代,我们似乎从未如此“忙碌”,却又从未如此“空虚”。社交媒体上的焦虑、工作与生活的失衡、目标与行动的脱节,都在提醒我们:“多即是少”的陷阱正在吞噬我们的专注力与幸福感。《精要主义》(Greg McKeown 著)一书如同一剂清醒药,直指现代人的核心困境——如何从“疲于奔命”转向“精准发力”。它的答案简单却深刻:“更少,但更好”(Less but Better)。
一、精要主义的本质:选择与放弃的智慧精要主义不是简单的“断舍离”,而是一种系统性思维,主张通过 “探索、排除、执行” 三步骤,筛选出真正重要的事务,并为其投入全部精力。其核心逻辑在于:
“选择”的力量: 人生中90%的忙碌源于被动接受外界安排,而精要主义者主动掌握选择权,拒绝被“他人的优先级”绑架。
“甄别”的智慧: 大多数事务只是“无意义的多数”,真正能创造价值的仅占20%。正如林语堂所言:“生之智慧,在于摒弃不必要之事”。
“取舍”的勇气: 成功常成为失败的催化剂。例如,事业上升后机会增多,若全盘接受反而导致精力分散,最终瓦解最初的专注点。
二、实践精要 ...
数据结构的存储方式
数据结构的存储方式数据结构的存储方式只有两种,数组(顺序存储)、链表(链式存储)
队列、栈:既可以用数组实现也可以用链表实现
图:邻接表就是链表,邻接矩阵就是二维数组。邻接矩阵判断连通性迅速,并可以进行矩阵运算解决一些问题,但是如果图比较稀疏的话很耗费空间。邻接表比较节省空间,但是很多操作的效率上肯定比不过邻接矩阵。
邻接表和邻接矩阵是图(graph)这种数据结构的两种常见表示方法。它们各自有优缺点,适用于不同的场景。下面分别介绍这两种表示方法。
邻接矩阵定义:邻接矩阵是一个二维数组(或矩阵),用来表示图中顶点之间的连接关系。对于一个包含n个顶点的图,它的邻接矩阵是一个n×n的矩阵A,其中A[i][j]的值代表从顶点i到顶点j是否存在边。对于无权图,如果顶点i和顶点j之间有边,则A[i][j] = 1;否则A[i][j] = 0。对于有权图,A[i][j]则存储的是边(i, j)的权重,而如果不存在这样的边,通常会用一个特殊的值(如无穷大或0)来表示。优点:
简单直观,容易理解和实现。
检查两个顶点之间是否存在边的时间复杂度为O(1)。
对于稠密图(即边数接近最大可能值的图),使用 ...
MySQL Online DDL 原理
❝
MySQL原生Online DDL是MySQL数据库提供的一项功能,它允许在不中断数据库服务的情况下执行数据定义语言(DDL)操作。
❞
一、背景与意义在传统的数据库系统中,执行DDL操作时通常需要锁定表,以防止数据不一致。然而,这种锁定会导致表在DDL操作期间不可用,从而影响数据库的可用性。MySQL原生Online DDL解决了这个问题,它允许DDL操作在表仍然可用时执行,大大提高了数据库的可用性,特别是对于需要24/7高可用性的应用来说,这是一个重要的特性。
二、工作机制MySQL原生Online DDL的工作机制涉及多个步骤和内部原理:
1. 准备阶段
「检查与评估」:在执行DDL操作之前,MySQL会进行一系列的检查和评估工作。这包括验证DDL操作的语法正确性、检查用户权限以及评估所需资源等。
「选择执行策略」:根据DDL操作的类型和表的结构,MySQL会选择一个合适的执行策略。这通常涉及决定是使用COPY算法、INPLACE算法还是INSTANT算法。
2. 执行DDL操作
「COPY算法」:
「创建临时表」:首先,MySQL会创建一个与原始表结构相似的新临时表。 ...
追源索骥:透过源码看懂Flink核心框架的执行流程
追源索骥:透过源码看懂Flink核心框架的执行流程
前言Flink是大数据处理领域最近很火的一个开源的分布式、高性能的流式处理框架,其对数据的处理可以达到毫秒级别。本文以一个来自官网的WordCount例子为引,全面阐述flink的核心架构及执行流程,希望读者可以借此更加深入的理解Flink逻辑。
本文跳过了一些基本概念,如果对相关概念感到迷惑,请参考官网文档。另外在本文写作过程中,Flink正式发布了其1.5 RELEASE版本,在其发布之后完成的内容将按照1.5的实现来组织。
1.从 Hello,World WordCount开始首先,我们把WordCount的例子再放一遍:
public class SocketTextStreamWordCount {public static void main(String[] args) throws Exception { if (args.length != 2){ System.err.println("USAGE:\nSocketTextStreamWordCount ...
CockroachDB分布式事务解析
事务层事务层实现了对并发操作的ACID事务支持。
CRDB事务分为两个阶段:
write & reads,即事务执行阶段,当进行写操作时,CRDB并不会直接对硬盘的数据进行修改,而是使用另外两个东西来进行辅助,这两个东西也避免了锁的使用:
Transaction record,存储在range第一个被修改的key处,表明了修改当前key的事务所处的状态:PENDING,COMMITTED或者ABORTED。第一个状态表示事务正在进行;第二个状态表示事务已经提交;第三个表示事务已经丢弃,正在进行重试或者rollback。
Write intents,对数据的修改写在这里,此外还带一个指向transaction record的指针,来表明这些数据当前或者之前被一个事务修改过,其他事务根据这个状态来决定对这些数据的下一步操作。产生一个新的write intent前需要检查这一块数据有没有更晚时间戳的提交值,如果有的话该事务需要被重新开始。
当进行读操作时,会检查所读的每块数据的write intent,如果不存在,那么直接读以前的mvcc数据就行了,如果有write in ...
Java资源大全
Java资源大全中文版我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容包括:构建工具、数据库、框架、模板、安全、代码分析、日志、第三方库、书籍、Java 站点等等。伯乐在线已经把 awesome-java 资源列表翻成中文后发布于 ImportNew。
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。
我们要做什么?
基于 awesome-java 资源列表,我们将对各个资源项进行编译整理。
整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
《OWNER:Java配置文件解决方案》
《Spring Boot:简化Spring应用初始搭建以及开发过程》
《SonarQube:开源的代码质量管理工具》
如何参与本项目?
如何为列表贡献新资源?欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:
请确保推荐的资源自己使用过
提 ...
技术资料合集
最新 1000 多本计算机电子书免费下载整理那么辛苦,求个 Star,Fork 谢谢该文档来自于 itdevbooks 大佬,请给个Star,Fork支持一下
计算机类电子书下载,编程电子书整理下载,包括 C,C#,Docker,Elasticsearch,Git,Hadoop,HeadFirst,Java,Javascript,jvm,Kafka,Linux,Maven,MongoDB,MyBatis,MySQL,Netty,Nginx,Python,RabbitMQ,Redis,Scala,Solr,Spark,Spring,SpringBoot,SpringCloud,TCPIP,Tomcat,Zookeeper,人工智能,大数据类,并发编程,数据库类,数据挖掘,新面试题,架构设计,算法系列,计算机类,设计模式,软件测试,重构优化,等更多分类
重要说明:这些书涵盖入门和进阶所需,请大家各取所需,另外还会原创大厂面试题,陆续会提交上来,请大家持续关注这个项目。
书籍分40多个技术大类
C
C#
Docker
Elasticsearch
Git
Hadoop ...
go语言学习资料与社区索引
Go 语言学习资料与社区索引go语言相关资料备忘
交流社区中文社区
Golang 中国:国内较早的 Go 社区,汇聚各类信息与服务
Study Golang:国内 Go 社区先驱,同样汇聚各类信息与服务
Revel 交流论坛:Revel 框架的中文社区
GoCN Forum:Go 语言爱好者中文交流论坛
IGO.PUB Go社区:Go语言技术社区(新),完美主义者社区
Go 技术论坛: Golang / Go 语言中国知识社区
QQ 群:
Go Web 交流群:259316004
Golang 中国:211938256
Go 内部实现与标准库:192706294
Go 编程语言:102319854
Martini&Macaron 交流群:371440803
Golang 新手群:369793160
英文社区
Go Forum:Go 语言爱好者英文交流论坛
golang-nuts 邮件列表:Go 语言官方指定邮件列表讨论区
Go+ 社区:Go 语言官方指定 G+ 社区
知识图谱
Go Knowledge Graph:Go 知识图谱
网址导航
官方:
Go 中国站点: G ...
go语言上下文Context
本文章转载自 draveness1.1 上下文 Context上下文 context.Context Go 语言中用来设置截止日期、同步信号,传递请求相关值的结构体。上下文与 Goroutine 有比较密切的关系,是 Go 语言中独特的设计,在其他编程语言中我们很少见到类似的概念。
context.Context 是 Go 语言在 1.7 版本中引入标准库的接口1,该接口定义了四个需要实现的方法,其中包括:
Deadline — 返回 context.Context 被取消的时间,也就是完成工作的截止日期;
Done — 返回一个 Channel,这个 Channel 会在当前工作完成或者上下文被取消后关闭,多次调用 Done 方法会返回同一个 Channel;
Err — 返回 context.Context 结束的原因,它只会在 Done 方法对应的 Channel 关闭时返回非空的值;
如果 context.Context 被取消,会返回 Canceled 错误;
如果 context.Context 超时,会返回 DeadlineExceeded 错误;
Valu ...
go语言插件系统
本文章转载自 draveness8.1 插件系统熟悉 Go 语言的开发者一般都非常了解 Goroutine 和 Channel 的原理,包括如何设计基于 CSP 模型的应用程序,但是 Go 语言的插件系统是很少有人了解的模块,通过插件系统,我们可以在运行时加载动态库实现一些比较有趣的功能。
8.1.1 设计原理Go 语言的插件系统基于 C 语言动态库实现的,所以它也继承了 C 语言动态库的优点和缺点,我们在本节中会对比 Linux 中的静态库和动态库,分析它们各自的特点和优势。
静态库或者静态链接库是由编译期决定的程序、外部函数和变量构成的,编译器或者链接器会将程序和变量等内容拷贝到目标的应用并生成一个独立的可执行对象文件1;动态库或者共享对象可以在多个可执行文件之间共享,程序使用的模块会在运行时从共享对象中加载,而不是在编译程序时打包成独立的可执行文件2;由于特性不同,静态库和动态库的优缺点也比较明显;只依赖静态库并且通过静态链接生成的二进制文件因为包含了全部的依赖,所以能够独立执行,但是编译的结果也比较大;而动态库可以在多个可执行文件之间共享,可以减少内存的占用,其链接的过程往往 ...