├── .gitattributes ├── .gitignore ├── 01.reading ├── README.md ├── reading_articles │ ├── README.md │ ├── main.go │ ├── reading_wordcloud.py │ └── reading_wordcloud_output.png └── reading_books │ └── README.md ├── 02.learning ├── README.md ├── learning-english │ ├── README.md │ └── lessons │ │ ├── lesson1.md │ │ ├── lesson10.md │ │ ├── lesson11.md │ │ ├── lesson12.md │ │ ├── lesson13.md │ │ ├── lesson14.md │ │ ├── lesson15.md │ │ ├── lesson16.md │ │ ├── lesson17.md │ │ ├── lesson18.md │ │ ├── lesson19.md │ │ ├── lesson2.md │ │ ├── lesson20.md │ │ ├── lesson21.md │ │ ├── lesson22.md │ │ ├── lesson23.md │ │ ├── lesson24.md │ │ ├── lesson25.md │ │ ├── lesson26.md │ │ ├── lesson27.md │ │ ├── lesson28.md │ │ ├── lesson29.md │ │ ├── lesson3.md │ │ ├── lesson30.md │ │ ├── lesson31.md │ │ ├── lesson32.md │ │ ├── lesson33.md │ │ ├── lesson34.md │ │ ├── lesson35.md │ │ ├── lesson4.md │ │ ├── lesson5.md │ │ ├── lesson6.md │ │ ├── lesson7.md │ │ ├── lesson8.md │ │ └── lesson9.md ├── learning-game-theory │ ├── LICENSE │ └── README.md ├── learning-google-sre │ ├── 第一阶段读后感和思考.md │ ├── 第三阶段读后感和思考.md │ ├── 第二阶段读后感和思考.md │ ├── 第五阶段读后感和思考.md │ ├── 第六阶段读后感和思考.md │ └── 第四阶段读后感和思考.md ├── learning-linux │ ├── Linux 性能优化实战 │ │ ├── 0.开篇词 | 别再让Linux性能问题成为你的绊脚石.md │ │ ├── 1.如何学习的Linux性能优化.md │ │ ├── 10.案例篇:系统的软中断CPU使用率升高,我该怎么办?.md │ │ ├── 11.套路篇:如何迅速分析出系统CPU的瓶颈在哪里?.md │ │ ├── 12.套路篇:CPU 性能优化的几个思路.md │ │ ├── 13.答疑(一):无法模拟出 RES 中断的问题,怎么办?.md │ │ ├── 14.答疑(二):如何用perf工具分析Java程序?.md │ │ ├── 15.基础篇:Linux内存是怎么工作的?.md │ │ ├── 16.基础篇:怎么理解内存中的Buffer和Cache?.md │ │ ├── 17.案例篇:如何利用系统缓存优化程序的运行效率?.md │ │ ├── 18.案例篇:内存泄漏了,我该如何定位和处理?.md │ │ ├── 19.案例篇:为什么系统的Swap变高了(上).md │ │ ├── 2.基础篇:到底应该怎么理解“平均负载”.md │ │ ├── 20.案例篇:为什么系统的Swap变高了(下).md │ │ ├── 21.套路篇:如何“快准狠”找到系统内存的问题?.md │ │ ├── 22.答疑(三):文件系统与磁盘的区别是什么?.md │ │ ├── 23.基础篇:Linux 文件系统是怎么工作的?.md │ │ ├── 24.基础篇:Linux 磁盘I:O是怎么工作的(上).md │ │ ├── 25.基础篇:Linux 磁盘I:O是怎么工作的(下).md │ │ ├── 26.案例篇:如何找出狂打日志的“内鬼”?.md │ │ ├── 27.案例篇:为什么我的磁盘I:O延迟很高?.md │ │ ├── 28.案例篇:一个SQL查询要15秒,这是怎么回事?.md │ │ ├── 29.案例篇:Redis响应严重延迟,如何解决?.md │ │ ├── 3.基础篇:经常说的 CPU 上下文切换是什么意思?(上).md │ │ ├── 30.套路篇:如何迅速分析出系统I:O的瓶颈在哪里?.md │ │ ├── 31.套路篇:磁盘 I:O 性能优化的几个思路.md │ │ ├── 32.答疑(四):阻塞、非阻塞 I:O 与同步、异步 I:O 的区别和联系.md │ │ ├── 33.关于 Linux 网络,你必须知道这些(上).md │ │ ├── 34.关于 Linux 网络,你必须知道这些(下).md │ │ ├── 35.基础篇:C10K 和 C1000K 回顾.md │ │ ├── 36.套路篇:怎么评估系统的网络性能?.md │ │ ├── 37.案例篇:DNS 解析时快时慢,我该怎么办?.md │ │ ├── 38.案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?.md │ │ ├── 39.案例篇:怎么缓解 DDoS 攻击带来的性能下降问题?.md │ │ ├── 4.基础篇:经常说的 CPU 上下文切换是什么意思(下).md │ │ ├── 40.案例篇:网络请求延迟变大了,我该怎么办?.md │ │ ├── 41.案例篇:如何优化 NAT 性能?(上).md │ │ ├── 42.案例篇:如何优化 NAT 性能?(下).md │ │ ├── 43.套路篇:网络性能优化的几个思路(上).md │ │ ├── 44.套路篇:网络性能优化的几个思路(下).md │ │ ├── 45.答疑(五):网络收发过程中,缓冲区位置在哪里?.md │ │ ├── 46.案例篇:为什么应用容器化后,启动慢了很多?.md │ │ ├── 47.案例篇:服务器总是时不时丢包,我该怎么办?(上).md │ │ ├── 48.案例篇:服务器总是时不时丢包,我该怎么办?(下).md │ │ ├── 49.案例篇:内核线程 CPU 利用率太高,我该怎么办?.md │ │ ├── 5.基础篇:某个应用的 CPU 使用率居然达到 100%,我该怎么办?.md │ │ ├── 50.案例篇:动态追踪怎么用?(上).md │ │ ├── 51.案例篇:动态追踪怎么用?(下).md │ │ ├── 52.案例篇:服务吞吐量下降很厉害,怎么分析?.md │ │ ├── 53.套路篇:系统监控的综合思路.md │ │ ├── 54.套路篇:应用监控的一般思路.md │ │ ├── 55.套路篇:分析性能问题的一般步骤.md │ │ ├── 56.套路篇:优化性能问题的一般方法.md │ │ ├── 57.套路篇:Linux 性能工具速查.md │ │ ├── 58.答疑(六):容器冷启动如何性能分析?.md │ │ ├── 6.案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?.md │ │ ├── 7.案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上).md │ │ ├── 8.案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下).md │ │ ├── 88.精选留言.md │ │ ├── 9.基础篇:怎么理解Linux软中断?.md │ │ ├── 99.微信总结.md │ │ └── 我的总结.md │ ├── README.md │ └── books │ │ └── linux-kernel-development-3rd.jpg └── learning-qa │ ├── README.md │ ├── static │ └── images │ │ └── thinking_qa_how_to_grow_wordcloud.png │ └── thinking │ └── software_qa_how_to_grow_reading_notes.md ├── 03.communication └── README.md ├── 04.researching ├── README.md ├── biography │ ├── bradfitz.md │ ├── brian_kernighan.md │ ├── rick_hudson.md │ └── rob_pike.md └── history │ ├── database_driver_history.md │ ├── go_generic_history.md │ └── image_history.md ├── 05.thinking └── README.md ├── 06.relaxing └── README.md ├── 07.profile └── README.md ├── 99.weekly ├── 「一叶知秋」 周刊001.md ├── 「一叶知秋」 周刊002.md ├── 「一叶知秋」 周刊003.md ├── 「一叶知秋」 周刊004.md ├── 「一叶知秋」 周刊005.md ├── 「一叶知秋」 周刊006.md ├── 「一叶知秋」 周刊007.md ├── 「一叶知秋」 周刊008.md ├── 「一叶知秋」 周刊009.md ├── 「一叶知秋」 周刊010.md ├── 「一叶知秋」 周刊011.md ├── 「一叶知秋」 周刊012.md ├── 「一叶知秋」 周刊013.md ├── 「一叶知秋」 周刊014.md ├── 「一叶知秋」 周刊015.md ├── 「一叶知秋」 周刊016.md ├── 「一叶知秋」 周刊017.md ├── 「一叶知秋」 周刊018.md ├── 「一叶知秋」 周刊019.md ├── 「一叶知秋」 周刊020.md ├── 「一叶知秋」 周刊021.md ├── 「一叶知秋」 周刊022.md ├── 「一叶知秋」 周刊023.md ├── 「一叶知秋」 周刊024.md ├── 「一叶知秋」 周刊025.md ├── 「一叶知秋」 周刊026.md ├── 「一叶知秋」 周刊027.md ├── 「一叶知秋」 周刊028.md ├── 「一叶知秋」 周刊029.md ├── 「一叶知秋」 周刊030.md ├── 「一叶知秋」 周刊031.md ├── 「一叶知秋」 周刊032.md ├── 「一叶知秋」 周刊033.md └── 「一叶知秋」 周刊034.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md └── assets └── images ├── Linux性能优化实战精选留言趋势图.png ├── TiDB产品组最佳人气奖投票-cdc-plg.png ├── read_linux_performance_book.jpg ├── read_more_books_zsxq.jpg └── 「一叶知秋」集散地-二维码.jpg /.gitattributes: -------------------------------------------------------------------------------- 1 | *.* linguist-language=* -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.dll 4 | *.so 5 | *.dylib 6 | 7 | # Test binary, build with `go test -c` 8 | *.test 9 | 10 | # Output of the go coverage tool, specifically when used with LiteIDE 11 | *.out 12 | 13 | # Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 14 | .glide/ 15 | 01.reading/reading_articles/data.txt 16 | .idea/* 17 | -------------------------------------------------------------------------------- /01.reading/README.md: -------------------------------------------------------------------------------- 1 | # 01.阅读 2 | 3 | 罗列我所看过的书籍、文章、论文。 4 | 5 | >同时我也会通过豆瓣读书(阅读记录 App)来分享我的阅读清单,通过豆瓣以及 “阅读记录 App” 来呈现。 6 | 7 | ### Reading Books(阅读之美) 8 | 9 | 一本书要搞透,必须都要读到(精读)。 10 | 11 | 特别是数学类的书籍,一定是从基本逻辑往上写的,但是读者不容易理解的。(定理一、定理二、定理三,但是往往我们先想到的是定理三,然后再慢慢倒推定理二、定理一) 12 | 13 | ### Reading Articles 14 | 15 | https://github.com/yangwenmai/learning-growth/issues 16 | 17 | - Github Reading Issues 18 | - Reading 词云 19 | 20 | ### Reading Papers 21 | 22 | 项目地址:https://github.com/developer-learning/paper-reading 23 | 24 | -------------------------------------------------------------------------------- /01.reading/reading_articles/reading_wordcloud.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import jieba 3 | import wordcloud 4 | # 构建并配置词云对象w 5 | w = wordcloud.WordCloud(width=1000, 6 | height=700, 7 | background_color='white', 8 | font_path='STHeiti Light.ttc', 9 | scale=3, 10 | stopwords={'我们','一个','可以', '这个','那个','自己','就是','问题','如果','用户','可能','些','这些','那些','需要','不同', '现在','通过', '不是', '还是', '所以', '能','因为','使用','他们','大家','应该','或者','时候','然后','一样','成为','其实','开始'}) 11 | 12 | # stopwords 貌似不能生效。 13 | 14 | # 调用jieba的lcut()方法对原始文本进行中文分词,得到string 15 | # 读取 reading 文章的所有文本内容 16 | f = open('data.txt', 'r') 17 | txt = f.read() 18 | txtlist = jieba.lcut(txt) 19 | string = " ".join(txtlist) 20 | 21 | # 将string变量传入w的generate()方法,给词云输入文字 22 | w.generate(string) 23 | 24 | # 将词云图片导出到当前文件夹 25 | w.to_file('reading_wordcloud_output.png') 26 | -------------------------------------------------------------------------------- /01.reading/reading_articles/reading_wordcloud_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/01.reading/reading_articles/reading_wordcloud_output.png -------------------------------------------------------------------------------- /01.reading/reading_books/README.md: -------------------------------------------------------------------------------- 1 | ## 读书笔记 2 | 3 | 读书笔记以后可能会分书籍来展现,目前暂时先把之前放到 issues 上的挪过来。 4 | 5 | https://www.douban.com/people/55484404/ 6 | 7 | ---- 8 | 9 | ### 《程序员的数学》 10 | 11 | 1. 以 10、2 为底的对数 12 | 13 | >log10 1000 表示“10 的几次方是1000”,log2 8 表示“2 的几次方是 8” 14 | 这个法则,我已经忘记了,今天看书得到了回顾。 15 | 16 | 2. 再难以处理的庞大数字,它的对数都是更易处理的较小的数字。(log10 100000000=8) 17 | 18 | >若在纵轴上使用对数,即使发生指数爆炸也能绘制出一目了然的图表来,这个称为:对数图表。 19 | 20 | 3. 指数法则和对数 21 | 22 | >`10^a*10^b = 10^(a+b)`,使用对数,就能将乘法转换为加法。“将复杂计算转换为简单的计算”。 23 | 24 | ---- 25 | 26 | ### 持续交付 2.0 - 业务引领的 DevOps 精要 27 | 28 | 本书“重新定义”了持续交付,增补组织管理和架构两个维度,辅助以真实案例,对诸多持续交付的原则和实践加以解读,并对持续交付过程中的取舍原则加以论述。 29 | 30 | 本书分为三个部分: 31 | 32 | - 作者根据自己近十年的工作及咨询经历,通过不断总结、提炼和反思,重新定义持续交付为实现组织战略目标的能力,并引入持续交付的能力模型。 33 | - 阐述组织大枣持续交付能力模型所需遵守的原则,包括基础原则、组织原则和架构原则。 34 | - 通过多个互联网公司案例的解读,阐述如何根据组织的当前状况,应用相对原则对最佳实践进行取舍,并快速达到组织能力目标。 35 | 36 | VUCA 是 volatility(易变性)、uncertainty(不确定性)、complexity(复杂性)和ambiguity(模糊性),源于军事用语,20世纪90年代开始被普遍使用,用来描述冷战结束后的越发不稳定、不确定的、复杂、模棱两可和多边的世界。 37 | 38 | ## 软件工程发展 39 | 40 | 瀑布软件开发方法--->敏捷软件开发方法--->DevOps 运动--->持续交付 1.0(关注于:“从提交代码到产品发布”)--->持续交付 2.0 41 | 42 | ## 持续部署与持续交付 43 | 44 | 部署是一种技术领域的操作。 45 | 交付是一个业务决策活动。 46 | >现在很多人是错误的理解他们了。 47 | 48 | ## 持续交付 V2.0 核心理念 49 | 50 | 通过快速实现解决方案并从真实反馈中收集数据,以验证该问题是否得以解决。这是一个从业务问题出发,到业务问题解决的完整业务闭环,简称为持续交付 “8” 字环。 51 | 52 | 第一环:探索环,提问、锚定、共创、精炼。 53 | 第二环:验证环,构建、运行、检测、决策。 54 | 55 | ### 缩短持续交付 “8” 字环周期的 4 个核心原则: 56 | 57 | 1. 坚持少做; 58 | 2. 持续分解问题; 59 | 3. 坚持快速反馈; 60 | 4. 持续改进并衡量; 61 | 62 | ### 持续交付七巧板: 63 | 64 | 1. 业务需求协作管理; 65 | 2. 部署发布于监控管理; 66 | 3. 构建与环境管理; 67 | 4. 分支与配置管理; 68 | 5. 自动化验证管理; 69 | 6. 文化建设组织架构人员结构激励体系;(组织机制) 70 | 7. 易测试性易部署性易扩展性易监控性;(软件架构) 71 | 72 | ---- 73 | 74 | ### 重新理解创业(周航) 75 | 76 | https://github.com/yangwenmai/learning-growth/files/3533117/-.-mai.pdf 77 | 78 | ---- 79 | -------------------------------------------------------------------------------- /02.learning/README.md: -------------------------------------------------------------------------------- 1 | # 02.学习 2 | 3 | 有计划和恒心,坚持的做。学习不应该带着功利心。学习没有捷径可取。学习不应该看重结果。 4 | 5 | 重思想,不求回报,不求收益,只求搞明白。。 6 | 7 | - [英语学习](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-english) 8 | - [博弈论](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-game-theory) 9 | - [Linux](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-linux) 10 | - [QA 相关学习](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-qa) 11 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson1.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 1 精讲 1 之 英语学习攻略 2 | 3 | >2019-06-10 19:00:00 4 | 5 | 本节课主要是英语课堂的教学课程介绍,涉及发音、词汇、语法、背景文化等。 6 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson10.md: -------------------------------------------------------------------------------- 1 | # 专题课 02 走进语法,从名词开始 2 | 3 | >2019-06-21 19:00:00 4 | 5 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson11.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 3 精讲 1 2 | 3 | >2019-06-24 19:00:00 4 | 5 | 待补充 6 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson12.md: -------------------------------------------------------------------------------- 1 | # 答疑课 05 原音 /e/,/eI/ 及闪音 /t/ 2 | 3 | >2019-06-25 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson13.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 3 精讲 2 2 | 3 | >2019-06-26 19:00:00 4 | 5 | 待补充 -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson14.md: -------------------------------------------------------------------------------- 1 | # 答疑课 06 整十数及 river 的读法 2 | 3 | >2019-06-27 19:00:00 4 | 5 | 1. 整十数字的读法,注意 ty 要读成近似于 dy 的音,如 twenty,fifty,eighty。 6 | 2. river 这个单词的读法:/r/ 在元音前和元音后的两个发音。 7 | 1) 元音前发 /r/,比如玫瑰 rose; 8 | 2)元音后发 /r/,一般与元音合在一起发,口型大小由前面的元音决定,比如 or,先发 o,然后把舌头卷上去,or 9 | 3. /v/ 的发音,注意发音时一定要会用上齿和下唇。 10 | 11 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson15.md: -------------------------------------------------------------------------------- 1 | # 专项课 03 动词:句子的发动机 2 | 3 | >2019-06-28 19:00:00 4 | 5 | 1. 动词是什么? 6 | 动词就是用来表示主语做什么(即行为动词),或表示主语是什么或怎么样(即状态词)的词。 7 | 8 | 2. 表示做什么的动词 9 | 1. 不及物动词 10 | 如果一个动词跟一个主语放在一起,就能够表达完整句意的话,那这个词就是不及物动词。示例:I agree. 我同意。 11 | 2. 及物动词 12 | 动作后面可以直接加上动作的接受对象的词,是及物动词。示例:I buy.(❌) I buy something.(✅) 13 | 14 | 3. 系动词 15 | 1. 系动词是指用来说明主语的状态,性质,特征或身份的词 16 | 2. 系动词之状态系动词:be 动词,熟记一条规则:我用am,你用 are ,is 用于它,他,她。 17 | 3. 系动词之持续性动词;示例:keep,keep silence. 保持沉默。 18 | 4. 系动词之表像系动词:seem,look;用来表示“看起来像”。示例:you look tired. 你看起来很累。 19 | 5. 系动词之感官系动词:feel:感觉,smell:闻起来;taste:尝起来;示例: 20 | - This kind of cloth feels very soft. 这种布手感很软。 21 | - This flower smells very sweet. 这朵花闻起来很香。 22 | - It tastes good. 尝起来不错。 23 | 6. 系动词之变化系动词:become,go,get,turn 主要表示主语变成什么样。示例:He became independent after that. 自那之后,他变得独立了。 24 | 7. 系动词之终止系动词:表达“证实”,“变成”之意:turn out。示例: His plan turned out a success. 他的计划终于成功了。 25 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson16.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 4 精讲 1 2 | 3 | >2019-07-01 19:00:00 4 | 5 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson17.md: -------------------------------------------------------------------------------- 1 | # 答疑课 06 跟着 Robin 周游世界 2 | 3 | >2019-07-02 19:00:00 4 | 5 | 1. 认识各大洲、国家、城市及其特色。 6 | 2. 【复数长句】:攻克生词/听它的发音然后模仿->先断句,分部分学习->多听原音多录音->注意流利度。 7 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson18.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 4 精讲 2 2 | 3 | >2019-07-03 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson19.md: -------------------------------------------------------------------------------- 1 | # 答疑课 07 如何读好 twelve years old 2 | 3 | >2019-07-04 19:00:00 4 | 5 | 1. [t] 和 [w] 的发音,组合发音[tw] 6 | 7 | - [t] 双唇微张,舌尖抵住上齿龈,**憋气,突然将舌尖弹开**,不振动声带([t] 是清辅音) 8 | - [w] 双唇收紧,**小而紧,向前突出,振动声带**,发音类似汉语拼音 w 或者汉字乌鸦的"乌"的短促音(实际在发这个音的时候,为了方便发音,会发成[we]) 9 | - [tw] 前一个辅音 t发得轻而短,就是弹一下舌尖就好了,后面一个辅音w一定要发得稍重而长,整个过程保持w的唇型,小而紧,并向前突出,注意要发得圆润一些,如单词twins;twenty;between;twice;twelve 10 | 11 | 2. [j] 的发音 12 | 13 | 发 [j] 的时候,双唇微开,舌尖轻轻触碰下齿龈,舌尖中间的部分翘起,舌面和硬腭稍有摩擦,震动声带,用力发出像“ye”或“爷”的短促声。 14 | 15 | 3. She's twelve years old. 16 | 17 | 注意:重读twelve这个信息词,其他单词弱读,音调先升后降。 18 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson2.md: -------------------------------------------------------------------------------- 1 | # 答疑课 01 英语学习攻略 2 | 3 | >2019-06-11 19:00:00 4 | 5 | 先完成,再完美! 6 | 先完成,再完美! 7 | 先完成,再完美! 8 | >重要的事情说三遍!!! 9 | >保证进度再刷星星✨ 10 | 11 | “习惯(坚持)”+“答疑”=成功! 12 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson20.md: -------------------------------------------------------------------------------- 1 | # 专项课 04 形容词:让世界更多彩 2 | 3 | >2019-07-05 19:00:00 4 | 5 | 1. 什么是形容词 6 | 形容词是用来修饰名词和代词的。 7 | 8 | 2. 常用形容词 9 | good=好; 10 | small/medium/large =小/中/大; 11 | new=新 12 | long=长 13 | important=重要的; 14 | right=正确的 15 | 16 | 3. 常见的形容词尾巴 17 | -y结尾:snowy(下雪的) 18 | -ful结尾:beautiful(美丽的) 19 | -ive结尾:expensive(昂贵的) 20 | 21 | 4. 形容词的两种常见用法 22 | 1. 形容词+名词 23 | It's a "good day" today. 24 | 今天是不错的一天。 25 | 2. 名词/代词+be动词+形容词 26 | She is beautiful. 27 | 她很漂亮。 28 | 29 | 5. 形容词的比较级和最高级 30 | 1. 短形容词(一般情况): 31 | 比较级+er,最高级+est 32 | tall-taller-tallest=高-更高-最高 33 | 2. 以y结尾的短形容词: 34 | 比较级去y然后加ier,最高级去y加iest。 35 | happy-happier-happiest=开心-更开心-最开心 36 | 3. -ful和-ive结尾的长形容词(一般情况): 37 | 比较级用more,最高级用most 38 | beautiful-more beautiful-most beautiful=漂亮的-更漂亮的-最漂亮的 39 | 4. 特殊变化(不常见): 40 | good-better-best=好-更好-最好 41 | 42 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson21.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 5 精讲1 2 | 3 | >2019-07-08 19:00:00 4 | 5 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson22.md: -------------------------------------------------------------------------------- 1 | # 答疑课 08 为何 from 总是读不准 2 | 3 | >2019-07-09 19:00:00 4 | 5 | 1. 学习辅音 /f/ /m/ ,元音 /A/ 6 | 7 | - /f/:上齿轻咬下唇内侧,将气息从唇齿的缝隙轻轻吹出来,不振动声带,如 food; friend 8 | - 与 /v/ 区别的是发 /v/ 需要震动声带,而发 /f/ 不用震动声带。 9 | /A/:的发音很像中文里面肚子饿的“饿”,但是要发得强点且短促点,如bus,study 10 | /e/和/A/ 的的发音方式完全相同,唯一的区别就是,/e/ 发得比 /A/ 轻一些,如 the, a 等。 11 | 12 | 2. 介词、冠词等虚词在句子里,一般需要弱读,比如 /from/frAm/ 在句子中弱读成 /frem/ 13 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson23.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 5 精讲 2 2 | 3 | >2019-07-10 19:00:00 4 | 5 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson24.md: -------------------------------------------------------------------------------- 1 | # 答疑课 09 爆破音与失去爆破 2 | 3 | >2019-07-11 19:00:00 4 | 5 | 1. 六大爆破音,分别是: 6 | 7 | - 双唇爆破音[p],[b]:比如 open & ben 8 | - 齿龈爆破音[t],[d]:比如 tie & die 9 | - 软腭爆破音[k],[g]:比如 coat & goat 10 | 11 | 2. 失去爆破:粗略地就是,当相邻的两个单词,签一个单词以爆破音结尾,后面的单词以辅音开头(j 和 w 除外),那么**前面的爆破音就要失去爆破**。失去爆破不是单纯地不发前面的爆破音就行了,而且要做出该发音的口型,稍稍停顿后就发后面的音。比如 goo~d~ morning 就要失去爆破。 12 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson25.md: -------------------------------------------------------------------------------- 1 | # 专项课 05 五大基本句型 2 | 3 | >2019-07-12 19:00:00 4 | 5 | ## 一、主谓 6 | 7 | 主语:什么人或者是什么事儿 8 | 谓语:描述动作,说明主语做了什么或者怎么样了。 9 | 10 | 示例:I forgot. 我忘记了。 11 | 12 | ## 二、主谓宾 13 | 14 | 宾语:主语发出动作的承受者。 15 | 示例:You hit me. 你打我。 16 | 17 | ## 三、主谓宾宾 18 | 19 | 直接宾语:谓语动作承受者,通常是具体的事物。 20 | 间接宾语:动作的对象。 21 | 示例:I give you a book. 我给你一本书。 22 | 23 | ## 四、主系表 24 | 25 | 系动词:表示“是”含义的 be 动词,感官动词或者表示变化的词。 26 | 表语:说明主语身份状态,可以是名词或者形容词。 27 | 示例:This is good. 这个不错。 28 | 29 | ## 五、主谓宾宾补 30 | 31 | 宾补(宾语补足语):补充说明宾语,可以是名词或者形容词。 32 | 示例:We name her Alice. 我们给她取名为爱丽丝。 33 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson26.md: -------------------------------------------------------------------------------- 1 | # Unit 2 Part 1 精讲1 2 | 3 | >2019-07-15 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson27.md: -------------------------------------------------------------------------------- 1 | # 答疑课 10 聊聊兴趣 cant 与 can 的发音 2 | 3 | >2019-07-16 19:00:00 4 | 5 | ## 聊聊兴趣 6 | 7 | I have an interest in reading. 8 | 9 | ## cant 与 can 的发音 10 | 11 | cant 在句子中要重读,有时候末尾的 t 要失爆。 12 | can 在句子中一般要弱读,读作 can,然后重读它后面的动词。 13 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson28.md: -------------------------------------------------------------------------------- 1 | # Unit 2 Part 1 精讲2 2 | 3 | >2019-07-17 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson29.md: -------------------------------------------------------------------------------- 1 | # 答疑课 11 初识人称代词 2 | 3 | >2019-07-18 19:00:00 4 | 5 | 1. 【人称代词】是指直接指代人或者事物的代词。在英语中都有三种人称代词,分别是 6 | 第一人称 I(me);we(us) 7 | 第二人称 you(you) 8 | 以及除第一人称和第二人称之外的第三人称 he(him);she(her);it(it);they(them)等。括号内是对应人称代词的宾格形式。 9 | 10 | 2. 【用法】 11 | 人称代词在句子中做主语,用其主格形式; 12 | 人称代词在句子中做宾语(动宾;介宾等),用其宾格形式。 13 | 14 | 3. 人称代词记忆口诀 15 | 我是 I,你是 you,男他 he,女她 she,it 用于事物它。 16 | 我们 we,你们 you,Ta 们要用 they they they 17 | 对应的宾格形式还是需要大家自己去加强记忆。 18 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson3.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 1 精讲 2 之 Daily Actions & What's Your Name? 2 | 3 | >2019-06-12 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson30.md: -------------------------------------------------------------------------------- 1 | # 专项课 06 助动词:英语好助手 2 | 3 | >2019-07-19 19:00:00 4 | 5 | 1. 什么是助动词 6 | 7 | 助动词:帮助主要动词构成谓语的词。 8 | 示例:I don't like it. 我不喜欢它。 9 | 10 | 2. 助动词帮助构成否定句 11 | 否定句中助动词的位置:助动词+not+主动词 12 | 示例:I do not like it. 13 | 14 | 3. 助动词帮助构成疑问句 15 | 16 | 疑问句中助动词的位置: 17 | 在句首加一个助动词,就可以构成一个疑问句。 18 | 示例: 19 | - You want to eat with me. 你想和我吃饭 20 | - Do you want to eat with me? 你想和我一起吃个饭吗? 21 | 22 | 4. 主动词的变化原则 23 | 原本应该发生在主要动词身上的单三、时间和否定的变化,在句子中有助动词参与的时候,都要发生在助动词身上。 24 | 示例:I don't like it. 25 | 否定词跟在 do 后面,like 保持原型 26 | 27 | - 当主语是第一人称(我),第二人称(你)及人称代词复数时,助动词选用 do,示例: 28 | - I don't known. 我不知道。 29 | - You don't like that. 你不喜欢那个。 30 | - They don't like eating fish. 他们不喜欢吃鱼。 31 | - 当主语是第三人称单数(他)时,助动词用 does 示例: 32 | - He doesn't like that. 他不喜欢那个。 33 | - It doesn't work. 它坏了。 34 | - Her father doesn't say anything. 她父亲什么也没说。 35 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson31.md: -------------------------------------------------------------------------------- 1 | # 13. Unit 2 Part 2 精讲 2 | 3 | >2019-07-22 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson32.md: -------------------------------------------------------------------------------- 1 | # 答疑课 12 物主代词与反身代词 2 | 3 | >2019-07-23 19:00:00 4 | 5 | 1. 物主代词 6 | - 物主代词表示所有关系,通俗地讲也是“某个人的(事物)” 7 | - 两种物主代词:【形容词性物主代词】、【名词性物主代词】 8 | - 两者的关系:【名词性物主代词】=【形容词性物主代词】+【名词】 9 | - 两者的变化规律:从【形容词性物主代词】变【名词性物主代词】:有s的不要变,没s的加s。只有 my 是例外,my 要变为 mine 10 | 2. 反身代词 11 | - 反身代词就是“某人自己”,一般和主语对应的人称保持一致,用于强调主语自己做了某事。 12 | - 组合规律:第一人称、第二人称,由形容词性物主代词+self/selves组成,单数加self,复数加selves,如myself,yourself;ourselves,yourselves。第三人称,由宾格+self/selves组成,如himself, herself, itself, themselves。 -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson33.md: -------------------------------------------------------------------------------- 1 | # 14. Unit 2 Part 2 精讲2 2 | 3 | >2019-07-24 19:00:00 4 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson34.md: -------------------------------------------------------------------------------- 1 | # 答疑课 13 相同辅音的连读 2 | 3 | >2019-07-25 19:00:00 4 | 5 | 连读:相同辅音连读模式 6 | 7 | 两个相同的辅音连读,该辅音只发一次音,且音值略延长。 8 | 9 | 例如:take care 10 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson35.md: -------------------------------------------------------------------------------- 1 | # 专项课 07 介词如此多娇:时间介词 2 | 3 | >2019-07-26 19:00:00 4 | 5 | ## 时间介词 6 | 7 | ### 一、认识介词 8 | 9 | - 在句中起着中介或连接作用,且表示两者之间的关系的词; 10 | - 介词最常见的两种用途:表示时间、表示方位; 11 | 12 | ### 二、认识时间介词 13 | 14 | 表示时间的介词。 15 | 最常用的两类时间介词:表示在某时间、某期间。 16 | 17 | ### 三、表示在某时间的介词 18 | 19 | 1. at+某一特定时刻/时间点 20 | I start work at 10:30 a.m. 我十点半开始工作。 21 | 2. in+世纪/年/季/月/周以及泛指的上/下午、晚上 22 | It's warm in spring. 春天很温暖。 23 | 3. on+具体某一天或某天的上/下午、晚上 24 | China's National Day is on October 1st. 中国的国庆节在十月一号。 25 | 26 | ### 四、表示期间的介词 27 | 28 | 1. during+已知的一段时间(节日或者某种已确切限定的时期或阶段) 29 | I work during the holidays. 30 | 2. for+一段时间(非特定) 31 | I worked for eight hours. 32 | 33 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson4.md: -------------------------------------------------------------------------------- 1 | # 答疑课 02 详解英语中的咬舌音 2 | 3 | >2019-06-13 19:00:00 4 | 5 | Thanks 和 The 的发音 6 | 7 | th 的发音(注意 th 的两种不同发音和 s 的发音区别) 8 | - θ: 舌尖轻触上齿背部,气流从舌齿缝隙中送出,θ 是清辅音,声带不震动 9 | - 舌尖轻触上齿背部,气流从舌齿缝隙送出, 是浊辅音,声带要震动 10 | 11 | 两者的区别是:声带是否震动。 12 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson5.md: -------------------------------------------------------------------------------- 1 | # 专题课 01 我们为什么要学语法 2 | 3 | >2019-06-14 19:00:00 4 | 5 | ## 语法综述 6 | 7 | 1. 语法是什么?? 8 | 语法是语言的法则,把准确的单词,按准确的顺序组合成橘子的用法。 9 | 10 | 2. 语法为什么重要 11 | 语法帮助我们更清晰地认识英语这门语言,更准确地用英语来交流。 12 | 13 | 3. 语法要学些什么 14 | 准确的单词,也就是词法,准确的组合顺序组成句子,也就是句法。 15 | 不符合语法的错误表达: 16 | This lesson have some key point. 17 | 符合语法的准确表达 18 | There are some key points in this lesson. 19 | 20 | 4. 语法怎么样去学 21 | 通过学习懂你和专项语法课、答疑课,结合语境理解;并通过阅读、协作等方式不断练习,最终出口成章。 -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson6.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 2 精讲 1 之 People & Countries & Daily Objects 2 | 3 | >2019-06-17 19:00:00 -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson7.md: -------------------------------------------------------------------------------- 1 | # 答疑课 03 /i:/, /I/, /i/ 与音节&重音 2 | 3 | >2019-06-18 19:00:00 4 | 5 | 6 | 1. 元音音标 /i/ 和 /i:/ 的发音 7 | 2. 电梯 elevator 的发音,注意单词中的两个e发音不同,重读在第一个音节,t要读成轻轻的d 8 | 3. 认识音节与重音 9 | 一个单词的音标有几个元音,就是几个音节。 10 | 重音符号[\`],一个音节的左上角有这个符号,代表这个音节要重读。 11 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson8.md: -------------------------------------------------------------------------------- 1 | # Unit 1 Part 2 精讲 2 2 | -------------------------------------------------------------------------------- /02.learning/learning-english/lessons/lesson9.md: -------------------------------------------------------------------------------- 1 | # 答疑课 04 原音 /u:/ 与 /u/ 2 | 3 | >2019-06-20 19:00:00 4 | 5 | -------------------------------------------------------------------------------- /02.learning/learning-game-theory/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2019, maiyang 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /02.learning/learning-game-theory/README.md: -------------------------------------------------------------------------------- 1 | # awesome-game-theory 2 | [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 3 | 4 | ## 项目的起源 5 | 6 | 最近对博弈论比较感兴趣,网上有一些视频和资料,所以本项目主要是把这些资料汇总一下,方便自己的学习和研究。 7 | 8 | 这个项目目前处于非常早期的阶段,如果你对此也很感兴趣,非常欢迎一起交流讨论。 9 | 10 | >文档资源途径:GitHub、YouTube、Bilibili、书本。 11 | 12 | ## [博弈论(维基百科)](https://zh.wikipedia.org/wiki/%E5%8D%9A%E5%BC%88%E8%AE%BA) 13 | 14 | ## 什么是博弈论? 15 | 16 | 以下是一些视频讲解: 17 | 18 | - [科普:“博弈论” 是怎样的学问? Bilibili 4′14″](https://www.bilibili.com/video/av14679279/) 19 | >[什么是博弈论(柴知道) YouTube 4′14″](https://www.youtube.com/watch?v=XOf5nkiReLI) 20 | - [科学很美 —— 博弈论总结篇,李永乐老师海绵演讲(2018 最新) YouTube 17′40″](https://www.youtube.com/watch?v=BUn88WTmcOU) 21 | - [【科普】+ 博弈论, 鹰鸽博弈,叫你如何选择立场,鸽派还是鹰派?如何避免站错队 ,进化论和博弈论的关系 YouTube 8′10″](https://www.youtube.com/watch?v=YXUayYPfNQ4) 22 | 23 | ## 耶鲁大学公开课:博弈论 24 | 25 | - [【耶鲁大学公开课】【24 集全】博弈论](https://www.bilibili.com/video/av53405006/) 26 | 27 | ## Github 现有博弈论相关项目 28 | 29 | - [📖斯坦福博弈论中文笔记](https://github.com/apachecn/stanford-game-theory-notes-zh) 30 | - [美国卡内基梅隆大学团队论文:德州扑克上的人工智能新思路,即不再简单寻找纳什均衡,而引入悔恨值的概念](https://github.com/peterjiawhite/Superhuman_AI_in_multiplayer_poker_-) 31 | - [南京大学 计算机科学与技术系 2018 秋季课程 《博弈论及其应用》](https://github.com/kestory/NJU-GameTheory-Homework) 32 | - [如何通过博弈论找到女朋友,这是一个数学游戏](https://github.com/gaosiqiang/gameTheory/blob/master/README.md) 33 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第一阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 赞誉 6 | - 译者序 7 | - 前言 8 | - 序言 9 | - 第 I 部分:概览 10 | + 第 1 章:介绍 11 | + 系统管理员模式 12 | + Google 的解决之道:SRE 13 | + SRE 方法论 14 | + 小结 15 | 16 | ## 阅读时间 17 | 18 | 采自“阅读记录 App”。 19 | 20 | 阅读总时长:53分钟,阅读了两天。 21 | - 第一天(2020-06-28),35分钟 22 | - 第二天(2020-06-29),18分钟 23 | - 第三天(2020-06-30),17分钟 24 | 25 | ## 前言和序言的读后感 26 | 27 | SRE 与传统运维有很大的区别,我理解的是:SRE 代表的是效能,直接负责制。 28 | 29 | SRE 是务实的一群人,他们看的是事实,工匠精神始终是他们的追求,并且责任重大。 30 | 31 | 文中提到:“本书体系化地覆盖了运维工作的方方面面,是一本运维行业的教科书。” 32 | >我认为这个说法是正确的,但是定位有点局限,它是可以面向全部开发者的。 33 | 34 | 相比软件结果、架构设计而言,思考过程最重要,也最值得我们关注,值得大家的传承。 35 | 36 | 看代码只能看到结果,我们要去挖掘代码背后的过程,知其然而又知其所以然。 37 | 38 | 一个公司的成长,意味着整个公司商业模式和工作模式的扩展,而不是简单的资源扩张。 39 | 40 | 文中指出:“软件工程有的时候和养孩子类似:虽然生育的过程是痛苦和困难的,但是养育孩子成人的过程才是真正序言花费绝大部分精力的地方。” 41 | 育人需要时间,也需要精力。 42 | 43 | 团队文化就是从一切经历中不断学习,包括来自那些我们最意想不到的地方的经历。 44 | 45 | 对待一个软件系统的运行,我们不能马虎,更不能因为自己很熟悉就得意忘形,因为程序没有发生意外,它的概率就是0,但是一旦发生了,万分之一的概率也是1。 46 | 47 | ## SRE 介绍 48 | 49 | SRE 是由 Google 运维团队的高级副总裁 Ben Treynor Sloss 提出来的。 50 | 51 | 运维与开发之间的斗智斗勇不应存在,大家的目标应该统一。 52 | 最好的团队/系统,应该是自恢复的,一起努力才能达成,否则一个人要三头六臂才能勉强可用。但是我们都是普通人,DevOps 也就应运而生。 53 | 54 | DEV 与 OPS 分离会有哪些问题: 55 | - 直接成本 56 | - 间接成本 57 | 58 | Google 的解决之道:SRE 59 | 60 | **SRE 究竟是如何在 Google 起源的呢?** 61 | SRE 就是让软件工程师来设计一个新型运维团队的结果。 62 | 63 | 负责运维服务的团队,至少要保证有50%的时间来编程,以提供自动化运维的效能。而这个指标绝不是口头上喊一喊,而是要从上而下由管理层要求的。因为工作总是做不完的,而且是不是还会有新增。这个时候就得靠“老大”来指导了。(把常见的运维工作交还给研发部门,或者从研发部门抽调人力参与运维团队的轮值轮班工作) -> 这就是 DevOps 工程师的前身了吧。 64 | 65 | SRE 是 DevOps 模型在 Google 的具体实践,带有一些特别的扩展。 66 | 67 | **SRE 方法论之 SRE 团队要承担的职责:** 68 | - 可用性改进 69 | - 延迟优化 70 | - 性能优化 71 | - 效率优化 72 | - 变更管理 73 | - 监控 74 | - 紧急事务处理 75 | - 容量规划与管理 76 | 77 | 只有当整个团队都认同 SRE 工作模式,认同 50% 安全线的重要性,才会共同努力避免发生妥协,才能达成共识,最终也才能做起事来事半功倍。 78 | 79 | 所有的线上事故都应该有对应的事后总结,无论有没有触发警报,事故总结应该包括以下内容:事故发生、发现、解决的全过程,事故的根本原因,预防或者优化的解决方案。 80 | 81 | 一个需要人工阅读邮件和分析警报来决定目前是否需要采取某种行动的系统从本质上就是错误的。 82 | 83 | 监控系统不应该依赖人来分析警报信息,而是应该由系统自动分析,仅当需要用户执行某种操作时,才需要通知用户。 84 | 85 | SRE 的目标是根据一个预设的延迟目标部署和维护足够的容量。 86 | 87 | SRE 和产品研发团队应该共同监控和优化整个系统的性能,这样就给服务增加容量和提升效率了。 88 | 89 | ## 我的小结 90 | 91 | SRE 在 Google 的演进,以及我们普通公司是否有必要推进,都可以慢慢的了解到。 92 | 即便是自己的公司不适合,但是也不要影响我们对于 SRE 的追求,因为 SRE 是可以代表效率,尽量让自己公司也可以往这个方向去努力。 93 | 94 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第三阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 第 16 章 跟踪故障 6 | - 第 17 章 测试可靠性 7 | - 第 18 章 SRE 部门中的软件工程实践 8 | - 第 19 章 前端服务器的负载均衡 9 | - 第 21 章 应对过载 10 | - 第 22 章 处理连锁故障 11 | 12 | ## 阅读时间 13 | 14 | “阅读记录 App”。 15 | 16 | ## 读后感 17 | 18 | 在Google中,SRE接收到的所有报警信息都由一个中央性的、高可用的服务管理。 19 | 按照升级规则进行报警升级预处理。一切都是那么的规范化。 20 | 21 | Escalator (自动扶梯,一步一步的阶梯型) 22 | Outalator(外挂) 23 | 24 | Outalator 中对一线SRE更有用的功能是可以选择一系列故障,将它们的标题、标签和“重要的”记录信息用邮件格式发送给下一个on-call工程师(也可以CC其他人或邮件列表) 25 | 26 | SRE 的一项关键职责就是要定量地分析他们维护的某项服务的质量。 27 | 28 | 平均修复时间(MTTR)是衡量运维团队通过回滚或者其他动作修复某个 Bug 的时间。 29 | 30 | 传统测试分为: 31 | - 单元测试 32 | - 集成测试 33 | - 系统测试 34 | - 冒烟测试 35 | - 性能测试 36 | - 回归测试 37 | 38 | 生产测试分为: 39 | - 变更发布与测试 40 | - 配置测试 41 | - 压力测试 42 | - 金丝雀测试 43 | 44 | 在工程领域,了解一个问题的方法只有实际度量。 45 | 46 | Auxon是Google开发的一个基于意图进行容量规划的工具。 47 | 48 | 不要等待完美的设计,而是应该按照既定的规划继续前进。 49 | 50 | 在开发过程中,我们应该时刻从用户的角度来设计对他们很在意的这些问题,但是最重要的是,我们首先要保证基本可用。 51 | 52 | ## 个人小结 53 | 54 | 这一段阅读断断续续,有几章节是通过听书的方式“阅读”的,效果相比看文字差不少。(针对精选出来的书籍阅读,还是不要使用听的方式吧。 55 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第二阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 第 10 章 基于时间序列数据进行有效报警 6 | - 第 11 章 on-call 轮值 7 | - 第 12 章 有效的故障排查手段 8 | - 第 13 章 紧急事件响应 9 | - 第 14 章 紧急事故管理 10 | - 第 15 章 事后总结:从失败中学习 11 | 12 | ## 阅读时间 13 | 14 | “阅读记录 App”。 15 | 16 | ## 读后感 17 | 18 | 向过去学习,而不是重复它。 19 | >理论和实践永远都是两个不同的领域。直到你的系统真的失败了,你才明白。 20 | 21 | 22 | 事故流程管理策略,还是对于我们处理非常有帮助。 23 | 24 | 降低事故的平均恢复时间(MTTR),同时减轻处理紧急事故的人的工作压力。 25 | 26 | 可信度和可靠性是要靠自己去努力获得的,SRE 团队应该具备极强的主人翁意识,并且使得该产品在 SRE 内部有极强的可信度和可靠性。 27 | 28 | 保持迭代,而不是一蹴而就的完成。 29 | >不要等待完美的设计,而是应该按照既定的规划继续前进。 30 | 31 | 向大型团队推广内部软件工具需要以下几点: 32 | - 持续的和完整的推广方案; 33 | - 用户的拥护; 34 | - 资深工程师和管理层的赞助,因为他们看到了项目的实用潜力 35 | 36 | 对一个工具或事情的推动决定了你对此的投入。 37 | 38 | SRE 花在软件开发的精力会对整个公司、整个 SRE 组织,以及 SRE 个人都产生回报。 39 | 40 | 文中所提到的一篇论文:https://dl.acm.org/doi/10.1145/2367376.2371516 41 | >这篇 ACM 论文解释了 Google 是如何通过全公司的灾难演习来确保公司可以在大型灾难发生时正常工作。 42 | 43 | ## 个人小结 44 | 45 | 这一段阅读断断续续,有几章节是通过听书的方式“阅读”的,效果相比看文字差不少。(针对精选出来的书籍阅读,还是不要使用听的方式吧。 46 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第五阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 第 28 章 迅速培养SRE 加入on-call 6 | - 第 29 章 处理中断性任务 7 | - 第 30 章 通过嵌入SRE 的方式帮助团队从运维过载中恢复 8 | - 第 31 章 SRE 与其他团队的沟通与协作 9 | - 第 32 章 SRE 参与模式的演进历程 10 | 11 | ## 阅读时间 12 | 13 | “阅读记录 App”。 14 | 15 | ## 读后感 16 | 17 | 有抱负的 on-call 工程师的 5 个特点: 18 | 1. 对事故的渴望:事后总结的阅读和书写; 19 | - 忘记过去的人必然会犯重复的错误。 by George Santayana,哲学家和散文家 20 | 2. 事故处理分角色演习 21 | 3. 破坏真的东西,并且修复它们 22 | 4. 维护文档是学徒任务的一部分 23 | 5. 尽早、尽快见习 on-call 24 | 25 | 将一件事做好 26 | - 不要分心 27 | - 极化时间(每个人来上班时,应该清晰地知道自己今天是否只是做项目工作,还是只是做中断性工作。) 28 | - 减少中断 29 | 30 | 结构化的解决方案:框架 31 | 32 | 指导思想的模型: 33 | - 最佳实践代码化 34 | - 可重复使用的解决方案 35 | - 带有通用控制界面的通用生产操作平台 36 | - 更简易的自动化和更智能的系统 37 | 38 | ## 个人小结 39 | 40 | 本部分主要是谈到了 SRE 团队和框架的一些思想,还谈及到了做事的一些策略方法。 41 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第六阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 第 33 章 其他行业的实践经验 398~407 6 | - 第 34 章 结语 408 7 | - 附录A 系统可用性 411 8 | - 附录B 生产环境运维过程中的最佳实践 412 9 | - 附录C 事故状态文档示范 417 10 | - 附录D 事后总结示范 419 11 | - 附录E 发布协调检查列表 423 12 | - 附录F 生产环境会议记录示范 425 13 | - 参考文献 427 14 | 15 | ## 阅读时间 16 | 17 | “阅读记录 App”。 18 | 19 | ## 读后感 20 | 21 | Google SRE 的口号:“愿望不是一个策略。” 22 | SRE 的文化是永远保持警惕,不停地提出疑问:什么可能出现故障?在故障导致服务停止或者数据丢失之前我们如何避免? 23 | 24 | 关注任何细节。 25 | 26 | 将重复性工作自动化,消除运维负载。 27 | 28 | SRE 团队应该是越精简越好,他们所操作的东西应该更抽象而非更具体。SRE 团队依赖各种后备系统和精心设计的 API 来运维。 29 | 30 | 监控系统应该仅仅有下列三种输出: 31 | 1. 紧急警报:某个人必须执行某项操作。 32 | 2. 工单:某个人必须在几天内执行某种操作。 33 | 3. 日志:没有人会马上看这些日志,但是以后需要的时候可以用来分析。 34 | 35 | ### 可用性时间表 36 | 37 | 90% 每年 36.5 天,每季度 9 天。每月 3 天,每周 16.8 小时,每天 2.4 小时,每小时 6 分钟 38 | ... 39 | 99.999% 每年 5.26 分钟,每季度 1.30 分钟,每月 25.9 秒,每周 6.05 秒,每天 0.87 秒,每小时 0.04 秒 40 | 41 | ## 个人小结 42 | 43 | 本书在我踉踉跄跄的情况下勉强读完了,因为没有结合自己的实际工作,所以也只能说是了解了一些 Google 在 SRE 上面的探索,以及一些发展历程。 44 | -------------------------------------------------------------------------------- /02.learning/learning-google-sre/第四阶段读后感和思考.md: -------------------------------------------------------------------------------- 1 | # Google SRE 运维解密 2 | 3 | ## 阅读章节 4 | 5 | - 第 23 章 管理关键状态:利用分布式共识来提高可靠性 6 | - 第 24 章 分布式周期性任务系统 7 | - 第 25 章 数据处理流水线 8 | - 第 26 章 数据完整性:读写一致 9 | - 第 27 章 可靠地进行产品的大规模发布 10 | 11 | ## 阅读时间 12 | 13 | “阅读记录 App”。 14 | 15 | ## 读后感 16 | 17 | CAP 理论,论述了一个分布式系统不可能同时满足三个要求: 18 | 1. 每个节点上所见是数据是一致的。 19 | 2. 每个节点都可以访问数据。 20 | 3. 可以承受网络分区问题。 21 | 22 | 通过某种机制来解决多个进程上执行带来的冲突,这就是最终一致。 23 | 24 | 推荐 Kyle Kingsburg 写的有关分布式系统正确性的文章,包含数据库中会发生的意外和不正确的系统行为。可参见 https://aphyr.com/tags/jepsn 25 | 26 | 业界减少脑裂(split-brain)的常规做法是通过心跳来互相监控,如果某个文件服务器无法联系到另外一个服务器,它会发送一个 STONITH 命令来强制关闭另外一个服务器,同时成为文件的主服务者。 27 | 28 | 分布式共识算法 29 | 30 | 复制状态机(replicated state machine, RSM) 31 | 32 | 系统负载: 33 | 34 | - 吞吐量 35 | - 请求类型 36 | - 读请求的一致性要求 37 | - 如果数据大小可变,请求的大小。 38 | 39 | 考虑副本位置时,应该将灾难恢复考虑在内:在某个存储关键数据的系统中,共识系统的副本也就是该系统数据的在线拷贝。 40 | 41 | 所有的重要生产系统为了更好的检测故障或者进行故障排除,都需要监控。 42 | 43 | - 针对提议接收时间的延迟分布。 44 | - 系统不同部分之间观察到的网络延迟。 45 | - 接收者在持久化日志上花费的时间。 46 | - 系统每秒处理的字节数。 47 | 48 | 49 | ## 个人小结 50 | 51 | 本阶段使用电脑+微信阅读听的方式阅读了一部分,专注力方面有所提升。 52 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/0.开篇词 | 别再让Linux性能问题成为你的绊脚石.md: -------------------------------------------------------------------------------- 1 | ## 开篇词 | 别再让Linux性能问题成为你的绊脚石 2 | 3 | 实战以自己的一个实际事故开启,非常具备代入感,(系统进程 CPU 100%),作者在刚开始做为新人时,面对着电脑,两眼一抹黑,不知道从哪儿下手排查和解决,这个时候你可能已经下定决心,抓起几本大头书开始学习了,不成想看了一段时间,自己很认真,但是却依然没有解决思路。 4 | 5 | 其实这就是我们陷入了困境,选择了最不好走的路,对于基础知识的应用我们不能期盼扮演救火的角色,而只能做为自我提升的储备,我们应该从实际问题出发。 6 | 7 | 通过网络搜索,公司的技术大拿,学习他们的思路和方法,特别是各种 Linux 性能工具。 8 | 9 | 性能问题一般都不是单一的技术问题,而是一个系统工程,牵一发而动全身。涉及到程序设计,算法分析,编程语言,系统、存储、网络等各种底层基础设施。你现在能明白为什么你看了那么多书好像也解决不了了吗?(因为你看的还是太少,花的时间精力都不足以让你改变,融会贯通) 10 | 11 | 性能优化考验的是你的综合能力,最有挑战的工作。 12 | 13 | 本篇所涉及到的 14 | 15 | 命令:top,free 16 | 17 | 问题:CPU 100%,内存占用很高,iowait 很高, 18 | 19 | 带着问题学习是适合绝大部分人的,也才会让自己尝到甜头,就好像我们的读书会一样。 20 | 21 | 全专栏均以案例驱动,讲解 Linux 性能基本指标,工具,观测、分析、调优方法。 22 | 23 | 五大模块:CPU性能,磁盘 I/O 性能,内存性能,网络性能,实战。(每个模块均以基础篇,案例篇,套路篇,答疑篇来解疑,由浅入深。 24 | 25 | 鸡汤文:想要得到你就要学会付出,要付出还要坚持;如果你真的觉得很难,那你就放弃,如果你放弃了就不要抱怨。人生就是这样,世界是平衡的,每个人都是通过自己的努力,去决定自己生活的样子。 26 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/1.如何学习的Linux性能优化.md: -------------------------------------------------------------------------------- 1 | ## 01|如何学习的Linux性能优化 2 | 3 | 大多数人对性能问题投降的原因:1. 没有找到有效的方法学原理,无法深入学下去,不能建立起性能的全局观。2. 性能问题的根源太复杂,既不懂怎么分析,也不能抽丝剥茧的找到瓶颈。 4 | 5 | 你不需要了解每个组件的所有实现细节,也可以分析其性能问题。 6 | 7 | 性能指标,学习性能优化的第一步。 8 | 9 | 高并发-吞吐 10 | 11 | 响应快-延时 12 | 13 | 这两个指标是从应用负载的视角来考察的性能,直接影响的是产品终端的用户体验。相对应的系统资源的视角,有资源使用率、饱和度。(那什么是饱和度呢?) 14 | 15 | 性能问题的本质是什么?(可以作为面试题去考察候选人的理解) 系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求。 16 | 17 | 性能分析是指找出应用或系统的瓶颈,并设法去避免或缓解它们。 18 | 19 | 1. 选择指标评估应用程序合系统的性能 20 | 2. 为应用程序和系统设置性能目标 21 | 3. 进行性能基准测试 22 | 4. 性能分析定位瓶颈 23 | 5. 优化系统和应用程序 24 | 6. 性能监控和告警 25 | 26 | 学习好性能分析和优化的最核心问题是建立整体系统性能的全局观。 27 | 28 | 1. 理解最基本的几个系统知识原理 29 | 2. 掌握必要的性能工具 30 | 3. 实际场景演练,贯穿不同的组件 31 | 32 | 性能领域大师:不伦丹.格雷格(BrendanGregg.com)开发了多款性能工具,DTrace,工具图谱全啊 33 | 34 | 性能工具的选用:一个正确的选择胜过千百次的努力。但是千万不要把性能工具当成学习的全部。工具只是解决问题的手段,关键在于你的用法。 35 | 36 | 学习技巧 37 | 38 | 1. 虽然系统的原理很重要,但是在刚开始一定不要试图抓住所有的实现细节。 39 | 2. 边学边实践,通过大量的案例演习掌握 Linux 性能的分析和优化 40 | 3. 勤思考,多反思,善总结,多问为什么 41 | 42 | 该课程还需要大家准备一台 Linux 机器。 43 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/10.案例篇:系统的软中断CPU使用率升高,我该怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办? 2 | 3 | ### 笔记 4 | 5 | 软中断处理程序被分为上下半两部分: 6 | 7 | - 上半部分对应硬中断,用来快速处理中断; 8 | - 下半部分对应软中断,用来异步处理上半部分未完成的工作。 9 | 10 | /proc/softirqs 软中断的运行情况,但是这里面是累积中断次数,而我们应该关注的是中断次数的变化速率。 11 | 12 | 工具:sar、hping3、tcpdump 13 | 14 | 当你看 top 报告时,不要忽略任何细节,比方说软中断占比不高,但是一直都在持续,也是可能有问题的。 15 | 16 | sar 可以用来查看系统的网络收发情况,可以观察网络收发的吞吐量(BPS, 每秒收发的字节数),可以观察网络收发的 PPS(每秒收发的网络帧数) 17 | 18 | ### 发现面试题 19 | 20 | 如何解决 SYN FLOOD 攻击呢?(从交换机或者硬件防火墙中封掉来源IP,这样 SYN FLOOD 网络帧就不会发送到服务器中了。 21 | 22 | 用什么工具可以观察命令输出的变化情况呢?(watch 命令,定期运行一个命令来查看输出,加上 -d 参数还可以高亮出变化的部分。 23 | 24 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/11.套路篇:如何迅速分析出系统CPU的瓶颈在哪里?.md: -------------------------------------------------------------------------------- 1 | ## 11 | 套路篇:如何迅速分析出系统CPU的瓶颈在哪里? 2 | 3 | ### 笔记 4 | 5 | ### 发现面试题 6 | 7 | CPU 的性能指标有哪些? 8 | 9 | - CPU 使用率(用户CPU,系统CPU,等待I/O CPU(IOWAIT),软中断和硬中断,窃取CPU,客户CPU)。 10 | - 平均负载 11 | - 进程上下文切换:自愿上下文切换、非自愿上下文切换 12 | - CPU 缓存的命中率 13 | 14 | ### 专栏金句 15 | 16 | 活学活用,把性能指标和性能工具联系起来。 17 | 18 | - 第一个维度,从 CPU 的性能指标出发。也就是说,当你要查看某个性能指标时,要清楚知道哪些工具可以做到。 19 | - 第二个维度,从工具出发。也就是当你已经安装了某个工具后,要知道这个工具能提供哪些指标。 20 | 21 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/12.套路篇:CPU 性能优化的几个思路.md: -------------------------------------------------------------------------------- 1 | ## 12 | 套路篇:CPU 性能优化的几个思路 2 | 3 | ### 笔记 4 | 5 | 性能优化方法论: 6 | 7 | - 怎么判断它是不是有效(特别是优化后,到底能提升多少性能? 8 | - 性能问题通常不是独立的,如果有多个性能问题同时发生,你应该先优化哪一个呢? 9 | - 提升性能的方法并不是唯一的,当有多个方法可以选择时,你会选择哪一种呢? 10 | 11 | 性能评估”三步走“: 12 | 13 | 1. 确定想的量化指标; 14 | 2. 测试优化前的性能指标; 15 | 3. 测试优化后的性能指标; 16 | 17 | 避免性能测试工具干扰应用程序的性能。 18 | 19 | 性能优化并发没有成本。 20 | 21 | 过早优化是万恶之源。 22 | 23 | ### 发现面试题 24 | 25 | 多个性能问题同时存在,要怎么选择? 26 | 27 | ”二八原则“,并不是所有的性能问题都值得优化。(动手之前先动脑,先把这些性能问题分析一遍,找出重要的、可以最大程度提升性能的问题,从它开始优化) 28 | 29 | 应用程序优化的方法: 30 | 31 | 1. 编译器优化 32 | 2. 算法优化 33 | 3. 异步处理 34 | 4. 多线程代替多进程 35 | 5. 善用缓存 36 | 37 | 系统层面CPU优化方法: 38 | 39 | - CPU 绑定 40 | - CPU 独占 41 | - 优先级调整 42 | - 为进程设置资源限制 43 | - NUMA(Non-Uniform Memory Access)优化 44 | - 中断负载均衡 45 | 46 | ### 专栏金句 47 | 48 | 不要局限在单一维度的指标上。 49 | 50 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/13.答疑(一):无法模拟出 RES 中断的问题,怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 13 | 答疑(一):无法模拟出 RES 中断的问题,怎么办? 2 | 3 | ### 专栏金句 4 | 5 | 授之以鱼,不如授之以渔。我们专栏的学习核心,一定是教会你性能分析的原理和思路,性能工具只是我们的路径和手段。 6 | 7 | 学习是一个“从薄到厚再变薄”的过程,我们从细节知识入手开始学习,积累到一定程度,需要整理成一个体系来记忆,这其中还要不断地对这个体系进行细节修补。有疑问、有反思才可以达到最佳的学习效果。 8 | 9 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/14.答疑(二):如何用perf工具分析Java程序?.md: -------------------------------------------------------------------------------- 1 | ## 14 | 答疑(二):如何用perf工具分析Java程序? 2 | 3 | ### 笔记 4 | 5 | ### 专栏金句 6 | 7 | 学习性能优化时,不要一开始就把自己限定在具体的某个编程语言或者性能工具中,纠结于语言或工具的细节出不来 8 | 9 | 掌握整体的分析思路,才是我们首先要做的。因为,性能优化的原理和思路,在任何编程语言中都是相通的。 10 | 11 | 如果你想成为高手,辛苦和坚持都是不可避免的。 12 | 13 | 任何东西的第一遍学习有不懂的地方很正常,忍住恐惧别放弃,继续往后走,前面很多问题可能会一并解决掉,再看第二遍、第三遍就更轻松了。 14 | 15 | 抓住主线不动摇,先从最基本的原理开始,掌握性能分析的思路,然后再逐步深入,探究细节,不要试图一口吃成个大胖子。 16 | 17 | ### 推荐 18 | 19 | 《性能之巅:洞悉系统、企业与云计算》 20 | 21 | [brendangregg.com](http://brendangregg.com) -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/15.基础篇:Linux内存是怎么工作的?.md: -------------------------------------------------------------------------------- 1 | ## 15 | 基础篇:Linux内存是怎么工作的? 2 | 3 | ### 笔记 4 | 5 | 并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才分配物理内存,并且分配后的物理内存,是通过内存映射来管理的。 6 | 7 | 内存映射,就是将虚拟内存地址映射到物理内存地址。 8 | 9 | 多级页表和大页 10 | 11 | ### 发现面试题 12 | 13 | 内存紧张时,系统通过哪些方法回收内存? 14 | 15 | - 回收缓存,比如使用 LRU 算法回收最近使用最少的内存页面; 16 | - 回收不常访问的内存,把不常用的内存通过交换分区直接写到磁盘中。 17 | - 杀死进程,内存紧张时系统会通过 OOM ,直接杀掉占用大量内存的进程。 18 | 19 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/16.基础篇:怎么理解内存中的Buffer和Cache?.md: -------------------------------------------------------------------------------- 1 | ## 16 | 基础篇:怎么理解内存中的Buffer和Cache? 2 | 3 | ### 笔记 4 | 5 | buffers: 对应 /proc/meminfo 中的 buffers 值。 6 | 7 | Cache 对应 /proc/meminfo 中 Cached 与 SReclaimable 之和。 8 | 9 | /proc 是 Linux 内核提供的一种特殊文件系统,是用户跟内核交互的接口 10 | 11 | Buffers 是用来缓存磁盘的数据。 12 | 13 | Cached 是用来缓存文件读取的数据。 14 | 15 | Buffer 既可以用作“将要写入磁盘数据的缓存”,也可以用作“从磁盘读取数据的缓存”。 16 | 17 | Cache 既可以用作“从文件读取数据的页缓存”,也可以用作“写文件的页缓存”。 18 | 19 | Buffer 是对磁盘数据的缓存,而 Cache 是文件数据的缓存,它们既会用在读请求中,也会用在写请求中。 20 | 21 | 配置文件:/proc/< pid >/smaps 22 | 23 | ### 发现面试题 24 | 25 | 为什么前面文档上说 Cache 是文件读的页缓存,怎么现在写文件也有它的份? 26 | 27 | 虽然文档上只提到,Cache 是文件读的缓存,但实际上,Cache 也会缓存写文件时的数据。 28 | 29 | ### 专栏金句 30 | 31 | 初学时不用非得理解所有内容,继续往后学,多理解相关的概念并配合一定的实践之后,再回头复习往往会容易不少。当然,基本功不容放弃。 32 | 33 | 我们应该掌握的是通用思路和方法,不要死记硬背。 34 | 35 | 在排查性能问题时,由于各种资源的性能指标太多,我们不可能记住所有指标的详细含义。那么,准确高效的手段——查文档,就非常重要了。 36 | 37 | ### 精选留言 38 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/17.案例篇:如何利用系统缓存优化程序的运行效率?.md: -------------------------------------------------------------------------------- 1 | ## 17 | 案例篇:如何利用系统缓存优化程序的运行效率? 2 | 3 | ### 笔记 4 | 5 | ### 命令 6 | 7 | cachestat 8 | 9 | cachetop 10 | 11 | ### 专栏金句 12 | 13 | 你想要做成某件事情,结果应该怎么评估? 14 | 15 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/18.案例篇:内存泄漏了,我该如何定位和处理?.md: -------------------------------------------------------------------------------- 1 | ## 18 | 案例篇:内存泄漏了,我该如何定位和处理? 2 | 3 | ### 笔记 4 | 5 | 内存泄露的危害非常大,不仅应用程序自己不能访问,系统也不能把它们再次分配给其他应用。 6 | 7 | 8 | 9 | ### 命令 10 | 11 | 预先安装 sysstat docker bcc 软件包: 12 | 13 | ```sh 14 | # install sysstat docker 15 | sudo apt-get install -y sysstat docker.io 16 | 17 | # Install bcc 18 | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD 19 | echo "deb https://repo.iovisor.org/apt/bionic bionic main" | sudo tee /etc/apt/sources.list.d/iovisor.list 20 | sudo apt-get update 21 | sudo apt-get install -y bcc-tools libbcc-examples linux-headers-$(uname -r) 22 | ``` 23 | 24 | 运行案例: 25 | 26 | ```sh 27 | docker run --name=app -itd feisky/app:mem-leak 28 | docker logs app 29 | 2th => 1 30 | 3th => 2 31 | 4th => 3 32 | 5th => 5 33 | 6th => 8 34 | 7th => 13 35 | ``` 36 | 37 | vmstat 观察内存变化情况: 38 | 39 | ```sh 40 | 41 | # 每隔3秒输出一组数据 42 | $ vmstat 3 43 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 44 | r b swpd free buff cache si so bi bo in cs us sy id wa st 45 | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 46 | r b swpd free buff cache si so bi bo in cs us sy id wa st 47 | 0 0 0 6601824 97620 1098784 0 0 0 0 62 322 0 0 100 0 0 48 | 0 0 0 6601700 97620 1098788 0 0 0 0 57 251 0 0 100 0 0 49 | 0 0 0 6601320 97620 1098788 0 0 0 3 52 306 0 0 100 0 0 50 | 0 0 0 6601452 97628 1098788 0 0 0 27 63 326 0 0 100 0 0 51 | 2 0 0 6601328 97628 1098788 0 0 0 44 52 299 0 0 100 0 0 52 | 0 0 0 6601080 97628 1098792 0 0 0 0 56 285 0 0 100 0 0 53 | ``` 54 | 55 | top,ps 观察进程的内存使用情况。 56 | 57 | pmap 查看进程的内存分布。 58 | 59 | memleak 检测内存泄露的工具。 60 | 61 | ```sh 62 | 63 | # -a 表示显示每个内存分配请求的大小以及地址 64 | # -p 指定案例应用的PID号 65 | $ /usr/share/bcc/tools/memleak -a -p $(pidof app) 66 | WARNING: Couldn't find .text section in /app 67 | WARNING: BCC can't handle sym look ups for /app 68 | addr = 7f8f704732b0 size = 8192 69 | addr = 7f8f704772d0 size = 8192 70 | addr = 7f8f704712a0 size = 8192 71 | addr = 7f8f704752c0 size = 8192 72 | 32768 bytes in 4 allocations from stack 73 | [unknown] [app] 74 | [unknown] [app] 75 | start_thread+0xdb [libpthread-2.27.so] 76 | ``` 77 | 78 | ### 发现面试题 79 | 80 | 内存泄露到底是怎么发生的? 81 | 内存泄露如何检测呢?如果你已经发现了内存泄露,该如何定位和处理呢? 82 | 83 | ### 专栏金句 84 | 85 | 为了避免内存泄漏:养成良好的编程习惯,比如分配内存后,一定要先写好内存释放的代码,再去开发其他逻辑。 86 | 有借有还,才能高效运转,再借不难。 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/19.案例篇:为什么系统的Swap变高了(上).md: -------------------------------------------------------------------------------- 1 | ## 19 | 案例篇:为什么系统的Swap变高了(上) 2 | 3 | ### 笔记 4 | 5 | swap 包括换出和换入两个过程。 6 | 7 | 换出,就是把进程暂时不用的内存数据存储到磁盘中,并释放这些数据所占用的内存。 8 | 换入,是在进程再次访问这些内存的时候,把它们从磁盘读到内存中来。 9 | 10 | 直接内存回收,kswapd0,定义了三个内存阈值(watermark,水位):页最小阈值(pages_min)、页低阈值(pages_low)、页高阈值(pages_high)、剩余内存(pages_free)。 11 | 12 | 内核选项:`/proc/sys/vm/min_free_kbytes` 13 | 14 | 计算方法: 15 | ``` 16 | pages_low = pages_min*5/4 17 | pages_high = pages_min*3/2 18 | ``` 19 | 20 | ```sh 21 | $ cat /proc/zoneinfo 22 | ... 23 | Node 0, zone Normal 24 | pages free 227894 25 | min 14896 26 | low 18620 27 | high 22344 28 | ... 29 | nr_free_pages 227894 30 | nr_zone_inactive_anon 11082 31 | nr_zone_active_anon 14024 32 | nr_zone_inactive_file 539024 33 | nr_zone_active_file 923986 34 | ... 35 | ``` 36 | 37 | - pages 处的 min、low、high,就是上面提到的三个内存阈值,而 free 是剩余内存页数,它跟后面的 nr_free_pages 相同。 38 | - nr_zone_active_anon 和 nr_zone_inactive_anon,分别是活跃和非活跃的匿名页数。 39 | - nr_zone_active_file 和 nr_zone_inactive_file,分别是活跃和非活跃的文件页数。 40 | 41 | 42 | /proc/sys/vm/zone_reclaim_mode: 43 | 44 | - 默认0,表示既可以从其他 Node 寻找空闲内存,也可以从本地回收内存。 45 | - 1、2、4 都表示只回收本地内存,2 表示可以回写脏数据回收内存,4 表示可以用 swap 方式回收内存。 46 | 47 | /proc/sys/vm/swappiness 范围: 0-100,调整 swap 积极程度的权重。 48 | 49 | ### 命令 50 | 51 | numactl 52 | 53 | ### 发现面试题 54 | 55 | 56 | ### 专栏金句 57 | 58 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/2.基础篇:到底应该怎么理解“平均负载”.md: -------------------------------------------------------------------------------- 1 | ## 02|基础篇:到底应该怎么理解“平均负载” 2 | 3 | uptime 最后三个数是什么? 4 | 5 | 1,5,15 分钟平均负载,什么是平均负载? 6 | 7 | 简单来说,就是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。(它跟 CPU 使用率没有直接关系。) 8 | 9 | 可运行状态,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是通过 ps 命令看到的处于 R 状态的进程。 10 | 11 | 不可中断状态的进程是指正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如等待硬件设备 IO 响应,ps 命令看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep )的进程。 12 | 13 | 不可中断状态实际上是系统对进程和硬件设备的一种保护机制。 14 | 15 | 多问自己几个为什么,以求能够彻底理解现象背后的本质原理,用起来更灵活,也更有底气。 16 | 17 | 平均负载最理想的情况是等于 CPU 个数,所以我们在评判平均负载时,首先我们要知道系统有几个 CPU 18 | 19 | 当平均负载高于 CPU 数量 70% 我门就应该去分析排查负载高的问题。但是数值不是绝对的,只是个参考,最好是监控起来,看图表趋势。 20 | 21 | 平均负载案例分析工具:iostat,mpstat,pidstat 22 | 23 | mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。 24 | 25 | pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。 26 | 27 | stress 是一个 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景。 28 | 29 | 每个进程等待 CPU 的时间(%wait列) 30 | 31 | 平均负载看了这么多,是不是一定是负载高就有问题呢?也不一定,因为你的程序可能是 CPU 密集型的,平均负载高不一定代表 CPU 使用率高,还可能是io繁忙。负载高时,你可以使用mpstat,pidstat 工具辅助分析负载的原因。 32 | 33 | ### 命令 34 | 35 | man uptime 36 | 37 | top (/proc/cpuinfo) 38 | 39 | apt install stress sysstat 40 | 41 | watch -d uptime 42 | 43 | stress -cpu 1 —timeout 600 44 | 45 | mpstat -P ALL 5 1 46 | 47 | pidstat -u 5 1 48 | 49 | stress -i 1 —timeout 600 50 | 51 | stress -c 8 —timeout 600 52 | 53 | ### 面试题 54 | 55 | 什么是平均负载? 56 | 57 | 平均负载多少合理? 58 | 59 | 生产环境,平均负载多高时,需要我们重点关注? 60 | 61 | /proc/cpuinfo? 里面的参数详解 62 | 63 | ### 专栏金句 64 | 65 | 全局观举例:初秋时北京的天气,如果我们只看中午的温度,您可能还以为在 7 月份的夏天,但是你结合了早上、中午、晚上三个时间点的温度来看,基本可以全方位的了解一天的天气情况了。 66 | 67 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/20.案例篇:为什么系统的Swap变高了(下).md: -------------------------------------------------------------------------------- 1 | ## 20 | 案例篇:为什么系统的Swap变高了?(下) 2 | 3 | ### 笔记 4 | 5 | swap 分区和 swap 文件。 6 | 7 | 指标: 8 | 9 | kbcommit 10 | kbactive 11 | kbinact 12 | 13 | /proc/pid/status 14 | 15 | ### 命令 16 | 17 | 配置 swap 文件大小: 18 | ```sh 19 | # 创建Swap文件 20 | $ fallocate -l 8G /mnt/swapfile 21 | # 修改权限只有根用户可以访问 22 | $ chmod 600 /mnt/swapfile 23 | # 配置Swap文件 24 | $ mkswap /mnt/swapfile 25 | # 开启Swap 26 | $ swapon /mnt/swapfile 27 | ``` 28 | 29 | 使用 dd 命令,模拟大文件的读取: 30 | 31 | ```sh 32 | # 写入空设备,实际上只有磁盘的读请求 33 | $ dd if=/dev/sda1 of=/dev/null bs=1G count=2048 34 | ``` 35 | 36 | sar 命令,查看内存各个指标的变化情况: 37 | ```sh 38 | # 间隔1秒输出一组数据 39 | # -r表示显示内存使用情况,-S表示显示Swap使用情况 40 | $ sar -r -S 1 41 | 04:39:56 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 42 | 04:39:57 6249676 6839824 1919632 23.50 740512 67316 1691736 10.22 815156 841868 4 43 | 44 | 04:39:56 kbswpfree kbswpused %swpused kbswpcad %swpcad 45 | 04:39:57 8388604 0 0.00 0 0.00 46 | 47 | 04:39:57 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 48 | 04:39:58 6184472 6807064 1984836 24.30 772768 67380 1691736 10.22 847932 874224 20 49 | 50 | 04:39:57 kbswpfree kbswpused %swpused kbswpcad %swpcad 51 | 04:39:58 8388604 0 0.00 0 0.00 52 | 53 | … 54 | 55 | 56 | 04:44:06 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 57 | 04:44:07 152780 6525716 8016528 98.13 6530440 51316 1691736 10.22 867124 6869332 0 58 | 59 | 04:44:06 kbswpfree kbswpused %swpused kbswpcad %swpcad 60 | 04:44:07 8384508 4096 0.05 52 1.27 61 | ``` 62 | 63 | ```sh 64 | cachetop 5 65 | 66 | # -d 表示高亮变化的字段 67 | # -A 表示仅显示Normal行以及之后的15行输出 68 | $ watch -d grep -A 15 'Normal' /proc/zoneinfo 69 | Node 0, zone Normal 70 | pages free 21328 71 | min 14896 72 | low 18620 73 | high 22344 74 | spanned 1835008 75 | present 1835008 76 | managed 1796710 77 | protection: (0, 0, 0, 0, 0) 78 | nr_free_pages 21328 79 | nr_zone_inactive_anon 79776 80 | nr_zone_active_anon 206854 81 | nr_zone_inactive_file 918561 82 | nr_zone_active_file 496695 83 | nr_zone_unevictable 2251 84 | nr_zone_write_pending 0 85 | ``` 86 | 87 | ```sh 88 | # 按VmSwap使用量对进程排序,输出进程名称、进程ID以及SWAP用量 89 | $ for file in /proc/*/status ; do awk '/VmSwap|Name|^Pid/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 3 -n -r | head 90 | dockerd 2226 10728 kB 91 | docker-containe 2251 8516 kB 92 | snapd 936 4020 kB 93 | networkd-dispat 911 836 kB 94 | polkitd 1004 44 kB 95 | ``` 96 | 97 | 关闭 swap 98 | ```sh 99 | swapoff -a 100 | ``` 101 | 102 | 关闭 swap 后再重新打开 103 | 104 | ```sh 105 | swapoff -a && swapon -a 106 | ``` 107 | 108 | ### 发现面试题 109 | 110 | 111 | ### 专栏金句 112 | 113 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/21.套路篇:如何“快准狠”找到系统内存的问题?.md: -------------------------------------------------------------------------------- 1 | ## 21 | 套路篇:如何“快准狠”找到系统内存的问题? 2 | 3 | ### 笔记 4 | 5 | 为了迅速定位内存问题,我通常会先运行几个覆盖面比较大的性能工具,比如 free、top、vmstat、pidstat 等。 6 | 7 | 分析思路: 8 | 1. 先用 free 和 top,查看系统整体的内存使用情况。 9 | 2. 再用 vmstat 和 pidstat,查看一段时间的趋势,从而判断出内存问题的类型。 10 | 3. 最后进行详细分析,比如内存分配分析、缓存 / 缓冲区分析、具体进程的内存使用分析等。 11 | 12 | ### 命令 13 | 14 | 15 | ![](https://static001.geekbang.org/resource/image/e2/36/e28cf90f0b137574bca170984d1e6736.png) 16 | ![](https://static001.geekbang.org/resource/image/8f/ed/8f477035fc4348a1f80bde3117a7dfed.png) 17 | ![](https://static001.geekbang.org/resource/image/52/9b/52bb55fba133401889206d02c224769b.png) 18 | ![](https://static001.geekbang.org/resource/image/d7/fe/d79cd017f0c90b84a36e70a3c5dccffe.png) 19 | 20 | 21 | ### 发现面试题 22 | 怎样衡量内存的性能,也就是性能指标问题? 23 | - 系统内存使用情况(已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量) 24 | - 进程内存使用情况 25 | - 缺页异常 26 | 27 | 28 | ### 专栏金句 29 | 30 | 31 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/22.答疑(三):文件系统与磁盘的区别是什么?.md: -------------------------------------------------------------------------------- 1 | ## 22 | 答疑(三):文件系统与磁盘的区别是什么? 2 | 3 | ### 笔记 4 | 5 | 系统通过三种方式回收内存: 6 | 1. 基于 LRU(Least Recently Used)算法,回收缓存; 7 | 2. 基于 Swap 机制,回收不常访问的匿名页; 8 | 3. 基于 OOM(Out of Memory)机制,杀掉占用大量内存的进程。 9 | 10 | active 记录活跃的内存页; 11 | inactive 记录非活跃的内存页。 12 | 13 | 磁盘是存储数据的块设备,也是文件系统的载体。 14 | 15 | bcc-tools 在 CentOS 上安装可能会遇到不少问题。 16 | 解决步骤: 17 | 1. 升级内核 18 | 2. 安装 bcc-tools 19 | 20 | 21 | ### 命令 22 | 23 | 每个进程的 PSS ,是指把共享内存平分到各个进程后,再加上进程本身的非共享内存大小的和。 24 | ```sh 25 | # 使用grep查找Pss指标后,再用awk计算累加值 26 | $ grep Pss /proc/[1-9]*/smaps | awk '{total+=$2}; END {printf "%d kB\n", total }' 27 | 391266 kB 28 | ``` 29 | 30 | ### 发现面试题 31 | 32 | 怎么理解 LRU 内存回收? 33 | 回收后的内存又到哪里去了? 34 | OOM 是按照虚拟内存还是实际内存来打分? 35 | 怎么估计应用程序的最小内存? 36 | 37 | ### 专栏金句 38 | 39 | 40 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/23.基础篇:Linux 文件系统是怎么工作的?.md: -------------------------------------------------------------------------------- 1 | ## 23 | 基础篇:Linux 文件系统是怎么工作的? 2 | 3 | ### 笔记 4 | 5 | 文件系统,是对存储设备上的文件,进行组织管理的机制。 6 | 7 | Linux 文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(directory entry)。它们主要用来记录文件的元信息和目录结构。 8 | 9 | - 索引节点 inode,用来记录文件的元数据。包括 inode 编号、文件大小、访问权限、修改日期、数据的位置。 10 | 索引节点和文件一一对应,它跟文件内容一样,都会被持久化存储到磁盘中,索引节点(inode)同样占用磁盘空间。 11 | - 目录项 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。 12 | 是有内核维护的一个内存数据结构,也被称为目录项缓存。 13 | 14 | 磁盘读写的最小单位是扇区,然而扇区只有 512B 大小,如果每次都读写这么小的单位,效率一定很低。所以,文件系统又把连续的扇区组成了逻辑块,然后每次都以逻辑块为最小单元,来管理数据。常见的逻辑块大小为 4KB,也就是由连续的 8 个扇区组成。 15 | 16 | ![](https://static001.geekbang.org/resource/image/32/47/328d942a38230a973f11bae67307be47.png) 17 | 18 | 注意事项: 19 | 1. 目录项本身就是一个内存缓存,而索引节点则是存储在磁盘中的数据。 20 | 2. 磁盘在执行文件系统格式化时,会被分成三个存储区域,超级块、索引节点区和数据块区。 21 | 22 | ![](https://static001.geekbang.org/resource/image/72/12/728b7b39252a1e23a7a223cdf4aa1612.png) 23 | 24 | 25 | 文件读写方式的各种差异,导致 I/O 的分类多种多样。最常见的有,缓冲与非缓冲 I/O、直接与非直接 I/O、阻塞与非阻塞 I/O、同步与异步 I/O 等。 26 | 27 | 经常使用 slabtop ,来找到占用内存最多的缓存类型。 28 | 29 | ### 命令 30 | 31 | ```sh 32 | $ df /dev/sda1 33 | Filesystem 1K-blocks Used Available Use% Mounted on 34 | /dev/sda1 30308240 3167020 27124836 11% / 35 | 36 | # -h 以获得更好的可读性显示 37 | $ df -h /dev/sda1 38 | Filesystem Size Used Avail Use% Mounted on 39 | /dev/sda1 29G 3.1G 26G 11% / 40 | 41 | # -i 可以查看 inode 42 | $ df -i /dev/sda1 43 | Filesystem Inodes IUsed IFree IUse% Mounted on 44 | /dev/sda1 3870720 157460 3713260 5% / 45 | ``` 46 | 47 | ```sh 48 | # 从 /proc/meminfo 中获得他们的大小 49 | $ cat /proc/meminfo | grep -E "SReclaimable|Cached" 50 | Cached: 748316 kB 51 | SwapCached: 0 kB 52 | SReclaimable: 179508 kB 53 | ``` 54 | 55 | ```sh 56 | # 所有目录项和各种文件系统索引节点的缓存情况: 57 | $ cat /proc/slabinfo | grep -E '^#|dentry|inode' 58 | # name : tunables : slabdata 59 | xfs_inode 0 0 960 17 4 : tunables 0 0 0 : slabdata 0 0 0 60 | ... 61 | ext4_inode_cache 32104 34590 1088 15 4 : tunables 0 0 0 : slabdata 2306 2306 0hugetlbfs_inode_cache 13 13 624 13 2 : tunables 0 0 0 : slabdata 1 1 0 62 | sock_inode_cache 1190 1242 704 23 4 : tunables 0 0 0 : slabdata 54 54 0 63 | shmem_inode_cache 1622 2139 712 23 4 : tunables 0 0 0 : slabdata 93 93 0 64 | proc_inode_cache 3560 4080 680 12 2 : tunables 0 0 0 : slabdata 340 340 0 65 | inode_cache 25172 25818 608 13 2 : tunables 0 0 0 : slabdata 1986 1986 0 66 | dentry 76050 121296 192 21 1 : tunables 0 0 0 : slabdata 5776 5776 0 67 | ``` 68 | 69 | 70 | ```sh 71 | # 按下c按照缓存大小排序,按下a按照活跃对象数排序 72 | $ slabtop 73 | Active / Total Objects (% used) : 277970 / 358914 (77.4%) 74 | Active / Total Slabs (% used) : 12414 / 12414 (100.0%) 75 | Active / Total Caches (% used) : 83 / 135 (61.5%) 76 | Active / Total Size (% used) : 57816.88K / 73307.70K (78.9%) 77 | Minimum / Average / Maximum Object : 0.01K / 0.20K / 22.88K 78 | 79 | OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 80 | 69804 23094 0% 0.19K 3324 21 13296K dentry 81 | 16380 15854 0% 0.59K 1260 13 10080K inode_cache 82 | 58260 55397 0% 0.13K 1942 30 7768K kernfs_node_cache 83 | 485 413 0% 5.69K 97 5 3104K task_struct 84 | 1472 1397 0% 2.00K 92 16 2944K kmalloc-2048 85 | ``` 86 | 87 | ### 发现面试题 88 | 89 | 90 | ### 专栏金句 91 | 92 | 在 Linux 中一切皆文件。 93 | >不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。 94 | 95 | 96 | ### 课后题 97 | 98 | `find / -name file-name` 这个命令,会不会导致系统的缓存升高呢?如果有影响,又会导致哪种类型的缓存升高呢? 99 | 100 | 这个命令,会不会导致系统的缓存升高呢? 101 | --> 会的 102 | 如果有影响,又会导致哪种类型的缓存升高呢? 103 | --> /xfs_inode/ proc_inode_cache/dentry/inode_cache 104 | 105 | 实验步骤: 106 | 1. 清空缓存:echo 3 > /proc/sys/vm/drop_caches ; sync 107 | 2. 执行find : find / -name test 108 | 3. 发现更新top 4 项是: 109 | OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME 110 | 37400 37400 100% 0.94K 2200 17 35200K xfs_inode 111 | 36588 36113 98% 0.64K 3049 12 24392K proc_inode_cache 112 | 104979 104979 100% 0.19K 4999 21 19996K dentry 113 | 18057 18057 100% 0.58K 1389 13 11112K inode_cache 114 | 115 | find / -name 这个命令是全盘扫描(既包括内存文件系统又包含本地的xfs【我的环境没有mount 网络文件系统】),所以 inode cache & dentry & proc inode cache 会升高。 116 | 117 | 另外,执行过了一次后再次执行find 就机会没有变化了,执行速度也快了很多,也就是下次的find大部分是依赖cache的结果。 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/24.基础篇:Linux 磁盘I:O是怎么工作的(上).md: -------------------------------------------------------------------------------- 1 | ## 24 | 基础篇:Linux 磁盘I/O是怎么工作的(上) 2 | 3 | ### 笔记 4 | 5 | VFS 是通过目录项、索引节点、逻辑块以及超级块等数据结构,来管理文件。 6 | 7 | 磁盘分为:机械磁盘和固态磁盘。 8 | 9 | 按照接口来分类,比如可以把硬盘分为 IDE(Integrated Drive Electronics)、SCSI(Small Computer System Interface) 、SAS(Serial Attached SCSI) 、SATA(Serial ATA) 、FC(Fibre Channel) 等。 10 | 11 | Linux 内核支持四种 I/O 调度算法,分别是 NONE、NOOP、CFQ 以及 DeadLine 12 | 13 | ![](https://static001.geekbang.org/resource/image/14/b1/14bc3d26efe093d3eada173f869146b1.png) 14 | 15 | ### 命令 16 | 17 | 18 | ### 发现面试题 19 | 20 | 21 | ### 专栏金句 22 | 23 | 24 | ### 课后题 25 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/25.基础篇:Linux 磁盘I:O是怎么工作的(下).md: -------------------------------------------------------------------------------- 1 | ## 25 | 基础篇:Linux 磁盘I/O是怎么工作的(下) 2 | 3 | ### 笔记 4 | 5 | 使用率、饱和度、IOPS、吞吐量以及响应时间,是衡量磁盘性能的基本指标。 6 | 7 | 性能测试工具 fio ,来测试磁盘的 IOPS、吞吐量以及响应时间等核心指标。 8 | 9 | iostat 是最常用的磁盘 I/O 性能观测工具,它提供了每个磁盘的使用率、IOPS、吞吐量等各种常见的性能指标,当然,这些指标实际上来自 /proc/diskstats。 10 | 11 | ![](https://static001.geekbang.org/resource/image/cf/8d/cff31e715af51c9cb8085ce1bb48318d.png) 12 | 13 | 要观察进程的 I/O 情况,你还可以使用 pidstat 和 iotop 这两个工具。 14 | 15 | iotop。它是一个类似于 top 的工具,你可以按照 I/O 大小对进程排序,然后找到 I/O 较大的那些进程。 16 | 17 | ### 命令 18 | 19 | ```sh 20 | # -d -x表示显示所有磁盘I/O的指标 21 | $ iostat -d -x 1 22 | Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util 23 | loop0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 24 | loop1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 25 | sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 26 | sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 27 | ``` 28 | 29 | ```sh 30 | 31 | $ pidstat -d 1 32 | 13:39:51 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command 33 | 13:39:52 102 916 0.00 4.00 0.00 0 rsyslogd 34 | ``` 35 | 36 | ```sh 37 | 38 | $ iotop 39 | Total DISK READ : 0.00 B/s | Total DISK WRITE : 7.85 K/s 40 | Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s 41 | TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 42 | 15055 be/3 root 0.00 B/s 7.85 K/s 0.00 % 0.00 % systemd-journald 43 | ``` 44 | 45 | 46 | ### 发现面试题 47 | 48 | 49 | ### 专栏金句 50 | 51 | 52 | ### 课后题 53 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/26.案例篇:如何找出狂打日志的“内鬼”?.md: -------------------------------------------------------------------------------- 1 | ## 26 | 案例篇:如何找出狂打日志的“内鬼”? 2 | 3 | ### 笔记 4 | 5 | 日志,是了解应用程序内部运行情况,最常用、也最有效的工具。 6 | 7 | ### 命令 8 | 9 | iostat、strace、lsof 10 | 11 | ### 发现面试题 12 | 13 | 14 | ### 专栏金句 15 | 16 | 17 | ### 课后题 18 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/27.案例篇:为什么我的磁盘I:O延迟很高?.md: -------------------------------------------------------------------------------- 1 | ## 27 | 案例篇:为什么我的磁盘I/O延迟很高? 2 | 3 | ### 笔记 4 | 5 | 6 | 7 | ### 命令 8 | 9 | bcc 中的 filetop 和 opensnoop 10 | 11 | 12 | ### 发现面试题 13 | 14 | 15 | ### 专栏金句 16 | 17 | 18 | ### 课后题 19 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/28.案例篇:一个SQL查询要15秒,这是怎么回事?.md: -------------------------------------------------------------------------------- 1 | ## 28 | 案例篇:一个SQL查询要15秒,这是怎么回事? 2 | 3 | ### 笔记 4 | 5 | 6 | 7 | ### 命令 8 | 9 | bcc 中的 filetop 和 opensnoop 10 | 11 | 12 | iostat 命令,查看 I/O 性能问题: 13 | ```sh 14 | $ iostat -d -x 1 15 | Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util 16 | ... 17 | sda 273.00 0.00 32568.00 0.00 0.00 0.00 0.00 0.00 7.90 0.00 1.16 119.30 0.00 3.56 97.20 18 | ``` 19 | 20 | I/O 请求到底是哪些进程导致的呢? 21 | 22 | ```sh 23 | # -d选项表示展示进程的I/O情况 24 | $ pidstat -d 1 25 | 12:04:11 UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command 26 | 12:04:12 999 27458 32640.00 0.00 0.00 0 mysqld 27 | 12:04:12 0 27617 4.00 4.00 0.00 3 python 28 | 12:04:12 0 27864 0.00 4.00 0.00 0 systemd-journal 29 | ``` 30 | 31 | 要分析进程的数据读取,可以使用 strace+lsof 组合: 32 | 33 | ```sh 34 | 35 | $ strace -f -p 27458 36 | [pid 28014] read(38, "934EiwT363aak7VtqF1mHGa4LL4Dhbks"..., 131072) = 131072 37 | [pid 28014] read(38, "hSs7KBDepBqA6m4ce6i6iUfFTeG9Ot9z"..., 20480) = 20480 38 | [pid 28014] read(38, "NRhRjCSsLLBjTfdqiBRLvN9K6FRfqqLm"..., 131072) = 131072 39 | [pid 28014] read(38, "AKgsik4BilLb7y6OkwQUjjqGeCTQTaRl"..., 24576) = 24576 40 | [pid 28014] read(38, "hFMHx7FzUSqfFI22fQxWCpSnDmRjamaW"..., 131072) = 131072 41 | [pid 28014] read(38, "ajUzLmKqivcDJSkiw7QWf2ETLgvQIpfC"..., 20480) = 20480 42 | ``` 43 | 44 | 通过 lsof 查看 28014 所对应的 read 38 是哪个文件呢? 45 | 46 | 可以使用 `lsof -p 28014`,但是发现没有输出,可以使用 `echo $?`,原来是报错了,输出的是1。 47 | 48 | 49 | ```sh 50 | 51 | # -t表示显示线程,-a表示显示命令行参数 52 | $ pstree -t -a -p 27458 53 | mysqld,27458 --log_bin=on --sync_binlog=1 54 | ... 55 | ├─{mysqld},27922 56 | ├─{mysqld},27923 57 | └─{mysqld},28014 58 | ``` 59 | 60 | ### 发现面试题 61 | 62 | 63 | ### 专栏金句 64 | 65 | 66 | ### 课后题 67 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/29.案例篇:Redis响应严重延迟,如何解决?.md: -------------------------------------------------------------------------------- 1 | ## 29 | 案例篇:Redis响应严重延迟,如何解决? 2 | 3 | ### 笔记 4 | 5 | 6 | 7 | ### 命令 8 | 9 | 查看 I/O 性能问题: 10 | ```sh 11 | $ iostat -d -x 1 12 | ``` 13 | 14 | I/O 请求来自于哪个进程,使用 `pidstat -d 1` 15 | 16 | strace 指定进程号: 17 | 18 | ```sh 19 | # -f表示跟踪子进程和子线程,-T表示显示系统调用的时长,-tt表示显示跟踪时间 20 | $ strace -f -T -tt -p 9085 21 | [pid 9085] 14:20:16.826131 epoll_pwait(5, [{EPOLLIN, {u32=8, u64=8}}], 10128, 65, NULL, 8) = 1 <0.000055> 22 | [pid 9085] 14:20:16.826301 read(8, "*2\r\n$3\r\nGET\r\n$41\r\nuuid:5b2e76cc-"..., 16384) = 61 <0.000071> 23 | [pid 9085] 14:20:16.826477 read(3, 0x7fff366a5747, 1) = -1 EAGAIN (Resource temporarily unavailable) <0.000063> 24 | [pid 9085] 14:20:16.826645 write(8, "$3\r\nbad\r\n", 9) = 9 <0.000173> 25 | [pid 9085] 14:20:16.826907 epoll_pwait(5, [{EPOLLIN, {u32=8, u64=8}}], 10128, 65, NULL, 8) = 1 <0.000032> 26 | [pid 9085] 14:20:16.827030 read(8, "*2\r\n$3\r\nGET\r\n$41\r\nuuid:55862ada-"..., 16384) = 61 <0.000044> 27 | [pid 9085] 14:20:16.827149 read(3, 0x7fff366a5747, 1) = -1 EAGAIN (Resource temporarily unavailable) <0.000043> 28 | [pid 9085] 14:20:16.827285 write(8, "$3\r\nbad\r\n", 9) = 9 <0.000141> 29 | [pid 9085] 14:20:16.827514 epoll_pwait(5, [{EPOLLIN, {u32=8, u64=8}}], 10128, 64, NULL, 8) = 1 <0.000049> 30 | [pid 9085] 14:20:16.827641 read(8, "*2\r\n$3\r\nGET\r\n$41\r\nuuid:53522908-"..., 16384) = 61 <0.000043> 31 | [pid 9085] 14:20:16.827784 read(3, 0x7fff366a5747, 1) = -1 EAGAIN (Resource temporarily unavailable) <0.000034> 32 | [pid 9085] 14:20:16.827945 write(8, "$4\r\ngood\r\n", 10) = 10 <0.000288> 33 | [pid 9085] 14:20:16.828339 epoll_pwait(5, [{EPOLLIN, {u32=8, u64=8}}], 10128, 63, NULL, 8) = 1 <0.000057> 34 | [pid 9085] 14:20:16.828486 read(8, "*3\r\n$4\r\nSADD\r\n$4\r\ngood\r\n$36\r\n535"..., 16384) = 67 <0.000040> 35 | [pid 9085] 14:20:16.828623 read(3, 0x7fff366a5747, 1) = -1 EAGAIN (Resource temporarily unavailable) <0.000052> 36 | [pid 9085] 14:20:16.828760 write(7, "*3\r\n$4\r\nSADD\r\n$4\r\ngood\r\n$36\r\n535"..., 67) = 67 <0.000060> 37 | [pid 9085] 14:20:16.828970 fdatasync(7) = 0 <0.005415> 38 | [pid 9085] 14:20:16.834493 write(8, ":1\r\n", 4) = 4 <0.000250> 39 | ``` 40 | 41 | `lsof -p 9085` 找出系统调用的操作对象。 42 | 43 | strace 观察系统调用的执行情况, 44 | ```sh 45 | $ strace -f -p 9085 -T -tt -e fdatasync 46 | strace: Process 9085 attached with 4 threads 47 | [pid 9085] 14:22:52.013547 fdatasync(7) = 0 <0.007112> 48 | [pid 9085] 14:22:52.022467 fdatasync(7) = 0 <0.008572> 49 | [pid 9085] 14:22:52.032223 fdatasync(7) = 0 <0.006769> 50 | ... 51 | [pid 9085] 14:22:52.139629 fdatasync(7) = 0 <0.008183> 52 | ``` 53 | 54 | ### 发现面试题 55 | 56 | 57 | ### 专栏金句 58 | 59 | 60 | ### 课后题 61 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/3.基础篇:经常说的 CPU 上下文切换是什么意思?(上).md: -------------------------------------------------------------------------------- 1 | ## 03 | 基础篇:经常说的 CPU 上下文切换是什么意思?(上) 2 | 3 | ## 笔记 4 | 5 | CPU 寄存器和程序计数器(Program Counter, PC) 6 | 7 | CPU 寄存器是 CPU 内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。他们被称为CPU上下文。(因为他们是 CPU 在运行任务前,必须依赖的环境) 8 | 9 | CPU 上下文切换分为几个不同的场景:进程上下切换、线程上下文切换,中断上下文切换。 10 | 11 | 进程的运行空间分为:内核空间和用户空间。分别对应 CPU 特权等级 Ring 0 和 Ring 3 12 | 13 | - 内核空间(Ring 0)具有最高权限,可以直接访问所有资源。 14 | - 用户空间(Ring 3)只能访问受限资源,不能直接访问内存等硬件设备,必须通过系统调用陷入到内核中,才能访问这些特权资源。 15 | 16 | 进程的用户态,进程的内核态。 17 | 18 | 系统调用通常称为特权模式切换,而不是上下文切换。 19 | 20 | - 进程上下文切换,是指从一个进程切换到另一个进程运行。 21 | - 系统调用过程中一直是同一个进程在运行。 22 | 23 | 线程上下文切换 24 | 25 | 线程是调度的基本单位,而进程则是资源拥有的基本单位。 26 | 27 | 中断上下文切换 28 | 29 | 中断上下文,只保存内核态中断服务程序执行所必需的状态,包括 CPU 寄存器、内核堆栈、硬件中断参数等。 30 | 31 | 对同一个CPU来说,中断处理比进程拥有更高的优先级。 32 | 33 | ## 发现面试题: 34 | 35 | 进程在竞争 CPU 时并没有真正运行,为什么还会导致系统的负载升高呢?(答案:CPU 上下文切换就是罪魁祸首。) 36 | 37 | 为什么更新 CPU 寄存器的值,会影响系统的 CPU 性能呢?不是寄存器本身就是为了快速运行任务而设计的吗? 38 | 39 | CPU 上下文切换分为哪些场景?进程上下文切换、线程上下文切换,中断上下文切换。 40 | 41 | 一次系统调用的过程,其实是发生了两次 CPU 上下文切换。(所以,我们经常都在说要减少系统调用,也就是为了减少CPU上下文切换吧) 42 | 43 | 进程上下文切换跟系统调用有什么区别呢? 44 | 45 | ## 专栏金句: 46 | 47 | ## 微信群交流总结: 48 | 49 | ## 发现专栏精选留言: 50 | 51 | 进程切换我想到了很多年前在银行柜台办理业务的情形。 52 | 53 | 1:银行分配各个窗口给来办理业务的人 54 | 55 | 2:如果只有1个窗口开放(系统资源不足),大部分都得等 56 | 57 | 3:如果正在办理业务的突然说自己不办了(sleep),那他就去旁边再想想(等) 58 | 59 | 4:如果突然来了个VIP客户,可以强行插队 60 | 61 | 5:如果突然断电了(中断),都得等。。 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/30.套路篇:如何迅速分析出系统I:O的瓶颈在哪里?.md: -------------------------------------------------------------------------------- 1 | ## 30 | 套路篇:如何迅速分析出系统I/O的瓶颈在哪里? 2 | 3 | ### 笔记 4 | 5 | Linux 系统 I/O 栈图: 6 | ![](https://static001.geekbang.org/resource/image/9e/38/9e42aaf53ff4a544b9a7b03b6ce63f38.png) 7 | 8 | I/O 性能指标:存储空间的使用情况,包括容量、使用量及剩余空间。 9 | 还有比较容易忽略的索引节点的使用情况,包括容量、使用量及剩余量。 10 | 还有缓存使用情况,包括页缓存、目录项缓存、索引节点缓存及各个具体文件系统(ext4、XFS等)的缓存。 11 | 12 | 磁盘 I/O 指标:使用率、IOPS、吞吐量、响应时间。 13 | 14 | ![](https://static001.geekbang.org/resource/image/b6/20/b6d67150e471e1340a6f3c3dc3ba0120.png) 15 | 16 | 根据指标找工具(文件系统和磁盘I/O): 17 | ![](https://static001.geekbang.org/resource/image/6f/98/6f26fa18a73458764fcda00212006698.png) 18 | 根据工具查指标(文件系统和磁盘I/O): 19 | ![](https://static001.geekbang.org/resource/image/c4/e9/c48b6664c6d334695ed881d5047446e9.png) 20 | 21 | 从 I/O 角度来分析,最开始的分析思路基本上类似: 22 | - 先用 iostat 发现磁盘 I/O 性能瓶颈; 23 | - 再借助 pidstat ,定位出导致瓶颈的进程; 24 | - 随后分析进程的 I/O 行为; 25 | - 最后,结合应用程序的原理,分析这些 I/O 的来源。 26 | 27 | ![](https://static001.geekbang.org/resource/image/18/8a/1802a35475ee2755fb45aec55ed2d98a.png) 28 | 29 | ### 命令 30 | 31 | df,查看系统容量 32 | /proc/meminfo、/proc/slabinfo、slabtop,观察页缓存、目录项缓存、索引节点缓存及具体文件系统的缓存情况。 33 | iostat、pidstat 观察磁盘和进程的 I/O 情况。 34 | iostat,pidstat -> strace, lsof 35 | filetop, opensnoop 从内核中跟踪系统调用。 36 | 37 | ### 发现面试题 38 | 39 | 40 | ### 专栏金句 41 | 42 | 43 | 44 | 45 | ### 课后题 46 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/31.套路篇:磁盘 I:O 性能优化的几个思路.md: -------------------------------------------------------------------------------- 1 | ## 31 | 套路篇:磁盘 I/O 性能优化的几个思路 2 | 3 | ### 笔记 4 | 5 | ![](https://static001.geekbang.org/resource/image/9e/38/9e42aaf53ff4a544b9a7b03b6ce63f38.png) 6 | 7 | ### 命令 8 | 9 | fio(Flexible I/O Tester) 最常用的文件系统和磁盘 I/O 性能基准测试工具 10 | 11 | ```sh 12 | 13 | # 随机读 14 | fio -name=randread -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/sdb 15 | 16 | # 随机写 17 | fio -name=randwrite -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/sdb 18 | 19 | # 顺序读 20 | fio -name=read -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/sdb 21 | 22 | # 顺序写 23 | fio -name=write -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/sdb 24 | ``` 25 | 26 | 27 | ```sh 28 | # 使用blktrace跟踪磁盘I/O,注意指定应用程序正在操作的磁盘 29 | $ blktrace /dev/sdb 30 | 31 | # 查看blktrace记录的结果 32 | # ls 33 | sdb.blktrace.0 sdb.blktrace.1 34 | 35 | # 将结果转化为二进制文件 36 | $ blkparse sdb -d sdb.bin 37 | 38 | # 使用fio重放日志 39 | $ fio --name=replay --filename=/dev/sdb --direct=1 --read_iolog=sdb.bin 40 | ``` 41 | 42 | ### 发现面试题 43 | 44 | 45 | ### 专栏金句 46 | 47 | 48 | 49 | 50 | ### 课后题 51 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/32.答疑(四):阻塞、非阻塞 I:O 与同步、异步 I:O 的区别和联系.md: -------------------------------------------------------------------------------- 1 | ## 32 | 答疑(四):阻塞、非阻塞 I/O 与同步、异步 I/O 的区别和联系 2 | 3 | ### 笔记 4 | 5 | 根据应用程序是否阻塞自身运行,可以把 I/O 分为阻塞 I/O 和非阻塞 I/O。 6 | 7 | - 阻塞 I/O,是指应用程序在执行 I/O 操作后,如果没有获得响应,就会阻塞当前线程,不能执行其他任务。 8 | - 非阻塞 I/O,是指应用程序在执行 I/O 操作后,不会阻塞当前的线程,可以继续执行其他的任务。 9 | 10 | 根据 I/O 响应的通知方式的不同,可以把文件 I/O 分为同步 I/O 和异步 I/O。 11 | 12 | - 同步 I/O,是指收到 I/O 请求后,系统不会立刻响应应用程序;等到处理完成,系统才会通过系统调用的方式,告诉应用程序 I/O 结果。 13 | - 异步 I/O,是指收到 I/O 请求后,系统会先告诉应用程序 I/O 请求已经收到,随后再去异步处理;等处理完成后,系统再通过事件通知的方式,告诉应用程序结果。 14 | 15 | ### 命令 16 | 17 | ### 发现面试题 18 | 19 | ### 专栏金句 20 | 21 | ### 课后题 22 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/33.关于 Linux 网络,你必须知道这些(上).md: -------------------------------------------------------------------------------- 1 | ## 33 | 关于 Linux 网络,你必须知道这些(上) 2 | 3 | ### 笔记 4 | 5 | 开放式系统互联通信参考模型(Open System Interconnection Reference Model),简称为 OSI 网络模型。 6 | 7 | OSI 模型把网络互联的框架分为应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层等七层,每个层负责不同的功能。 8 | 9 | - 应用层,负责为应用程序提供统一的接口。 10 | - 表示层,负责把数据转换成兼容接收系统的格式。 11 | - 会话层,负责维护计算机之间的通信连接。 12 | - 传输层,负责为数据加上传输表头,形成数据包。 13 | - 网络层,负责数据的路由和转发。 14 | - 数据链路层,负责 MAC 寻址、错误侦测和改错。 15 | - 物理层,负责在物理网络中传输数据帧。 16 | 17 | OSI 模型太复杂了,所以在 Linux 中,我们实际上使用的是另一个更实用的四层模型,即 TCP/IP 网络模型。 18 | 19 | TCP/IP 模型,把网络互联的框架分为应用层、传输层、网络层、网络接口层等四层,其中, 20 | - 应用层,负责向用户提供一组应用程序,比如 HTTP、FTP、DNS 等。 21 | - 传输层,负责端到端的通信,比如 TCP、UDP 等。 22 | - 网络层,负责网络包的封装、寻址和路由,比如 IP、ICMP 等。 23 | - 网络接口层,负责网络包在物理网络中的传输,比如 MAC 寻址、错误侦测以及通过网卡传输网络帧等。 24 | 25 | ![](https://static001.geekbang.org/resource/image/f2/bd/f2dbfb5500c2aa7c47de6216ee7098bd.png) 26 | 27 | Linux 通用 IP 网络栈的示意图: 28 | ![](https://static001.geekbang.org/resource/image/c7/ac/c7b5b16539f90caabb537362ee7c27ac.png) 29 | 30 | ![](https://static001.geekbang.org/resource/image/3a/65/3af644b6d463869ece19786a4634f765.png) 31 | 32 | ### 命令 33 | 34 | ### 发现面试题 35 | 36 | ### 专栏金句 37 | 38 | ### 课后题 39 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/34.关于 Linux 网络,你必须知道这些(下).md: -------------------------------------------------------------------------------- 1 | ## 34 | 关于 Linux 网络,你必须知道这些(下) 2 | 3 | 4 | ### 笔记 5 | 6 | 用带宽、吞吐量、延时、PPS(Packet Per Second)等指标衡量网络的性能。 7 | 8 | - 带宽,表示链路的最大传输速率,单位通常为 b/s (比特/秒)。 9 | - 吞吐量,表示单位时间内成功传输的数据量,单位通常为 b/s(比特/秒)或者 B/s(字节/秒)。吞吐量受带宽限制,而吞吐量/带宽,也就是该网络的使用率。 10 | - 延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。在不同场景中,这一指标可能会有不同含义。比如,它可以表示,建立连接需要的时间(比如 TCP 握手延时),或一个数据包往返所需的时间(比如 RTT)。 11 | - PPS,是 Packet Per Second(包/秒)的缩写,表示以网络包为单位的传输速率。PPS 通常用来评估网络的转发能力,比如硬件交换机,通常可以达到线性转发(即 PPS 可以达到或者接近理论最大值)。而基于 Linux 服务器的转发,则容易受网络包大小的影响。 12 | 13 | 还有的一些常用的性能指标:网络的可用性(网络能否正常通信)、并发连接数(TCP 连接数量)、丢包率(丢包百分比)、重传率(重新传输的网络包比例)。 14 | 15 | **当套接字处于连接状态(Established)时**, 16 | Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数(即接收队列长度)。 17 | 而 Send-Q 表示还没有被远端主机确认的字节数(即发送队列长度)。 18 | 19 | **当套接字处于监听状态(Listening)时**, 20 | Recv-Q 表示全连接队列的长度。 21 | 而 Send-Q 表示全连接队列的最大长度。 22 | 23 | 全连接,是指服务器收到了客户端的 ACK,完成了 TCP 三次握手,然后就会把这个连接挪到全连接队列中。 24 | 半连接是指还没有完成 TCP 三次握手的连接,连接只进行了一半。 25 | 26 | ### 命令 27 | 28 | 查询套接字信息: 29 | 30 | ```sh 31 | # head -n 3 表示只显示前面3行 32 | # -l 表示只显示监听套接字 33 | # -n 表示显示数字地址和端口(而不是名字) 34 | # -p 表示显示进程信息 35 | $ netstat -nlp | head -n 3 36 | Active Internet connections (only servers) 37 | Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 38 | tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 840/systemd-resolve 39 | 40 | # -l 表示只显示监听套接字 41 | # -t 表示只显示 TCP 套接字 42 | # -n 表示显示数字地址和端口(而不是名字) 43 | # -p 表示显示进程信息 44 | $ ss -ltnp | head -n 3 45 | State Recv-Q Send-Q Local Address:Port Peer Address:Port 46 | LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=840,fd=13)) 47 | LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1459,fd=3)) 48 | ``` 49 | 50 | sar 增加 -n 参数就可以查看网络的统计信息 51 | 52 | ```sh 53 | # 数字1表示每隔1秒输出一组数据 54 | $ sar -n DEV 1 55 | Linux 4.15.0-1035-azure (ubuntu) 01/06/19 _x86_64_ (2 CPU) 56 | 57 | 13:21:40 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 58 | 13:21:41 eth0 18.00 20.00 5.79 4.25 0.00 0.00 0.00 0.00 59 | 13:21:41 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 60 | 13:21:41 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 61 | ``` 62 | 63 | 其中 rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包/秒。 64 | rxkB/s 和 txkB/s 分别是接收和发送的吞吐量,单位是 KB/秒。 65 | rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包/秒。 66 | %ifutil 是网络接口的使用率,即半双工模式下为 (rxkB/s+txkB/s)/Bandwidth,而全双工模式下为 max(rxkB/s, txkB/s)/Bandwidth。 67 | 68 | Bandwidth 可以用 ethtool 来查询,它的单位通常是 Gb/s 或者 Mb/s。 69 | 70 | ### 发现面试题 71 | 72 | ### 专栏金句 73 | 74 | ### 课后题 75 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/35.基础篇:C10K 和 C1000K 回顾.md: -------------------------------------------------------------------------------- 1 | ## 35 | 基础篇:C10K 和 C1000K 回顾 2 | 3 | ### 笔记 4 | 5 | 把网络包直接送到要处理的应用程序那里去。这里有两种常见的机制,DPDK 和 XDP。 6 | 7 | DPDK,是用户态网络的标准。它跳过内核协议栈,直接由用户态进程通过轮询的方式,来处理网络接收。 8 | 9 | ![](https://static001.geekbang.org/resource/image/99/3a/998fd2f52f0a48a910517ada9f2bb23a.png) 10 | 11 | XDP(eXpress Data Path),则是 Linux 内核提供的一种高性能网络数据路径。 12 | 13 | ![](https://static001.geekbang.org/resource/image/06/be/067ef9df4212cd4ede3cffcdac7001be.png) 14 | 15 | 16 | ### 命令 17 | 18 | 19 | 20 | ### 发现面试题 21 | 22 | 什么是惊群问题? 23 | >内核确保了只有一个进程被唤醒,就不会出现惊群问题了。 24 | 25 | ![](https://static001.geekbang.org/resource/image/af/38/af2e6c3a19a6e90098772b5df0605b38.png) -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/36.套路篇:怎么评估系统的网络性能?.md: -------------------------------------------------------------------------------- 1 | ## 36 | 套路篇:怎么评估系统的网络性能? 2 | 3 | ### 笔记 4 | 5 | 性能测试方法所对应的测试工具: 6 | 7 | - 在应用层,你可以使用 wrk、Jmeter 等模拟用户的负载,测试应用程序的每秒请求数、处理延迟、错误数等; 8 | - 而在传输层,则可以使用 iperf 等工具,测试 TCP 的吞吐情况; 9 | - 再向下,你还可以用 Linux 内核自带的 pktgen ,测试服务器的 PPS。 10 | 11 | ### 命令 12 | 13 | hping3 作为一个 SYN 攻击的工具来使用。 14 | hping3 可作为一个测试网络包处理能力的性能工具。 15 | 16 | Linux 内核自带的高性能网络测试工具 pktgen 支持丰富的自定义选项,方便你根据实际需要构造所需网络包,从而更准确地测试出目标服务器的性能。 17 | 18 | ```sh 19 | $ modprobe pktgen 20 | $ ps -ef | grep pktgen | grep -v grep 21 | root 26384 2 0 06:17 ? 00:00:00 [kpktgend_0] 22 | root 26385 2 0 06:17 ? 00:00:00 [kpktgend_1] 23 | $ ls /proc/net/pktgen/ 24 | kpktgend_0 kpktgend_1 pgctrl 25 | ``` 26 | 27 | 开始使用 iperf3 来测试 TCP 性能。 28 | 29 | ```sh 30 | 31 | # Ubuntu 32 | apt-get install iperf3 33 | # CentOS 34 | yum install iperf3 35 | 36 | # -s表示启动服务端,-i表示汇报间隔,-p表示监听端口 37 | $ iperf3 -s -i 1 -p 10000 38 | 39 | 40 | [ ID] Interval Transfer Bandwidth 41 | ... 42 | [SUM] 0.00-15.04 sec 0.00 Bytes 0.00 bits/sec sender 43 | [SUM] 0.00-15.04 sec 1.51 GBytes 860 Mbits/sec receiver 44 | 45 | 46 | # -c表示启动客户端,192.168.0.30为目标服务器的IP 47 | # -b表示目标带宽(单位是bits/s) 48 | # -t表示测试时间 49 | # -P表示并发数,-p表示目标服务器监听端口 50 | $ iperf3 -c 192.168.0.30 -b 1G -t 15 -P 2 -p 10000 51 | ``` 52 | 53 | 54 | 55 | ### 发现面试题 56 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/37.案例篇:DNS 解析时快时慢,我该怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 37 | 案例篇:DNS 解析时快时慢,我该怎么办? 2 | 3 | ### 笔记 4 | 5 | 点(.)是所有域名的根,也就是说所有域名都以点作为后缀,也可以理解为,在域名解析的过程中,所有域名都以点结束。 6 | 7 | ![](https://static001.geekbang.org/resource/image/1b/82/1b509317968f3f73810ac1d313ced982.png) 8 | 9 | 常见的 DNS 优化方法: 10 | 11 | 1. 对 DNS 解析的结果进行缓存。缓存是最有效的方法,但要注意,一旦缓存过期,还是要去 DNS 服务器重新获取新记录。不过,这对大部分应用程序来说都是可接受的。 12 | 2. 对 DNS 解析的结果进行预取。这是浏览器等 Web 应用中最常用的方法,也就是说,不等用户点击页面上的超链接,浏览器就会在后台自动解析域名,并把结果缓存起来。 13 | 3. 使用 HTTPDNS 取代常规的 DNS 解析。这是很多移动应用会选择的方法,特别是如今域名劫持普遍存在,使用 HTTP 协议绕过链路中的 DNS 服务器,就可以避免域名劫持的问题。 14 | 4. 基于 DNS 的全局负载均衡(GSLB)。这不仅为服务提供了负载均衡和高可用的功能,还可以根据用户的位置,返回距离最近的 IP 地址。 15 | 16 | ### 命令 17 | 18 | ```sh 19 | 20 | $ nslookup time.geekbang.org 21 | # 域名服务器及端口信息 22 | Server: 114.114.114.114 23 | Address: 114.114.114.114#53 24 | 25 | # 非权威查询结果 26 | Non-authoritative answer: 27 | Name: time.geekbang.org 28 | Address: 39.106.233.17 29 | ``` 30 | 31 | ```sh 32 | 33 | # +trace表示开启跟踪查询 34 | # +nodnssec表示禁止DNS安全扩展 35 | $ dig +trace +nodnssec time.geekbang.org 36 | 37 | ; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> +trace +nodnssec time.geekbang.org 38 | ;; global options: +cmd 39 | . 322086 IN NS m.root-servers.net. 40 | . 322086 IN NS a.root-servers.net. 41 | . 322086 IN NS i.root-servers.net. 42 | . 322086 IN NS d.root-servers.net. 43 | . 322086 IN NS g.root-servers.net. 44 | . 322086 IN NS l.root-servers.net. 45 | . 322086 IN NS c.root-servers.net. 46 | . 322086 IN NS b.root-servers.net. 47 | . 322086 IN NS h.root-servers.net. 48 | . 322086 IN NS e.root-servers.net. 49 | . 322086 IN NS k.root-servers.net. 50 | . 322086 IN NS j.root-servers.net. 51 | . 322086 IN NS f.root-servers.net. 52 | ;; Received 239 bytes from 114.114.114.114#53(114.114.114.114) in 1340 ms 53 | 54 | org. 172800 IN NS a0.org.afilias-nst.info. 55 | org. 172800 IN NS a2.org.afilias-nst.info. 56 | org. 172800 IN NS b0.org.afilias-nst.org. 57 | org. 172800 IN NS b2.org.afilias-nst.org. 58 | org. 172800 IN NS c0.org.afilias-nst.info. 59 | org. 172800 IN NS d0.org.afilias-nst.org. 60 | ;; Received 448 bytes from 198.97.190.53#53(h.root-servers.net) in 708 ms 61 | 62 | geekbang.org. 86400 IN NS dns9.hichina.com. 63 | geekbang.org. 86400 IN NS dns10.hichina.com. 64 | ;; Received 96 bytes from 199.19.54.1#53(b0.org.afilias-nst.org) in 1833 ms 65 | 66 | time.geekbang.org. 600 IN A 39.106.233.176 67 | ;; Received 62 bytes from 140.205.41.16#53(dns10.hichina.com) in 4 ms 68 | ``` 69 | 70 | ![](https://static001.geekbang.org/resource/image/5f/d3/5ffda41ec62fc3c9e0de3fa3443c9cd3.png) 71 | 72 | ### 发现面试题 73 | 74 | ### 精选留言 75 | 76 | DNS 相关资料:https://plantegg.github.io/2019/01/09/nslookup-OK-but-ping-fail/ 77 | 78 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/38.案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量?.md: -------------------------------------------------------------------------------- 1 | ## 38 | 案例篇:怎么使用 tcpdump 和 Wireshark 分析网络流量? 2 | 3 | 4 | ### 笔记 5 | 6 | 7 | 8 | ### 命令 9 | 10 | ```sh 11 | # tcpdump 抓包 12 | $ tcpdump -nn udp port 53 or host 35.190.27.188 13 | 14 | # 输出格式如下: 15 | 时间戳 协议 源地址.源端口 > 目的地址.目的端口 网络包详细信息 16 | 17 | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 18 | listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 19 | 14:02:31.100564 IP 172.16.3.4.56669 > 114.114.114.114.53: 36909+ A? geektime.org. (30) 20 | 14:02:31.507699 IP 114.114.114.114.53 > 172.16.3.4.56669: 36909 1/0/0 A 35.190.27.188 (46) 21 | 14:02:31.508164 IP 172.16.3.4 > 35.190.27.188: ICMP echo request, id 4356, seq 1, length 64 22 | 14:02:31.539667 IP 35.190.27.188 > 172.16.3.4: ICMP echo reply, id 4356, seq 1, length 64 23 | 14:02:31.539995 IP 172.16.3.4.60254 > 114.114.114.114.53: 49932+ PTR? 188.27.190.35.in-addr.arpa. (44) 24 | 14:02:36.545104 IP 172.16.3.4.60254 > 114.114.114.114.53: 49932+ PTR? 188.27.190.35.in-addr.arpa. (44) 25 | 14:02:41.551284 IP 172.16.3.4 > 35.190.27.188: ICMP echo request, id 4356, seq 2, length 64 26 | 14:02:41.582363 IP 35.190.27.188 > 172.16.3.4: ICMP echo reply, id 4356, seq 2, length 64 27 | 14:02:42.552506 IP 172.16.3.4 > 35.190.27.188: ICMP echo request, id 4356, seq 3, length 64 28 | 14:02:42.583646 IP 35.190.27.188 > 172.16.3.4: ICMP echo reply, id 4356, seq 3, length 64 29 | ``` 30 | 31 | - -nn ,表示不解析抓包中的域名(即不反向解析)、协议以及端口号。 32 | - udp port 53 ,表示只显示 UDP 协议的端口号(包括源端口和目的端口)为 53 的包。 33 | - host 35.190.27.188 ,表示只显示 IP 地址(包括源地址和目的地址)为 35.190.27.188 的包。 34 | - 这两个过滤条件中间的“ or ”,表示或的关系,也就是说,只要满足上面两个条件中的任一个,就可以展示出来。 35 | 36 | tcpdump 使用 - 选项类 37 | ![](https://static001.geekbang.org/resource/image/85/ff/859d3b5c0071335429620a3fcdde4fff.png) 38 | 39 | tcpdump 使用 - 过滤表达式类 40 | ![](https://static001.geekbang.org/resource/image/48/b3/4870a28c032bdd2a26561604ae2f7cb3.png) 41 | 42 | 43 | Wireshark 也是最流行的一个网络分析工具,它最大的好处就是提供了跨平台的图形界面。跟 tcpdump 类似,Wireshark 也提供了强大的过滤规则表达式,同时,还内置了一系列的汇总分析工具。 44 | 45 | ![](https://static001.geekbang.org/resource/image/6b/2c/6b854703dcfcccf64c0a69adecf2f42c.png) 46 | 47 | 48 | 49 | ### 发现面试题 50 | 51 | ### 精选留言 52 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/39.案例篇:怎么缓解 DDoS 攻击带来的性能下降问题?.md: -------------------------------------------------------------------------------- 1 | ## 39 | 案例篇:怎么缓解 DDoS 攻击带来的性能下降问题? 2 | 3 | ### 笔记 4 | 5 | DDoS 的前身是 DoS(Denail of Service),即拒绝服务攻击,指利用大量的合理请求,来占用过多的目标资源,从而使目标服务无法响应正常请求。 6 | 采用了分布式架构,利用多台主机同时攻击目标主机。 7 | 8 | DDoS 可以分为下面几种类型: 9 | - 耗尽带宽 10 | - 耗尽操作系统的资源 11 | - 消耗应用程序的运行资源 12 | 13 | TCP 状态图: 14 | 15 | ![](https://static001.geekbang.org/resource/image/86/a2/86dabf9cc66b29133fa6a239cfee38a2.png) 16 | 17 | ### 命令 18 | 19 | ```sh 20 | 21 | $ sar -n DEV 1 22 | 08:55:49 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 23 | 08:55:50 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 24 | 08:55:50 eth0 22274.00 629.00 1174.64 37.78 0.00 0.00 0.00 0.02 25 | 08:55:50 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 26 | 27 | 28 | # -i eth0 只抓取eth0网卡,-n不解析协议名和主机名 29 | # tcp port 80表示只抓取tcp协议并且端口号为80的网络帧 30 | $ tcpdump -i eth0 -n tcp port 80 31 | 09:15:48.287047 IP 192.168.0.2.27095 > 192.168.0.30: Flags [S], seq 1288268370, win 512, length 0 32 | 09:15:48.287050 IP 192.168.0.2.27131 > 192.168.0.30: Flags [S], seq 2084255254, win 512, length 0 33 | 09:15:48.287052 IP 192.168.0.2.27116 > 192.168.0.30: Flags [S], seq 677393791, win 512, length 0 34 | 09:15:48.287055 IP 192.168.0.2.27141 > 192.168.0.30: Flags [S], seq 1276451587, win 512, length 0 35 | 09:15:48.287068 IP 192.168.0.2.27154 > 192.168.0.30: Flags [S], seq 1851495339, win 512, length 0 36 | ... 37 | ``` 38 | 39 | 分析结果: 40 | ![](https://static001.geekbang.org/resource/image/f3/13/f397305c87be6ae43e065d3262ec9113.png) 41 | 42 | ```sh 43 | 44 | # -n表示不解析名字,-p表示显示连接所属进程 45 | $ netstat -n -p | grep SYN_REC 46 | tcp 0 0 192.168.0.30:80 192.168.0.2:12503 SYN_RECV - 47 | tcp 0 0 192.168.0.30:80 192.168.0.2:13502 SYN_RECV - 48 | tcp 0 0 192.168.0.30:80 192.168.0.2:15256 SYN_RECV - 49 | tcp 0 0 192.168.0.30:80 192.168.0.2:18117 SYN_RECV - 50 | ... 51 | 52 | # 统计所有 SYN_RECV 状态的连接数 53 | $ netstat -n -p | grep SYN_REC | wc -l 54 | 193 55 | ``` 56 | 57 | 58 | ```sh 59 | 60 | # 限制syn并发数为每秒1次 61 | $ iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT 62 | 63 | # 限制单个IP在60秒新建立的连接数为10 64 | $ iptables -I INPUT -p tcp --dport 80 --syn -m recent --name SYN_FLOOD --update --seconds 60 --hitcount 10 -j REJECT 65 | ``` 66 | 67 | 默认的半连接容量只有 256,如何查看? 68 | 69 | ```sh 70 | # 查看半连接容量 71 | $ sysctl net.ipv4.tcp_max_syn_backlog 72 | net.ipv4.tcp_max_syn_backlog = 256 73 | 74 | # 增大为 1024 75 | $ sysctl -w net.ipv4.tcp_max_syn_backlog=1024 76 | net.ipv4.tcp_max_syn_backlog = 1024 77 | 78 | # 设置重试次数 79 | $ sysctl -w net.ipv4.tcp_synack_retries=1 80 | net.ipv4.tcp_synack_retries = 1 81 | ``` 82 | 83 | ### 发现面试题 84 | 85 | DDoS 怎么防御? 86 | 87 | 目前还没有方法可以完全防御 DDoS 带来的问题,只能设法缓解这个影响。 88 | 89 | - 购买专业的流量清洗设备和网络防火墙,在网络入口处阻断恶意流量,只保留正常流量进入数据中心的服务器中。 90 | - 在 Linux 服务器中,你可以通过内核调优、DPDK、XDP 等多种方法,来增大服务器的抗攻击能力,降低 DDoS 对正常服务的影响。 91 | - 而在应用程序中,你可以利用各级缓存、 WAF、CDN 等方式,缓解 DDoS 对应用程序的影响。 92 | 93 | ### 精选留言 94 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/4.基础篇:经常说的 CPU 上下文切换是什么意思(下).md: -------------------------------------------------------------------------------- 1 | ## 04 | 基础篇:经常说的 CPU 上下文切换是什么意思(下) 2 | 3 | ## 笔记 4 | 5 | cswch 每秒自愿上下文切换次数(voluntary context switches) 6 | 7 | nvcswch 每秒非自愿上下文切换次数(non voluntary context switches) 8 | 9 | 自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。 10 | 11 | 非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。 12 | 13 | /proc/interrupts 只读文件,提供一个只读的中断使用情况。 14 | 15 | RES:重调度中断,表示唤醒空闲状态的 CPU 来调度新的任务运行,这个是多处理器系统(SMP)中,调度器用来分散任务到不同CPU的机制,通常也称为处理器间中断(Inter-Processor Interrupts, IPI) 16 | 17 | ### 发现面试题 18 | 19 | 每秒上下文切换多少次才算正常呢?(这个数值其实取决于系统本身的 CPU 性能,如果系统的上下文切换次数比较稳定,从数百到一万以内,都算正常。但是上下文切换次数超过一万次,或者切换次数出现数量级增长,就很可能已经出现了性能问题。) 20 | 21 | ### 专栏金句: 22 | 23 | ### 微信群交流总结: 24 | 25 | ### 发现专栏精选留言: -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/40.案例篇:网络请求延迟变大了,我该怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 40 | 案例篇:网络请求延迟变大了,我该怎么办? 2 | 3 | ### 笔记 4 | 5 | ### 命令 6 | 7 | 执行 hping3 命令,测试我的机器到百度搜索服务器的网络延迟: 8 | 9 | ```sh 10 | 11 | # -c表示发送3次请求,-S表示设置TCP SYN,-p表示端口号为80 12 | $ hping3 -c 3 -S -p 80 baidu.com 13 | HPING baidu.com (eth0 123.125.115.110): S set, 40 headers + 0 data bytes 14 | len=46 ip=123.125.115.110 ttl=51 id=47908 sport=80 flags=SA seq=0 win=8192 rtt=20.9 ms 15 | len=46 ip=123.125.115.110 ttl=51 id=6788 sport=80 flags=SA seq=1 win=8192 rtt=20.9 ms 16 | len=46 ip=123.125.115.110 ttl=51 id=37699 sport=80 flags=SA seq=2 win=8192 rtt=20.9 ms 17 | 18 | --- baidu.com hping statistic --- 19 | 3 packets transmitted, 3 packets received, 0% packet loss 20 | round-trip min/avg/max = 20.9/20.9/20.9 ms 21 | ``` 22 | 23 | 使用 traceroute 得到类似的结果: 24 | ```sh 25 | 26 | # --tcp表示使用TCP协议,-p表示端口号,-n表示不对结果中的IP地址执行反向域名解析 27 | $ traceroute --tcp -p 80 -n baidu.com 28 | traceroute to baidu.com (123.125.115.110), 30 hops max, 60 byte packets 29 | 1 * * * 30 | 2 * * * 31 | 3 * * * 32 | 4 * * * 33 | 5 * * * 34 | 6 * * * 35 | 7 * * * 36 | 8 * * * 37 | 9 * * * 38 | 10 * * * 39 | 11 * * * 40 | 12 * * * 41 | 13 * * * 42 | 14 123.125.115.110 20.684 ms * 20.798 ms 43 | ``` 44 | 45 | strace ,来观察 wrk 为套接字设置了哪些 TCP 选项。 46 | 47 | ```sh 48 | 49 | $ strace -f wrk --latency -c 100 -t 2 --timeout 2 http://192.168.0.30:8080/ 50 | ... 51 | setsockopt(52, SOL_TCP, TCP_NODELAY, [1], 4) = 0 52 | ... 53 | ``` 54 | 55 | ### 发现面试题 56 | 57 | 58 | 59 | ### 精选留言 60 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/41.案例篇:如何优化 NAT 性能?(上).md: -------------------------------------------------------------------------------- 1 | ## 41 | 案例篇:如何优化 NAT 性能?(上) 2 | 3 | ### 笔记 4 | 5 | SNAT 和 DNAT 的过程: 6 | ![](https://static001.geekbang.org/resource/image/c7/e4/c743105dc7bd955a4a300d6b55b7a0e4.png) 7 | 8 | 网络数据包通过 Netfilter 时的工作流向: 9 | ![](https://static001.geekbang.org/resource/image/c6/56/c6de40c5bd304132a1b508ba669e7b56.png) 10 | 11 | ### 命令 12 | 13 | 14 | ### 发现面试题 15 | 16 | 17 | ### 精选留言 18 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/42.案例篇:如何优化 NAT 性能?(下).md: -------------------------------------------------------------------------------- 1 | ## 42 | 案例篇:如何优化 NAT 性能?(下) 2 | 3 | ### 笔记 4 | 5 | 6 | 7 | ### 命令 8 | 9 | 终端一: 10 | ```sh 11 | 12 | $ ab -c 5000 -n 10000 -r -s 30 http://192.168.0.30:8080/ 13 | ``` 14 | 15 | 另外一个终端: 16 | 17 | ```sh 18 | 19 | # 记录一会(比如30s)后按Ctrl+C结束 20 | $ perf record -a -g -- sleep 30 21 | 22 | # 输出报告 23 | $ perf report -g graph,0 24 | ``` 25 | 26 | ![](https://static001.geekbang.org/resource/image/0e/3c/0e844a471ff1062a1db70a303add943c.png) 27 | 28 | 29 | ```sh 30 | 31 | $ sysctl -a | grep conntrack 32 | net.netfilter.nf_conntrack_count = 180 33 | net.netfilter.nf_conntrack_max = 1000 34 | net.netfilter.nf_conntrack_buckets = 65536 35 | net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60 36 | net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120 37 | net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 38 | ... 39 | ``` 40 | 41 | - net.netfilter.nf_conntrack_count,表示当前连接跟踪数; 42 | - net.netfilter.nf_conntrack_max,表示最大连接跟踪数; 43 | - net.netfilter.nf_conntrack_buckets,表示连接跟踪表的大小。 44 | 45 | 内核在工作异常时,会把异常信息记录到日志中: 46 | ```sh 47 | 48 | $ dmesg | tail 49 | [104235.156774] nf_conntrack: nf_conntrack: table full, dropping packet 50 | [104243.800401] net_ratelimit: 3939 callbacks suppressed 51 | [104243.800401] nf_conntrack: nf_conntrack: table full, dropping packet 52 | [104262.962157] nf_conntrack: nf_conntrack: table full, dropping packet 53 | ``` 54 | 55 | ### 发现面试题 56 | 57 | 58 | ### 精选留言 59 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/43.套路篇:网络性能优化的几个思路(上).md: -------------------------------------------------------------------------------- 1 | ## 43 | 套路篇:网络性能优化的几个思路(上) 2 | 3 | 4 | ### 笔记 5 | 6 | 提供网络性能指标的工具,根据指标找工具(网络性能): 7 | 8 | ![](https://static001.geekbang.org/resource/image/a1/3b/a1eb07e281e5795be83c11d7255c543b.png) 9 | 10 | 根据工具查指标(网络性能): 11 | 12 | ![](https://static001.geekbang.org/resource/image/0d/a0/0d87b39b89a1b7f325fc5477c0182ea0.png) 13 | 14 | 15 | Linux 系统的网络协议栈和网络收发流程: 16 | ![](https://static001.geekbang.org/resource/image/a1/3f/a118911721f9b67ce9c83de15666753f.png) 17 | 18 | 套接字内核选项列表: 19 | ![](https://static001.geekbang.org/resource/image/5f/f0/5f2d4957663dd8bf3410da8180ab18f0.png) 20 | 21 | ### 命令 22 | 23 | 24 | ### 发现面试题 25 | 26 | 27 | ### 精选留言 28 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/44.套路篇:网络性能优化的几个思路(下).md: -------------------------------------------------------------------------------- 1 | ## 44 | 套路篇:网络性能优化的几个思路(下) 2 | 3 | 4 | ### 笔记 5 | 6 | TCP 协议的基本原理,比如流量控制、慢启动、拥塞避免、延迟确认以及状态流图(如下图所示): 7 | 8 | ![](https://static001.geekbang.org/resource/image/c0/d1/c072bb9c9dfd727ed187bc24beb3e3d1.png) 9 | 10 | TCP 优化: 11 | ![](https://static001.geekbang.org/resource/image/b0/e0/b07ea76a8737ed93395736795ede44e0.png) 12 | 13 | 14 | 定位出网络性能瓶颈后,我们就可以根据瓶颈所在的协议层,进行优化: 15 | - 在应用程序中,主要是优化 I/O 模型、工作模型以及应用层的网络协议; 16 | - 在套接字层中,主要是优化套接字的缓冲区大小; 17 | - 在传输层中,主要是优化 TCP 和 UDP 协议; 18 | - 在网络层中,主要是优化路由、转发、分片以及 ICMP 协议; 19 | - 最后,在链路层中,主要是优化网络包的收发、网络功能卸载以及网卡选项。 20 | 21 | ### 命令 22 | 23 | 24 | ### 发现面试题 25 | 26 | 27 | ### 精选留言 28 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/45.答疑(五):网络收发过程中,缓冲区位置在哪里?.md: -------------------------------------------------------------------------------- 1 | ## 45 | 答疑(五):网络收发过程中,缓冲区位置在哪里? 2 | 3 | 4 | ### 笔记 5 | 6 | sk_buff、套接字缓冲、连接跟踪等,都通过 slab 分配器来管理。你可以直接通过 /proc/slabinfo,来查看它们占用的内存大小。 7 | 8 | ### 命令 9 | 10 | 11 | ### 发现面试题 12 | 13 | 环形缓冲区、sk_buff 缓冲区、套接字缓冲区,跟前面内存部分讲到的 Buffer 和 Cache 有什么关联吗? 14 | 内存中提到的 Buffer ,都跟块设备直接相关;而其他的都是 Cache。 15 | 16 | 最大连接数是不是受限于 65535 个端口? 17 | 无论 TCP 还是 UDP,端口号都只占 16 位,也就说其最大值也只有 65535 18 | 对客户端来说,每次发起 TCP 连接请求时,都需要分配一个空闲的本地端口,去连接远端的服务器。由于这个本地端口是独占的,所以客户端最多只能发起 65535 个连接。对服务器端来说,其通常监听在固定端口上(比如 80 端口),等待客户端的连接。 19 | 如果不考虑 IP 地址分类以及资源限制,服务器端的理论最大连接数,可以达到 2 的 48 次方(IP 为 32 位,端口号为 16 位),远大于 65535。 20 | 综合来看,客户端最大支持 65535 个连接,而服务器端可支持的连接数是海量的。 21 | 22 | 23 | ### 精选留言 24 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/46.案例篇:为什么应用容器化后,启动慢了很多?.md: -------------------------------------------------------------------------------- 1 | ## 46 | 案例篇:为什么应用容器化后,启动慢了很多? 2 | 3 | 4 | ### 笔记 5 | 6 | 容器化后的性能分析跟之前的有一些不同: 7 | - 容器本身通过 cgroups 进行资源隔离,所以,在分析时要考虑 cgroups 对应用程序的影响。 8 | - 容器的文件系统、网络协议栈等跟主机隔离。虽然在容器外面,我们也可以分析容器的行为,不过有时候,进入容器的命名空间内部,可能更为方便。 9 | - 容器的运行可能还会依赖于其他组件,比如各种网络插件(比如 CNI)、存储插件(比如 CSI)、设备插件(比如 GPU)等,让容器的性能分析更加复杂。如果你需要分析容器性能,别忘了考虑它们对性能的影响。 10 | 11 | 12 | ### 命令 13 | 14 | ```sh 15 | # 显示容器状态,jq用来格式化json输出 16 | $ docker inspect tomcat -f '{{json .State}}' | jq 17 | { 18 | "Status": "exited", 19 | "Running": false, 20 | "Paused": false, 21 | "Restarting": false, 22 | "OOMKilled": true, 23 | "Dead": false, 24 | "Pid": 0, 25 | "ExitCode": 137, 26 | "Error": "", 27 | ... 28 | } 29 | ``` 30 | 31 | dmesg 是用于查看系统日志,定位 OOM 相关的日志. 32 | ```sh 33 | $ dmesg 34 | [193038.106393] java invoked oom-killer: gfp_mask=0x14000c0(GFP_KERNEL), nodemask=(null), order=0, oom_score_adj=0 35 | [193038.106396] java cpuset=0f2b3fcdd2578165ea77266cdc7b1ad43e75877b0ac1889ecda30a78cb78bd53 mems_allowed=0 36 | [193038.106402] CPU: 0 PID: 27424 Comm: java Tainted: G OE 4.15.0-1037 #39-Ubuntu 37 | [193038.106404] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090007 06/02/2017 38 | [193038.106405] Call Trace: 39 | [193038.106414] dump_stack+0x63/0x89 40 | [193038.106419] dump_header+0x71/0x285 41 | [193038.106422] oom_kill_process+0x220/0x440 42 | [193038.106424] out_of_memory+0x2d1/0x4f0 43 | [193038.106429] mem_cgroup_out_of_memory+0x4b/0x80 44 | [193038.106432] mem_cgroup_oom_synchronize+0x2e8/0x320 45 | [193038.106435] ? mem_cgroup_css_online+0x40/0x40 46 | [193038.106437] pagefault_out_of_memory+0x36/0x7b 47 | [193038.106443] mm_fault_error+0x90/0x180 48 | [193038.106445] __do_page_fault+0x4a5/0x4d0 49 | [193038.106448] do_page_fault+0x2e/0xe0 50 | [193038.106454] ? page_fault+0x2f/0x50 51 | [193038.106456] page_fault+0x45/0x50 52 | [193038.106459] RIP: 0033:0x7fa053e5a20d 53 | [193038.106460] RSP: 002b:00007fa0060159e8 EFLAGS: 00010206 54 | [193038.106462] RAX: 0000000000000000 RBX: 00007fa04c4b3000 RCX: 0000000009187440 55 | [193038.106463] RDX: 00000000943aa440 RSI: 0000000000000000 RDI: 000000009b223000 56 | [193038.106464] RBP: 00007fa006015a60 R08: 0000000002000002 R09: 00007fa053d0a8a1 57 | [193038.106465] R10: 00007fa04c018b80 R11: 0000000000000206 R12: 0000000100000768 58 | [193038.106466] R13: 00007fa04c4b3000 R14: 0000000100000768 R15: 0000000010000000 59 | [193038.106468] Task in /docker/0f2b3fcdd2578165ea77266cdc7b1ad43e75877b0ac1889ecda30a78cb78bd53 killed as a result of limit of /docker/0f2b3fcdd2578165ea77266cdc7b1ad43e75877b0ac1889ecda30a78cb78bd53 60 | [193038.106478] memory: usage 524288kB, limit 524288kB, failcnt 77 61 | [193038.106480] memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0 62 | [193038.106481] kmem: usage 3708kB, limit 9007199254740988kB, failcnt 0 63 | [193038.106481] Memory cgroup stats for /docker/0f2b3fcdd2578165ea77266cdc7b1ad43e75877b0ac1889ecda30a78cb78bd53: cache:0KB rss:520580KB rss_huge:450560KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:0KB active_anon:520580KB inactive_file:0KB active_file:0KB unevictable:0KB 64 | [193038.106494] [ pid ] uid tgid total_vm rss pgtables_bytes swapents oom_score_adj name 65 | [193038.106571] [27281] 0 27281 1153302 134371 1466368 0 0 java 66 | [193038.106574] Memory cgroup out of memory: Kill process 27281 (java) score 1027 or sacrifice child 67 | [193038.148334] Killed process 27281 (java) total-vm:4613208kB, anon-rss:517316kB, file-rss:20168kB, shmem-rss:0kB 68 | [193039.607503] oom_reaper: reaped process 27281 (java), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB 69 | ``` 70 | 71 | 进程性能分析工具 pidstat: 72 | 73 | ```sh 74 | # -t表示显示线程,-p指定进程号 75 | $ pidstat -t -p 29457 1 76 | 12:59:59 UID TGID TID %usr %system %guest %wait %CPU CPU Command 77 | 13:00:00 0 29457 - 0.00 0.00 0.00 0.00 0.00 0 java 78 | 13:00:00 0 - 29457 0.00 0.00 0.00 0.00 0.00 0 |__java 79 | 13:00:00 0 - 29458 0.00 0.00 0.00 0.00 0.00 1 |__java 80 | ... 81 | 13:00:00 0 - 29491 0.00 0.00 0.00 0.00 0.00 0 |__java 82 | ``` 83 | 84 | ### 发现面试题 85 | 86 | 87 | 88 | ### 精选留言 89 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/47.案例篇:服务器总是时不时丢包,我该怎么办?(上).md: -------------------------------------------------------------------------------- 1 | ## 47 | 案例篇:服务器总是时不时丢包,我该怎么办?(上) 2 | 3 | 4 | ### 笔记 5 | 6 | ping 基于 ICMP 协议,而 Nginx 使用的是 TCP 协议,所以案例中使用的是 hping3。 7 | 8 | 网络丢包的原理图: 9 | ![](https://static001.geekbang.org/resource/image/dd/fd/dd5b4050d555b1c23362456e357dfffd.png) 10 | 11 | 全程都有丢包的可能,比如我们从下往上看: 12 | - 在两台 VM 连接之间,可能会发生传输失败的错误,比如网络拥塞、线路错误等; 13 | - 在网卡收包后,环形缓冲区可能会因为溢出而丢包; 14 | - 在链路层,可能会因为网络帧校验失败、QoS 等而丢包; 15 | - 在 IP 层,可能会因为路由失败、组包大小超过 MTU 等而丢包; 16 | - 在传输层,可能会因为端口未监听、资源占用超过内核限制等而丢包; 17 | - 在套接字层,可能会因为套接字缓冲区溢出而丢包; 18 | - 在应用层,可能会因为应用程序异常而丢包; 19 | - 此外,如果配置了 iptables 规则,这些网络包也可能因为 iptables 过滤规则而丢包。 20 | 21 | ### 命令 22 | 23 | 24 | ```sh 25 | # -c表示发送10个请求,-S表示使用TCP SYN,-p指定端口为80 26 | $ hping3 -c 10 -S -p 80 192.168.0.30 27 | HPING 192.168.0.30 (eth0 192.168.0.30): S set, 40 headers + 0 data bytes 28 | len=44 ip=192.168.0.30 ttl=63 DF id=0 sport=80 flags=SA seq=3 win=5120 rtt=7.5 ms 29 | len=44 ip=192.168.0.30 ttl=63 DF id=0 sport=80 flags=SA seq=4 win=5120 rtt=7.4 ms 30 | len=44 ip=192.168.0.30 ttl=63 DF id=0 sport=80 flags=SA seq=5 win=5120 rtt=3.3 ms 31 | len=44 ip=192.168.0.30 ttl=63 DF id=0 sport=80 flags=SA seq=7 win=5120 rtt=3.0 ms 32 | len=44 ip=192.168.0.30 ttl=63 DF id=0 sport=80 flags=SA seq=6 win=5120 rtt=3027.2 ms 33 | 34 | --- 192.168.0.30 hping statistic --- 35 | 10 packets transmitted, 5 packets received, 50% packet loss 36 | round-trip min/avg/max = 3.0/609.7/3027.2 ms 37 | ``` 38 | 39 | 通过 ethtool 或者 netstat ,来查看网卡的丢包记录 40 | 41 | ```sh 42 | root@nginx:/# netstat -i 43 | Kernel Interface table 44 | Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg 45 | eth0 100 31 0 0 0 8 0 0 0 BMRU 46 | lo 65536 0 0 0 0 0 0 0 0 LRU 47 | ``` 48 | 49 | 检查一下 eth0 上是否配置了 tc 规则,并查看有没有丢包。 50 | 51 | 执行下面的 tc 命令,不过这次注意添加 -s 选项,以输出统计信息: 52 | 53 | ```sh 54 | root@nginx:/# tc -s qdisc show dev eth0 55 | qdisc netem 800d: root refcnt 2 limit 1000 loss 30% 56 | Sent 432 bytes 8 pkt (dropped 4, overlimits 0 requeues 0) 57 | backlog 0b 0p requeues 0 58 | ``` 59 | 60 | ```sh 61 | # 直接删掉 netem 模块 62 | root@nginx:/# tc qdisc del dev eth0 root netem loss 30% 63 | ``` 64 | 65 | ```sh 66 | 67 | root@nginx:/# netstat -s 68 | Ip: 69 | Forwarding: 1 //开启转发 70 | 31 total packets received //总收包数 71 | 0 forwarded //转发包数 72 | 0 incoming packets discarded //接收丢包数 73 | 25 incoming packets delivered //接收的数据包数 74 | 15 requests sent out //发出的数据包数 75 | Icmp: 76 | 0 ICMP messages received //收到的ICMP包数 77 | 0 input ICMP message failed //收到ICMP失败数 78 | ICMP input histogram: 79 | 0 ICMP messages sent //ICMP发送数 80 | 0 ICMP messages failed //ICMP失败数 81 | ICMP output histogram: 82 | Tcp: 83 | 0 active connection openings //主动连接数 84 | 0 passive connection openings //被动连接数 85 | 11 failed connection attempts //失败连接尝试数 86 | 0 connection resets received //接收的连接重置数 87 | 0 connections established //建立连接数 88 | 25 segments received //已接收报文数 89 | 21 segments sent out //已发送报文数 90 | 4 segments retransmitted //重传报文数 91 | 0 bad segments received //错误报文数 92 | 0 resets sent //发出的连接重置数 93 | Udp: 94 | 0 packets received 95 | ... 96 | TcpExt: 97 | 11 resets received for embryonic SYN_RECV sockets //半连接重置数 98 | 0 packet headers predicted 99 | TCPTimeouts: 7 //超时数 100 | TCPSynRetrans: 4 //SYN重传数 101 | ... 102 | ``` 103 | 104 | ### 发现面试题 105 | 106 | 107 | 108 | ### 精选留言 109 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/48.案例篇:服务器总是时不时丢包,我该怎么办?(下).md: -------------------------------------------------------------------------------- 1 | ## 48 | 案例篇:服务器总是时不时丢包,我该怎么办?(下) 2 | 3 | 4 | ### 笔记 5 | 6 | 通过 iptables -nvL 命令,查看各条规则的统计信息。 7 | 8 | - hping3 实际上只发送了 SYN 包; 9 | - 而 curl 在发送 SYN 包后,还会发送 HTTP GET 请求。 10 | 11 | HTTP GET ,本质上也是一个 TCP 包,但跟 SYN 包相比,它还携带了 HTTP GET 的数据。 12 | 13 | ### 命令 14 | 15 | ```sh 16 | # 在主机中执行 17 | $ docker exec -it nginx bash 18 | 19 | # 在容器中执行 20 | root@nginx:/# iptables -t filter -nvL 21 | Chain INPUT (policy ACCEPT 25 packets, 1000 bytes) 22 | pkts bytes target prot opt in out source destination 23 | 6 240 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 statistic mode random probability 0.29999999981 24 | 25 | Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) 26 | pkts bytes target prot opt in out source destination 27 | 28 | Chain OUTPUT (policy ACCEPT 15 packets, 660 bytes) 29 | pkts bytes target prot opt in out source destination 30 | 6 264 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 statistic mode random probability 0.29999999981 31 | ``` 32 | 33 | iptables DROP 规则: 34 | 35 | ```sh 36 | root@nginx:/# iptables -t filter -D INPUT -m statistic --mode random --probability 0.30 -j DROP 37 | root@nginx:/# iptables -t filter -D OUTPUT -m statistic --mode random --probability 0.30 -j DROP 38 | ``` 39 | 40 | ```sh 41 | # tcpdump 抓取 80 端口的包 42 | root@nginx:/# tcpdump -i eth0 -nn port 80 43 | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 44 | listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 45 | ``` 46 | 47 | 切换到终端二中,再次执行前面的 curl 命令,抓到的包的 Wireshark 的 Flow Graph 表示: 48 | ![](https://static001.geekbang.org/resource/image/a8/c2/a81bd7639a1f81c23bc6d2e030af97c2.png) 49 | 50 | 51 | 执行 netstat -i 命令,确认一下网卡有没有丢包问题: 52 | 53 | ```sh 54 | root@nginx:/# netstat -i 55 | Kernel Interface table 56 | Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg 57 | eth0 100 157 0 344 0 94 0 0 0 BMRU 58 | lo 65536 0 0 0 0 0 0 0 0 LRU 59 | ``` 60 | 61 | 上图中 eth0 的 MTU 只有 100,而以太网的 MTU 默认值是 1500,这个 100 就显得太小了。 62 | 63 | 把容器 eth0 的 MTU 改成 1500: 64 | 65 | ```sh 66 | root@nginx:/# ifconfig eth0 mtu 1500 67 | ``` 68 | 69 | 70 | ### 发现面试题 71 | 72 | 73 | 74 | ### 精选留言 75 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/49.案例篇:内核线程 CPU 利用率太高,我该怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 49 | 案例篇:内核线程 CPU 利用率太高,我该怎么办? 2 | 3 | 4 | ### 笔记 5 | 6 | 火焰图🔥的横轴、纵轴的含义: 7 | - 横轴表示采样数和采样比例。一个函数占用的横轴越宽,就代表它的执行时间越长。同一层的多个函数,则是按照字母来排序。 8 | - 纵轴表示调用栈,由下往上根据调用关系逐个展开。换句话说,上下相邻的两个函数中,下面的函数,是上面函数的父函数。这样,调用栈越深,纵轴就越高。 9 | 10 | 火焰图是动态的矢量图格式。 11 | 12 | 火焰图根据性能分析的目标来划分: 13 | - on-CPU 火焰图:表示 CPU 的繁忙情况,用在 CPU 使用率比较高的场景中。 14 | - off-CPU 火焰图:表示 CPU 等待 I/O、锁等各种资源的阻塞情况。 15 | - 内存火焰图:表示内存的分配和释放情况。 16 | - 热/冷火焰图:表示将 on-CPU 和 off-CPU 结合在一起综合展示。 17 | - 差分火焰图:表示两个火焰图的差分情况,红色表示增长,蓝色表示衰减。差分火焰图常用来比较不同场景和不同时期的火焰图,以便分析系统变化前后对性能的影响情况。 18 | 19 | 20 | ### 命令 21 | 22 | 23 | 24 | ### 发现面试题 25 | 26 | 27 | 28 | ### 精选留言 29 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/5.基础篇:某个应用的 CPU 使用率居然达到 100%,我该怎么办?.md: -------------------------------------------------------------------------------- 1 | ## 05 | 基础篇:某个应用的 CPU 使用率居然达到 100%,我该怎么办? 2 | 3 | ### 笔记 4 | 5 | CPU 使用率=1-空闲时间/总的CPU时间 6 | 7 | 平均CPU使用率=1-(空闲时间new-空闲时间old)/(总CPU时间new-总 CPU时间old) 8 | 9 | GDB 用于性能分析的后期,因为它会中断程序的运行。线上环境基本上是不允许中断的。 10 | 11 | perf 是以性能事件采样为基础,分析系统的各种事件和内核性能,还可以用来分析指定应用程序的性能问题。 12 | 13 | top 14 | 15 | ps 16 | 17 | perf top 18 | 19 | perf record 20 | 21 | ### 发现面试题 22 | 23 | ### 专栏金句 24 | 25 | CPU 使用率,就是除了空闲时间外的其他时间占总 CPU 时间的百分比 26 | 27 | 性能分析工具给出的都是间隔一段时间的平均 CPU 使用率,所以要注意间隔时间的设置 28 | 29 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/50.案例篇:动态追踪怎么用?(上).md: -------------------------------------------------------------------------------- 1 | ## 50 | 案例篇:动态追踪怎么用?(上) 2 | 3 | 4 | ### 笔记 5 | 6 | 动态追踪技术(Dynamic Tracing),通过探针机制,来采集内核或者应用程序的运行信息,从而可以不用修改内核和应用程序的代码,就获得丰富的信息,帮你分析、定位想要排查的问题。 7 | 8 | 它的运行常驻在内核中,用户可以通过 dtrace 命令,把 D 语言编写的追踪脚本,提交到内核中的运行时来执行。DTrace 的工作原理如下图所示。 9 | 10 | ![](https://static001.geekbang.org/resource/image/61/a6/6144b1947373bd5668010502bd0e45a6.png) 11 | 12 | 动态追踪所使用的事件源,可以分为静态探针、动态探针以及硬件事件等三类,关系如图: 13 | 14 | ![](https://static001.geekbang.org/resource/image/ba/61/ba6c9ed0dcccc7f4f46bb19c69946e61.png) 15 | 16 | Linux 也提供了一系列的动态追踪机制,比如 ftrace、perf、eBPF 等。 17 | 18 | 19 | ### 命令 20 | 21 | 22 | 23 | ### 发现面试题 24 | 25 | 26 | 27 | ### 精选留言 28 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/51.案例篇:动态追踪怎么用?(下).md: -------------------------------------------------------------------------------- 1 | ## 51 | 案例篇:动态追踪怎么用?(下) 2 | 3 | 4 | ### 笔记 5 | 6 | perf 可以用来分析 CPU cache、CPU 迁移、分支预测、指令周期等各种硬件事件; 7 | perf 也可以只对感兴趣的事件进行动态追踪。 8 | 9 | strace 基于系统调用 ptrace 实现。带来了两个问题: 10 | 11 | 1. 由于 ptrace 是系统调用,就需要在内核态和用户态切换。当事件数量比较多时,繁忙的切换必然会影响原有服务的性能; 12 | 2. ptrace 需要借助 SIGSTOP 信号挂起目标进程。这种信号控制和进程挂起,会影响目标进程的行为。 13 | 14 | 15 | 在 strace 的启发下,结合内核中的 utrace 机制, perf 也提供了一个 trace 子命令,是取代 strace 的首选工具。相对于 ptrace 机制来说,perf trace 基于内核事件,自然要比进程跟踪的性能好很多。 16 | 17 | eBPF 追踪的工作原理: 18 | 19 | ![](https://static001.geekbang.org/resource/image/a3/e9/a3547f2ac1d4d75b850a02a2735560e9.png) 20 | 21 | eBPF 的执行需要三步: 22 | 1. 从用户跟踪程序生成 BPF 字节码; 23 | 2. 加载到内核中运行; 24 | 3. 向用户空间输出结果。 25 | 26 | bcc 适用场景: 27 | 28 | ![](https://static001.geekbang.org/resource/image/fc/21/fc5f387a982db98c49c7cefb77342c21.png) 29 | 30 | 特性需要特定版本才支持: 31 | 32 | ![](https://static001.geekbang.org/resource/image/61/e8/61abce1affc770a15dae7d489e50a8e8.png) 33 | 34 | SystemTap 也是一种可以通过脚本进行自由扩展的动态追踪技术。 35 | 36 | sysdig 则是随着容器技术的普及而诞生的,主要用于容器的动态追踪。集百家所长。 37 | 38 | sysdig 的特点: sysdig = strace + tcpdump + htop + iftop + lsof + docker inspect。 39 | 40 | 41 | ### 命令 42 | 43 | perf list ,查询所有支持的事件。 44 | 45 | ```sh 46 | # 执行 perf probe 命令,添加 do_sys_open 探针 47 | $ perf probe --add do_sys_open 48 | Added new event: 49 | probe:do_sys_open (on do_sys_open) 50 | You can now use it in all perf tools, such as: 51 | perf record -e probe:do_sys_open -aR sleep 1 52 | ``` 53 | 54 | 采样: 55 | 56 | ```sh 57 | # 对 10s 内的 do_sys_open 进行采样 58 | $ perf record -e probe:do_sys_open -aR sleep 10 59 | [ perf record: Woken up 1 times to write data ] 60 | [ perf record: Captured and wrote 0.148 MB perf.data (19 samples) ] 61 | ``` 62 | 63 | 采样结果进行分析: 64 | 65 | ```sh 66 | # 查看采样结果 67 | $ perf script 68 | perf 12886 [000] 89565.879875: probe:do_sys_open: (ffffffffa807b290) 69 | sleep 12889 [000] 89565.880362: probe:do_sys_open: (ffffffffa807b290) 70 | sleep 12889 [000] 89565.880382: probe:do_sys_open: (ffffffffa807b290) 71 | sleep 12889 [000] 89565.880635: probe:do_sys_open: (ffffffffa807b290) 72 | sleep 12889 [000] 89565.880669: probe:do_sys_open: (ffffffffa807b290) 73 | ``` 74 | 75 | 了解 do_sys_open 的所有参数: 76 | ```sh 77 | 78 | $ perf probe -V do_sys_open 79 | Available variables at do_sys_open 80 | @ 81 | char* filename 82 | int dfd 83 | int flags 84 | struct open_flags op 85 | umode_t mode 86 | ``` 87 | 88 | 添加命名探针前要把旧的探针删除: 89 | 90 | ```sh 91 | 92 | # 先删除旧的探针 93 | perf probe --del probe:do_sys_open 94 | 95 | # 添加带参数的探针 96 | $ perf probe --add 'do_sys_open filename:string' 97 | Added new event: 98 | probe:do_sys_open (on do_sys_open with filename:string) 99 | You can now use it in all perf tools, such as: 100 | perf record -e probe:do_sys_open -aR sleep 1 101 | ``` 102 | 103 | 然后再进行采样: 104 | 105 | ```sh 106 | # 重新采样记录 107 | $ perf record -e probe:do_sys_open -aR ls 108 | 109 | # 查看结果 110 | $ perf script 111 | perf 13593 [000] 91846.053622: probe:do_sys_open: (ffffffffa807b290) filename_string="/proc/13596/status" 112 | ls 13596 [000] 91846.053995: probe:do_sys_open: (ffffffffa807b290) filename_string="/etc/ld.so.cache" 113 | ls 13596 [000] 91846.054011: probe:do_sys_open: (ffffffffa807b290) filename_string="/lib/x86_64-linux-gnu/libselinux.so.1" 114 | ls 13596 [000] 91846.054066: probe:do_sys_open: (ffffffffa807b290) filename_string="/lib/x86_64-linux-gnu/libc.so.6” 115 | ... 116 | # 使用完成后不要忘记删除探针 117 | $ perf probe --del probe:do_sys_open 118 | ``` 119 | 120 | perf trace 的使用: 121 | ```sh 122 | $ perf trace ls 123 | ? ( ): ls/14234 ... [continued]: execve()) = 0 124 | 0.177 ( 0.013 ms): ls/14234 brk( ) = 0x555d96be7000 125 | 0.224 ( 0.014 ms): ls/14234 access(filename: 0xad98082 ) = -1 ENOENT No such file or directory 126 | 0.248 ( 0.009 ms): ls/14234 access(filename: 0xad9add0, mode: R ) = -1 ENOENT No such file or directory 127 | 0.267 ( 0.012 ms): ls/14234 openat(dfd: CWD, filename: 0xad98428, flags: CLOEXEC ) = 3 128 | 0.288 ( 0.009 ms): ls/14234 fstat(fd: 3, statbuf: 0x7ffd2015f230 ) = 0 129 | 0.305 ( 0.011 ms): ls/14234 mmap(len: 45560, prot: READ, flags: PRIVATE, fd: 3 ) = 0x7efe0af92000 130 | 0.324 Dockerfile test.sh 131 | ( 0.008 ms): ls/14234 close(fd: 3 ) = 0 132 | ... 133 | ``` 134 | 135 | ### 发现面试题 136 | 137 | 如何选择追踪工具? 138 | 139 | 常见动态追踪场景和工具: 140 | ![](https://static001.geekbang.org/resource/image/5a/25/5a2b2550547d5eaee850bfb806f76625.png) 141 | 142 | ### 精选留言 143 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/52.案例篇:服务吞吐量下降很厉害,怎么分析?.md: -------------------------------------------------------------------------------- 1 | ## 52 | 案例篇:服务吞吐量下降很厉害,怎么分析? 2 | 3 | 4 | ### 笔记 5 | 6 | perf 可以用来分析 CPU cache、CPU 迁移、分支预测、指令周期等各种硬件事件; 7 | perf 也可以只对感兴趣的事件进行动态追踪。 8 | 9 | strace 基于系统调用 ptrace 实现。带来了两个问题: 10 | 11 | 1. 由于 ptrace 是系统调用,就需要在内核态和用户态切换。当事件数量比较多时,繁忙的切换必然会影响原有服务的性能; 12 | 2. ptrace 需要借助 SIGSTOP 信号挂起目标进程。这种信号控制和进程挂起,会影响目标进程的行为。 13 | 14 | 15 | 在 strace 的启发下,结合内核中的 utrace 机制, perf 也提供了一个 trace 子命令,是取代 strace 的首选工具。相对于 ptrace 机制来说,perf trace 基于内核事件,自然要比进程跟踪的性能好很多。 16 | 17 | eBPF 追踪的工作原理: 18 | 19 | ![](https://static001.geekbang.org/resource/image/a3/e9/a3547f2ac1d4d75b850a02a2735560e9.png) 20 | 21 | eBPF 的执行需要三步: 22 | 1. 从用户跟踪程序生成 BPF 字节码; 23 | 2. 加载到内核中运行; 24 | 3. 向用户空间输出结果。 25 | 26 | bcc 适用场景: 27 | 28 | ![](https://static001.geekbang.org/resource/image/fc/21/fc5f387a982db98c49c7cefb77342c21.png) 29 | 30 | 特性需要特定版本才支持: 31 | 32 | ![](https://static001.geekbang.org/resource/image/61/e8/61abce1affc770a15dae7d489e50a8e8.png) 33 | 34 | SystemTap 也是一种可以通过脚本进行自由扩展的动态追踪技术。 35 | 36 | sysdig 则是随着容器技术的普及而诞生的,主要用于容器的动态追踪。集百家所长。 37 | 38 | sysdig 的特点: sysdig = strace + tcpdump + htop + iftop + lsof + docker inspect。 39 | 40 | 41 | ### 命令 42 | 43 | perf list ,查询所有支持的事件。 44 | 45 | ```sh 46 | # 执行 perf probe 命令,添加 do_sys_open 探针 47 | $ perf probe --add do_sys_open 48 | Added new event: 49 | probe:do_sys_open (on do_sys_open) 50 | You can now use it in all perf tools, such as: 51 | perf record -e probe:do_sys_open -aR sleep 1 52 | ``` 53 | 54 | 采样: 55 | 56 | ```sh 57 | # 对 10s 内的 do_sys_open 进行采样 58 | $ perf record -e probe:do_sys_open -aR sleep 10 59 | [ perf record: Woken up 1 times to write data ] 60 | [ perf record: Captured and wrote 0.148 MB perf.data (19 samples) ] 61 | ``` 62 | 63 | 采样结果进行分析: 64 | 65 | ```sh 66 | # 查看采样结果 67 | $ perf script 68 | perf 12886 [000] 89565.879875: probe:do_sys_open: (ffffffffa807b290) 69 | sleep 12889 [000] 89565.880362: probe:do_sys_open: (ffffffffa807b290) 70 | sleep 12889 [000] 89565.880382: probe:do_sys_open: (ffffffffa807b290) 71 | sleep 12889 [000] 89565.880635: probe:do_sys_open: (ffffffffa807b290) 72 | sleep 12889 [000] 89565.880669: probe:do_sys_open: (ffffffffa807b290) 73 | ``` 74 | 75 | 了解 do_sys_open 的所有参数: 76 | ```sh 77 | 78 | $ perf probe -V do_sys_open 79 | Available variables at do_sys_open 80 | @ 81 | char* filename 82 | int dfd 83 | int flags 84 | struct open_flags op 85 | umode_t mode 86 | ``` 87 | 88 | 添加命名探针前要把旧的探针删除: 89 | 90 | ```sh 91 | 92 | # 先删除旧的探针 93 | perf probe --del probe:do_sys_open 94 | 95 | # 添加带参数的探针 96 | $ perf probe --add 'do_sys_open filename:string' 97 | Added new event: 98 | probe:do_sys_open (on do_sys_open with filename:string) 99 | You can now use it in all perf tools, such as: 100 | perf record -e probe:do_sys_open -aR sleep 1 101 | ``` 102 | 103 | 然后再进行采样: 104 | 105 | ```sh 106 | # 重新采样记录 107 | $ perf record -e probe:do_sys_open -aR ls 108 | 109 | # 查看结果 110 | $ perf script 111 | perf 13593 [000] 91846.053622: probe:do_sys_open: (ffffffffa807b290) filename_string="/proc/13596/status" 112 | ls 13596 [000] 91846.053995: probe:do_sys_open: (ffffffffa807b290) filename_string="/etc/ld.so.cache" 113 | ls 13596 [000] 91846.054011: probe:do_sys_open: (ffffffffa807b290) filename_string="/lib/x86_64-linux-gnu/libselinux.so.1" 114 | ls 13596 [000] 91846.054066: probe:do_sys_open: (ffffffffa807b290) filename_string="/lib/x86_64-linux-gnu/libc.so.6” 115 | ... 116 | # 使用完成后不要忘记删除探针 117 | $ perf probe --del probe:do_sys_open 118 | ``` 119 | 120 | perf trace 的使用: 121 | ```sh 122 | $ perf trace ls 123 | ? ( ): ls/14234 ... [continued]: execve()) = 0 124 | 0.177 ( 0.013 ms): ls/14234 brk( ) = 0x555d96be7000 125 | 0.224 ( 0.014 ms): ls/14234 access(filename: 0xad98082 ) = -1 ENOENT No such file or directory 126 | 0.248 ( 0.009 ms): ls/14234 access(filename: 0xad9add0, mode: R ) = -1 ENOENT No such file or directory 127 | 0.267 ( 0.012 ms): ls/14234 openat(dfd: CWD, filename: 0xad98428, flags: CLOEXEC ) = 3 128 | 0.288 ( 0.009 ms): ls/14234 fstat(fd: 3, statbuf: 0x7ffd2015f230 ) = 0 129 | 0.305 ( 0.011 ms): ls/14234 mmap(len: 45560, prot: READ, flags: PRIVATE, fd: 3 ) = 0x7efe0af92000 130 | 0.324 Dockerfile test.sh 131 | ( 0.008 ms): ls/14234 close(fd: 3 ) = 0 132 | ... 133 | ``` 134 | 135 | ### 发现面试题 136 | 137 | 如何选择追踪工具? 138 | 139 | 常见动态追踪场景和工具: 140 | ![](https://static001.geekbang.org/resource/image/5a/25/5a2b2550547d5eaee850bfb806f76625.png) 141 | 142 | ### 精选留言 143 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/53.套路篇:系统监控的综合思路.md: -------------------------------------------------------------------------------- 1 | ## 53 | 套路篇:系统监控的综合思路 2 | 3 | 4 | ### 笔记 5 | 6 | 专门用于性能监控的 USE(Utilization Saturation and Errors)法。 7 | USE 法把系统资源的性能指标,简化成了三个类别,即使用率、饱和度以及错误数。 8 | 9 | - 使用率,表示资源用于服务的时间或容量百分比。100% 的使用率,表示容量已经用尽或者全部时间都用于服务。 10 | - 饱和度,表示资源的繁忙程度,通常与等待队列的长度相关。100% 的饱和度,表示资源无法接受更多的请求。 11 | - 错误数表示发生错误的事件个数。错误数越多,表明系统的问题越严重。 12 | 13 | 常见指标分类(USE 法) 14 | 15 | ![](https://static001.geekbang.org/resource/image/cc/ee/ccd7a9350c270c0168bad6cc8d0b8aee.png) 16 | 17 | 18 | 19 | ### 命令 20 | 21 | 22 | ### 发现面试题 23 | 24 | 25 | ### 精选留言 26 | 27 | 除了 USE 法,还有 RED 原则。 28 | 29 | RED 方法更偏重于应用,在很多微服务中会用到。 30 | 31 | Rate (R): The number of requests per second. 32 | Errors (E): The number of failed requests. 33 | Duration (D): The amount of time to process a request. 34 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/54.套路篇:应用监控的一般思路.md: -------------------------------------------------------------------------------- 1 | ## 54 | 套路篇:应用监控的一般思路 2 | 3 | 4 | ### 笔记 5 | 6 | 快速定位“性能瓶颈区”的关键指标: 7 | 1. 应用进程的资源使用情况,比如进程占用的 CPU、内存、磁盘 I/O、网络等。使用过多的系统资源,导致应用程序响应缓慢或者错误数升高,是一个最常见的性能问题。 8 | 2. 应用程序之间调用情况,比如调用频率、错误数、延时等。由于应用程序并不是孤立的,如果其依赖的其他应用出现了性能问题,应用自身性能也会受到影响。 9 | 3. 应用程序内部核心逻辑的运行情况,比如关键环节的耗时以及执行过程中的错误等。由于这是应用程序内部的状态,从外部通常无法直接获取到详细的性能数据。所以,应用程序在设计和开发时,就应该把这些指标提供出来,以便监控系统可以了解其内部运行状态。 10 | 11 | 可以借助使用 Zipkin、Jaeger、Pinpoint 等各类开源工具,来构建全链路跟踪系统。 12 | 13 | ### 命令 14 | 15 | 16 | ### 发现面试题 17 | 18 | 19 | ### 精选留言 20 | 21 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/55.套路篇:分析性能问题的一般步骤.md: -------------------------------------------------------------------------------- 1 | ## 55 | 套路篇:分析性能问题的一般步骤 2 | 3 | ### 笔记 4 | 5 | top、pidstat、vmstat 这类工具所汇报的 CPU 性能指标,都源自 /proc 文件系统(比如 /proc/loadavg、/proc/stat、/proc/softirqs 等) 6 | 7 | ### 命令 8 | 9 | 10 | ### 发现面试题 11 | 12 | 13 | ### 精选留言 14 | 15 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/56.套路篇:优化性能问题的一般方法.md: -------------------------------------------------------------------------------- 1 | ## 56 | 套路篇:优化性能问题的一般方法 2 | 3 | 4 | ### 笔记 5 | 6 | 7 | ### 命令 8 | 9 | 10 | ### 发现面试题 11 | 12 | 13 | ### 精选留言 14 | 15 | DPDK可以查看它的官网文档 https://www.dpdk.org/ ,XDP 的话,可以参考 https://www.iovisor.org/technology/xdp 这里列出的一些资源 16 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/57.套路篇:Linux 性能工具速查.md: -------------------------------------------------------------------------------- 1 | ## 57 | 套路篇:Linux 性能工具速查 2 | 3 | 4 | ### 笔记 5 | 6 | Brendan Gregg 整理的性能工具谱图 7 | ![](https://static001.geekbang.org/resource/image/b0/01/b07ca95ef8a3d2c89b0996a042d33901.png) 8 | 9 | CPU 性能指标 10 | ![](https://static001.geekbang.org/resource/image/9a/69/9a211905538faffb5b3221ee01776a69.png) 11 | 12 | CPU 性能工具 13 | ![](https://static001.geekbang.org/resource/image/28/b0/28cb85011289f83804c51c1fb275dab0.png) 14 | 15 | 内存性能指标 16 | ![](https://static001.geekbang.org/resource/image/ee/c0/ee36f73b9213063b3bcdaed2245944c0.png) 17 | 18 | 内存性能工具 19 | ![](https://static001.geekbang.org/resource/image/79/f8/79ad5caf0a2c105b7e9ce77877d493f8.png) 20 | 21 | 注:最后一行 pcstat 的源码链接为 https://github.com/tobert/pcstat 22 | 23 | I/O 性能指标 24 | ![](https://static001.geekbang.org/resource/image/72/3b/723431a944034b51a9ef13a8a1d4d03b.png) 25 | 26 | 文件系统和磁盘 I/O 性能工具 27 | ![](https://static001.geekbang.org/resource/image/c2/a3/c232dcb4185f7b7ba95c126889cf6fa3.png) 28 | 29 | 网络性能指标 30 | ![](https://static001.geekbang.org/resource/image/37/a4/37d04c213acfa650bd7467e3000356a4.png) 31 | 32 | 网络性能工具 33 | ![](https://static001.geekbang.org/resource/image/5d/5d/5dde213baffd7811ab73c82883b2a75d.png) 34 | 35 | 基准测试工具 36 | ![](https://static001.geekbang.org/resource/image/f0/e9/f094f489049602e1058e02edc708e6e9.png) 37 | 38 | ### 命令 39 | 40 | 41 | ### 发现面试题 42 | 43 | 当分析性能问题时,大的来说,主要有这么两个步骤: 44 | 45 | - 第一步,从性能瓶颈出发,根据系统和应用程序的运行原理,确认待分析的性能指标。 46 | - 第二步,根据这些图表,选出最合适的性能工具,然后了解并使用工具,从而更快观测到需要的性能数据。 47 | 48 | ### 精选留言 49 | 50 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/58.答疑(六):容器冷启动如何性能分析?.md: -------------------------------------------------------------------------------- 1 | ## 58 | 答疑(六):容器冷启动如何性能分析? 2 | 3 | 4 | ### 笔记 5 | 6 | 对于 eBPF 来说,除了可以通过内核源码来了解,我更推荐你从 [BPF Compiler Collection (BCC)](https://github.com/iovisor/bcc) 这个项目开始。BCC 提供了很多短小的示例,可以帮你快速了解 eBPF 的工作原理,并熟悉 eBPF 程序的开发思路。了解这些基本的用法后,再去深入 eBPF 的内部,就会轻松很多。 7 | 8 | ### 命令 9 | 10 | 11 | ### 发现面试题 12 | 13 | 同样都是火焰图,CPU 火焰图和内存火焰图,在生成数据时到底有什么不同? 14 | CPU 火焰图和内存火焰图,最大的差别其实就是数据来源的不同,也就是函数堆栈不同,而火焰图的格式还是完全一样的。 15 | 16 | - 对 CPU 火焰图来说,采集的数据主要是消耗 CPU 的函数; 17 | - 对内存火焰图来说,采集的数据主要是内存分配、释放、换页等内存管理函数。 18 | 19 | 20 | ### 精选留言 21 | 22 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/6.案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?.md: -------------------------------------------------------------------------------- 1 | ## 06 | 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用? 2 | 3 | ## 笔记 4 | 5 | 工具: 6 | 7 | pstree,用树状形式显示所有进程之间的关系。 8 | 9 | pstree | grep stress 10 | 11 | perf record -g 记录性能事件,然后使用 perf report 查看 12 | 13 | execsnoop是一个专为短时进程设计的工具,通过 ftrace 实时监控进程的 exec() 行为,并输出短时进程的基本信息,包括进程 PID,父进程 PID,命令行参数以及执行的结果。 14 | 15 | ### 发现面试题 16 | 17 | pid 一直在变,说明什么? 18 | 19 | - 要么是进程不停地重启(可能遇到了段错误、配置错误) 20 | - 要么就是全新的进程。(短时进程,在其他应用内部通过 exec 调用的外面命令。它只运行很短的时间就会结束,top命令间隔比较长,所以很难监控看到。 21 | 22 | 短时应用导致的问题,会有哪些可能性? 23 | 24 | - 应用里直接调用了其他二进制程序,这些程序通常运行时间比较短,通过 top 等工具不容易发现。 25 | - 应用本身在不停地崩溃重启,而启动过程的资源初始化,很可能会占用相当多的CPU。 26 | 27 | ### 专栏金句 28 | 29 | 当你发现系统的 CPU 使用率很高的时候,不一定能找到相对应的高 CPU 使用率的进程。 30 | 31 | 父亲应该一直对儿子负责,善始善终,如果不作为或者跟不上,都会导致“问题少年”的出现。 32 | 33 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/7.案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上).md: -------------------------------------------------------------------------------- 1 | ## 07 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上) 2 | 3 | ### 笔记 4 | 5 | R(运行)、D(不可中断睡眠)、Z(僵尸)、S(可中断睡眠)、I (空闲)、T(暂停)状态。 6 | 7 | 进程组和会话,他们用来管理一组相互关联的进程。 8 | 9 | - 进程组表示一组相互关联的进程,比如每个子进程都是父进程所在组的成员。 10 | - 会话是指共享同一个控制端的一个或多个进程组。 11 | 12 | 不可中断状态,表示进程正在跟硬件交互,为了保护进程数据和硬件的一致性,系统不允许其他进程或中断打断这个进程。进程长时间处于不可中断状态,通常表示系统有 I/O 性能问题。 13 | 14 | 僵尸进程表示进程已经退出,但它的父进程还没有回收子进程占用的资源。短暂的僵尸进程不用太关注,但是进程长时间处于僵尸状态,就需要注意了,可能会有应用程序没有正常处理子进程的退出。 15 | 16 | ### 发现面试题 17 | 18 | ### 专栏金句 19 | 20 | ### 精选留言 21 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/8.案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下).md: -------------------------------------------------------------------------------- 1 | ## 08 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下) 2 | 3 | ### 笔记 4 | 5 | strace 正是最常用的跟踪进程系统调用的工具。 6 | 7 | iowait 高不一定代表 I/O 有性能瓶颈。当系统中只有 I/O 类型的进程在运行时,iowait 也会很高,但实际上,磁盘的读写远远没有达到性能瓶颈的程度。 8 | 9 | 碰到 iowait 升高时,需要先用 dstat、pidstat 等工具,确认是不是磁盘 I/O 的问题,然后再找是哪些进程导致了 I/O。 10 | 11 | ### 命令 12 | 13 | dstat 14 | 15 | ### 发现面试题 16 | 17 | 以 root 用户运行为什么还会提示没有权限呢?(先检查一下进程的状态是否正常,通过 ps 查看对应的进程号,可能它已经处于 Z 状态了(僵尸进程)。 18 | 19 | ### 专栏金句 20 | 21 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/9.基础篇:怎么理解Linux软中断?.md: -------------------------------------------------------------------------------- 1 | ## 09 | 基础篇:怎么理解Linux软中断? 2 | 3 | ### 笔记 4 | 5 | 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。 6 | 7 | >为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行 8 | 9 | Linux 将中断处理过程分成了两个阶段: 10 | 11 | - 上半部用来快速处理中断 12 | - 下半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行 13 | 14 | ### 发现面试题 15 | 16 | 怎么知道你的系统里有哪些软中断呢? 17 | 18 | - /proc/softirqs 提供了软中断的运行情况; 19 | - /proc/interrupts 提供了硬中断的运行情况。 20 | 21 | ### 专栏金句 22 | 23 | 比如说你订了一份外卖,但是不确定外卖什么时候送到,也没有别的方法了解外卖的进度,但是,配送员送外卖是不等人的,到了你这儿没人取的话,就直接走人了。所以你只能苦苦等着,时不时去门口看看外卖送到没,而不能干其他事情。 24 | 25 | ### 精选留言 -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/99.微信总结.md: -------------------------------------------------------------------------------- 1 | ## 微信总结 2 | 3 | -------------------------------------------------------------------------------- /02.learning/learning-linux/Linux 性能优化实战/我的总结.md: -------------------------------------------------------------------------------- 1 | ## 我的读书总结 2 | 3 | ### 数据汇总 4 | 5 | 从购买课程第一天开始计算,我完成课程结束,一共花费了148天,实际学习跨度时间为43天,学习天数为31天,学习时长为19小时14分,收听约12小时音频,平均每天学习37分钟。 6 | 7 | **极客时间 App 统计:** 8 | ![](https://static001.geekbang.org/resource/image/f2/e5/f293c969a147c3ad7753b312205962e5.jpg) 9 | 10 | **阅读记录 App 统计:** 11 | ![](https://raw.githubusercontent.com/yangwenmai/learning-growth/master/assets/images/read_linux_performance_book.jpg) 12 | 13 | 以上统计数据仅供查看,不具备任何参考价值。 14 | 15 | ### 《Linux 性能优化实战》完成情况 16 | 17 | 开始时间:2020-05-24 18 | 完成时间:2020-07-07 19 | 购买数:28117 20 | 我当时的名次:1366 21 | 我当时的完成率:4.8% 22 | 23 | TalkGo 完成人数:33 人 24 | TalkGo 完成率:33/67=49% 25 | >(截止到7月25日下午14点)。 26 | 27 | ### 我的阅读总结 28 | 29 | 1. 按照制定好的阅读计划,可以很好的执行书籍阅读; 30 | 2. 书友们一起阅读,可以在交流时产生思维的激发和共鸣; 31 | 3. 实战课程,仅仅阅读和听是远远不够的,一定记得实验; 32 | 4. 带着目的学习,一定是最高效的方式; 33 | 34 | ### 组织总结 35 | 36 | TalkGo 读书会第一期的发起是在2020年5月23日,第一批入群的小伙伴是在5月23日16:33,当时有饶全成、盆栽、李伟和我4个人,很快陆陆续续又有新的小伙伴加入了进来,大概到5月25日开始的时候有60人左右,开始一周内又陆陆续续加进来几个小伙伴,最终正常启动期间是68人一起学习。 37 | 38 | TalkGo 读书会第一期是从2020年5月25日开始,预计结束是在7月26日。 39 | 40 | 咱们的启动会是在5月25日晚上21点进行,参会人数39人,整个会议分为两大部分,第一部分是我对咱们 TalkGo 读书会的介绍、为什么选这个专栏、专栏作者倪朋飞对我们的寄语以及读书会规则讲解和答疑,第二部分是书友们的线上自我介绍; 41 | 42 | 5月25日,咱们每个人都信心满满,非常积极认真的学习,有问题也都很迅速的提出来,大家伙也都很认真的回答。(在这里要非常感谢这些无私奉献解答的朋友,是你们让咱们的讨论变得有价值,并且也有了收获)。 43 | 但是好景不长,大概是一周以后,我们群的活跃度就急转直下了,一周也没几个人说话。(针对这一部分的数据统计,我觉得可以参考 `88.精选留言` 中的统计趋势图。 44 | 45 | 虽然群的活跃度是在逐步降低,但是一直到最后一周也没有人放弃(最后一周有一个小伙伴因为身体原因住院,不得不退出读书会),还是要给大家伙点个赞。 46 | 47 | #### 组委会总结 48 | 49 | 1. 读书会的规则还有待完善; 50 | 2. 组织者在日常运营投入时间和精力有限; 51 | 3. 日常问答引导不到位; 52 | 4. 必须有启动会; 53 | 5. 每个阶段必须有实时回顾和小结; 54 | 55 | #### 对 TalkGo 读书会的建议 56 | 57 | 饶全成:核心想法是分小组,每周有一个小组上去分享,分享内容包括学的东西,面试题,留言等。 58 | 李锦锐:一个普遍的现象是后期大家的积极性都不高。可以搞个中期总结,之类的再提高一下积极性? 59 | 60 | 其他人待补。。。 61 | 62 | ### 倪朋飞推荐书单 63 | 64 | 1. Linux 基础入门书籍:《鸟哥的 Linux 私房菜》 65 | ![](https://static001.geekbang.org/resource/image/8e/b4/8e3b114e11f6f5195e176290e4aa6eb4.png) 66 | 2. 计算机原理书籍:《深入理解计算机系统》 67 | ![](https://static001.geekbang.org/resource/image/6b/07/6b0cadb6858c3e00885e829d0910b207.png) 68 | 3. Linux 编程书籍:《Linux 程序设计》和《UNIX 环境高级编程》 69 | ![](https://static001.geekbang.org/resource/image/1f/e7/1fe3cc0a1d0772282be0047dbfd67fe7.png) 70 | ![](https://static001.geekbang.org/resource/image/86/90/86ac9cfbba6a255c3592de13950be190.png) 71 | 4. Linux 内核书籍:《深入 Linux 内核架构》 72 | ![](https://static001.geekbang.org/resource/image/e1/5e/e1ed53283b51ed81a96b9c9d2e72d65e.png) 73 | 5. 性能优化书籍:《性能之巅:洞悉系统、企业与云计算》 74 | ![](https://static001.geekbang.org/resource/image/5b/55/5b8392e187c770b796c445ded4819655.png) 75 | 6. 计算机网络经典教材《计算机网络(第 5 版)》 76 | ![](https://static001.geekbang.org/resource/image/ce/36/cef3bf15fa095140d499ba56fe4f2e36.png) 77 | 7. 网络协议必读书籍《TCP/IP 详解 卷 1:协议》 78 | ![](https://static001.geekbang.org/resource/image/07/56/07732b5c083e68874e0796a6ba708f56.png) 79 | 8. Wireshark 书籍《Wireshark 网络分析就这么简单》和《Wireshark 网络分析的艺术》 80 | ![](https://static001.geekbang.org/resource/image/fe/79/feaf5c9f1b5dd8c4a1546344c67e3979.png) 81 | ![](https://static001.geekbang.org/resource/image/27/f6/278f19c944ae955de49575bca3fde0f6.png) 82 | 9. 网络编程书籍《UNIX 网络编程》 83 | https://static001.geekbang.org/resource/image/74/7e/74f218f137c7a61d7cb40c117831137e.png 84 | 85 | 读书不在多,而在精。 86 | 87 | 在很长一段时间内(包括现在),我也会陷入追求量,而忽略质。 88 | 如果你没有办法保证质,那有量应该也会提升你自己的。 89 | 不过,我相信当你拥有量后,你尝试着抽出时间来反思自己的阅读,再将其转化为质。 90 | 不管怎么样,你坚持下去,一定能看到一个更好的你。 91 | 行动起来吧! 92 | -------------------------------------------------------------------------------- /02.learning/learning-linux/README.md: -------------------------------------------------------------------------------- 1 | # Linux 攻坚计划 2 | 3 | ## 读书笔记 4 | 5 | | 书籍(详情) | 进度 | 6 | |----|----| 7 | | [Linux 内核设计与实现](https://github.com/yangwenmai/learning-linux/issues/1) | 0% | 8 | | [Linux 性能优化实战 by 倪朋飞](./Linux%20性能优化实战/) | 100% | 9 | 10 | ## 书单 11 | 12 | || 书籍 | 作者 | 13 | |----|----|----| 14 | ||[Linux 内核设计与实现](https://book.douban.com/subject/6097773/) | 作者: Robert Love,译者: 陈莉君 / 康华 | 15 | -------------------------------------------------------------------------------- /02.learning/learning-linux/books/linux-kernel-development-3rd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/02.learning/learning-linux/books/linux-kernel-development-3rd.jpg -------------------------------------------------------------------------------- /02.learning/learning-qa/README.md: -------------------------------------------------------------------------------- 1 | # Learning QA 2 | 3 | Learning QA - 学习测试技术技能,实践交流分享、总结。 4 | 5 | ## 强烈推荐 6 | 7 | ### 1. [BQConf 演讲:软件测试人员该何去何从? by 林冰玉](https://www.bylinzi.com/2019/11/25/bqconf-software-qa-how-to-grow/) 8 | 9 | > 我的收益简述: 10 | > 11 | > 1. 趋势性内容的阅读(理解); 12 | > 2. 了解到了 World Quality Report; 13 | > 3. T 型学习能力模型; 14 | > 4. 思考 Why, What, How; 15 | > 5. 先学一个东西再说,学了总比没学好?(不一样的视角来看待当前的现状) 16 | > 17 | > 全文总结: 18 | > 19 | > - 以始为终,持续学习 20 | > - 沟通交流,让知识翻倍 21 | > - 勇于突破,系统思考 22 | > - 选自己所爱,爱自己所选 23 | 24 | > 更多可点击查看:[软件测试人员如何提升自己?](./thinking/software_qa_how_to_grow_reading_notes.md) 25 | 26 | ## BQOnline 27 | 28 | BQOnline(Better Quality Online)是由 ThoughtWorks QA Community 发起的一项全新的线上活动。本着自由、开放、互动、分享的宗旨,通过定期输出优质的测试相关经验,希望为广大测试君们打造一个优质的测试线上交流平台。 29 | 30 | ### 第三届 BQOnline 好书分享活动总结 31 | 32 | 第三届 BQOnline 延续上一届活动模式,以好书分享为主题,以《测试工程师全栈技术进阶与实践》书籍章节为主线,讲师结合实际项目的实践和探索,希望能帮助读者更全面理解作为测试工程师全栈技术发展方向与前沿技术探索。 33 | 34 | 本次活动根据书中内容开展了三期,分别于2020年3月11日、18日、25日晚线上直播形式举办。 35 | 36 | | 期数 | 活动概览 | 视频回看 | PPT | 37 | |----|----|----|----| 38 | |第一期《测试工程师全栈技术进阶与实践》3月11日| 首先本书作者茹炳晟给我们做了精彩的开场介绍,接着刘冉老师分享了第1章和第2章的丰富内容。以书中软件测试基础知识精要为主线,讲解书中的故事,分享讲师读后的思、辨、悟,帮助大家系统的梳理一遍软件测试基础的精要,以便大家查漏补缺,并获得一些新的理解和感悟。|https://scrmtech.gensee.com/webcast/site/vod/play-31da575257d64111a8994efd63c28ce8 | [测试工程师全栈技术进阶与实践下载](http://www.bqconf.com/wp-content/uploads/2020/03/%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%85%A8%E6%A0%88%E6%8A%80%E6%9C%AF%E8%BF%9B%E9%98%B6%E4%B8%8E%E5%AE%9E%E8%B7%B5.pdf) 39 | |第二期《读书分享-自动化测试-新版》3月18日| 本期乔桃利老师结合自己在诸多项目中的丰富实践与探索,为我们讲述了自己对第3~6章以及第9章的深刻理解。并且我们邀请到《全程软件测试》作者朱少民作为特邀嘉宾与观众进行互动。以书中提到单元测试、API测试、UI层测试、Mobile测试精要为主线,分享讲师总结的各层测试实施策略,以及所受启发,从而帮助大家重新思考在自动化测试实施过程中如何做才能在保证自动化覆盖率的同时尽可能降低维护成本。| https://scrmtech.gensee.com/webcast/site/vod/play-a60ec65960194279ac60d1a7318345d8 | [读书分享-自动化测试-新版下载](http://www.bqconf.com/wp-content/uploads/2020/03/%E8%AF%BB%E4%B9%A6%E5%88%86%E4%BA%AB-%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95-%E6%96%B0%E7%89%88.pdf) 40 | |第三期《非功能测试与测试新前景》3月25日| 刘冉老师结合自己丰富的行业经验,分享非功能测试和测试技术前景,包括性能测试、安全测试、AI测试,并和作者一起回答了之前的遗留问题。以书中测试技术进阶为主线,包括自动化测试基础架构、性能测试及新技术和互联网核心知识等,为大家展示软件测试工程师的技术进阶路线,以帮助大家解答自己成长中的困惑,并规划出自己的技术进阶路线。| https://scrmtech.gensee.com/webcast/site/vod/play-5de859f517a5481aab579009c4de10f9 | [非功能测试与测试新前景下载](http://www.bqconf.com/wp-content/uploads/2020/03/%E9%9D%9E%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95%E4%B8%8E%E6%B5%8B%E8%AF%95%E6%96%B0%E5%89%8D%E6%99%AF.pdf) 41 | 42 | [第三届 BQOnline 好书分享活动总结 - 详情页面](http://www.bqconf.com/2020/04/%e7%ac%ac%e4%b8%89%e5%b1%8abqonline%e5%a5%bd%e4%b9%a6%e5%88%86%e4%ba%ab%e6%b4%bb%e5%8a%a8%e6%80%bb%e7%bb%93/) 43 | 44 | ### 第二届 BQOnline 好书分享活动总结 45 | 46 | 第二届 BQOnline 以好书分享为主题,以《全程软件测试第3版》书籍章节为蓝本和主线,结合实际项目的实践和探索,希望能帮助读者更好的理解全程软件测试以及如何真正的提高软件质量。本次活动根据书本内容开展了三期,于2019年8月28日拉开帷幕。 47 | 48 | | 期数 |活动概览 | 视频回看 | PPT | 49 | |----|----|----|----| 50 | |第一期8月28日| 首先作者朱少民老师为我们带来了简单的开场介绍,接着刘冉老师分享了1-5章的内容,从整体上介绍全程软件测试的概念、思想和前提条件。| [视频回看:需要在微信中打开](https://app.ma.scrmtech.com/svip/sapIndex/SapSourceData?pf_uid=7019_1254&sid=10379&source=2&pf_type=3&channel_id=2257&channel_name=message-playback-after-webinar&tag_id=385d868c7f8482d9) | 第一期 PPT:http://www.bqconf.com/wp-content/uploads/2019/09/全程软件测试第3版第一期-1.pptx) | 51 | |第二期9月5日| 本期吕华老师结合自己在诸多项目中的探索和实践,为我们讲述了自己对 6-10 章的理解,分享了从产品和项目两个维度出发的一些思考和感悟。| [视频回看:需要在微信中打开](https://app.ma.scrmtech.com/svip/sapIndex/SapSourceData?pf_uid=7019_1254&sid=10448&source=2&pf_type=3&channel_id=2213&channel_name=fuwuhao-playback&tag_id=26da3eacaecb8ff8) | 第二期 PPT:http://www.bqconf.com/wp-content/uploads/2019/09/全程软件测试第二期.pptx) | 52 | |第三期9月19日| 刘冉老师辅以讲师多年的项目实践和经验,分享包括性能、安全以及可视化度量等话题,并和朱少民老师一起解答前两期的遗留问题。| [视频回看:需要在微信中打开](https://app.ma.scrmtech.com/svip/sapIndex/SapSourceData?pf_uid=7019_1254&sid=10451&source=2&pf_type=3&channel_id=2212&channel_name=message-5min-advance&tag_id=c7362bfd8014d749) | 第三期 PPT:http://www.bqconf.com/wp-content/uploads/2019/09/《全程软件测试》第三期.pptx | 53 | 54 | 55 | [第二届 BQOnline 好书分享活动总结 - 详情页面](http://www.bqconf.com/2019/09/%e7%ac%ac%e4%ba%8c%e5%b1%8abqonline%e5%a5%bd%e4%b9%a6%e5%88%86%e4%ba%ab%e6%b4%bb%e5%8a%a8%e6%80%bb%e7%bb%93/) 56 | -------------------------------------------------------------------------------- /02.learning/learning-qa/static/images/thinking_qa_how_to_grow_wordcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/02.learning/learning-qa/static/images/thinking_qa_how_to_grow_wordcloud.png -------------------------------------------------------------------------------- /02.learning/learning-qa/thinking/software_qa_how_to_grow_reading_notes.md: -------------------------------------------------------------------------------- 1 | ## 软件测试人员该何去何从? 2 | 3 | ![本篇文章的词云](../static/images/thinking_qa_how_to_grow_wordcloud.png) 4 | 5 | ## 测试人员面临的问题 6 | 7 | - 多年重复手动测试,只关注自己手头上的事情,跟别的团队较少沟通,相对比较封闭。有很多人觉得自己“能力够用”就行,舒适区过着很爽,很自然就没有学习提高的动力。 8 | - 应变能力越来越弱,随着年龄的增长,除了重复积累的经验,并没有同步增长你的技能。外界传递给你的压力可能越来越大了,身份转变了,上有老下有小,家庭的压力会导致你能用于技能提升的精力更少,更加难以提高。 9 | - 得不到技能的提高,在团队的影响力减小,话语权降低,不被重视,甚至自己都会怀疑自己的价值。(转岗,或者换行业-不是说这样不好,而是这到底是不是你逃避呢) 10 | 11 | ## 推荐《World Quality Report》 12 | 13 | Capgemini、Micro Focus 和 Sogeti 联合组织问卷调查,每年出具一份《World Quality Report》(全球质量报告) 14 | 15 | > 报告列出了大家关注的质量趋势,也对应给出了推荐的做法。 16 | 17 | 作者有之前的报告有文章进行了解读,有兴趣的可以仔细品读(欢迎大家一起学习和交流)。《[数字化时代的软件测试](https://www.bylinzi.com/2018/07/09/new-software-testing/)》和《[关于质量,大家都在关注什么](https://www.bylinzi.com/2019/05/21/world-quality-report-2018-19/)》。 18 | 19 | ### 今年的报告给我们带来了什么? 20 | 21 | > 功能是软件系统中最为核心的内容,但是只有功能是远远不够的。在功能的外层还有更高的质量目标。 22 | 23 | 最高质量的四个目标: 24 | 25 | - 安全 26 | - 不仅包括应用程序自身的安全、对用户隐私的保护。 27 | - 还包括软件开发过程中的安全和软件资产的安全管理。 28 | - 速度 29 | - 应用程序本身的性能 30 | - 交付的速度,从idea到成品交付到用户手里越快越好(抢占先机!) 31 | - 便利性 32 | - 应用程序究竟解决用户的什么问题,给用户提供多大的便利程度? 33 | - 体验 34 | - 易用性 35 | - 页面布局和配色等 36 | 37 | ![最高质量目标:终端用户满意度](https://www.bylinzi.com/wp-content/uploads/2019/11/Screen-Shot-2019-11-25-at-8.15.59-PM.png) 38 | 39 | 40 | 41 | 随着质量要求的提高,软件测试也不再是发现缺陷那么简单,对我们的测试人员的要求也有更大的变化。 42 | 43 | 44 | 45 | ### 行动起来 46 | 47 | #### 01. 学习 48 | 49 | 大家在学习的时候一定会面临的问题: 50 | 51 | - 技术日新月异,太多的东西要学了,我基础这么差,我该从何学起呢? 52 | 53 | > 现在的时代,学习渠道、学习内容都是无穷的,学习的困难不是学习资源,而是甄别哪一个值得学习。(给学习提高了更高的门槛,这也使得有部分人无从下手,困难就干脆不学了) 54 | 55 | - 不知道从哪学起,那就先学一个东西再说,学了总比没学好? 56 | 57 | > 这种方法在知识匮乏的时代是可取的。但是现在就不是这样了。 58 | > 59 | > 人的精力是有限的,应该学习对我们有价值,有用的。 60 | 61 | - 目的性不强,学到了零散的知识,很难真正派上用场,最后它也会被遗忘。 62 | 63 | > 可能很多 QA 都在啃次啃次的学 Python,自动化脚本必备嘛,不学一下就觉得自己落伍了。(可是学以不致用,那还不如不学,因为时间是你的敌人。) 64 | > 65 | > 反复几次之后,将会严重影响你的学习积极性。 66 | 67 | #### 那我们究竟应该怎么学呢? 68 | 69 | ##### 学习的过程 70 | 71 | 从海量的知识中挑选自己需要的部分,进行加工和提炼,变成自己掌握的知识。 72 | 73 | > 最关键的是将学到的知识应用到不同的领域,或者总结分享出来供他人学习和使用。 74 | 75 | ![学习的过程](https://www.bylinzi.com/wp-content/uploads/2019/11/Screen-Shot-2019-11-25-at-8.04.53-PM.png) 76 | 77 | 78 | 79 | 完整学习过程:**知识输入、加工提炼、知识输出**。 80 | 81 | 82 | 83 | 问大家一个问题:平常大家是如何定义读完了某本书?(学习完了某个视频) 84 | 85 | ? 86 | 87 | 必须有输出,输出方式: 88 | 89 | + 写读书笔记; 90 | + 提炼书中观点,结合自己的经验总结成博客文章; 91 | + 运用书中理论到工作实践中,在团队中分享; 92 | + 以演讲的方式到大会上分享给更多的人; 93 | 94 | 95 | 96 | 不断反复学习+总结+分享=某技术领域的专家 97 | 98 | 99 | 100 | ##### 学习的正确姿势 101 | 102 | 两个关键步骤: 103 | 104 | - 目标驱动,以始为终:搞清楚我们要把学习到的知识应用到哪里?(学习目标) 105 | 106 | > 搞清楚3个问题: 107 | > 108 | > - Why - 为什么要学?输出是什么? 109 | > - What - 要学什么内容?输入是什么? 110 | > - How - 如何学?学习的方式,对于不同的内容需要采用不同的学习方式。 111 | 112 | ![目标驱动,以始为终的学习](https://www.bylinzi.com/wp-content/uploads/2019/11/Screen-Shot-2019-11-25-at-8.08.50-PM.png) 113 | 114 | 那是不是就学习我们工作所需就够了呢?肯定不是,我们得提升自己。 115 | 116 | 我们先来看一个**T 型能力模型**提升自己的能力。 117 | 118 | ![T 型能力模型](https://www.bylinzi.com/wp-content/uploads/2019/06/T-shape.png) 119 | 120 | T 的横表示能力广度(拓宽视野,更多领域知识),T 的竖表示能力深度。 121 | 122 | > 我们应该结合自己的兴趣特点,找到最适合自己的那个领域,深入发展。 123 | > 124 | > 通过实践将知识转换为经验,总结归纳、不断锻炼,以获得利用经验解决问题的能力,拥有一技之长。 125 | 126 | ![](https://www.bylinzi.com/wp-content/uploads/2019/06/%E8%83%BD%E5%8A%9B%E6%8F%90%E5%8D%87%E8%B7%AF%E5%BE%84.png) 127 | 128 | 129 | 130 | ##### 学习的方向指导 131 | 132 | - 趋势性内容推荐一:全球质量报告就是一份很好的趋势方面的内容 133 | 134 | 质量报告提到让大家关注质量趋势的5个方面:AI 和测试、敏捷和 DevOps、测试自动化、环境和数据,以及质量保障方面的成本投入问题。 135 | 136 | 质量工程技能策略: 137 | 138 | ![质量工程技能策略](https://www.bylinzi.com/wp-content/uploads/2019/11/Screen-Shot-2019-11-25-at-8.12.18-PM.png) 139 | 140 | - 趋势性内容推荐二:ThoughtWorks 技术雷达 141 | 142 | ![](https://www.bylinzi.com/wp-content/uploads/2019/11/Screen-Shot-2019-11-25-at-8.12.35-PM.png) 143 | 144 | - 关注技术社区,技术大会,技术类公众号。(了解别人都在做什么,别做井底之蛙,多交流,多分享) 145 | 146 | #### 02. 沟通 147 | 148 | 光闷头苦学是不可以的,要想职业生涯更顺畅,一定要增加跟别人的沟通。 149 | 150 | - 项目团队内跟不同的角色沟通。 151 | 152 | - 团队为质量负责,但是不同角色对质量的理解可能不够透彻,对质量的关注不够,QA 需要承担起质量协调者的角色。(将我们对于质量的理解、质量状态及时的跟团队反馈,真正做到团队为质量负责。) 153 | - 跟不同角色的合作过程中,可以从对方角色学到自身欠缺的技能,也可以让对方从你身上学习到测试考虑的角度。(做的好,是可以双赢的) 154 | 155 | - ​ 更大范围的沟通 156 | 157 | - 技术社区 158 | - 其他交流渠道 159 | - 朋友、同学等 160 | 161 | > 方法:抛出自己的疑问,发表自己的看法。参与群体讨论,可对一些技术文章、所读书籍发表评论、读后感。还可以写文章、演讲来分享自己的经验所得。 162 | 163 | #### 03. 突破 164 | 165 | 测试人员容易抠细节,看不到大局。 166 | 167 | - 系统思考 168 | 169 | - 定位问题局限性停留在你发现问题的模块; 170 | - 比方说我们如何界定一个bug的优先级? 171 | 172 | - 扩大视野 173 | 174 | > 见多识广,或许能让你在看待问题时有不同的角度,可以让你提出更有建设性的解决方案。 175 | 176 | - 全局观 177 | 178 | - 结合自身特点来选择适合自己发展的方向和提升的方法。 179 | 180 | - 兴趣所长 181 | - 性格特征 182 | 183 | 184 | 林冰玉送大家两句话: 185 | 186 | ``` 187 | 选自己所爱,爱自己所选! 188 | 189 | 坚持就是胜利! 190 | ``` 191 | 192 | ### 总结 193 | 194 | - 以始为终,持续学习 195 | - 沟通交流,让知识翻倍 196 | - 勇于突破,系统思考 197 | - 选自己所爱,爱自己所选 198 | 199 | ### 参考资料 200 | 201 | 1. [BQConf 演讲:软件测试人员该何去何从?](https://www.bylinzi.com/2019/11/25/bqconf-software-qa-how-to-grow/) 202 | 2. [软件测试人员的挑战与机遇](https://www.bylinzi.com/2019/06/05/software-testers-challenge-n-chance/) 203 | 3. [The 11th edition of World Quality Report 2019-2020 > The future of quality assurance and its role in maximizing growth 全英文 68 页](https://storage.pardot.com/95412/225027/World_Quality_Report_2019_20_e_copy__2_.pdf) 204 | 205 | > 以下关键建议将帮助我们加速理解 WQR 2019-2020的质量工程之旅: 206 | > 207 | > 1. 构建一个部署智能分析的智能互联测试生态系统 208 | > 2. 在测试团队中扩展 AI 相关的技能,包括数据科学、统计、数学等等 209 | > 3. 将测试自动化重新想象为一个平台 210 | > 4. 提高对测试环境的认识和可视性;采用卓越中心的方法进行测试数据管理 211 | > 5. 提高游戏的安全性。在设计的生命周期早期引入安全性测试 212 | 213 | 4. [WQR 2019-2020 美国报告](https://www.capgemini.com/wp-content/uploads/2019/10/WQR-20190-20-North-America.pdf), [WQR 2019-2020 中国报告](https://www.capgemini.com/wp-content/uploads/2019/10/WQR-2019-20-China.pdf) -------------------------------------------------------------------------------- /03.communication/README.md: -------------------------------------------------------------------------------- 1 | # 03.社交 2 | 3 | - [Go 夜读](https://github.com/talk-go/night) 4 | - 可以记录每周闲聊和探讨的内。 5 | - [TalkGo 读书会](https://talkgo.org/) 6 | - TGO 7 | - TUG 8 | - PingCAP Infra Meetup 9 | - ArchSummit 10 | - TiDB DevCon 2020 11 | -------------------------------------------------------------------------------- /04.researching/README.md: -------------------------------------------------------------------------------- 1 | # 04.深度探究 2 | 3 | 可能是一些知名开源项目,核心理论知识,探究一些事情的发展历程,深度了解牛人传记。 4 | 5 | 比方说:go image history,rsc,rob pike, risk hudson ,ian lance taylor 等。 6 | -------------------------------------------------------------------------------- /04.researching/biography/bradfitz.md: -------------------------------------------------------------------------------- 1 | ## bradfitz 2 | 3 | 4 | 5 | 支持香港事件:https://twitter.com/bradfitz/status/1181312535326162944 6 | 7 | 8 | 9 | 2020-01-27 离职 Google 10 | 11 | 2020-01-30 加入 TailScale ,一家 VPN 公司。 12 | 13 | 14 | 15 | 详细的一些说明:https://studygolang.com/topics/10793 -------------------------------------------------------------------------------- /04.researching/biography/brian_kernighan.md: -------------------------------------------------------------------------------- 1 | # Brian Kernighan 2 | 3 | ***The Go Programming Language** 作者,Go first commit 4 | 5 | ## Profile 6 | 7 | https://www.cs.princeton.edu/~bwk/ 8 | 9 | [布莱恩・柯林汉在普林斯顿大学的首页](http://www.cs.princeton.edu/~bwk/) 10 | 11 | [布莱恩・柯林汉在贝尔实验室的首页](http://cm.bell-labs.com/who/bwk/) 12 | 13 | **兴趣:** 14 | 15 | 特定于应用程序的语言,文档准备,用户界面,软件工具,编程方法。 16 | 17 | - 美国艺术与科学研究院会员,2019 年; 18 | - 美国国家工程院院士,2002 年; 19 | - USENIX 协会终身成就奖,1997 年。 20 | 21 | ### 简介 22 | 23 | Brian W. Kernighan 在多伦多出生,1960 年至 1964 年间,就读于[多伦多大学](https://zh.wikipedia.org/wiki/多倫多大學),取得工程物理学(Engineering physics)[学士](https://zh.wikipedia.org/wiki/學士)。在[普林斯顿大学](https://zh.wikipedia.org/wiki/普林斯頓大學)取得[电子工程](https://zh.wikipedia.org/wiki/电子工程)博士,毕业后留在普林斯顿大学任教,直到 2000 年退休为止。 24 | 25 | 布莱恩・柯林汉是[贝尔实验室](https://zh.wikipedia.org/wiki/貝爾實驗室)的成员之一,曾参加 [UNIX](https://zh.wikipedia.org/wiki/UNIX) 系统的早期开发,之后又加入了 [贝尔实验室九号计划](https://zh.wikipedia.org/wiki/貝爾實驗室九號計畫)(Plan 9)的研发。在 1970 年代,布莱恩・柯林汉首先提出了 UNIX 这个名称,用来取代之前的 UNICS(Uniplexed Information and Computing System)。模仿[所见即所得](https://zh.wikipedia.org/wiki/所見即所得)(What You See Is What You Get,WYSIWYG),他提出所见即所有(What You See Is All You Get,WYSIAYG)这个名词。 26 | 27 | 1972 年,在 ["A Tutorial Introduction to the Language B"](https://web.archive.org/web/20150203071526/http://cm.bell-labs.com/cm/cs/who/dmr/btut.html) 中,首次提出 [Hello world](https://zh.wikipedia.org/wiki/Hello_world) 程式,作为编程语言入门的示范。 28 | 29 | 1978 年,与[丹尼斯・里奇](https://zh.wikipedia.org/wiki/丹尼斯·里奇)共同写作了《 [C 程序设计语言](https://zh.wikipedia.org/wiki/C程序设计语言_(书))》(The C Programming Language),在当中除了介绍 C 语言之外,也形成了所谓 K&R C 的程式风格(Coding Style)。 30 | 31 | Brian W. Kernighan 教授于 1969 年在普林斯顿获得电气工程博士学位,并于 2000 年加入该系。在返回普林斯顿之前,他在贝尔实验室计算科学研究中心工作了 30 年,当时他是贝尔实验室的负责人。 1981 年至 2000 年在计算结构研究部任教。Kernighan 教授是 1990-2009 年软件实践与经验编辑委员会的成员,并且自 1990 年以来一直担任 Addison-Wesley 专业计算系列的顾问。他的研究兴趣包括软件工具,面向应用的语言,编程方法,用户界面和技术培训。他于 2002 年当选为美国国家工程学院院士,并于 2019 年当选为美国艺术与科学学院院士。 32 | 33 | > https://www.cs.princeton.edu/people/profile/bwk 34 | 35 | 36 | 37 | ### Publications 38 | 39 | The Go Programming Language 40 | 41 | [Millions, Billions, Zillions: Defending Yourself in a World of Too Many Numbers](https://press.princeton.edu/titles/14171.html) 42 | 43 | ### Teching 44 | 45 | https://www.cs.princeton.edu/courses/archive/spring19/cos333/ 46 | 47 | >**Laptop Policy:** 48 | 49 | > Reminder: [**Laptops, phones and tablets are \**not\** permitted except for taking notes and other class purposes**](https://www.cs.princeton.edu/courses/archive/spring19/cos333/doonesbury.gif). Regrettably, computers and phones appear to be primarily used for email, chat, YouTube, Twitter, Google, solitaire, poker, eBay, Facebook, Instagram, Snapchat, COS 340 homework, and similarly compelling diversions, all of which distract you, your neighbors, and me. (Additions to this list are welcome; I can't keep up.) This [paper by Clay Shirky](https://medium.com/@cshirky/why-i-just-asked-my-students-to-put-their-laptops-away-7f5f7c50f368) makes the case for banning distractors, as does this [New York Times article.](https://www.nytimes.com/2017/11/22/business/laptops-not-during-lecture-or-meeting.html) 50 | 51 | ## podcast: 52 | 53 | https://softwareengineeringdaily.com/2016/01/06/language-design-with-brian-kernighan/ 54 | 55 | ### YouTube: 56 | 57 | Brian Kernighan QA 1/3 https://youtu.be/zmYhR8cUX90 58 | 59 | Brian Kernighan QA 2/3 https://youtu.be/VVpRj3Po6K4 60 | 61 | Brian Kernighan QA 3/3 https://youtu.be/E6vtRm5M8I0 62 | 63 | ["Code" Books (Prof Brian Kernighan) - Computerphile](https://www.youtube.com/watch?v=6v6wdK2EbIQ)https://www.youtube.com/watch?v=6v6wdK2EbIQ 64 | 65 | [Brian Kernighan: How I Write](https://www.youtube.com/watch?v=e9Mbl5f5zWA) 66 | 67 | [Oral History of Brian Kernighan](https://www.youtube.com/watch?v=bTWv-l0JhAc) 68 | 69 | 70 | 71 | [Kernighan](https://www.youtube.com/watch?v=de2Hsvxaf8M&list=PLCze0GH-JLQtYLFLjhkpbFmV5VAP9vltc) 72 | 73 | 74 | 75 | 更多 YouTube 视频,可以搜索:https://www.youtube.com/results?search_query=Brian+Kernighan+Q%26A 76 | 77 | 78 | 79 | ### 访谈 80 | 81 | Mihai Budiu: 你的名字正确的发音是什么?我听说这不是明显的方式? 82 | Brian Kernighan:发音是Kernihan, g是不发音的。 83 | 84 | Brian Kernighan:我在 1963 年看到了我的第一台计算机。那是一台旧的 IBM650。直到 1964 年我上大学的最后一年,我才进行任何认真的编程。 85 | 86 | *M:也许您可以通过更具体的方式来提供帮助:您能否向我们推荐一些对您有很大影响的书籍,计算机科学书籍或其他书籍?* 87 | 88 | 克:我读过不止一次的计算机科学书,实际上我每隔几年就会读一遍,然后再读一遍,是一 本很棒的书,弗雷德・布鲁克斯的《神话人月》。一方面,它写得很好,另一方面,即使超过 25 年,其中的建议仍然具有很高的实用性。当然,细节有所不同,有些事情我们采取了不同的方法,因为我们拥有更多的机械化能力和更多的计算机功能,但是其中有很多好的建议,因此我强烈推荐它。那是我能想到的唯一一本关于愉悦和洞见相结合的计算机科学书籍。 89 | 90 | 我还重读了其他与计算相关的书。在我的特殊情况下,有关如何写作和写作的书籍,例如 Strunk 和 White 的《风格的元素》。我回过头来,每隔几年也要重读一次,因为我认为交流的能力对大多数人来说和坐下来编写代码的能力一样重要。传达您正在做的事情的能力非常重要。 91 | 92 | 还有一本很棒的书《如何用统计说谎》,您可能会在自己的研究中发现有用 [笑声]。 93 | 94 | > The Mythical Man-Month by Fred Brooks 95 | > 96 | > The Elements of Style*' by Strunk and White 97 | > 98 | > *How to Lie with Statistics* 99 | 100 | Mihai Budiu: 您有什么爱好? 101 | 102 | Brian Kernighan: 谁有时间爱好? 如果我看看我现在的兴趣爱好,那就等于阅读。 当我不四处闲逛,玩电脑或做与工作有关的事情时,我会发现自己在读书。 通常是历史书籍; 我不知道为什么,这很奇怪,但是我喜欢阅读历史书籍。 在过去20或30年的一生中,我经历了3、4、5年的阶段。 例如,我经历了一个学习日语的阶段。 我可以告诉你,学习日语需要超过3年的时间! 所以那是一个失败。 当我还是一名研究生时,我花了大约五年的时间来做空手道,我达到了可以生存的地步,但是我放弃了它,这已不再是我生活的一部分。 我经历了一个对投资非常感兴趣的阶段,这也没有改变我的生活,所以显然我不是很擅长。 因此,我目前主要要做的是阅读很多东西 103 | 104 | > https://www.cs.cmu.edu/~mihaib/kernighan-interview/ 105 | 106 | ### 其他资料 107 | 108 | [brian kernighan回忆 grep 的起源](https://thenewstack.io/brian-kernighan-remembers-the-origins-of-grep/) 109 | 110 | [VCF East 2019 -- Brian Kernighan interviews Ken Thompson](https://youtu.be/EY6q5dv_B-o) 111 | 112 | > In the 1960s-1970s, Ken Thompson co-invented the UNIX operating system along with Dennis Ritchie at Bell Labs. He also worked on the language B, the operating system Plan 9, and the language Go. He and Ritchie won the Turing Award. He now works at Google. He’ll be interviewed Brian Kernighan of “K&R” fame. 113 | 114 | [37 Minutes with the Legendary Brian Kernighan](https://youtu.be/8CalKJ5-w-U) 115 | 116 | [Interview: Brian Kernighan Talks About Computers, Programming And Writing](https://webcache.googleusercontent.com/search?q=cache:k3W9WFpRj7kJ:https://www.electronicdesign.com/technologies/dev-tools/article/21798684/interview-brian-kernighan-talks-about-computers-programming-and-writing+&cd=1&hl=zh-CN&ct=clnk) 117 | 118 | https://en.wikipedia.org/wiki/Brian_Kernighan -------------------------------------------------------------------------------- /04.researching/biography/rick_hudson.md: -------------------------------------------------------------------------------- 1 | ## Rick Hudson 2 | 3 | 4 | 5 | https://blog.golang.org/go15gc 6 | 7 | https://pusher.com/sessions/meetup/the-realtime-guild/golangs-realtime-garbage-collector 8 | 9 | http://gchandbook.org/contents.html 10 | 11 | https://www.infoq.com/presentations/go-gc-performance/ 12 | 13 | https://www.youtube.com/watch?v=aiv1JOfMjm0 14 | 15 | https://talks.golang.org/2015/go-gc.pdf 16 | 17 | [1:05](https://night-reading-go.slack.com/archives/C891ZN6HG/p1581613528002500) 18 | 19 | https://www.infoq.com/interviews/hudson-go-gc/ 20 | 21 | https://blog.golang.org/ismmkeynote 22 | 23 | -------------------------------------------------------------------------------- /04.researching/biography/rob_pike.md: -------------------------------------------------------------------------------- 1 | # Rob Pike 2 | 3 | 4 | 5 | Rob Pike 声称自己获得 1980 年奥运会射箭银牌 6 | 7 | "As a joke Pike claims to have won the [1980 Olympic silver medal in Archery](http://en.wikipedia.org/wiki/Archery_at_the_1980_Summer_Olympics); however, Canada boycotted the 1980 Summer Olympics." 8 | 9 | 1980 年奥运会射箭的银牌得主 (Men's individual) 是 [Boris Isachenko](http://en.wikipedia.org/wiki/Boris_Isachenko) 10 | 11 | Go 语言的地鼠吉祥物是由 Rob Pike 的媳妇 Renee French 设计的 12 | 13 | 14 | 15 | ### 参考资料 16 | 17 | https://en.wikipedia.org/wiki/Rob_Pike -------------------------------------------------------------------------------- /04.researching/history/database_driver_history.md: -------------------------------------------------------------------------------- 1 | # database driver 的历史 2 | 3 | 参考资料 4 | 5 | https://go-review.googlesource.com/c/go/+/174182/ 6 | https://github.com/golang/go/issues/29835 7 | 8 | Goals of the db and db/dbimpl packages: 9 | 10 | * Provide a generic database API for a variety of SQL or SQL-like 11 | databases. There currently exist Go libraries for SQLite, MySQL, 12 | and Postgres, but all with a very different feel, and often 13 | a non-Go-like feel. 14 | 15 | * Feel like Go. 16 | 17 | * Care mostly about the common cases. Common SQL should be portable. 18 | SQL edge cases or db-specific extensions can be detected and 19 | conditionally used by the application. It is a non-goal to care 20 | about every particular db's extension or quirk. 21 | 22 | * Separate out the basic implementation of a database driver 23 | (implementing the db/dbimpl interfaces) vs the implementation 24 | of all the user-level types and convenience methods. 25 | In a nutshell: 26 | 27 | User Code ---> db package (concrete types) ---> db/dbimpl (interfaces) 28 | Database Driver -> db (to register) + dbimpl (implement interfaces) 29 | 30 | * To type casting/conversions consistently between all drivers. To 31 | achieve this, most of the type conversions are done in the db 32 | package, not in each driver. The drivers then only have to deal 33 | with a smaller set of types. 34 | 35 | * Be flexible with type conversions, but be paranoid about silent 36 | truncation or other loss of precision. 37 | 38 | * Handle concurrency well. Users shouldn't need to care about the 39 | database's per-connection thread safety issues (or lack thereof), 40 | and shouldn't have to maintain their own free pools of connections. 41 | The 'db' package should deal with that bookkeeping as needed. Given 42 | a *db.DB, it should be possible to share that instance between 43 | multiple goroutines, without any extra synchronization. 44 | 45 | * Push complexity, where necessary, down into the db+dbimpl packages, 46 | rather than exposing it to users. Said otherwise, the db package 47 | should expose an ideal database that's not finnicky about how it's 48 | accessed, even if that's not true. 49 | 50 | * Provide optional interfaces in dbimpl for drivers to implement 51 | for special cases or fastpaths. But the only party that knows about 52 | those is the 'db' package. To user code, some stuff just might start 53 | working or start working slightly faster. 54 | 55 | 摘自于:https://codereview.appspot.com/4973055 56 | 57 | 58 | ### database driver sql.go 的 history 59 | 60 | https://go.googlesource.com/go/+log/refs/heads/master/src/database/sql/sql.go 61 | https://github.com/golang/go/commits/master/src/database/sql/sql.go 62 | 63 | ### 其他的一些 proposal 64 | 65 | https://github.com/golang/go/issues/30870 66 | https://github.com/golang/go/issues/22544 67 | -------------------------------------------------------------------------------- /04.researching/history/go_generic_history.md: -------------------------------------------------------------------------------- 1 | ## Go Generic History 2 | 3 | 4 | 5 | ## Reference 6 | 7 | 1. https://go.googlesource.com/proposal/+/master/design/go2draft.md 8 | 2. Go2Draft-Contraracts https://go.googlesource.com/proposal/+/master/design/go2draft-contracts.md 9 | 3. https://go.googlesource.com/proposal/+/master/design/go2draft-generics-overview.md 10 | 11 | -------------------------------------------------------------------------------- /05.thinking/README.md: -------------------------------------------------------------------------------- 1 | # 05.闲聊与思考 2 | 3 | ## 推荐 4 | 5 | 《Google 如何工作之重新定义团队》,如何高效能组织,如何培养更好的自驱力团队? 6 | 7 | 《达尔文经济学》、《失控》 8 | 9 | -------------------------------------------------------------------------------- /06.relaxing/README.md: -------------------------------------------------------------------------------- 1 | # 06.放松时刻 2 | 3 | 这里主要是我完整看过的影视片(电影、电视剧、娱乐节目、电视节目B站、YouTube节目、Spotify、QQ 音乐歌曲等)。 4 | 5 | >从2020年3月开始记起,在豆瓣上我也会同步更新:https://www.douban.com/people/55484404/ 。 6 | 7 | 8 | | 类型 | 名称 | 评分 | 作者 | 观看时间 | 链接 | 观后感 | 9 | |----|----|----|----|----|----|----| 10 | |电影|卡特教练|⭐️⭐️⭐️⭐️|托马斯.卡特|2020-03-01|https://movie.douban.com/subject/1309017/|用成长思维模型看待一个球队,并改变球队球员的认知。| 11 | 12 | -------------------------------------------------------------------------------- /07.profile/README.md: -------------------------------------------------------------------------------- 1 | # 07.联系我 2 | 3 | ### IM 4 | 5 | 1. 微信 6 | - `mai_yang` 7 | 2. Telegram 8 | - [https://t.me/maiyang](https://t.me/maiyang) 9 | 3. POP 10 | - `314 349 567` 11 | 12 | ### 其他频道 13 | 14 | 1. Telegram 阅读之美(学习成长) 15 | - [https://t.me/learning_growth](https://t.me/learning_growth) 16 | 2. 知识星球 阅读之美 17 | 18 | 19 | 20 | 3. Slack Go 夜读 21 | - [https://join.slack.com/t/night-reading-go/shared_invite/enQtNjQ4NjQ5MjcwMDgwLTI5N2RhZDY3YTk3ZTE1MjM0ZmQ3ODNiMmQ4MWZhODlkZmQ0YTg5YmMxYTQzMmUwZDNiMmZkODdhNWIwNzExOWY](https://join.slack.com/t/night-reading-go/shared_invite/enQtNjQ4NjQ5MjcwMDgwLTI5N2RhZDY3YTk3ZTE1MjM0ZmQ3ODNiMmQ4MWZhODlkZmQ0YTg5YmMxYTQzMmUwZDNiMmZkODdhNWIwNzExOWY) -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊002.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 周刊时间:2022-07-17 ~ 2022-07-23 4 | 5 | ## 书籍 6 | 7 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 8 | 9 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 10 | |----|----|----|----|----|----|----| 11 | | 38 分钟 | 1 小时 13 分钟 | 16 分钟 | 13 分钟 | 20 分钟 | 24 分钟 | 2 小时 45 分钟 | 12 | 13 | 最近一周阅读时长: ~ `5 小时 49 分钟` 14 | 15 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组哦,你感兴趣的话可以联系我(WeChat: `mai_yang`,麻烦备注:「一叶知秋」)。 16 | 17 | + [《黑客与画家》](https://book.douban.com/subject/6021440/),持续阅读中 18 | - 豆瓣评分:8.7 19 | - 过去了这么多年,这本书中的内容依然可以给我们当下参考和指导。 20 | + [《开拓者》](https://book.douban.com/subject/35561024/) 21 | - 豆瓣评分:暂无评分 22 | + [《学会自学》](https://book.douban.com/subject/35381522/) 23 | - 豆瓣评分:4.8 24 | - 这本书确实看起来没有太多的干货。但是有一段鸡汤可以看一看。 25 | + 要独立思考,别被世俗的教条所惑。 26 | + 要逆向思考,别被固定的方向所惑。 27 | + 要换位思考,别被过去的习惯所惑。 28 | + 要带着问题思考,别被眼前的问题所惑。 29 | + [《非暴力沟通:修订版》](https://book.douban.com/subject/35519608/) 30 | - 豆瓣评分:8.8 31 | - 泛读了一遍,从我个人的读感来说,还没有领悟到很多人能给他好评以及很多人强烈推荐的程度。 32 | - 笔记: 33 | + 非暴力沟通的几个核心要素:区分观察与评论、感受、看见感受背后的需要、请求。 34 | + 暴力之所以产生,都是因为人们误认为自己的痛苦是由他人造成的,他人应当受到惩罚。 35 | + “你愈懂的感谢,就愈不会为仇恨、压抑与绝望所苦。感恩是灵丹妙药,能消融小我占有和掌控的硬壳,让你成为一个胸怀坦荡的人。感恩之心是真正的灵性炼金术,让我们成为宽厚仁慈的灵魂。” - 桑姆·基恩(Sam Keen),哲人 36 | + “不带评论的观察是人类智力的最高形式。” - 印度哲学家克里希那穆提 37 | + “你们不要论断人,免得你们被论断。因为你们怎样论断人,也必怎样被论断。” - 《圣经·马太福音 7:1》 38 | + [《原则》](https://book.douban.com/subject/27608239/) 39 | - 豆瓣评分:8.3 40 | - 在书店我也试着看了看最新 2022 版本《原则:应对变化中的世界秩序》,其中涉及较多的经济、国家货币政策等,当前我的知识储备和个人兴趣还没有到,所以读起来有点吃力,暂时是将其放入未来阅读清单中。 41 | 42 | ## 阅读 43 | 44 | - [Software Engineering - The Soft Parts](https://addyosmani.com/blog/software-engineering-soft-parts/) 45 | - 本篇文章值得认真细致的阅读,稍候我也会单独发一篇读后感和个人笔记到**「一叶知秋」 Newsletter** 中。 46 | 47 | ## 播客 48 | 49 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`48 小时 39 分钟`。 50 | 51 | 在此之前我用的是 Overcast,主要是因为它有两大特性: 52 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 53 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 54 | 55 | [我推荐的播客节目](https://maiyang.me/podcasts/) 56 | 57 | 以下播客是我最近一周收听的播客内容,基本上都有其不错的信息密度,如果你还没有听过的话,那我推荐你在通勤路上或洗碗做家务的时候拿来听听。 58 | 59 | + 声动早咖啡,每一期必听 60 | - 每周一、三、五工作日早上 61 | 62 | + [矽谷轻松谈:EP111 Uber 机密档案流出 揭发 Travis 时代违法行径 Q&A]() 63 | + [贝望录:87. 大火的刘畊宏和他身后的中国 90 万健身教练](https://www.xiaoyuzhoufm.com/episode/62b1c9eb1707dc1582359c41) 64 | + [牛油果烤面包:#101. "字"如其人 -- 聊聊计算机字体](https://www.xiaoyuzhoufm.com/episode/62d50cca1a0432f0f7325573) 65 | + [牛油果烤面包:#84. 以人为中心的人工智能](https://www.xiaoyuzhoufm.com/episode/6153b13c64cb39f688d07cf2) 66 | + [创业内幕:S3 Vol.28 Wiz AI 张晨辰:中国语音 AI 技术“卷”入全球](https://www.xiaoyuzhoufm.com/episode/613a86bfcab9fa9b95f2fb4f) 67 | + [OnBoard EP11.对话 Sapphire 合伙人:20 年专注 toB 的硅谷成长期基金](https://www.xiaoyuzhoufm.com/episode/62b1279f7777fbdd530c02c5) 68 | + [枫言枫语:Vol. 72 我们做了个能帮大家发现播客的小玩具](https://www.xiaoyuzhoufm.com/episode/62d58b0664f141ad8150151f) 69 | - https://xyzrank.com/ 70 | + 乱翻书 71 | - [65.微博的直播、商业化和存在价值](https://www.xiaoyuzhoufm.com/episode/62b2a07c1707dc1582359c8b) 72 | + 快乐三十分 73 | - [077 我怎么写 newsletter](https://www.xiaoyuzhoufm.com/episode/62db8afb765aeff0e64f04ff) 74 | + [组织进化论:E36 | 新晋管理者的避坑指南](https://www.xiaoyuzhoufm.com/episode/62b23f72482bcc5dedb96dd7) 75 | + 夜航西飞 76 | - [夜航西飞:Vol.012 邓柯:听音乐的时候什么都不做](https://www.xiaoyuzhoufm.com/episode/62b1b2e63437c3746cdb60da) 77 | - [夜航西飞:Vol.010 我和二爷聊产品:终章 - 如何从 0 到 1 构建一款产品](https://www.xiaoyuzhoufm.com/episode/629dc275b32f552f54730ce5) 78 | + [三五环:No.81 跟林军聊聊互联网创业沸腾的那些年](https://www.xiaoyuzhoufm.com/episode/62b1d5c41707dc1582359c4f) 79 | + [RustTalk: 004. 与迟先生聊 Rust 与数据库系统](https://rusttalk.github.io/podcast/004/) 80 | 81 | ## 关注的项目(GitHub 仓库) 82 | 83 | - [carbon-language/carbon-lang](https://github.com/carbon-language/carbon-lang) 84 | - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README) 85 | - 在作者分享到 Twitter 时,我就第一时间关注了,还见证了其 hacknews 上的疯涨,GitHub Star 快速到达 1 万 86 | 87 | ## 娱乐 88 | 89 | - 《斗罗大陆 218 集》 - 追更中 90 | 91 | ## Journeys 92 | 93 | - [Go 又一大神级人物离开 Google](http://mp.weixin.qq.com/s?__biz=MzAwNTc3OTE5Mg==&mid=2657446782&idx=1&sn=2e37e434ed7a6f6f999fd79fc39fb0a6&chksm=8086b0e9b7f139ff5b2d78914ca76d9d00f8ce37f0ddcb94acac254e37f7ac1369467304ffdd#rd) 94 | + https://spf13.com/p/spf13-google/ 95 | + https://www.twosigma.com/ 96 | - https://dev.golang.org/gophercon 97 | - [深入理解 Slice](https://juejin.cn/post/7122495050067476510) 98 | - [errors package](https://pkg.go.dev/errors) 99 | - [Go Blank identifier (underscore)](https://yourbasic.org/golang/underscore/) 100 | - [The Rust Performance Book](https://nnethercote.github.io/perf-book/) 101 | - [Software Engineering - The Soft Parts](https://addyosmani.com/blog/software-engineering-soft-parts/) 102 | + 作者:https://twitter.com/addyosmani 103 | 104 | ## 思考 105 | 106 | **保持好奇心,永不停止学习。** 107 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊004.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 004 期,我们现在有 6 位订阅者,1 位付费订阅者,非常感谢你们的支持。 6 | 7 | 希望这里面的内容能够对你现在和未来都有一些帮助和启发。 8 | 9 | ## 周刊时间 10 | 11 | 2022-07-31 ~ 2022-08-06 12 | 13 | ## 书籍 14 | 15 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 16 | 17 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 18 | |----|----|----|----|----|----|----| 19 | | 22 分钟 | 1 小时 8 分钟 | 1 小时 5 分钟 | 44 分钟 | 1 小时 26 分钟 | 45 分钟 | 11 分钟 | 20 | 21 | 最近一周阅读时长: ~ `5 小时 41 分钟` 22 | 23 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组哦,你感兴趣的话可以联系我(WeChat: `mai_yang`,麻烦备注:「一叶知秋」)。 24 | 25 | + [《可能性的艺术》](https://book.douban.com/subject/35819419/) 26 | - 豆瓣评分:9.2 27 | - 本书是来自于读书群的朋友推荐,微信读书上也有这本书。 28 | - 推荐的理由: 29 | - 政治类书籍里,这本书算是对近现代、当代国家政治分析最贴近最真实的,从俯瞰、细看的角度都有相当丰富细致的案例和数据,而且相当的有见地,比刘瑜自己之前出的书都更有辽阔的视角。 30 | - 从法国,埃及、南非,印度,伊拉克,再到讲述什么是国家,国家能力的来源 - 战争,再到历史,再讲述美国无中央集权的无政府论的内容。 31 | + [《非暴力沟通:修订版》](https://book.douban.com/subject/35519608/) 32 | - 豆瓣评分:8.8 33 | - 基于之前的泛读,接下来会进行精读 34 | + [《原则》](https://book.douban.com/subject/27608239/) 35 | - 豆瓣评分:8.3 36 | - 又试着开始看看 37 | + [《销售加速公式》](https://book.douban.com/subject/35466335/) 38 | - 豆瓣评分:8.7 39 | 40 | ## 播客 41 | 42 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`66 小时 47 分钟`。 43 | 44 | 在此之前我用的是 Overcast,主要是因为它有两大特性: 45 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 46 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 47 | 48 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 49 | 50 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的。 51 | 52 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 53 | 54 | ### 强烈推荐(每一期必听) 55 | 56 | + 声动早咖啡 57 | - 每周一、三、五工作日早上 58 | + 乱翻书 59 | - [68. 我们二本学生这些年](https://www.xiaoyuzhoufm.com/episode/62d2930f64f141ad81501383) 60 | - [70. 教培行业,双减之后这一年](https://www.xiaoyuzhoufm.com/episode/62e633b2818e054ae3c10f21) 61 | + [What's next 科技早知道: S6E25 硅谷徐老师|与 Robin 再对谈:道别特斯拉,重新出发](https://www.xiaoyuzhoufm.com/episode/62ea53330aa0521f7d051b2e) 62 | - 分享嘉宾:任宇翔 Robin,特斯拉前高管,现与太太一起从事公益事业 63 | - 评论区笔记: 64 | ``` 65 | 1. 很多人不太愿意去拥抱变化,更不用说去主动的寻找变化,而是选择待在一个自己觉得舒适的环境里,这样其实会不知不觉中丧失很多机会。 66 | 2. 非常 inspiring!Robin 很喜欢挑战 做选择总是在追求 long term maximization,感觉他的决策主要基于:a) 是否是自己有激情的事情,只有热爱才能形成正反馈,才能长期坚持并做好 b) 自己是否能贡献出不可替代的价值。他的世界观和方法论表现出来的表层结果就是他一直在跳出舒适圈尝试新事物,但底层逻辑和人生追求其实是从未改变。 67 | 3. 选择大于努力,选择的背后是勇气、经验、智慧,当然也包括运气。 68 | ``` 69 | + [夜航西飞:Vol.015 邱岳:从阿里巴巴到无码科技](https://www.xiaoyuzhoufm.com/episode/62de57e3fa15142e17251fa9) 70 | 71 | ### 可选择 72 | 73 | + [疯投圈 67. 火锅争雄:服务至上 vs 产品主义](https://www.xiaoyuzhoufm.com/episode/62e51bb56e2b292ba3ebcfe8) 74 | - 推荐指数:⭐️⭐️⭐️ 75 | + [质量三人行 质量与速度有什么关系?](https://www.xiaoyuzhoufm.com/episode/62d157c9b6099b8d0e0b407c) 76 | - 推荐指数:⭐️⭐️ 77 | + [过期电影报告 Episode 20:杜琪峰,一个香港导演](https://www.xiaoyuzhoufm.com/episode/62e4c9d85a4719eeefb4fa02) 78 | - 推荐指数:⭐️⭐️⭐️ 79 | + [一派·Podcast 旅居、阅读、写作,以及身体和灵魂的自由](https://www.xiaoyuzhoufm.com/episode/62eb43a26e07638447212d73) 80 | - 推荐指数:⭐️⭐️⭐️ 81 | + [硬核电台 《最伟大的作品》?周杰伦老矣?尚能饭否?](https://www.xiaoyuzhoufm.com/episode/62de362d765aeff0e64f34b0) 82 | - 推荐指数:⭐️⭐️ 83 | + [硅谷轻松谈 EP112 Coinbase 前员工涉嫌内线交易在逃跑前被逮捕 星期六见面会]() 84 | - 推荐指数:⭐️⭐️ 85 | + [后互联网时代的乱弹 第 22 期 马斯克的大脑、NFT 和滴滴罚单](https://www.xiaoyuzhoufm.com/episode/62de17385aca64ec44562b44) 86 | - 推荐指数:⭐️⭐️ 87 | + [开源社·陪你看开源 番外篇 2 | 开发者社区运营是怎么样的一个体验?](https://www.xiaoyuzhoufm.com/episode/62de95d692f0689a31f50736) 88 | - 推荐指数:⭐️⭐️ 89 | + [科技乱炖 番外:由高光混剪引发的一系列讨论](https://www.xiaoyuzhoufm.com/episode/62ded9b952eadf33db9b8728) 90 | - 推荐指数:⭐️⭐️⭐️⭐️ 91 | + [方程式漫谈:2022R13 匈牙利:又是窝里斗!头哥是被奥康气跑了? | F1 比赛回顾](https://www.xiaoyuzhoufm.com/episode/62e8dc32818e054ae3c1107b) 92 | - 推荐指数:⭐️⭐️ 93 | + [组织进化论:E41 | 少数派老麦:做过按摩师,卖过汽车防盗器,花了 10 年找到自己热爱](https://www.xiaoyuzhoufm.com/episode/62e064a85a4719eeefb4d2e6) 94 | - 推荐指数:⭐️⭐️ 95 | 96 | ## 关注的项目(GitHub 仓库) 97 | 98 | 本周无 99 | 100 | ## 娱乐 101 | 102 | - 《斗罗大陆第 220 集》 - 追更中 103 | 104 | ## Journeys 105 | 106 | - [贝佐斯如何开会?| 思维导图](https://www.processon.com/view/623074867d9c08076d09c443) 107 | - [会议 总是没有效率?跟着 Netflix 学高效会议 3 原则](https://www.cheers.com.tw/article/article.action?id=5098633) 108 | - [roadmap.sh](https://roadmap.sh) 109 | - [the roadmap YouTube](https://www.youtube.com/theroadmap) 110 | - [Learn to become a Go Developer](https://roadmap.sh/golang) 111 | - [Go 1.19 已发布,不少让人兴奋的特性](https://mp.weixin.qq.com/s?__biz=MzAwNTc3OTE5Mg==&mid=2657446925&idx=2&sn=430a4f6ba8b0991f3c3d3b150d18feae&chksm=8086b79ab7f13e8ceae2cecb79525e463cbd4bbad75b6b7015f6dbc6aa4046d66f2d3356e8c7&token=2082410278&lang=zh_CN#rd) 112 | - [all: delete AUTHORS, CONTRIBUTORS files issues golang/go #53961](https://github.com/golang/go/issues/53961) 113 | - [不拘一格 豆瓣](https://book.douban.com/subject/35102294//) 114 | - [DebugTalk](https://debugtalk.com/) 115 | - [工程师应该怎么学习](https://xargin.com/how-to-learn/) 116 | - [sort: use pdsort Issue #50154](https://github.com/golang/go/issues/50154) 117 | - [RustCon China 2021-022](https://space.bilibili.com/25566598) 118 | 119 | ## 思考 120 | 121 | **保持好奇心,永不停止学习。** 122 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊005.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 005 期。 6 | 7 | 首先我很抱歉在上周没有发布周刊,那是因为我上周休假了。 8 | 9 | 休假回老家(四川),体验了一次罕见的高温,长期持续在 40°,且还伴随着时不时的停电(县城也是每天停电 3 - 4 次,农村那更是基本上处于无电的状况)。 10 | 11 | 虽然很热,就像蒸桑拿一般,但是因为回到老家可以见到我的亲人,我觉得也是挺开心的。而且我们也因为天气热跑去江油 - 药王谷避暑(山上的气候明显比山下凉快),不过说实在话,它也并没有到达凉快,可能这一次高温确实是让整个四川境内各地的气温都上升不少啊。 12 | 13 | 近况聊完,我们接下来还是按原计划进行周刊内容,希望这里面的内容能够对你现在和未来都有一些帮助和启发。 14 | 15 | ## 周刊时间 16 | 17 | 2022-08-07 ~ 2022-08-20 18 | 19 | ## 书籍 20 | 21 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 22 | 23 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 24 | |----|----|----|----|----|----|----| 25 | | 6 分钟 | 7 分钟 | 17 分钟 | 10 分钟 | 3 分钟 | 3 分钟 | 1 分钟 | 26 | | 1 小时 6 分钟 | 18 分钟 | 48 分钟 | 48 分钟 | 31 分钟 | 4 分钟 | 3 分钟 | 27 | 28 | 最近两周阅读时长: ~ `3 小时 31 分钟` 29 | 30 | 最近两周一方面是休假,看书的时间少,二是本身也是休假陪家人,所以电子设备也摸的很少。 31 | 回到公司后,也有不少内容需要逐渐补齐,所以本周也在逐渐寻找状态,不过好在我用“微习惯”的方式在让自己的阅读记录得以保持,时刻想着阅读这件事。 32 | 33 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组哦,你感兴趣的话可以联系我(WeChat: `mai_yang`,麻烦备注:「一叶知秋」)。 34 | 35 | + [《可能性的艺术》](https://book.douban.com/subject/35819419/) 36 | - 豆瓣评分:9.2 37 | - 本书是来自于读书群的朋友推荐,微信读书上也有这本书。 38 | - 推荐的理由: 39 | - 政治类书籍里,这本书算是对近现代、当代国家政治分析最贴近最真实的,从俯瞰、细看的角度都有相当丰富细致的案例和数据,而且相当的有见地,比刘瑜自己之前出的书都更有辽阔的视角。 40 | - 阿富汗的悲剧,以及韩国电影的革命的由来,以及泰国困境对民主文化的另一种诠释。 41 | + [《非暴力沟通:修订版》](https://book.douban.com/subject/35519608/) 42 | - 豆瓣评分:8.8 43 | - 有摘录部分章节进行了选读,并且我还找到「樊登读书会」的视频演讲进行了一次快速“阅读”。 44 | 45 | ## 播客 46 | 47 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`55 小时 39 分钟`。 48 | 49 | 在此之前我用的是 Overcast,主要是因为它有两大特性: 50 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 51 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 52 | 53 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 54 | 55 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的。 56 | 57 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 58 | 59 | ### 强烈推荐(每一期必听) 60 | 61 | + 声动早咖啡 62 | - 每周一、三、五工作日早上 63 | - 休假时基本上都没有收听过。 64 | + 乱翻书 65 | - [73. 出海的趋势、挑战和教训](https://www.xiaoyuzhoufm.com/episode/62f8f1cf20298b975e353805) 66 | + [夜航西飞:Vol.016 对谈知识星球创始人吴鲁加:我总是战斗,努力去赢](https://www.xiaoyuzhoufm.com/episode/62f09d4620298b975e3534ad) 67 | + [夜航西飞:Vol.017 华仔:从阿里 P9 到半躺平,焦虑源自于妄念](https://www.xiaoyuzhoufm.com/episode/62fe1ca3eb356cd549483e68) 68 | 69 | ### 可选择 70 | 71 | + [OnBoard 【番外】亲历 Uber,AWS,VMware:硅谷高成长公司如何打造创新机制](https://www.xiaoyuzhoufm.com/episode/62f0daff226f5c1fa0d584bb) 72 | - 推荐指数:⭐️⭐️⭐️ 73 | + [硬核电台 太好笑!不开心的时候就要看《康熙来了》](https://www.xiaoyuzhoufm.com/episode/62eff8095efbdc148aeaccc9) 74 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 75 | + [硬核电台 和张鱼导演聊聊他的《独行月球》](https://www.xiaoyuzhoufm.com/episode/62f8e7ca46d534f12cca8d41) 76 | - 推荐指数:⭐️⭐️⭐️ 77 | - 经典语录: `也许在场的所有人都比我懂电影制作,但是我比大家更懂剧本。机会是留给有准备的人,当你做好自己,再加上一些运气,你会有很多意想不到的惊喜。` 78 | + [过期电影报道 E21: 当「香港」成为怀旧代名词时,他们为什么还要拍香港电影?(《七人乐队》)](https://www.xiaoyuzhoufm.com/episode/62f6bba04723ce2f9c75e386) 79 | - 推荐指数:⭐️⭐️⭐️ 80 | + [质量三人行 toB 和 toC 软件的测试差异](https://www.xiaoyuzhoufm.com/episode/611cc3f57fe117d74e48d04a) 81 | - 推荐指数:⭐️⭐️ 82 | + [枫言枫语x内核恐慌 65. 如果不做程序员我们会做什么?](https://www.xiaoyuzhoufm.com/episode/62f92ad6226f5c1fa0d5881e) 83 | - 推荐指数:⭐️⭐️⭐️ 84 | + [EP114《女性创业养成记》]() 85 | - 推荐指数:⭐️⭐️ 86 | + [枫言枫语 Vol.73 未来我们还需要浏览器吗?](https://www.xiaoyuzhoufm.com/episode/62e713d5a332324303ae09da) 87 | - 推荐指数:⭐️⭐️⭐️ 88 | + [无人知晓 E16 孟岩对话少楠:我们彼此的成长](https://www.xiaoyuzhoufm.com/episode/62f850ca226f5c1fa0d587a1) 89 | - 推荐指数:⭐️⭐️⭐️⭐️ 90 | - 涉及到的图书:📚 《蓝海战略》《文化战略》《冲浪板上的公司》《建筑的永恒之道》《手把手教你读财报》《悉达多》《千面英雄》《战争论》《The Mindful Athlete》《活出生命的意义》《俞军产品方法论》 91 | - 经典语录: 92 | 93 | ``` 94 | 📜 书摘小纸条 95 | 96 | 用户价值 = 新体验 - 旧体验 - 替换成本 ——《俞军产品方法论》 97 | 98 | 知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。——《礼记·大学》 99 | 100 | 知识可以分享,智慧无法分享,它可以被发现,被体验。智慧令人安详,智慧创造奇迹,但人们无法言说和传授智慧。——《悉达多》 101 | ``` 102 | 103 | + [What's Next 科技早知道 S6E27 | A-SOUL 塌房彩虹社上市,虚拟偶像能破圈吗?](https://www.xiaoyuzhoufm.com/episode/62fca69baa76db57c6147cdc) 104 | - 推荐指数:⭐️⭐️⭐️ 105 | + [海螺电台 | The Spiral 036. 无论远程还是自由职业,找到自己喜欢的状态,才是最重要的](https://www.xiaoyuzhoufm.com/episode/62f9bf75c26034101d79a69c) 106 | - 推荐指数:⭐️⭐️ 107 | + [硅谷叨逼叨]() 108 | - Vol. 094 从纽约到上海 | 工作生活体验对比 109 | - Vol. 093 坐火车从硅谷到纽约是怎样一种体验 | 四天三夜独自旅行 110 | - Vol. 092 我,30 岁,中年危机了 111 | - Vol. 090 赛博神学:意识灵魂与人工智能!三周年特别节目 112 | - 推荐指数:⭐️⭐️ 113 | 114 | ## 关注的项目(GitHub 仓库) 115 | 116 | - [cakeinpanic/jira-description-action](https://github.com/cakeinpanic/jira-description-action) 117 | - A lightweight solution to integrate GitHub with JIRA for project management. 118 | - [karanpratapsingh / system-design](https://github.com/karanpratapsingh/system-design) 119 | - Learn how to design systems at scale and prepare for system design interviews 120 | 121 | ## 娱乐 122 | 123 | - 《斗罗大陆第 221 集》 - 追更中 124 | 125 | ## Journeys 126 | 127 | - [andeya/gust](https://github.com/andeya/gust) 128 | - https://www.raycast.com/ 129 | - https://gridjs.io/ 130 | - [Go 并发编程(十二)SingleFlight](https://lailin.xyz/post/go-training-week5-singleflight.html) 131 | - [x/sync/singleflight: panic in Do fn results in deadlock . Issue #33519](https://github.com/golang/go/issues/33519) 132 | - [karan YouTube](https://www.youtube.com/c/KaranPratapSingh) 133 | - [中英文排版的要求(网络上) - 需要空格](https://sparanoid.com/note/chinese-copywriting-guidelines/) 134 | - [crunchbase aftership](https://www.crunchbase.com/organization/aftership) 135 | - [tidwall/gjson: Get JSON values quickly - JSON parser for Go](https://github.com/tidwall/gjson) 136 | - [goquery: A little like that j-thing, only in go](https://github.com/PuerkitoBio/goquery) 137 | - [Go lint initialisms](https://github.com/golang/lint/issues/304) 138 | 139 | ## 思考 140 | 141 | **保持好奇心,永不停止学习。** 142 | **我们彼此的成长** -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊006.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 006 期。 6 | 7 | 本周有不少内容还是值得深度学习和记录的,希望这些内容能够对你现在和未来都有一些帮助和启发。 8 | 9 | ## 周刊时间 10 | 11 | 2022-08-21 ~ 2022-08-27 12 | 13 | ## 书籍 14 | 15 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 16 | 17 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 18 | |----|----|----|----|----|----|----| 19 | | 10 分钟 | 23 分钟 | 2 分钟 | 3 分钟 | 1 小时 12 分钟 | 1 小时 19 分钟 | 15 分钟 | 20 | 21 | 最近一周阅读时长: ~ `3 小时 24 分钟` 22 | 23 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组哦,你感兴趣的话可以联系我(WeChat: `mai_yang`,麻烦备注:「一叶知秋」)。 24 | 25 | 本周只读了一本书《可能性的艺术 - 刘瑜》。 26 | 27 | + [《可能性的艺术》](https://book.douban.com/subject/35819419/) 28 | - 豆瓣评分:9.2 29 | - 本书是来自于读书群的朋友推荐,微信读书上也有这本书。 30 | - 推荐的理由: 31 | - 政治类书籍里,这本书算是对近现代、当代国家政治分析最贴近最真实的,从俯瞰、细看的角度都有相当丰富细致的案例和数据,而且相当的有见地,比刘瑜自己之前出的书都更有辽阔的视角。 32 | - 暴民考古学,到文明的冲突,再到智利 🇨🇱、委内瑞拉 🇻🇪 ,以及新镀金时代,不平等的幽灵,我们能从文中得知一个国家的政策发展变化,以及意识形态带来的可能是向上也可能是向下,谁知道呢?我们只是其中的过客,你如果有自己的追求,你或许也能明白个中的转变和演进。 33 | 34 | 预计本书将在本周末读完,并且计划在下周开始阅读《置身事内》、《亚马逊逆向工作法》 - 精读,并且还会做不少笔记,届时我会再分享给大家。 35 | 36 | ## 播客 37 | 38 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`51 小时 6 分钟`。 39 | 40 | 在此之前我用的是 Overcast,主要是因为它有两大特性: 41 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 42 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 43 | 44 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 45 | 46 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 47 | 48 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 49 | 50 | ### 强烈推荐(每一期必听) 51 | 52 | 在推荐之前,我想跟大家分享一个消息:「Go 夜聊」登上苹果播客客户端首页「科技瞻前顾后」专栏啦! 53 | 54 | + 声动早咖啡 55 | - 每周一、三、五工作日早上 56 | 57 | ### 可选择 58 | 59 | + [声东击西 #226 和兰小欢聊「置身事内」](https://www.xiaoyuzhoufm.com/episode/62fe1e4c35d8359407cba243) 60 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 61 | + [随机游走 Ep 16 兰小欢:《置身事内》的前前后后](https://www.xiaoyuzhoufm.com/episode/6157be615c5d3aaf1d5ba296) 62 | - 推荐指数:⭐️⭐️⭐️⭐️ 63 | + [小人物 #58 和 7 年 Uber 的软件工程师小蓝,聊聊职场风云](https://www.xiaoyuzhoufm.com/episode/62fda70eeb66c53cd8ac004a) 64 | - 推荐指数:⭐️⭐️⭐️ 65 | + [硅谷 101 S3E81 | 解析美国芯片法案与缺芯潮,全球化进程下的逆全球化](https://www.xiaoyuzhoufm.com/episode/62fd8c1672dc8cbf855b3acb) 66 | - 推荐指数:⭐️⭐️⭐️ 67 | + [OnBoard EP 15. 【硅谷连线回放】中美基础软件与开源创业市场:实践,异同与机会](https://www.xiaoyuzhoufm.com/episode/63042c10bfab490246e4a949) 68 | - 推荐指数:⭐️⭐️⭐️ 69 | + [贝望录 梁文道,我沉迷于对声音的探索](https://www.xiaoyuzhoufm.com/episode/62fb2e6feb0492cf2f50888e) 70 | - 推荐指数:⭐️⭐️⭐️⭐️ 71 | + [Devmore 辗转大厂四年,北漂不动的南方人【DevmoreWork#25】](https://www.xiaoyuzhoufm.com/episode/62e3ae04f22de7eed50b24c4) 72 | - 推荐指数:⭐️⭐️ 73 | + 硅谷叨逼叨 74 | - 感兴趣可以自己去考古听听,我最近听了往期不少节目,但是觉得并没有之前的那种感觉,所以我这里就不单独再推荐了。 75 | - Vol. 095 脑力工作者的三餐搭配建议 | 如何在忙碌中吃得健康? 76 | - Vol. 083 直面房间里的大象:关于美国亚裔歧视的讨论 | 年终特别节目 77 | - Vol. 087 西雅图的爱与恨 | 码农城市系列 78 | - Vol. 089 人工智能 vs 大脑:模拟、学习、超越? 79 | - 推荐指数:⭐️⭐️ 80 | 81 | ## 关注的项目(GitHub 仓库) 82 | 83 | - [dalance/procs](https://github.com/dalance/procs) 84 | - A modern replacement for ps written in Rust 85 | - [zxch3n/tidy](https://github.com/zxch3n/tidy) 86 | - A tree visualization tool written in Rust 87 | - [luk4z7/go-concurrency-guide](https://github.com/luk4z7/go-concurrency-guide) 88 | - Practical concurrency guide in Go, communication by channels, patterns 89 | 90 | ## 娱乐 91 | 92 | - 《斗罗大陆第 222 集》 - 追更中 93 | - 《2022 新加坡国庆日 总理李显龙演讲》 94 | 95 | ## Journeys 96 | 97 | - deepl 翻译软件 98 | - https://talkgo.org/ 升级 99 | - 遇到最大的问题是服务器磁盘不够,难以达到升级所需,不断去删除文件、清理不要的一些资源文件。 100 | - overlay2 文件是真的大,清理起来也很不简单。 101 | - https://talkgo.fm/ 增加浏览量/访客量(PV/UV) 102 | - 修复 [yangwenmai/github-trending-backup](https://github.com/yangwenmai/github-trending-backup) 中的 star/fork 对应的数据(goquery 选取可用的页面元素) 103 | - [andeya's gist scripts](https://gist.github.com/andeya/f7f0aede9549b39614dbace26142f192#file-install-pre-commit-go_mod_tidy-sh) 104 | - [使用图片文件进行搜索](https://lens.google.com/search?p=AV3Y9tCoeWxr8DsNzm-XeDVAwYncyfypaxtitVPPxZQcZizQiDVNFLlOtWDkt0s0KVQAxQ21XjREblOp9lKxiNhaldq6lC1iJ3Ox4jXW6d82MpFbEiMPjemvzlulSE_dc6KA7qGOiMbAeQqLlYbVvvE5P34MVyIw8Bsa0Ux245t6cnqF6cw0iBwMldT4CB6RqolLieUj08Yqcga4SF3TQnJc5PgBUvKb8Tcw4AjGoBrWAclXmw2Sm6E-0dAdfVgLWZADoSDtoHjSeVV23Rfo8xHglLUwMGhdK4P49tKwoQ7cLG707Tmn7FO6M70Lu_mjAbYIslJDNJaSahAgrqj0BH77i4PbBbe5xxnBUwQidRXSjfm9&ep=gisbubb&hl=en&pli=1#lns=W251bGwsbnVsbCxbMCwwLDEwMDAwMCwxMDAwMDBdLG51bGwsbnVsbCxudWxsLG51bGwsIkVrY0tKRFkyWVRnM01qaGxMVFE0TVdZdE5ERmpOUzA0WlRWaUxXWmhNR1JpTUdJM1l6WmpOQklmTkRkR05VOTRXVXg2VHpoaWQwMURZVjlYYUdaVlQxWmxjbFJwUkV4U1p3PT0iLG51bGwsbnVsbCxudWxsLDFd) 105 | - [“golang http response body to string” Code Answer](https://www.codegrepper.com/code-examples/go/golang+http+response+body+to+string) 106 | - [How to convert an HTTP response body to a string in Go](https://freshman.tech/snippets/go/http-response-to-string/) 107 | - [云应用的健康扫描仪](https://openresty.com.cn/cn/xray/) 108 | - [【Infra Meetup No.64】Chaos Practice in TiDB](https://tidb.net/archived/meetup/meetup-64-20180314/) 109 | - [Go 夜读第 42 期 An Introduction to Failpoint Design](https://talkgo.org/t/topic/61) 110 | - [思特沃克的个人空间 - 八叉说](https://space.bilibili.com/104129171) 111 | - [什么是 CDN 边缘服务器](https://www.cloudflare.com/zh-cn/learning/cdn/glossary/edge-server/) 112 | - [What is Shopify Hydrogen?](https://www.charle.co.uk/articles/shopify-hydrogen-oxygen/) 113 | - [Go sync.once.go](https://cs.opensource.google/go/go/+/go1.19:src/sync/once.go;l=18) 114 | - [GitLab Engineering quality](https://about.gitlab.com/handbook/engineering/quality/#fy23-direction) 115 | - 推荐指数:⭐️⭐️⭐️⭐️ 116 | - [极客时间 - 说透敏捷](https://time.geekbang.org/column/intro/100044301) 117 | - [雷蓓蓓的项目管理实战课](https://time.geekbang.org/column/intro/100038501) 118 | - [敏捷项目管理系列丛书](https://book.douban.com/series/33968) 119 | 120 | ## 思考 121 | 122 | + **保持好奇心,永不停止学习。** 123 | + **我们彼此的成长。** 124 | + **轻松学习,高效学习。** 125 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊021.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 021 期,希望本期内容能够对你现在和未来都有一些帮助和启发。 6 | 7 | ## 周刊时间 8 | 9 | 2022-12-04 ~ 2022-12-10 10 | 11 | ## 书籍 12 | 13 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 14 | 15 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 16 | |----|----|----|----|----|----|----| 17 | | 19 分钟 | 1 小时 10 分钟 | 1 小时 41 分钟 | 50 分钟 | 42 分钟 | 50 分钟 | 12 分钟 | 18 | 19 | 最近一周阅读时长: ~ `5 小时 44 分钟` 20 | 21 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组,你想跟我一起阅读的话,可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 22 | 23 | + [《管法》](https://book.douban.com/subject/20406746/) 已读完 ✅ 24 | - 副标题: 稻盛和夫给管理者的60个忠告 25 | - 作者: 李文勇 26 | - 出版社: 化学工业出版社 27 | - 豆瓣评分:7.1 28 | - 一些笔记: 29 | - 如果没有胆小、谨慎、小心的心理,所谓的勇气,不过是一种蛮干。 30 | - 六项精进:1. 付出不亚于任何人的努力;2. 要谦虚,不要骄傲;3. 要每天反省;4. 活着,就要感谢;5. 积善行、思利他;6. 忘却感性的烦恼。 31 | - 任何伟大的事业都是一步一个脚印、踏实努力积累起来的结果。因此,不亚于任何人的努力只有每天持续下去,才能出成绩。 32 | - 思善行善,想好事、做好事,持之以恒,命运就会向好的方向转变;相反,想坏事、做坏事,命运就会向坏的方向转变。 33 | 34 | ## 播客 35 | 36 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`39 小时 45 分钟`。 37 | 38 | 在此之前我用的是 **Overcast** ,主要是因为它有两大特性: 39 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 40 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 41 | 42 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 43 | 44 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 45 | 46 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 47 | 48 | ### 强烈推荐 49 | 50 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记等。 51 | 52 | + 声动早咖啡 53 | - 每周一、三、五工作日早上 54 | + 疯投圈 55 | + [70. 从得物到阿那亚:再谈情感价值](https://www.xiaoyuzhoufm.com/episode/637b13b2d3c7226ae899349f) 56 | + 乱翻书 57 | - [91.吐槽野蛮增长,APP 把选择权还给用户](https://www.xiaoyuzhoufm.com/episode/637c86c4882ce82fb6458c0a) 58 | + 运营狗工作日记 by 韩叙 59 | - [16.聊聊内容的逻辑和价值·对谈刘飞](https://www.xiaoyuzhoufm.com/episode/631fdbae90e867995c093870) 60 | - [14.樊登读书是如何做到快速增长的](https://www.xiaoyuzhoufm.com/episode/6307c5f44ee49e5ecd8b8f44) 61 | - 评论区留言: 62 | - 河林: 63 | ``` 64 | 总结整理一些嘉宾老师分享的观点: 65 | 1、对于增长的定义,不同业务在发展的不同时期对于增长指标的定义是不一样的。而樊登读书在增长指标中比较看重GMV。 66 | 3、樊登读书是披着互联网产品的皮,底子是消费品,灵魂是知识付费。 67 | 4、樊登读书的存在价值:它是在做一个降低读书门槛的事情 68 | 5、樊登读书的增长方式:本质是还是做消费品的方式:先做产品,后做营销(线下+线上)。之所以能在全网都刷到樊登读书的内容,不是刻意为之,而是因为内容好,对用户、对平台有价值,所以才得到了现象级的广泛传播。 69 | 70 | 韩叙老师的播客一直都干货满满~很喜欢叙哥的说话节奏和逻辑。 71 | ``` 72 | - [2.聊聊面试,从招聘者和求职者两种不同视角](https://www.xiaoyuzhoufm.com/episode/625e34adb2f93397a0a36822) 73 | - [3.聊聊互联网公司的中层管理者](https://www.xiaoyuzhoufm.com/episode/626a4521eabd9b6af9c3124d) 74 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 75 | - 评论区留言: 76 | ``` 77 | 中层的工作内容有哪些: 78 | 79 | 1、带团队。分配任务,定标准,工作理念。带团队一定要传递价值观。你关心什么,下属就会关心什么。你认为要服务好客户,你关心工单有没有及时响应,团队就会关心。要明确地让下级知道什么是好,什么是不好;并且能指导团队怎么做才对。 80 | 81 | 2、拆目标。拆解目标,拆到人身上。要注意,和团队沟通,同样的事情要反反复复说,不要嫌麻烦。 82 | 83 | 3、做规划。就是策略和打法。策略是要怎么做。打法是详细的roadmap、里程碑、需要的资源。这里要做好每次和领导的沟通,每次和领导的沟通机会要珍惜和领导控制期望、争取资源。 84 | 85 | 4、拿结果。为了拿结果,就要上一些管理手段了,例如周报、周会、数据监控、关键环节询问、抽查review等等。而且一定要清晰「什么是决定成败的关键点」。 86 | 87 | 5、搞关系。你要和他人协作,一定要让被人知道你有多么重视这个项目、这个项目的价值有多好,要把自己做成布道师。 88 | ``` 89 | + [贝望录 93.电影节,不止有情怀](https://www.xiaoyuzhoufm.com/episode/630dd1c61c81cdbe91d05159) 90 | - 评论区留言: 91 | - 腻荣 Sun: 92 | ``` 93 | 为什么线下电影节不能被线上取代 94 | 1.审批流程,线上流程审批时间长,无法满足线下内容空降的场景 95 | 2.流媒体平台每年外国影片的配额是有限的,且上线要求都不一样。 96 | 3.线上电影节对版权保护是无法保证的。 97 | 这些都是公众所不知道的 98 | ``` 99 | 100 | ### 可选择 101 | 102 | + [张小珺 jun Vol.6显微镜下的硅谷大裁员:一笔现实的经济账](https://www.xiaoyuzhoufm.com/episode/637aefe35dbc72a30cc3448f) 103 | + [NebulaGraph 星球 Vol.09 从开源社区构建者、初创 hacker、到 nebula-carina 作者的点滴](https://www.xiaoyuzhoufm.com/episode/637764299c9dd5a4d6187f90) 104 | + [ByteTalk 8. 跟 Shu Ding 聊聊在 Vercel 的工作体验和柏林的生活](https://www.xiaoyuzhoufm.com/episode/638013b518554643b70ab197) 105 | 106 | ## 关注的项目(GitHub 仓库) 107 | 108 | 本周关注项目比较多,我可能会在接下来花一些时间简单来讲讲每个仓库,感兴趣的小伙伴可以在知识星球上搜索「Go 夜读」。 109 | 110 | - [m1guelpf/auto-commit](https://github.com/m1guelpf/auto-commit) 111 | - A CLI tool that automatically writes commit messages for you. 112 | - [danielgross/whatsapp-gpt](https://github.com/danielgross/whatsapp-gpt) 113 | - [wong2/chat-gpt-google-extension](https://github.com/wong2/chat-gpt-google-extension) 114 | - A browser extension to display ChatGPT response alongside Google Search results 115 | - [dwarvesf/hidden](https://github.com/dwarvesf/hidden) 116 | - An ultra-light MacOS utility that helps hide menu bar icons 117 | 118 | ## 娱乐 119 | 120 | - 世界杯观赛中 121 | 122 | ## Journeys 123 | 124 | - [Go 1.20 Release Candidate 1 is released](https://groups.google.com/g/golang-announce/c/iqUo0Spdl9I) 125 | - [Rust 避免从入门到放弃](https://course.rs/) 126 | 127 | ## 思考 128 | 129 | + 保持好奇心,永不停止学习。 130 | + 认知:邓宁-克鲁格效应(达克效应)。 131 | + 一个人只能在一两件事上做到精通,而这一两件事通常是让你**痴迷**的事情。 132 | + 真正聪明的人,从不走捷径。 133 | + 你唯一应该做的事,是你自己想做的事。 134 | + 感时花溅泪,恨别鸟惊心。 135 | + 不要理财,要理**时间**。 136 | + 凡是过往,皆是序章。 137 | + 修合无人见,存心有天知 138 | + 玉不琢,不成器。 139 | + 日拱一卒无有尽,功不唐捐终入海(日拱一卒,功不唐捐)。 140 | - 每天像个象棋的卒子那样前进一点,努力就绝对不会白费。 141 | - 锲而不舍、天道酬勤 142 | + 思善行善 143 | 144 | ## 了解我 145 | 146 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 147 | 148 | - 博客:https://maiyang.me/ 149 | - GitHub:https://github.com/yangwenmai/ 150 | - Telegram Group :https://t.me/learning_growth 151 | 152 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 153 | >怀着好奇心多阅读。 154 | 155 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 156 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊022.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 022 期,希望本期内容能够对你的现在和未来能有一些帮助和启发。 6 | 7 | ## 周刊时间 8 | 9 | 2022-12-11 ~ 2022-12-17 10 | 11 | ## 书籍 12 | 13 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 14 | 15 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 16 | |----|----|----|----|----|----|----| 17 | | 16 分钟 | 1 小时 5 分钟 | 46 分钟 | 46 分钟 | 35 分钟 | 49 分钟 | 3 小时 19 分钟 | 18 | 19 | 最近一周阅读时长: ~ `7 小时 36 分钟` 20 | 21 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组,你想跟我一起阅读的话,可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 22 | 23 | + [《硅谷之火》](https://book.douban.com/subject/34875818/) 24 | - 副标题: 个人计算机的诞生与衰落(第3版) 25 | - 原作名:Fire in the Valley:The Birth and Death of the Personal Computer, Third Edition 26 | - 作者: 迈克尔·斯韦因 / 保罗·弗赖伯格 27 | - 译者:陈少芸 / 成小留 / 朱少容 28 | - 出版社: 人民邮电出版社 29 | - 豆瓣评分:8.0 30 | - 一些笔记: 31 | - 前事不忘,后事之师。 32 | + 出自《战国策》,意为过去的事情不能忘记,可以作为以后行事的借鉴。 33 | - 盖茨说:“没有人真正知道当时究竟是怎么一回事。若是眼界够宽,很多事情实际上是明摆着需要做的。但当时没有人能洞悉整个市场。” 34 | + [《小米创业思考》](https://book.douban.com/subject/36057097/) 35 | - 作者: 雷军/徐洁云 36 | - 出版社: 中信出版社 37 | - 豆瓣评分:8.0 38 | - 一些笔记: 39 | - 在公司内,对于每一项业务,我们要反复问自己三个问题: 40 | 1. 我的业务增长为公司核心战略贡献了什么样的价值? 41 | 2. 我的业务增长是否带动了公司包括核心业务在内的其他业务持续连带增长? 42 | 3. 我的业务消耗了公司哪些资源? 43 | - 极致的两重含义:1. 心智上的无限投入,不遗余力争取最好。 2. 无限追求最优解,认知触达行业和用户需求的本质。 44 | - 人若无名,便可专心练剑。 45 | - 什么才是极致的产品,雷军说有两个条件:1.产品要惊艳,设计要惊艳,成本也要惊艳;2.超出了用户预期,真的能让用户尖叫。 46 | - 毛主席说过,“存地失人,人地皆失;存人失地,人地皆存”。 47 | - 快:洞察快,响应快,决策快,改善快。 48 | - 工程师越成长、越快乐,涌现出的创新才越多,公司的未来才越明亮。 49 | - 爆品的三个条件:1.高效的工业化生产;2.迎合大众消费能力的定价;3.产品体验导向的创新。 50 | 51 | ## 播客 52 | 53 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`38 小时 18 分钟`。 54 | 55 | 在此之前我用的是 **Overcast** ,主要是因为它有两大特性: 56 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 57 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 58 | 59 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 60 | 61 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 62 | 63 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 64 | 65 | ### 强烈推荐 66 | 67 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记等。 68 | 69 | + 声动早咖啡 70 | - 每周一、三、五工作日早上 71 | + 内核恐慌 72 | + [66.爆肝恐慌](https://www.xiaoyuzhoufm.com/episode/637f6853a9d0d1be0d886ed5) 73 | + 疯投圈 74 | - [71.每日优鲜落幕、山姆店崛起](https://www.xiaoyuzhoufm.com/episode/63918319d3a5286ded653f45) 75 | + 运营狗工作日记 by 韩叙 76 | - [24.如何做出专业且有趣的内容·对谈丁香园 VP 初洋](https://www.xiaoyuzhoufm.com/episode/6384f808f6753f4e9d4d5ac8) 77 | 78 | ### 可选择 79 | 80 | + [大小马聊科技](https://www.xiaoyuzhoufm.com/episode/637ba0867c438ba740303b65) 81 | + [OnBoard! EP 19.前 Opendoor 数据负责人杜磊:与 PayPal 黑帮一起从零打造百亿美金上市公司之路](https://www.xiaoyuzhoufm.com/episode/637ba673882ce82fb6458b97) 82 | + [What's Next 科技早知道 S6E39 | FTX 极速坠落,加密史上最大破产案会让 Web3 倒退十年吗?](https://www.xiaoyuzhoufm.com/episode/637e2617c17423958834953c) 83 | + [快乐三十分 094 如何写一份年入 150 万美金的简报](https://www.xiaoyuzhoufm.com/episode/637f5ef0f4db469625db4d8b) 84 | 85 | ## 关注的项目(GitHub 仓库) 86 | 87 | - [sjlleo/nexttrace](https://github.com/sjlleo/nexttrace) 88 | - An open source visual route tracking CLI tool 89 | 90 | ## 娱乐 91 | 92 | - 无 93 | 94 | ## Journeys 95 | 96 | - [Lessions Learned overhauling client libraries across 7 languages](https://www.easypost.com/blog/2022-08-04-lessons-learned-overhauling-client-libraries-across-seven-languages) 97 | - [Go 1.20 time.Compare 使用](https://go.dev/play/p/Sm3e84somaz?v=gotip) 98 | - [陶哲轩个人博客](https://terrytao.wordpress.com/) 99 | - [karrio: Then Open Source Shipping API(self-hosted)](https://github.com/karrioapi/karrio) 100 | - [Shopify App Proxy](https://shopify.dev/apps/online-store/app-proxies) 101 | 102 | ## 思考 103 | 104 | + 保持好奇心,永不停止学习。 105 | + 认知:邓宁-克鲁格效应(达克效应)。 106 | + 一个人只能在一两件事上做到精通,而这一两件事通常是让你**痴迷**的事情。 107 | + 真正聪明的人,从不走捷径。 108 | + 你唯一应该做的事,是你自己想做的事。 109 | + 感时花溅泪,恨别鸟惊心。 110 | + 不要理财,要理**时间**。 111 | + 凡是过往,皆是序章。 112 | + 修合无人见,存心有天知 113 | + 玉不琢,不成器。 114 | + 日拱一卒无有尽,功不唐捐终入海(日拱一卒,功不唐捐)。 115 | - 每天像个象棋的卒子那样前进一点,努力就绝对不会白费。 116 | - 锲而不舍、天道酬勤 117 | + 思善行善 118 | + 前事不忘,后事之师 119 | 120 | ## 了解我 121 | 122 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 123 | 124 | - 博客:https://maiyang.me/ 125 | - GitHub:https://github.com/yangwenmai/ 126 | - Telegram Group :https://t.me/learning_growth 127 | 128 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 129 | >怀着好奇心多阅读。 130 | 131 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 132 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊023.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 023 期,希望本期内容能够对你的现在和未来能有一些帮助和启发。 6 | 7 | 题外话:因为深圳放开,有很多人都出现高烧症状,公司直接远程办公,陆陆续续有同事出现症状。我在平安夜发高烧到 39°,没有测抗原,但是八九不离十应该是跑不掉。发高烧那个难受真的让人痛不欲生,希望这样的代价可以换来更自由的空气。 8 | 9 | ## 周刊时间 10 | 11 | 2022-12-18 ~ 2022-12-24 12 | 13 | ## 书籍 14 | 15 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 16 | 17 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 18 | |----|----|----|----|----|----|----| 19 | | 2 小时 23 分钟 | 36 分钟 | 36 分钟 | 16 分钟 | 19 分钟 | 9 分钟 | 16 分钟 | 20 | 21 | 最近一周阅读时长: ~ `4 小时 35 分钟` 22 | 23 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组,你想跟我一起阅读的话,可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 24 | 25 | + [《硅谷之火》](https://book.douban.com/subject/34875818/) 26 | - 副标题: 个人计算机的诞生与衰落(第3版) 27 | - 原作名:Fire in the Valley:The Birth and Death of the Personal Computer, Third Edition 28 | - 作者: 迈克尔·斯韦因 / 保罗·弗赖伯格 29 | - 译者:陈少芸 / 成小留 / 朱少容 30 | - 出版社: 人民邮电出版社 31 | - 豆瓣评分:8.0 32 | - 一些笔记: 33 | - 前事不忘,后事之师。 34 | + 出自《战国策》,意为过去的事情不能忘记,可以作为以后行事的借鉴。 35 | + [《小米创业思考》](https://book.douban.com/subject/36057097/) 36 | - 作者: 雷军/徐洁云 37 | - 出版社: 中信出版社 38 | - 豆瓣评分:8.0 39 | - 一些笔记: 40 | - 小米是一个新物种,我们不在乎如何被定义,我们唯一在乎的就是以用户为中心。 41 | 42 | ## 播客 43 | 44 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`29 小时 37 分钟`。 45 | >远程在家,基本上没有机会听播客节目。 46 | 47 | 在此之前我用的是 **Overcast** ,主要是因为它有两大特性: 48 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 49 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 50 | 51 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 52 | 53 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 54 | 55 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 56 | 57 | ### 强烈推荐 58 | 59 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记等。 60 | 61 | + 声动早咖啡 62 | - 每周一、三、五工作日早上 63 | + 乱翻书 64 | + [92.银行理财都能亏本,咋回事?](https://www.xiaoyuzhoufm.com/episode/6385aa62f6753f4e9d4d5afc) 65 | 66 | ### 可选择 67 | 68 | + [硬核电台 阿凡达水之道:哪怕剧情俗到家,也是你这十年最该看的电影](https://www.xiaoyuzhoufm.com/episode/639cbfd260ee2d9f173085cc) 69 | + [What's Next 科技早知道 S6E40 | 从单模态到多模态,人工“智障”何时才能不鸡肋](https://www.xiaoyuzhoufm.com/episode/63873bfd16da64dfd52685dd) 70 | + [全面阐述小程序,2017 微信公开课 PRO 完整录音](https://www.xiaoyuzhoufm.com/episode/600ec37e875ca52f827eedd6) 71 | 72 | ## 关注的项目(GitHub 仓库) 73 | 74 | - [BurntSushi/xsv](https://github.com/BurntSushi/xsv) 75 | - A fast CSV command line toolkit written in Rust. 76 | - [lecepin/bilibili-download](https://github.com/lecepin/bilibili-download) 77 | - 超简单B站视频下载工具。安装即可使用,无需任何环境配置,无需登录,默认画质 1080P,mp4 格式。 78 | - [lecepin/WeChatVideoDownloader](https://github.com/lecepin/WeChatVideoDownloader) 79 | - 超方便的微信视频号下载器 80 | - [lecepin/douyin-downloader](https://github.com/lecepin/douyin-downloader) 81 | - 使用非常简单的抖音视频无水印下载工具。支持下单个视频,以及下载某个人的所有视频。(采用rust+tauri编写,安装包非常小) 82 | - [gookit/cache](https://github.com/gookit/cache) 83 | - 🗃 Generic cache use and cache manage. Provide a unified usage API by packaging various commonly used drivers. Support File, Memory, Redis, Memcached and more. Go 通用的缓存使用库,通过包装各种常用的驱动,来提供统一的使用API,便于使用。 84 | - [krahets/hello-algo](https://github.com/krahets/hello-algo) 85 | - 《Hello 算法》一本动画图解、能运行、可提问的数据结构与算法入门书 86 | - [aimerneige/MiraiChess](https://github.com/aimerneige/MiraiChess) 87 | - 使用 MiraiGo-Template 实现的国际象棋机器人。 88 | - [felixge/go-cpu-utilization](https://github.com/felixge/go-cpu-utilization) 89 | 90 | 91 | ## 娱乐 92 | 93 | - 无 94 | 95 | ## Journeys 96 | 97 | - [Go 100-go-mistakes](https://github.com/teivah/100-go-mistakes) 98 | - [What makes for an awesome sdk](https://www.shipengine.com/blog/what-makes-for-an-awesome-sdk/) 99 | - [how to design a good API and Why it Matters](https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/32713.pdf) 100 | - [Baiyuetribe/glink](https://github.com/Baiyuetribe/glink) 101 | - [effective_go#package-names](https://go.dev/doc/effective_go#package-names) 102 | - [Go CodeReviewComments#package-names](https://github.com/golang/go/wiki/CodeReviewComments#package-names) 103 | 104 | ## 思考 105 | 106 | + 保持好奇心,永不停止学习。 107 | + 认知:邓宁-克鲁格效应(达克效应)。 108 | + 一个人只能在一两件事上做到精通,而这一两件事通常是让你**痴迷**的事情。 109 | + 真正聪明的人,从不走捷径。 110 | + 你唯一应该做的事,是你自己想做的事。 111 | + 感时花溅泪,恨别鸟惊心。 112 | + 不要理财,要理**时间**。 113 | + 凡是过往,皆是序章。 114 | + 修合无人见,存心有天知 115 | + 玉不琢,不成器。 116 | + 日拱一卒无有尽,功不唐捐终入海(日拱一卒,功不唐捐)。 117 | - 每天像个象棋的卒子那样前进一点,努力就绝对不会白费。 118 | - 锲而不舍、天道酬勤 119 | + 思善行善 120 | + 前事不忘,后事之师 121 | 122 | ## 了解我 123 | 124 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 125 | 126 | - 博客:https://maiyang.me/ 127 | - GitHub:https://github.com/yangwenmai/ 128 | - Telegram Group :https://t.me/learning_growth 129 | 130 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 131 | >怀着好奇心多阅读。 132 | 133 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 134 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊024.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 024 期,希望本期内容能够对你的现在和未来能有一些帮助和启发。 6 | 7 | 题外话:没有发烧也要注意休息,特别是别激烈运动,我家娃疑似跳的厉害成了肺炎,现在还在医院住院治疗。 8 | 9 | ## 周刊时间 10 | 11 | 2022-12-25 ~ 2022-12-31 12 | 13 | ## 书籍 14 | 15 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 16 | 17 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 18 | |----|----|----|----|----|----|----| 19 | | 2 分钟 | 15 分钟 | 21 分钟 | 51 分钟 | 2 分钟 | 8 分钟 | 26 分钟 | 20 | 21 | 最近一周阅读时长: ~ `2 小时 5 分钟` 22 | 23 | 本周一方面继续在家远程工作,阅读的时机比较难把握,另一方面家里面的小朋友生病了,需要照顾。 24 | 25 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组,你想跟我一起阅读的话,可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 26 | 27 | + [《小米创业思考》](https://book.douban.com/subject/36057097/) 28 | - 作者: 雷军/徐洁云 29 | - 出版社: 中信出版社 30 | - 豆瓣评分:8.0 31 | - 一些笔记: 32 | - 产品定义不应该在各有优缺点的方案中犹疑,而是要集中精力和资源,奔向唯一正确的最优解。 33 | - 美,是一个相对标准,没办法量化。但极致则不同,能够量化,也很容易达成共识。美和极致是有交集的,就像古人形容美人“增之一分则太长,减之一分则太短”“薯粉则太白,施朱则太赤”。无所增减,恰到好处,则是一种极致。 34 | + [《领导梯队》](https://book.douban.com/subject/6536593/) 35 | - 作者: 拉姆•查兰 (Ram Charan) / 斯蒂芬•德罗特 (Stephen Drotter) / 詹姆斯•诺埃尔 (James Noel) 36 | - 副标题:全面打造领导力驱动型公司(原书第2版) 37 | - 出版社: 机械工业出版社 38 | - 豆瓣评分:8.3 39 | - 一些笔记: 40 | - 第一阶段:从管理自我到管理他人,重点是从自己做事转变为带队伍做事这个工作理念的转变;第二阶段从管理他人到管理经理人员,关键的领导技能是教练选拔人才担任一线经理;第三阶段:从管理经理人员到管理职能部门,需要学会新的沟通技巧以跨越两个层级与员工进行沟通;第四阶段:从管理职能部门到事业部总经理,重点是转变思考方式,从赢利和长远发展的角度评估计划和方案;第五阶段:从事业部总经理到集团高管,必须擅长评估资金调拨和人员配置的战略规划;第六阶段:从集团高管到首席执行官,必须具备重视外部关系的视角。 41 | - 在领导力发展的第一阶段,应该学习的技能包括工作计划、知人善任、分配工作、激励员工、教练辅导和绩效评估。 42 | 43 | ## 播客 44 | 45 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`26 小时`。 46 | >远程在家,基本上没有机会听播客节目。 47 | 48 | 在此之前我用的是 **Overcast** ,主要是因为它有两大特性: 49 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 50 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 51 | 52 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 53 | 54 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 55 | 56 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 57 | 58 | ### 强烈推荐 59 | 60 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记等。 61 | 62 | + 声动早咖啡 63 | - 每周一、三、五工作日早上 64 | 65 | ### 可选择 66 | 67 | + [三五环 No.100 跟玉伯聊聊语雀的孵化、成长与飞行](https://www.xiaoyuzhoufm.com/episode/63a2da7ce7ab859986035504) 68 | + [OnBoard! EP 20. 生成式 AI/AIGC: 硅谷 AI 大牛、投资人、创业者眼里的机会与挑战](https://www.xiaoyuzhoufm.com/episode/638787d3882ce82fb6459490) 69 | + 量冰贩糖 70 | - [EP 24. 对话制作总监:职场轨迹、IP 孵化、柯南吐槽、戏剧经营,总之聊点不用报备的](https://www.xiaoyuzhoufm.com/episode/63895717f6753f4e9d4d5d36) 71 | - [EP 23. Trader vs Builder (vs Podcaster)的一场深度对话](https://www.xiaoyuzhoufm.com/episode/6337ba129186d4e4c46a0869) 72 | + [运营狗工作日记 17.中美的用户增长有什么差异·对谈曲卉](https://www.xiaoyuzhoufm.com/episode/63275b4c953e23f946ae9846) 73 | + [硅谷 101 S3E85 | 苹果华为同时“捅破天”不是巧合,卫星互联网的大爆发前夜](https://www.xiaoyuzhoufm.com/episode/6334dd44e2385e9dfe5d412b) 74 | + [创业内幕 S4 Vol.39 分秒帧程刚:让音视频生产效率至少提高 3 倍](https://www.xiaoyuzhoufm.com/episode/6389251fd3a5286ded64c40f) 75 | - 推荐了稻盛和夫的几部书:《活法》、《干法》、《管法》 76 | 77 | ## 关注的项目(GitHub 仓库) 78 | 79 | - 无 80 | 81 | ## 娱乐 82 | 83 | - 无 84 | 85 | ## Journeys 86 | 87 | - [我的 2021 年年终总结](https://maiyang.me/post/2022-12-31-2022-summary/) 88 | 89 | 本周,我将邮件列表中常年不怎么看的订阅列表给取消了,回归到宁静的状态。 90 | 91 | - 少即是多 92 | 93 | ## 思考 94 | 95 | + 保持好奇心,永不停止学习。 96 | + 认知:邓宁-克鲁格效应(达克效应)。 97 | + 一个人只能在一两件事上做到精通,而这一两件事通常是让你**痴迷**的事情。 98 | + 真正聪明的人,从不走捷径。 99 | + 你唯一应该做的事,是你自己想做的事。 100 | + 感时花溅泪,恨别鸟惊心。 101 | + 不要理财,要理**时间**。 102 | + 凡是过往,皆是序章。 103 | + 修合无人见,存心有天知 104 | + 玉不琢,不成器。 105 | + 日拱一卒无有尽,功不唐捐终入海(日拱一卒,功不唐捐)。 106 | - 每天像个象棋的卒子那样前进一点,努力就绝对不会白费。 107 | - 锲而不舍、天道酬勤 108 | + 思善行善 109 | + 前事不忘,后事之师 110 | + 少即是多 111 | 112 | ## 了解我 113 | 114 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 115 | 116 | - 博客:https://maiyang.me/ 117 | - GitHub:https://github.com/yangwenmai/ 118 | - Telegram Group :https://t.me/learning_growth 119 | 120 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 121 | >怀着好奇心多阅读。 122 | 123 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 124 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊026.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 026 期,也是这个系列的最后一期,正如我在[「Go 夜读知识星球」的最新文章:我的回顾与启航:从心出发](https://articles.zsxq.com/id_58gm2zdjhdrp.html)所说,我应该要用质量和革新来真正创作,而不只是做内容的整理和汇集,因为那并不能帮助大家,这个从竹白的订阅数据就能反映出来。 6 | 7 | 但是,这并不是说我的周刊内容就不做了,而是会经过我的重新打磨,结合「Go 夜读知识星球」输出合适且有价值的内容给到大家,以及给到我自己。 8 | 9 | ## 周刊时间 10 | 11 | 2023-01-08 ~ 2023-01-14 12 | 13 | ## 书籍 14 | 15 | 书一直是能让人快速获取信息或体会人生的最好的途径。所以它很重要,无论如何,我们都应该要给自己安排时间阅读。 16 | 17 | | 周日 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 18 | |----|----|----|----|----|----|----| 19 | | 37 分钟 | 44 分钟 | 43 分钟 | 53 分钟 | 28 分钟 | 30 分钟 | 22 分钟 | 20 | 21 | 最近一周阅读时长: ~ `4 小时 17 分钟` 22 | 23 | 本周回到办公室上班,一切恢复正常,不过因为本周有其他的思考,所以在通勤路上并没有阅读很多。 24 | 25 | 我平常会使用「阅读记录」App 来记录自己的阅读时长,如果你也想找小伙伴一起阅读的话,我们还可以在这个上面创建阅读小组,你想跟我一起阅读的话,可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 26 | 27 | + [《领导梯队》](https://book.douban.com/subject/6536593/) 28 | - 作者: 拉姆•查兰 (Ram Charan) / 斯蒂芬•德罗特 (Stephen Drotter) / 詹姆斯•诺埃尔 (James Noel) 29 | - 副标题:全面打造领导力驱动型公司(原书第2版) 30 | - 出版社: 机械工业出版社 31 | - 豆瓣评分:8.3 32 | 33 | ## 播客 34 | 35 | 我正在使用的播客收听软件是:「小宇宙 App」,最近 30 天共:`20 小时 55 分钟`。 36 | >远程在家,基本上没有机会听播客节目。 37 | 38 | 在此之前我用的是 **Overcast** ,主要是因为它有两大特性: 39 | - Smart Speed 智能加速,它可以在保证声音不失真的前提下缩短播客内容的间歇时间。 40 | - Voice Boost 声音均衡器,它可以使音量过低或过高的内容通过算法平衡到一个正常水平。 41 | 42 | 现在「小宇宙 App」都具备了,并且还有我选择转到它的一个功能,不是下载速度,而是我的收听时长,收听记录。 43 | 44 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/),感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,欢迎找我私信,我加你并拉你进群哦。 45 | 46 | 以下播客是我最近一周收听的播客内容,我增加了推荐指数,你可以根据你自己的偏好来选择收听,其实这里的每一期都有非常大的信息密度。 47 | 48 | ### 强烈推荐 49 | 50 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记等。 51 | 52 | + 声动早咖啡 53 | - 每周一、三、五工作日早上 54 | - [早咖啡年末特辑 | 编辑部四人对谈,关于 2022 的八个问题](https://www.xiaoyuzhoufm.com/episode/63ad4dd19acee6cd2f84e0eb) 55 | + [疯投圈 68. 做视频后收获的新认知](https://www.xiaoyuzhoufm.com/episode/630e61519c937e57153213a1) 56 | - 评论: 57 | - Barbados: 加杠杆 1. 人力杠杆。员工剩余价值; 2. 资本杠杆。买股票; 3. 内容杠杆。李佳琪直播; 58 | 59 | ### 可选择 60 | 61 | + [创业内幕 S4 Vol.26 销售易史彦泽:打造可复制、可规模的 SaaS 营销体系](https://www.xiaoyuzhoufm.com/episode/6307f2d8b74c8fcbdae7e9a2) 62 | + [夜航西飞 Vol.021 对谈王建硕:畅想 Web3,聊创业、写作和大理](https://www.xiaoyuzhoufm.com/episode/633157a0e67030aadb38e4d4) 63 | 64 | ## 关注的项目(GitHub 仓库) 65 | 66 | - [AssemblyAI/assemblyai-cli](https://github.com/AssemblyAI/assemblyai-cli) 67 | - CLI for the AssemblyAI API 68 | - [bregydoc/gtranslate](https://github.com/bregydoc/gtranslate) 69 | - Google translate API for unlimited and free translations, gtranslate generates the necessary token to use the Google Translate API for free 70 | - [hegedustibor/htgo-tts](https://github.com/hegedustibor/htgo-tts) 71 | - Text to speech package for Golang. 72 | - [kkdai/chatgpt](https://github.com/kkdai/chatgpt) 73 | - ChatGPT Console client in Golang 74 | 75 | ## 娱乐 76 | 77 | - 追更《斗罗大陆》,第 242 集 78 | 79 | ## Journeys 80 | 81 | - https://golangcode.com/ 82 | - https://gophersnippets.com/ 83 | - https://alleyread.com/ 重塑你的信息源 84 | - https://github.com/misraturp/Content-Analyzer 85 | 86 | ## 思考 87 | 88 | + 保持好奇心,永不停止学习。 89 | + 认知:邓宁-克鲁格效应(达克效应)。 90 | + 一个人只能在一两件事上做到精通,而这一两件事通常是让你**痴迷**的事情。 91 | + 真正聪明的人,从不走捷径。 92 | + 你唯一应该做的事,是你自己想做的事。 93 | + 感时花溅泪,恨别鸟惊心。 94 | + 不要理财,要理**时间**。 95 | + 凡是过往,皆是序章。 96 | + 修合无人见,存心有天知 97 | + 玉不琢,不成器。 98 | + 日拱一卒无有尽,功不唐捐终入海(日拱一卒,功不唐捐)。 99 | - 每天像个象棋的卒子那样前进一点,努力就绝对不会白费。 100 | - 锲而不舍、天道酬勤 101 | + 思善行善 102 | + 前事不忘,后事之师 103 | + 少即是多 104 | 105 | ## 了解我 106 | 107 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 108 | 109 | - 博客:https://maiyang.me/ 110 | - GitHub:https://github.com/yangwenmai/ 111 | - Telegram Group :https://t.me/learning_growth 112 | 113 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 114 | >怀着好奇心多阅读。 115 | 116 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 117 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊027.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 027 期,从这一期开始,我将会对「一叶知秋」也进行一定程度的改版。初步定位主要用于沉淀我在收听播客上的一些总结。 6 | 7 | ## 覆盖周期 8 | 9 | 2023-01-15 ~ 2023-02-19 10 | 11 | ## 书籍 12 | 13 | 阅读真的很重要,书是其中一个非常重要的途径,所以你得要利用好它。无论如何,你都应该要给自己安排时间阅读,特别是**深度阅读**,少看爽文。 14 | 15 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 16 | 17 | ## 播客 18 | 19 | 我在我的博客上也给出了[我的一些推荐节目](https://maiyang.me/podcasts/) [暂时未及时更新,「一叶知秋」更合适于你],感兴趣可以看看,或者直接看我的推荐来收听也是可以的,如果你想针对这些节目做一些交流,可以直接找我。 20 | 21 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、硅谷轻松谈、Go 夜聊、运营狗工作日记、量贩冰糖等。 22 | 23 | + 声动早咖啡 24 | - 每周一、三、五工作日早上 25 | + What's next 科技早知道 26 | - [What's next 科技早知道 S6E26 | 重仓中国更要重仓中国人,中国出海公司如何伟大起来](https://www.xiaoyuzhoufm.com/episode/62f34cf68573d4fb67b36499) 27 | - [What's next 科技早知道 S7番外 | OpenAI 创始人说教育一定会适应 ChatGPT,他说对了吗?](https://www.xiaoyuzhoufm.com/episode/63ee05f79d2938b8a8c0714d) 28 | + [投资笔记 ChatGPT 一路狂飙背后的「人类文明」思考](https://www.xiaoyuzhoufm.com/episode/63eeaa343c39ec1f9aed40ab) 29 | + 创业内幕 30 | - [创业内幕 S4 Vol.24 小牛电动胡依林:做自己的小牛!7 年 110 亿公里的品牌成长之路](https://www.xiaoyuzhoufm.com/episode/62f57e56b35b1e3f5c09629d) 31 | - [创业内幕 S4 Vol.23 小鹅通鲍春健:给我一分钟!即刻搭建你的专属知识服务平台](https://www.xiaoyuzhoufm.com/episode/62ec422af5799d134563c737) 32 | + [OnBoard! EP 26. ChatGPT 与生成式 AI 的技术演进与商业未来:对话 Google Brain & Stability AI](https://www.xiaoyuzhoufm.com/episode/63e19fb40d7e8eaa72117c47) 33 | - 秋山羊:一期干货满满的关于ai的播客,但因为提到很多技术层面的东西,自己听起来比较吃力,所以整理了一份播客笔记慢慢消化吸收:https://ahamoment.zhubai.love/posts/2235014506482958336 34 | + [恍然大悟 EP 26 与毛老师聊读书习惯养成和读书带来的改变,以及书单推荐](https://www.xiaoyuzhoufm.com/episode/63ddf248e99bdef7d3fe455b) 35 | - 《最高学习法》 36 | - 《创造:用非传统方式做有价值的事》 37 | - 《战斗细胞》 38 | + [RustTalk 007. 于康的 Rust 贡献之旅](https://www.xiaoyuzhoufm.com/episode/63df73208db17410d1470011) 39 | + [爵士群英雄 004 | Bill Evans: 一个天才和他悲剧的一生](https://www.xiaoyuzhoufm.com/episode/62f590604f4e455f0488a63e) 40 | 41 | + [MLOops E01. 从工程师的角度聊聊 ChatGPT 与大模型,通用 AI 的第一个里程碑?恐怕不是](https://www.xiaoyuzhoufm.com/episode/63c7db546bcfd9410258029f) 42 | + BearTalk 狗熊有话说 43 | - [BearTalk 446/ 专访 JustPod 杨一:叙事的力量、播客的工厂思维、非媒体人的差异优势 - How could I start a podcast in 2023](https://www.xiaoyuzhoufm.com/episode/63cbc848f68874008c920478) 44 | - 《NPR 播客入门指南》 45 | - 《媒体帝国》 46 | - 《试镜人生:芭芭拉》 47 | - [BearTalk 444/ 如何读懂一本难以理解的好书 - How to read a hard-understanding book](https://www.xiaoyuzhoufm.com/episode/63ba8665fa617e432086f4c2) 48 | - 《原则》 49 | - 《世界秩序的变化》 50 | - 《沙丘》 51 | + [贝望录 91. 精酿啤酒:50 年前没人认识的东西是如何变成新潮流的?](https://www.xiaoyuzhoufm.com/episode/62f228d5eb0492cf2f508504) 52 | + [捕蛇者说 Ep39. 和 Alex 聊聊向量数据库与职业规划](https://www.xiaoyuzhoufm.com/episode/63ce71d96e7201008c2cc2f3) 53 | + 组织进化论 54 | - [组织进化论 E15 | 特赞 CEO 范凌:拒绝打卡!让管理从”狼性“回归”人性“](https://www.xiaoyuzhoufm.com/episode/62ed2b1d226f5c1fa0d58357) 55 | - [组织进化论 E14 | 元宇宙来临,未来的我们会怎样办公](https://www.xiaoyuzhoufm.com/episode/614ba7fa3e0c7de6bce02adf) 56 | + [牛透 SaaS No.20 | SaaS 独角兽创业复盘:专注、跟着客户走、守纪律](https://www.xiaoyuzhoufm.com/episode/63e09d31e99bdef7d31a6008) 57 | + 乱翻书 58 | - [72.2022 最冷校招:毁约、卷实习、考研考公](https://www.xiaoyuzhoufm.com/episode/62f349ab20298b975e3535b9) 59 | - [71.语雀为什么没被钉钉吃掉,跟支付宝又是什么关系?](https://www.xiaoyuzhoufm.com/episode/62ed2b1d226f5c1fa0d58357) 60 | - [98.年终回顾:短视频、SaaS、机器人、新造车、元宇宙](https://www.xiaoyuzhoufm.com/episode/63c95be46bcfd94102683c12) 61 | - 评论: 62 | - 卓先生 Zhuo 63 | ``` 64 | 挺有共鸣和启发,分享关于新能源车的一些观点 65 | 1. Smart E V三个词里,E会是下一个阶段的重点,毕竟V还是那个V,smart大家都是半斤八两,在自动驾驶极具争议和限制的当下,其他的智能(无论是功能还是情绪)几乎都是停留在玩具级别,所幸传统车企这方面更不给力,所以慢一点也无妨,反而过度强调智能会超出当下用户的需求阶段 66 | 2. 而围绕E这个关键词,基本就是趋势、效率和体验三个重点;而决定大家是否在效率上做出妥协让渡的重要因素是体验,类似于智能手机在初级阶段效率未必超过上一代手机但人们愿意因为体验去接受去学习;以蔚来NIO SUMMER用户活动为例,真正的体验保障是各条线路的补能体系,而非那些缤纷多彩的活动和视频,本质上是electrically empowered experience ;互联网车企的优势在于用户运营,无论是获客还是促活传播都远超过传统车企,但前提是E要做得好,很明显我们看到了很多走偏的尝试。 67 | 3. 在大趋势下的发展策略,很大程度上是希望通过新能源智能车获取特定消费人群的行为数据,甚至是重构一些数据,这个点不方便展开,但DDDD 68 | ``` 69 | + 质量三人行 70 | - [我们在编撰一本《质量体系白皮书》](https://www.xiaoyuzhoufm.com/episode/635907181aea65491b78e66c) 71 | - [人,才是做质量工作最核心的部分,而不是流程](https://www.xiaoyuzhoufm.com/episode/636d89815aca413bf96d242a) 72 | - [质量体系中的关键实践](https://www.xiaoyuzhoufm.com/episode/63908329a6ab012bf468e16a) 73 | + ByteTalk 74 | - [10. 跟 Linghao 聊聊在 Google 的工作经历、科幻小说和独立游戏](https://www.xiaoyuzhoufm.com/episode/63c79715c0d8da008cf990b9) 75 | - [9. 跟 Xiaohanyu 聊聊在 gojek 的工作经历、远程工作和不同城市的风貌](https://www.xiaoyuzhoufm.com/episode/639c875b8a837246579d479e) 76 | - [8. 跟 Shu Ding 聊聊在 Vercel 的工作体验和柏林的生活](https://www.xiaoyuzhoufm.com/episode/638013b518554643b70ab197) 77 | - [6. 跟 Anthony Fu 聊聊全职开源和他的故事](https://www.xiaoyuzhoufm.com/episode/61b43114f7b64dfb09f2524c) 78 | 79 | ### 娱乐相关的播客 80 | 81 | - GQTalk 82 | - 野史下酒 83 | - 过期电影 84 | 85 | ## 思考 86 | 87 | + 你唯一应该做的事,是你自己想做的事。 88 | + 不要理财,要理**时间**。 89 | + 凡是过往,皆是序章。 90 | + 少即是多 91 | 92 | ## 了解我 93 | 94 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 95 | 96 | - 博客:https://maiyang.me/ 97 | - GitHub:https://github.com/yangwenmai/ 98 | - Telegram Group :https://t.me/learning_growth 99 | 100 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 101 | >怀着好奇心多阅读。 102 | 103 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 104 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊030.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 030 期。 6 | 7 | 又过了一个月了,我们的”周刊“,变成了名符其实的”月刊“,希望你是来看内容的,如果想要催更,可以直接来哦,我需要你们的催更和支持。 8 | 9 | ## 覆盖周期 10 | 11 | 2023-04-17 ~ 2023-05-21 12 | 13 | 没想到,我还跨一个 #520 浪漫情人节。 14 | 15 | ## 书籍 16 | 17 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 18 | 19 | ## 播客 20 | 21 | 以下是我对我听过的播客做的整理,都还不错,我把他们整理之后分享给你,欢迎一起听、一起聊、也可以一起交流。 22 | 23 | >最近 30 天收听时长:33 小时 59 分钟。 24 | 25 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、**硅谷轻松谈**、Go 夜聊、运营狗工作日记、量贩冰糖等。 26 | 27 | + 声动早咖啡 28 | - 每周一、三、五工作日早上 29 | 30 | 新晋播客节目: 31 | - 三好坏男孩官方账号 32 | 33 | ### 科技 投融资 增长 创业 34 | 35 | + 张小珺 36 | - [22.要做中国 OpenAI?李志飞劝各位同仁冷静点](https://www.xiaoyuzhoufm.com/episode/643c2af19361a4e7c3b4d2f8) 37 | - [23.和傅盛从这场伟大的 AI 变革,谈到创业、恩怨和心性](https://www.xiaoyuzhoufm.com/episode/6443c2c7a79cc814702cff5f) 38 | + [What's next 科技早知道 | AI 大神贾扬清离开阿里后首次受访:创业为什么不做大模型|硅谷徐老师 S7E07](https://www.xiaoyuzhoufm.com/episode/6435422f6341155b5195ade3) 39 | + [What's next 科技早知道 | 中国出海人 2023 第一步都落在哪里?|S7E08](https://www.xiaoyuzhoufm.com/episode/643fc9e03859a5b5a321e6e9) 40 | + [硅谷 101 E106 | 真正造星舰的人来了,与 SpaceX 前高管聊聊马斯克的火星计划](https://www.xiaoyuzhoufm.com/episode/643f8096a2fb59c2a1adaa8b) 41 | - 推荐指数:⭐️⭐️⭐️⭐️ 42 | + [三五环 No.109 对谈池建强:AI 已经进入工作,梦想已经进入现实](https://www.xiaoyuzhoufm.com/episode/643fe4bea79cc81470f0dd1a) 43 | + 创业内幕 44 | - [S5 Vol.04 DeepMusic 刘晓光&苑盛成:释放你灵魂中的莫扎特](https://www.xiaoyuzhoufm.com/episode/641ccd88db441668432f705b) 45 | - [S5 Vol.06 家添网陈锦龙&胡家方:从 0 到 1 抢占东南亚家装赛道的出海之路](https://www.xiaoyuzhoufm.com/episode/64387d105cec834060f70355) 46 | + [出海相对论 #3 ChatGPT 沉思录:深度对话微软中国 CTO 韦青、微软 RD 李卓恒、微软 AI MVP 李佳芮](https://www.xiaoyuzhoufm.com/episode/640b67afacc110612af53e77) 47 | + OnBoard!,推荐指数:⭐️⭐️⭐️⭐️⭐️ 48 | - [ep 30.【生成式 AI 专题 3】深度探讨大语言模型生态链:芯片,基建,工具,开源](https://www.xiaoyuzhoufm.com/episode/64403383a79cc81470f62a88) 49 | - [ep 31.走心幕后 13 个月 30 期,我们与播客的共同成长,及播客清单和推荐](https://www.xiaoyuzhoufm.com/episode/645a7ed394d78eb3f78e2931) 50 | + 乱翻书,推荐指数:⭐️⭐️⭐️⭐️⭐️ 51 | - [109.Excel、数字化和飞书业务的三件套](https://www.xiaoyuzhoufm.com/episode/6423e032179eec5331a1db40) 52 | - [113.中国餐饮何以迈入万店时代?](https://www.xiaoyuzhoufm.com/episode/643e85ab66e4c00c6a6e0837) 53 | - [114.为何星舰炸了大家还鼓掌?SpaceX 和中美商业航天对比](https://www.xiaoyuzhoufm.com/episode/64463cf47d934b8505cadf9a) 54 | - [118.阿里 1+6+N 组织大变革:文化、中台、合伙人](https://www.xiaoyuzhoufm.com/episode/6465dd0a6752b5f9de71e526) 55 | + 牛透 SaaS 56 | - [No.28|对话王文京:To B 是个”老炮用新枪“的行业](https://www.xiaoyuzhoufm.com/episode/642e63c29361a4e7c3ca7177) 57 | - [No.29|对话罗旭:创变者复盘,创业要善用周期](https://www.xiaoyuzhoufm.com/episode/6437611c9361a4e7c3663a71) 58 | + [投时问录 和 Zilliz 聊聊开源商业化、向量数据库和软件全球化](https://www.xiaoyuzhoufm.com/episode/63911ff674863c979fb3e889) 59 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 60 | + 老范聊创业,- 推荐指数:⭐️⭐️⭐️⭐️ 61 | - [Vol.02 对话 42 章经曲凯:不做 VC 以后的人生故事](https://www.xiaoyuzhoufm.com/episode/64526737306513184cf52c10) 62 | - [Vol.03 对话饭统戴老板:有趣的硬核财经内容怎么做?](https://www.xiaoyuzhoufm.com/episode/64526737306513184cf52c10) 63 | + [温柔一刀 Vol.53 57 岁的 Olga 对话 33 岁的 doris:我失败过,屁事没有](https://www.xiaoyuzhoufm.com/episode/6456768c94d78eb3f7464121) 64 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 65 | + [运营狗工作日记 35."在律所里做 MCN"--业务定位、律师意愿、运营能力,是做好律师个人 IP 的三要素](https://www.xiaoyuzhoufm.com/episode/6457f67294d78eb3f75aaa39) 66 | + [运营狗工作日记 36.丢掉 7000 万粉丝的账号也无所谓·对谈浪胃仙](https://www.xiaoyuzhoufm.com/episode/6463abcd306513184c264a64) 67 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 68 | + [贝望录 112."逆全球化"会是狼来了吗?](https://www.xiaoyuzhoufm.com/episode/645a054c94d78eb3f7823ee5) 69 | + [三五环 No.113 对谈吴晨:从马斯克聊起,最好玩的故事是成长](https://www.xiaoyuzhoufm.com/episode/6464ad9e53a5e5ea144dcbf9) 70 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 71 | 72 | ### 效率、思考、其他 73 | 74 | + [开源面对面 S01E19 对话吴炳锡:一个 DBA 老兵眼里的开源与生存](https://www.xiaoyuzhoufm.com/episode/643d10730d5e506342501b0d) 75 | + [捕蛇者说 Ep 40.Rust 和 PyO3: 让 Python 再次伟大](https://www.xiaoyuzhoufm.com/episode/645f2d8aec1537743bd03f21) 76 | + 质量三人行 77 | - [软件项目的估算环节对测试和质量的影响](https://www.xiaoyuzhoufm.com/episode/643cafab04974f4ba56d031b) 78 | - [性能测试(下) 性能测试的难点在于发现问题](https://www.xiaoyuzhoufm.com/episode/6051851a34cf2d977234bdc7) 79 | + 硬地骇客,推荐指数:⭐️⭐️⭐️⭐️⭐️ 80 | - [EP2 从个人兴趣到财务自由:独立开发者也可以这样做开源](https://www.xiaoyuzhoufm.com/episode/6418304073768bea35ee47d2) 81 | - [EP9 提供一点搞钱小思路:三个独立开发者的创业故事](https://www.xiaoyuzhoufm.com/episode/6458e5ba7d934b8505efa2cf) 82 | + [方程式漫谈 23R04 阿塞拜疆 街道大师佩雷兹+音乐达人阿隆索神奇周末 | F1 比赛回顾](https://www.xiaoyuzhoufm.com/episode/64507b7594d78eb3f7e4c42a) 83 | + [方程式漫谈 23R05 迈阿密 一周上墙三次 勒克莱尔何时才能稳下来](https://www.xiaoyuzhoufm.com/episode/6459f482306513184c77a01a) 84 | + [SLOW BRAND EP.20 Taylor Swift - 持续转型的顶流,音乐届”D2C“的先行者](https://www.xiaoyuzhoufm.com/episode/6372592ca5004aa3aa5716f4) 85 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 86 | + [今天好好过 对话 | 前互联网产品经理张子贺 Zake:“你总能重新定义最好的自己”](https://www.xiaoyuzhoufm.com/episode/63d15b74531dadd2b1999932) 87 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 88 | + [科技沉思录 AI 技术爆发的背后:安全、伦理与责任 | 对话青年 AI 研究员符尧](https://www.xiaoyuzhoufm.com/episode/645b3fae94d78eb3f79a09af) 89 | + 开源之道 Talking Episode 8:类 Google 编程之夏(GSoC)能否在中国被复制? 90 | + [无人知晓 E26 孟岩对话吴鲁加:寻找自己的游戏](https://www.xiaoyuzhoufm.com/episode/6456768c94d78eb3f7464121) 91 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 92 | 93 | ## 特别节目 94 | 95 | + [夜航西飞 特别节目 | 左耳朵耗子的话](https://www.xiaoyuzhoufm.com/episode/64663737167262824069abf7) 96 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 97 | 98 | ## 思考 99 | 100 | + 保持好奇心。 101 | + 凡是过往,皆是序章。 102 | + 你唯一应该做的事,是你自己想做的事。 103 | + 少即是多。 104 | + 前方的道路并不拥挤,因为坚持的人并不多。 105 | 106 | ## 了解我 107 | 108 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 109 | 110 | - 博客:https://maiyang.me/ 111 | - GitHub:https://github.com/yangwenmai/ 112 | - Telegram Group :https://t.me/learning_growth 113 | 114 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 115 | >怀着好奇心多阅读。 116 | 117 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 118 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊031.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 031 期。 6 | 7 | 距离上一次,已经过去一个多月了,终于有一些时间来整理一下这一段时间我的”周刊“。 8 | 9 | ## 覆盖周期 10 | 11 | 2023-05-22 ~ 2023-07-09 12 | 13 | ## 书籍 14 | 15 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 16 | 17 | ## 播客 18 | 19 | 以下是我对我听过的播客做的汇总整理,希望可以跟大家一起听、一起聊,如果你有其他推荐,欢迎你给我提出。 20 | 21 | >最近 30 天收听时长:31 小时 53 分钟。 22 | 23 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、**硅谷轻松谈**、Go 夜聊、运营狗工作日记、冰镇电波(量贩冰糖)等。 24 | 25 | + 声动早咖啡 26 | - 每周一、三、五工作日早上 27 | 28 | ---- 29 | 30 | ### 投融资、商业 31 | 32 | + 张小珺 33 | - [25.OpenAI 开源、亚马逊新动作,全球大模型格局走向何方](https://www.xiaoyuzhoufm.com/episode/646325d2306513184c18d3bf) 34 | - [26.令德国人惊吓的上海车展:一幅当代汽车众生图](https://www.xiaoyuzhoufm.com/episode/646b78601672628240c2d822) 35 | + [What's Next 科技早知道 | 超级独角兽创始人饶军:我能开公司,所有人都有机会 | S6E43 硅谷徐老师](https://www.xiaoyuzhoufm.com/episode/639c34e61a82e2d9650d2dbd) 36 | + 创业内幕 37 | - [S5 Vol.10 GGV 科技先锋对谈实录(上):哈啰与 Wiz.ai 的“入场”时刻](https://www.xiaoyuzhoufm.com/episode/645d65db13ea1618d0f51683) 38 | - [S5 Vol.10 GGV 科技先锋对谈实录(下):组织管理中踩过的“坑”和走对的“路”](https://www.xiaoyuzhoufm.com/episode/6466a0a376892d2c62de5116) 39 | + [疯投圈 77. 卷王的大航海时代 --- 中国企业出海新范式](https://www.xiaoyuzhoufm.com/episode/6460a8bf24bc6849d1aa3819) 40 | + OnBoard!,推荐指数:⭐️⭐️⭐️⭐️⭐️ 41 | - [ep 33.对话 AfterShip 创始人 Teddy:十年打造服务全球的电商 SaaS,在模糊的正确中迭代产品、市场与组织](https://www.xiaoyuzhoufm.com/episode/6476f96a6752b5f9de9ad189) 42 | - 我在这里等你哦! 43 | - [ep 34.对话前 Gitlab 增长总监 Hila Qu: 从 0 到 100,硅谷 PLG(产品驱动增长)一线实践](https://www.xiaoyuzhoufm.com/episode/64939a8086eb9d7e47eeeef2) 44 | + [Meta 为什么要开源 LLaMA?这样的模型有什么好处?](https://www.xiaoyuzhoufm.com/episode/64939a8086eb9d7e47eeeef2) 45 | + [SLOW BRAND 番外篇:闲谈 Love-flation -- 价格翻倍,什么值得为爱交税?](https://www.xiaoyuzhoufm.com/episode/646b70c21672628240c1f7de) 46 | + [SLOW BRAND EP.32 Chanel 香奈儿 -- 生而自由雅致,终于束之高阁](https://www.xiaoyuzhoufm.com/episode/64907e0d932f350aaea0cfdf) 47 | + [牛透 SaaS | No.33 | 对话 AfterShip 刘徽:出海潮下,如何从 0 搭建国际化客户成功体系?](https://www.xiaoyuzhoufm.com/episode/646b500e1672628240bebccf) 48 | + [温柔一刀 | Vol.55 人会越来越孤独吗?那爱与勇气从何而来,又将放置何处?](https://www.xiaoyuzhoufm.com/episode/6465eb1d16726282406259f3) 49 | + 乱翻书,推荐指数:⭐️⭐️⭐️⭐️⭐️ 50 | - [117.十问营销未来:品牌如何在抖音做经营?](https://www.xiaoyuzhoufm.com/episode/645faef77d934b85056a2c0b) 51 | - [119.浅谈一期鞋圈和得物](https://www.xiaoyuzhoufm.com/episode/646c712a53a5e5ea14d6897a) 52 | - [120.越南小国吗?东南亚是统一大市场吗?| 消失的国界 01](https://www.xiaoyuzhoufm.com/episode/64705d8b53a5e5ea1421a367) 53 | - [122.菲律宾折叠:从华侨义山到马卡蒂 | 消失的国界 02](https://www.xiaoyuzhoufm.com/episode/6475b5b153a5e5ea1476af73) 54 | - [123.对话天涯创始人邢明:天涯重启之后,未来何去何从?](https://www.xiaoyuzhoufm.com/episode/647a15f01672628240bfbd7e) 55 | - [124.大马华社新三宝:微信、抖音、小红书 | 消失的国界 03](https://www.xiaoyuzhoufm.com/episode/6482e04d53a5e5ea1447bbfd) 56 | 57 | 58 | ### 创业 59 | 60 | + [冰镇电波 | EP 28.创业揭秘:前小红书电商增长负责人,想要保管你的 AI 阅读脑](https://www.xiaoyuzhoufm.com/episode/647d93f86752b5f9defafc8d) 61 | + [冰镇电波 | EP 30.我的创业复盘,以及 AI 版增长黑客怎么玩?](https://www.xiaoyuzhoufm.com/episode/6490277b932f350aae99a938) 62 | + 老范聊创业 | 对话菠萝斑马宋冰:女性凭什么就不能做 100 亿的生意了? 63 | + 运营狗工作日记 64 | - [37.聊聊小红书电商,策略打法、阶段特征和抖音的差异、董洁和章小蕙·对谈 Dian](https://www.xiaoyuzhoufm.com/episode/64820630e68894365db8bec9) 65 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 66 | - [39.业务起步、微博出圈、付费社群,我的上半年创业复盘](https://www.xiaoyuzhoufm.com/episode/6498685ed6cdb5972856b4db) 67 | + 硬地骇客 68 | - [EP14 硬地访谈:对话 logseq 联合创始人,看硅谷大佬的传奇投资](https://www.xiaoyuzhoufm.com/episode/64867c6553a5e5ea14714166) 69 | - [EP16 回看我们的 ToB 经历,确定小生意的未来在 PLG](https://www.xiaoyuzhoufm.com/episode/64996307932f350aae1d00ee) 70 | + [为什么中国茶叶品牌做不成立顿?](https://www.xiaoyuzhoufm.com/episode/625784d6493ea2f504a55911) 71 | + [晚点聊 LateTalk | 38: 内斗?投资人逼宫?创业 5 年后公司估值超过 20 亿元,他为什么辞任 CEO?](https://www.xiaoyuzhoufm.com/episode/648a4be05b35cd46691533db) 72 | - bosie 创始人刘光耀,「把 CEO 让给更合适的人」。 73 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 74 | 75 | ### 不一样的理解 76 | 77 | + [硬核说 | 对话《消失的她》导演崔睿:做一部女性力量的新黑色电影](https://www.xiaoyuzhoufm.com/episode/6493ce5226410b32b5800e12) 78 | + [过期电影 | E54: 《消失的她》,电影人与影评人合谋的一次指鼠为鸭](https://www.xiaoyuzhoufm.com/episode/64a67bd6f4ccb12e0b3437c7) 79 | - 不得不说两个主持人带有很“专业”的视角在剖析和解读整个营销动态。 80 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 81 | + ULSUM RADIO 82 | - [EP153: 「微醺访谈」陈冠希:我要做什么,大家才认为我是中国人?](https://www.xiaoyuzhoufm.com/episode/64820d51e68894365db8fbd0) 83 | - 不得不佩服陈冠希的思考方式和国人基因胜过很多人,推荐指数:⭐️⭐️⭐️⭐️⭐️ 84 | - 08:17 能理解陈冠希的困惑,但要真解答的话Chinese这个含义包含了ethnicity和nationality两层含义,人种上来说Chinese包含的很广啦,海外华人都会将自己是中国人,填写官方证件信息也会选自己人种是Chinese。但是国人有时候理解的“中国人”会限制在中国出生中国长大中国护照,而不是更广泛的含义。但和之前评论说的一样,当你会伤心别人不认同你是中国人的时候就说明你已经是100%中国人了。 85 | - [EP 151: 「微醺访谈」饮料公司拥有车队?今天带你进入 F1 的世界](https://www.xiaoyuzhoufm.com/episode/6473120d53a5e5ea144774ff) 86 | - F1 解说刘耀,法拉利忠实车迷。 87 | + [硅谷 101 | E109 | Netflix、HBO 与迪士尼的新旧流媒体大战](https://www.xiaoyuzhoufm.com/episode/6466cdd7833c737800c20ed7) 88 | - 新旧大战,总是推荐的,推荐指数:⭐️⭐️⭐️⭐️⭐️ 89 | + 夜航西飞 90 | - [Vol.035 致敬重生:15 年后和邱岳聊他亲历的汶川地震](https://www.xiaoyuzhoufm.com/episode/64621d1594d78eb3f70e0cb0) 91 | - 作为当时的亲历者,我的推荐指数:⭐️⭐️⭐️⭐️⭐️ 92 | - [Vol.036 对话胡时伟:ChatGPT,不是未来](https://www.xiaoyuzhoufm.com/episode/646b67736752b5f9ded1d8f9) 93 | 94 | ### 技术探讨 95 | 96 | + [与木木对谈 | Vol.01 如何通过养成习惯改变我们的人生](https://www.xiaoyuzhoufm.com/episode/648d0a85e16019bcbce6e3f8) 97 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 98 | + [开源雨林 | EP10: 张鑫 从 Google 、创业再到字节跳动,我在开源领域的实践与思考](https://www.xiaoyuzhoufm.com/episode/6465eb1d16726282406259f3) 99 | + [快乐三十分 | 111 Morning Brew 背后的思维方式](https://www.xiaoyuzhoufm.com/episode/6467464f3e81cbca15e29aa9) 100 | + 浪人 Mavericks 101 | - [高中全奖新加坡留学,本科阿里达摩院整活](https://www.xiaoyuzhoufm.com/episode/648cd065bdca3212b100ffad) 102 | - 任致澄,UCLA 计算机系硕士,现在担任无人驾驶公司 Aurora 担任工程师。 103 | - [剑桥烛光下的晚餐](https://www.xiaoyuzhoufm.com/episode/5ecb3276418a84a0466ca7d7) 104 | - 廖品真,Morgan Stanley 软件工程师,剑桥大学计算机硕士。 105 | 106 | 107 | ## 思考 108 | 109 | + 保持好奇心。 110 | + 凡是过往,皆是序章。 111 | + 少即是多。 112 | + 你唯一应该做的事,是你自己想做的事。 113 | + 前方的道路并不拥挤,因为坚持的人并不多。 114 | 115 | ## 了解我 116 | 117 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 118 | 119 | - 博客:https://maiyang.me/ 120 | - GitHub:https://github.com/yangwenmai/ 121 | - Telegram Group :https://t.me/learning_growth 122 | 123 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 124 | >怀着好奇心多阅读。 125 | 126 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 127 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊032.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 032 期。 6 | 7 | 最近暑假到了,上映了不少电影,其中动漫《长安三万里》也是备受关注,在播客圈有点像前段时间的 AIGC 一般。 8 | 9 | ## 覆盖周期 10 | 11 | 2023-07-10 ~ 2023-07-23 12 | 13 | ## 书籍 14 | 15 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 16 | 17 | ## 播客 18 | 19 | 最近,我新订阅了「代码之外 Beyond Code」、「野史下酒 | 有趣的历史故事」、「ULSUM RADIO」、「开始连接 LinkStart」。 20 | 21 | 以下是我对我听过的播客做的汇总整理,希望可以跟大家一起听、一起聊,如果你有其他推荐,欢迎你给我提出。 22 | 23 | >最近 30 天收听时长:37 小时 3 分钟,总收听时长 1285 小时 48 分钟。 24 | 25 | 跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 10922 小时 45 分钟(很好奇怎么做到的!!!),有 695 个关注,498 个粉丝,订阅了 354 个播客。 26 | 27 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、**硅谷轻松谈**、Go 夜聊、韩叙的朋友们(原运营狗工作日记)、冰镇电波(量贩冰糖)等。 28 | 29 | + 声动早咖啡 30 | - 每周一、三、五工作日早上 31 | 32 | ---- 33 | 34 | ### 《长安三万里》 35 | 36 | + 菠萝油子 | 成年人听的动漫播客 37 | - [《长安三万里》 | 你随手翻开课本的一页,皆是他们波澜壮阔的一生!feat.张志浩](https://www.xiaoyuzhoufm.com/episode/64aea93fd8a7da5610da1f25) 38 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️,这一期讲的非常好,我们的高中有这样的老师那该是多好啊。 39 | + 野史下酒 40 | - [《长安三万里》背后的历史更精彩](https://www.xiaoyuzhoufm.com/episode/64af8aeefcfe2c92feb7af0d) 41 | + 咸柠七 42 | - [vol.151 | 《长安三万里》招谁惹谁了啊?!](https://www.xiaoyuzhoufm.com/episode/64b7b51a68503a7cd8865787) 43 | 44 | ### 投融资、商业 45 | 46 | + 硅谷 101 47 | - [E116 | 美国教育第一大案:哈佛败诉,但亚裔并不是大赢家](https://www.xiaoyuzhoufm.com/episode/64b5e4917cd11d9ee63d22d3) 48 | - 教育在哪里都是不公平,想要公平并没有那么容易。 49 | + What's Next 科技早知道 50 | - [S7E19 | 一亿人支持 Meta 新产品「像素级拷贝」Twitter,只因马斯克太招骂?](https://www.xiaoyuzhoufm.com/episode/64ae2ccef34c66e34c2edf18) 51 | + 创业内幕 52 | - [S5 Vol.16 Moka 李国兴:AI 大模型时代,SaaS 的热潮与暗涌](https://www.xiaoyuzhoufm.com/episode/649dff23a2999d4c92651caf) 53 | + OnBoard!,推荐指数:⭐️⭐️⭐️⭐️⭐️ 54 | - [ep 33.对话 AfterShip 创始人 Teddy:十年打造服务全球的电商 SaaS,在模糊的正确中迭代产品、市场与组织](https://www.xiaoyuzhoufm.com/episode/6476f96a6752b5f9de9ad189) 55 | 56 | ### 创业 57 | 58 | + 冰镇电波 59 | - [EP 33.一个糟糕内容创业公司老板的内部复盘](https://www.xiaoyuzhoufm.com/episode/64a992e7b21ecc647dafc1ac) 60 | + 三五环 61 | - [No.118 对谈少楠&light:从 flomo 启程,坚信「剩者为王」](https://www.xiaoyuzhoufm.com/episode/64a535dbf4ccb12e0b1e2d16) 62 | + 硬地骇客 63 | - [EP19 “白嫖”SaaS 工具,零成本起步开发一款产品](https://www.xiaoyuzhoufm.com/episode/64b525835680f4d4a801f7f6) 64 | 65 | ### 不一样的理解 66 | 67 | + [硬核说 | 专访《封神》导演乌尔善:关于封神你想知道的都在这儿](https://www.xiaoyuzhoufm.com/episode/64b7ff2f40368fc4b8b496d8) 68 | + [泰能聊了 | EP03 | 17 岁出柜 19 岁斯坦福辍学 聊聊 ChatGPT 之父山姆·奥特曼](https://www.xiaoyuzhoufm.com/episode/64a4e08163a61044f444c237) 69 | 70 | ### 技术探讨 71 | 72 | + 捕蛇者说 73 | - [Ep 41. 和 Penguin 聊聊 CPython 优化和大厂编译器组的工作](https://www.xiaoyuzhoufm.com/episode/64b638b9d3dbd03eb4b39c8a) 74 | + 代码之外 Beyond Code 75 | - [第 0 集 | 离开微软、人生在于体验?阅读的意义、主动和被动的人生、GeekPlux 看 Randy 代码长大?](https://www.xiaoyuzhoufm.com/episode/646af4a66752b5f9dec561c6) 76 | - [第 1 集 | 有片头曲啦!更快晋级的技巧、GeekPlux 的奇怪癖好、AI 孙燕姿、我们用的 AI 工具、旅行的意义](https://www.xiaoyuzhoufm.com/episode/64700ae653a5e5ea1418a761) 77 | - [第 2 集 | 尤雨溪现场飙歌!新加坡的新生活、如何做决策、成功靠运气吗?如何面对黑粉](https://www.xiaoyuzhoufm.com/episode/6475d2ec53a5e5ea147934aa) 78 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 79 | - [第 3 集 | 英语学习经验、泰国禅修体验](https://www.xiaoyuzhoufm.com/episode/64a55a52f4ccb12e0b211246) 80 | + [土汪遛弯儿 | Vol.7 北美文化冲击,侧看码农人生 | 与 GeekPlux 聊初到美国](https://www.xiaoyuzhoufm.com/episode/64a37e29233bfbafdf99e6d1) 81 | 82 | 83 | ## 思考 84 | 85 | + 保持好奇心。 86 | + 凡是过往,皆是序章。 87 | + 少即是多。 88 | + 你唯一应该做的事,是你自己想做的事。 89 | + 前方的道路并不拥挤,因为坚持的人并不多。 90 | 91 | ## 了解我 92 | 93 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 94 | 95 | - 博客:https://maiyang.me/ 96 | - GitHub:https://github.com/yangwenmai/ 97 | - Telegram Group :https://t.me/learning_growth 98 | 99 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 100 | >怀着好奇心多阅读。 101 | 102 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 103 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊033.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 033 期。 6 | 7 | ## 覆盖周期 8 | 9 | 2023-07-24 ~ 2023-09-02 10 | 11 | ## 书籍 12 | 13 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 14 | 15 | [21 天读书打卡](https://talkgo.dev/docs/daily/notes/) 16 | 17 | ## 播客 18 | 19 | 最近,我新订阅了「PLAN F」、「红杉博客 | 创业者背后的创业者」。 20 | 21 | 以下是我对我听过的播客做的汇总整理,希望可以跟大家一起听、一起聊,如果你有其他推荐,欢迎你给我提出。 22 | 23 | >最近 30 天收听时长:32 小时 26 分钟,总收听时长 1331 小时 41 分钟。 24 | 25 | 2023.07.23:~~跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 10922 小时 45 分钟(很好奇怎么做到的!!!),有 695 个关注,498 个粉丝,订阅了 354 个播客。~~ 26 | 27 | 2023.09.02:跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 11320 小时 3 分钟(很好奇怎么做到的!!!),有 702 个关注,508 个粉丝,订阅了 353 个播客。 28 | 29 | (收听时长:11320-10922=398小时,平均每天听 10 个小时 😱😱😱) 30 | 31 | 每期必听的节目:声动早咖啡、What's next 科技早知道、乱翻书、声东击西、夜航西飞、**硅谷轻松谈**、Go 夜聊、韩叙的朋友们(原运营狗工作日记)、冰镇电波(量贩冰糖)等。 32 | 33 | + 声动早咖啡 34 | - 每周一、三、五工作日早上 35 | 36 | ---- 37 | 38 | ### 「摘星阁」创始人侃侃 39 | 40 | - [01 第一期就来重磅嘉宾 | 网红公司创始人的成长路径、公益事业和自由自在](https://www.xiaoyuzhoufm.com/episode/625c0514493ea2f504a55ace) 41 | - [对话摘星阁 CEO:不再没办法努力的事情上太努力](https://www.xiaoyuzhoufm.com/episode/643595b566e4c00c6ad7d1cb) 42 | - [S2E6 对话「摘星阁」创始人侃侃 | 谁在制造“网红”?](https://www.xiaoyuzhoufm.com/episode/633cebb665c6738444387e7d) 43 | - [乱翻书 | 129. 博主和 MCN 如何做好小红书?跟明仔和摘星阁侃侃聊聊](https://www.xiaoyuzhoufm.com/episode/64d7537380c9ec4c5f0f9b57) 44 | 45 | ### 投融资、商业 46 | 47 | + 乱翻书,推荐指数:⭐️⭐️⭐️⭐️⭐️ 48 | - [127.淘天取消 P 序列,聊聊阿里和美团的职级改革](https://www.xiaoyuzhoufm.com/episode/64bbcf0c5680f4d4a8709638) 49 | - [130.对话钉钉总裁叶军:钉钉做个人版,可以理解成微信做企微吗?](https://www.xiaoyuzhoufm.com/episode/64db6e0580c9ec4c5f5749db) 50 | - [131.矫枉必须过正?闲话阿里变革](https://www.xiaoyuzhoufm.com/episode/64e1b56be490c5dee5f00fc2) 51 | - [132.复盘美拍:如何应对快手抖音崛起?做对的与做错的](https://www.xiaoyuzhoufm.com/episode/64e43e3480c9ec4c5ff1636d) 52 | + What's Next 科技早知道 53 | - [S7E20 | xAI vs OpenAI 背后,解开马斯克和 Altman 竞逐硅谷「顶流」的隐秘战争](https://www.xiaoyuzhoufm.com/episode/64b6842a316872a7a5cdda1f) 54 | - [S7E10 | 欧盟芯片法案落地,中国芯片拒绝焦虑](https://www.xiaoyuzhoufm.com/episode/645b79cdbd310724f3098aa1) 55 | - [超级独角兽 Databricks 联合创始人:从对决 Snowflake,到人类如何与 AI 共存](https://www.xiaoyuzhoufm.com/episode/64c074c9beff825328876f00) 56 | + 温柔一刀 57 | - [Vol.54 不要被他人的焦虑所吸引,从容才是我们最大的优势 | 对谈美吉](https://www.xiaoyuzhoufm.com/episode/645c8192306513184caa1c47) 58 | - [Vol.59 28岁时成为蒙牛品牌总监,本质上还是更大的螺丝钉?|对谈简爱联创刘睿之](https://www.xiaoyuzhoufm.com/episode/64a4361fec448b75fdc84ef6) 59 | - 58:06 57:20 遵从内心选择,慎重思考选择,但不要让这种顺从变成你服从内心选择的一种障碍,想的特别多,方方面面都想到了发现全是短板,有时候如果你相信,就是纵身一跃的事情。如果你看到机会,符合你的激情,就先选择尝试进入这个领域再说。 60 | + 牛油果烤面包 61 | - [#68 美国餐饮业主聊疫情 -- 挑战、送餐平台与新机遇](https://www.xiaoyuzhoufm.com/episode/60249639fd5b8c4381c4e5e8) 62 | + 创业内幕 63 | - [S5 Vol.23 Datastrato 堵俊平:AI 时代,10 个人的创业团队更有价值](https://www.xiaoyuzhoufm.com/episode/64de991bcebf4032ac247cdb) 64 | - [S5 vol.24 暑期特辑:追光十年,走到《长安三万里》](https://www.xiaoyuzhoufm.com/episode/64e7d5c155a09a326e5e303c) 65 | + 疯投圈 66 | - [80. 咖啡战争 2023](https://www.xiaoyuzhoufm.com/episode/64cfeaaee70b5a13106fe9fe) 67 | + OnBoard!,推荐指数:⭐️⭐️⭐️⭐️⭐️ 68 | - [ep 35.ICML 现场对话 AI 研究员符尧:亲历 AI 诸神之战,解读 LLM 前沿研究,LLAMA2,AI Agents](https://www.xiaoyuzhoufm.com/episode/64d0c50ae490c5dee5ca5721) 69 | - [ep 32.对话微软大模型专家:GPT 能否带领我们通向 AGI](https://www.xiaoyuzhoufm.com/episode/646673036752b5f9de7e0beb) 70 | - [ep 36.对话 Deepmind,英伟达大语言模型专家(上):AI Agent 智能体与开源 LLM 的应用、挑战与未来](https://www.xiaoyuzhoufm.com/episode/64dcf11de490c5dee5a3d3eb) 71 | - [ep 37.对话 Deepmind,英伟达大语言模型专家(下):多模态大模型解读,亲历 OpenAI,AI 的挑战与未来](https://www.xiaoyuzhoufm.com/episode/64de44303fa4090b748c2303) 72 | + 出海相对论 73 | - [#9 你的下一代 Notion,何必是 Notion?对话 AFFiNE 联创魏伊培](https://www.xiaoyuzhoufm.com/episode/64d4a09be490c5dee51060f2) 74 | + 张小珺 75 | - [35. 200 位 GP 赶去中东募资?聊聊沙漠上的白袍、主权基金和金钱王国](https://www.xiaoyuzhoufm.com/episode/64cfbe9cf50b650b28230550) 76 | 77 | ### 创业 78 | 79 | + Late Talk 80 | - [39:从美团收购光年之外,聊聊科技公司收并购的操作与故事](https://www.xiaoyuzhoufm.com/episode/64ac929e4367d869a6b86e2f) 81 | + MacTalk 夜航西飞 82 | - [Vol.39 年薪百万 or 短视频创业?聊聊成长型思维、职业发展、大厂红利](https://www.xiaoyuzhoufm.com/episode/64cb1ceab3f6c440a8c352cd) 83 | + DEVMORE 84 | - [技术科普 | 从 Greptime 聊时序数据库](https://www.xiaoyuzhoufm.com/episode/64dc9def6ee60f8a01e1c0ad) 85 | + 老范聊创业 86 | - [不再有输赢,所谓焦虑只是时代的病症|对话高利明](https://www.xiaoyuzhoufm.com/episode/64d10b04e490c5dee5d091a9) 87 | - [对话知识星球老板吴鲁加:到底谁能在知识星球赚到钱?](https://www.xiaoyuzhoufm.com/episode/64db92b83fa4090b74567c6d) 88 | - [暑期档破了 N 多记录,情绪消费赢了一切 | 对话路伟](https://www.xiaoyuzhoufm.com/episode/64eca6d33fa4090b747e9e16) 89 | + 硬地骇客 90 | - [EP25 对话独立开发者道哥,分享极简时钟的成功之道](https://www.xiaoyuzhoufm.com/episode/64ec9ea980c9ec4c5f81c07a) 91 | 92 | ### 不一样的理解 93 | 94 | + 韩叙的朋友们 95 | - [聊聊职场、中年危机、创业,站在 40 岁大厂离职员工的视角·对谈姜 Dora](https://www.xiaoyuzhoufm.com/episode/64b96988d0844ea8121f3b46) 96 | - 推荐指数:⭐️⭐️⭐️⭐️⭐️ 97 | + 与木木对谈 98 | - [Vol.01 如何通过养成习惯改变我们的人生](https://www.xiaoyuzhoufm.com/episode/648d0a85e16019bcbce6e3f8) 99 | + LINK START 开始连接 100 | - [Vol.13 个体奋斗无效?聊聊大厂与创业公司该怎么选?](https://www.xiaoyuzhoufm.com/episode/64dcbe8e3fa4090b746c7c9e) 101 | + 下次再说 102 | - [EP14 | 健身六年,爱上 CrossFit](https://www.xiaoyuzhoufm.com/episode/64bcfd1132fb5cf4c9af5e3e) 103 | + MacTalk 夜航西飞 104 | - [Vol.40 老池对话邱岳:职业规划不就是安慰剂嘛](https://www.xiaoyuzhoufm.com/episode/64e5e267e490c5dee540c3c1) 105 | 106 | ### 技术探讨 107 | 108 | + 代码之外 Beyond Code 109 | - [第 4 集 | 「捕蛇者说」的起源、做公益、如何保存数字遗产、遇到过的名人,清华和二本](https://www.xiaoyuzhoufm.com/episode/64bcf0995680f4d4a87e26d0) 110 | - [第 5 集 | 郭宇谈财富、投资起源于地铁站门口开户、工作太累开始变成「酒店玩家」](https://www.xiaoyuzhoufm.com/episode/64d9e9fd80c9ec4c5f394813) 111 | - [第 6 集 | 勾股如何看待 Weex 被指 KPI 项目、转管理的经验、向上管理的技巧、如何建立个人品牌、双十一的经历](https://www.xiaoyuzhoufm.com/episode/64e2f4db3fa4090b74d2839f) 112 | + 质量三人行 113 | - [没有 QA 行不行?](https://www.xiaoyuzhoufm.com/episode/6062fdb233c1e7e5179d6bf8) 114 | 115 | ## 思考 116 | 117 | + 保持好奇心。 118 | + 凡是过往,皆是序章。 119 | + 少即是多。 120 | + 你唯一应该做的事,是你自己想做的事。 121 | + 前方的道路并不拥挤,因为坚持的人并不多。 122 | 123 | ## 了解我 124 | 125 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 126 | 127 | - 博客:https://maiyang.me/ 128 | - GitHub:https://github.com/yangwenmai/ 129 | - Telegram Group :https://t.me/learning_growth 130 | 131 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 132 | >怀着好奇心多阅读。 133 | 134 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 135 | -------------------------------------------------------------------------------- /99.weekly/「一叶知秋」 周刊034.md: -------------------------------------------------------------------------------- 1 | # 「一叶知秋」 周刊 2 | 3 | 哈喽,大家好,我是秋 S。 4 | 5 | 这是「一叶知秋」周刊的第 034 期。 6 | 7 | ## 覆盖周期 8 | 9 | 2023-09-02 ~ 2023-09-24 10 | 11 | ## 书籍 12 | 13 | 我平常都是使用微信读书以及「阅读记录」App 来记录自己的阅读时长,如果你也想跟我一起打卡的话可以直接联系我(WeChat: `mai_yang`,请备注:「一叶知秋」)。 14 | 15 | [21 天读书打卡](https://talkgo.dev/docs/daily/notes/) 16 | 17 | ## 播客 18 | 19 | 最近,我新订阅了「啸飞吟声」、**「半拿铁 | 商业沉浮录」**。 20 | 21 | 以下是我对我听过的播客做的汇总整理,希望可以跟大家一起听、一起聊,如果你有其他推荐,欢迎你推荐给我。 22 | 23 | >最近 30 天收听时长:31 小时 33 分钟,总收听时长 1353 小时 15 分钟。 24 | 25 | 2023.07.23:~~跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 10922 小时 45 分钟(很好奇怎么做到的!!!),有 695 个关注,498 个粉丝,订阅了 354 个播客。~~ 26 | 27 | 2023.09.02:跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 11320 小时 3 分钟(很好奇怎么做到的!!!),有 702 个关注,508 个粉丝,订阅了 353 个播客。 28 | 29 | - (收听时长:11320-10922=398小时,平均每天听 10 个小时 😱😱😱) 30 | 31 | 2023.09.24:跟大家分享一个我的观察:在小宇宙上有一个「晨萱|语迟者说」用户,同时也是《语迟者说》、《晨鲜声》主播,他的总收听时长 11564 小时 20 分钟(很好奇怎么做到的!!!),有 718 个关注,521 个粉丝,订阅了 357 个播客。 32 | 33 | - 最近 22 天,收听时长:11564-11320=244 小时,平均每天听 11 个小时 😱😱😱) 34 | 35 | 来来回回,收听这么多的节目,过一个月之后再去看收听记录时,我对他们已然感到陌生,不知道聊什么内容了,这些内容即便是再精彩和对我有帮助,我相信如果我没有在当时记录下来,这些内容也是对我帮助不多的,所以在今后的内容上,我可能会放弃掉。 36 | 37 | - 不过,我也会在今后更注重我收听的实时反馈,留言、收藏等。 38 | 39 | ---- 40 | 41 | ### 收听概述 42 | 43 | 每期必听的节目:声动早咖啡、~~What's next 科技早知道~~、乱翻书、~~声东击西~~、夜航西飞、**硅谷轻松谈**、Go 夜聊、韩叙的朋友们(原运营狗工作日记)、~~冰镇电波(量贩冰糖)~~等。 44 | >划横线的节目可能已经不会每期必听了。 45 | 46 | + 声动早咖啡 47 | - 每周一、三、五工作日早上 48 | 49 | + 老范聊创业 50 | - [对谈六神磊磊|我根本不是互联网嘴替,我是绝对少数!](https://www.xiaoyuzhoufm.com/episode/64ff1dea6884ccbb19a50629) 51 | - 六神磊磊的一些书籍:《你我皆凡人 - 从金庸武侠里读出的现实江湖》 52 | - 来自于米糕_: 53 | ``` 54 | 虽算不上什么金庸迷,但这期听完有种说不上来的感动和感概。为金先生能一直“有所坚持”和六神磊磊的一句句“范兄”所感动。为那句“现在更多把自己代入配角”而感概… 读金庸,看江湖,见自己 55 | ``` 56 | - [逃离外企的北大人,逆势搞了年消 10 亿的新品牌|对谈 BOP 创始人刘滨](https://www.xiaoyuzhoufm.com/episode/64f5e8b8e490c5dee5553010) 57 | - 推荐图书:《卓有成效的管理者》,导读+多次反复阅读。 58 | - 来自于优嘉: 59 | ``` 60 | 老范聊创业:bop创始人 61 | 62 | 1.关于复盘 63 | 64 | 第一,不仅要反思过去这件事做了以后,有那些是做对的,那些是做错的,更重要的是去思考未来,还有哪些正确的事情还没有做! 65 | 66 | 不要在旧地图上找答案,而是去挖掘新地图! 67 | 68 | 找出对的事情,然后才是高效的做事。 69 | 70 | 不要在错误的方向上努力。 71 | 72 | 第二,不要只看到表象,要去思考本质的东西。他举了一个例子,让我觉得很受启发。他说。你有没有去回答一些真问题? 73 | 74 | 顾客是谁,顾客的需求是什么,顾客选择产品的点是什么? 75 | 76 | 2.关于好的领导 77 | 78 | 对事严苛,对人温暖。 79 | 80 | 我要改一下对事严苛的这个点!标准不能松!最近放松了! 81 | 82 | 3.关于品牌势能 83 | 84 | 什么是品牌势能? 85 | 86 | 品牌是不会受到渠道扼住喉咙的,在用户心中是有辨识度的。 87 | 88 | 4.关于读书 89 | 90 | 经典书读10遍! 91 | 92 | 这点是我做的不足的地方。我总是求多,却没有深度的去阅读! 93 | 94 | 5.关于勇气 95 | 96 | 在能力差不多的情况下,勇气变得更为重要。 97 | 98 | 你有没有勇气去做一些更难,更有挑战的事情,这个很重要! 99 | ``` 100 | 101 | + 组织进化论 102 | - [E63 | 真正伟大的企业,应该努力减少消耗员工能量的事情](https://www.xiaoyuzhoufm.com/episode/64b6c65332fb5cf4c950575d) 103 | - [E64 | 当没有意义感的时候,我们该靠什么驱动工作?](https://www.xiaoyuzhoufm.com/episode/64b6c65332fb5cf4c950575d) 104 | - Wayne 的经历,给我们的启发是: 105 | - 意义感不是工作的唯一驱动力,在没有找到工作意义之前,靠成就感、靠好奇心、靠钱等动力,也可以取得好成绩。 106 | - 但这些都不如意义感,因为【意义感是一种深度能量】。一个人如果能在壮年时期,找到值得一辈子为之奋斗的事情,是非常幸运的。 107 | 108 | + 乱翻书 109 | - [135. 李光耀和他塑造的新加坡:空调国度的实用主义](https://www.xiaoyuzhoufm.com/episode/6506a455bbe351e61625a5e5) 110 | - 值得再听一遍,我现在已经想不起太多内容,但是依然有想再听一次的冲动。 111 | 112 | + 半拿铁 113 | - [No.68 互联网泡沫:蒸发掉 75% 市值的狂欢](https://www.xiaoyuzhoufm.com/episode/6500662d1bc87acb74fac66f) 114 | - 常听常新,必须推荐!虽然有 141 分钟,但是我已经开始准备听第二次了! 115 | 116 | + 硅谷 101 117 | - [E122 | 聊聊《马斯克传》:硅谷大佬们的恩怨情仇与内心世界](https://www.xiaoyuzhoufm.com/episode/65024edcfad5df12baa5dbef) 118 | - 如果你还没有了解过马斯克,推荐收听,如果你看过书,也了解过马斯克,但是你没有听过,推荐收听,如果你听过,那我推荐你再听一次。 119 | - 与此同时,也推荐 lex fridman 采访马斯克的那一期播客。(我记得没错,应该是 2 小时 30+ 分钟。) 120 | 121 | ## 思考 122 | 123 | + 保持好奇心。 124 | + 凡是过往,皆是序章。 125 | + 少即是多。 126 | + 你唯一应该做的事,是你自己想做的事。 127 | + 前方的道路并不拥挤,因为坚持的人并不多。 128 | 129 | ## 了解我 130 | 131 | 如果你对我的内容比较感兴趣,想要与我联系,可以通过以下方式。 132 | 133 | - 博客:https://maiyang.me/ 134 | - GitHub:https://github.com/yangwenmai/ 135 | - Telegram Group :https://t.me/learning_growth 136 | 137 | 最后,我再来推荐一下由我主理的知识星球 **「Go 夜读」、「阅读之美」**。 138 | >怀着好奇心多阅读。 139 | 140 | 要想成为出色的人,只有聪明是不够的,一定要时刻保持强烈好奇心,跟着我一起探索这浩瀚的世界吧。 141 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 如何参与贡献? 3 | --- 4 | 5 | >欢迎大家参与讨论,更欢迎大家多多的回馈社区,来开始共享吧! 6 | 7 | ## 贡献流程 8 | 9 | ### 第一步:Fork [https://github.com/yangwenmai/learning-growth](https://github.com/yangwenmai/learning-growth) 项目 10 | 11 | 1. 访问 [https://github.com/yangwenmai/learning-growth](https://github.com/yangwenmai/learning-growth); 12 | 2. 点击 Fork 按钮(顶部右侧),建立基于此的分支; 13 | 14 | ### 第二步:克隆分支到你本地 15 | 16 | ```sh 17 | # Define a local working directory: 18 | $ working_dir=/.../src/github.com/developer-learning 19 | $ user={your github profile name} 20 | $ mkdir -p $working_dir 21 | $ cd $working_dir 22 | $ git clone https://github.com/$user/learning-growth.git 23 | $ cd $working_dir/learning-growth 24 | $ git remote -v 25 | origin https://github.com/$user/learning-growth.git (fetch) 26 | origin https://github.com/$user/learning-growth.git (push) 27 | 28 | $ git remote add upstream https://github.com/yangwenmai/learning-growth.git 29 | $ git remote -v 30 | origin https://github.com/$user/learning-growth.git (fetch) 31 | origin https://github.com/$user/learning-growth.git (push) 32 | upstream https://github.com/yangwenmai/learning-growth.git (fetch) 33 | upstream https://github.com/yangwenmai/learning-growth.git (push) 34 | 35 | # Never push to upstream master since you do not have write access. 36 | $ git remote set-url --push upstream no_push 37 | $ git remote -v 38 | origin https://github.com/$user/learning-growth.git (fetch) 39 | origin https://github.com/$user/learning-growth.git (push) 40 | upstream https://github.com/yangwenmai/learning-growth.git (fetch) 41 | upstream no_push (push) 42 | ``` 43 | 44 | ### 第三步:分支 45 | 46 | 让你本地 master 分支保持最新: 47 | 48 | ```sh 49 | $ cd $working_dir/learning-growth 50 | $ git fetch upstream 51 | $ git checkout master 52 | $ git rebase upstream/master 53 | ``` 54 | 55 | 从 master 开分支: 56 | 57 | ```sh 58 | $ git checkout -b myfeature 59 | ``` 60 | 61 | ### 第四步:开发 62 | 63 | #### 编辑代码 64 | 65 | 你现在能在 `myfeature` 分支上编辑代码/文档了。 66 | 67 | 请按照以下一些格式编写: 68 | 69 | 文件命名:`2018-08-03-contributing.md`; 70 | 文件的图片:放到 `static/images` 下; 71 | 文件内容:需要明确标题、日期等基本信息; 72 | 73 | ### 第五步:保持分支同步 74 | 75 | ```sh 76 | # While on your myfeature branch. 77 | $ git fetch upstream 78 | $ git rebase upstream/master 79 | ``` 80 | 81 | ### 第六步:提交 82 | 83 | 提交你的修改: 84 | 85 | ```sh 86 | $ git commit 87 | ``` 88 | 89 | ### 第七步:推送 90 | 91 | 准备好审核: 92 | 93 | ```sh 94 | git push -f origin myfeature 95 | ``` 96 | 97 | ### 第八步:创建一个 pull request 98 | 99 | 1. 访问你 fork 的 [https://github.com/$user/learning-growth](https://github.com/$user/learning-growth) (替换 $user); 100 | 2. 点击 myfeature 分支旁边的 Compare & pull request 按钮; 101 | 102 | ### 第九步:获取代码审核 103 | 104 | 一旦你的 Pull Request 被打开,它将被分配给审核者。 105 | 这些审核人员将进行彻底的代码审查,寻找正确性,错误,改进机会,文档和评论以及样式。 106 | 107 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 yangwenmai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 学习成长 2 | 3 | [![Github Stars](https://img.shields.io/github/stars/yangwenmai/learning-growth.svg)](http://github.com/yangwenmai/learning-growth) [![GitHub issues opened](https://img.shields.io/github/issues/yangwenmai/learning-growth.svg)](https://github.com/yangwenmai/learning-growth/issues) [![GitHub issues closed](https://img.shields.io/github/issues-closed-raw/yangwenmai/learning-growth.svg?maxAge=2592000)]() [![license](https://img.shields.io/github/license/yangwenmai/learning-growth.svg?maxAge=2592000)](https://github.com/yangwenmai/learning-growth/LICENSE) 4 | 5 | 学习成长,学习记录/轨迹仓库。 6 | 7 | 开放式学习成长,欢迎各个小伙伴与我一道探讨和交流。 8 | 9 | >本项目中所述内容均为我的个人行为,欢迎大家积极与我讨论,但还请各位手下留情,不要给我带来过大的纷争。 10 | 11 | 👇🏻 我开通的一个 Newsletter 「一叶知秋」,有兴趣的朋友可以扫码订阅。 12 | 13 | ![](https://raw.githubusercontent.com/yangwenmai/learning-growth/master/assets/images/「一叶知秋」集散地-二维码.jpg) 14 | 15 | ## Star History 16 | 17 | [![Star History Chart](https://api.star-history.com/svg?repos=yangwenmai/learning-growth&type=Date)](https://star-history.com/#yangwenmai/learning-growth&Date) 18 | 19 | # 01. 阅读 20 | 21 | 罗列我所看过的书籍、文章、论文。 22 | 23 | >同时我也会通过豆瓣读书(阅读记录 App)来分享我的阅读清单,通过豆瓣以及 “阅读记录 App” 来呈现。 24 | 25 | ### Reading Books(阅读之美) 26 | 27 | 一本书要搞透,必须都要读到(精读)。 28 | 29 | 特别是数学类的书籍,一定是从基本逻辑往上写的,但是读者不容易理解的。(定理一、定理二、定理三,但是往往我们先想到的是定理三,然后再慢慢倒推定理二、定理一) 30 | 31 | ### Reading Articles 32 | 33 | - Github Reading Issues 34 | - Reading 词云 35 | 36 | 处理流程: 37 | 38 | 我会通过 iOS 捷径功能复制链接,通过 IFTTT + Instapaper 同步到 GitHub Issues,浏览器则通过 Chrome Instapaper 插件将看过的文章保存到 Instapaper 然后再同步到 GitHub Issues。 39 | 40 | ### Reading Papers 41 | 42 | https://talkgo.org/c/paper-reading 43 | 44 | # 02. 学习 45 | 46 | 有计划和恒心,坚持的做。学习不应该带着功利心。学习没有捷径可取。学习不应该看重结果。 47 | 48 | 重思想,不求回报,不求收益,只求搞明白。。 49 | 50 | - [英语学习](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-english) 51 | - [博弈论](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-game-theory) 52 | - [Linux](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-linux) 53 | - [QA 相关学习](https://github.com/yangwenmai/learning-growth/tree/master/02.learning/learning-qa) 54 | 55 | # 03. 社交 56 | 57 | - Go 夜读 58 | - 可以记录每周闲聊和探讨的内。 59 | - TGO 60 | - TUG 61 | - PingCAP Infra Meetup 62 | - ArchSummit 63 | - 科创 IT 人 64 | 65 | # 04. 深度探究 66 | 67 | 可能是一些知名开源项目,核心理论知识,探究一些事情的发展历程,深度了解牛人传记。 68 | 69 | 比方说:go image history,rsc,rob pike, risk hudson ,ian lance taylor 等。 70 | 71 | # 05. 闲聊与思考 72 | 73 | 记录一些我跟大佬们的交谈。 74 | 75 | # 06. 放松时刻 76 | 77 | >主要包括我所看过的一些电视、电影,听过的音乐,播客。 78 | 79 | [我看过或听过的影视节目](./06.relaxing/) 80 | 81 | # 07. Profile 82 | 83 | ### [maiyang.me](https://maiyang.me/) 84 | 85 | ### 其他 86 | 87 | Telegram 阅读之美(学习成长) 88 | - [https://t.me/learning_growth](https://t.me/learning_growth) 89 | 90 | # 08. 如何贡献? 91 | 92 | [点这里,我来告诉你](./CONTRIBUTING.md) 93 | -------------------------------------------------------------------------------- /assets/images/Linux性能优化实战精选留言趋势图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/assets/images/Linux性能优化实战精选留言趋势图.png -------------------------------------------------------------------------------- /assets/images/TiDB产品组最佳人气奖投票-cdc-plg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/assets/images/TiDB产品组最佳人气奖投票-cdc-plg.png -------------------------------------------------------------------------------- /assets/images/read_linux_performance_book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/assets/images/read_linux_performance_book.jpg -------------------------------------------------------------------------------- /assets/images/read_more_books_zsxq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/assets/images/read_more_books_zsxq.jpg -------------------------------------------------------------------------------- /assets/images/「一叶知秋」集散地-二维码.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yangwenmai/learning-growth/c8256aba25f94868c47f529d7dda23d406a2032f/assets/images/「一叶知秋」集散地-二维码.jpg --------------------------------------------------------------------------------