百度工程师浅谈分布式日志

作者 | 文库基础架构导读 introduction我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的日志是否重要,以及分布式架构下的日志运维工具应该具备哪些能力,希望感兴趣的读者能从本文获得一些启发,有所帮助。全文8832字,预计阅读时间23分钟。GEEK ...
2024-02-15 阅读全文 →

学习开源项目,推荐看看这几个

入门和深入C/C++开发,通常都会研究一些优质的开源项目。我整理了一些开源项目,一些代码行数不多,但是功能还比较有趣,供大家参考:ctpl:https://github.com/vit-vit/ctpl - 简易的C ++线程池,代码行数约为500左右。cereal: https://github.com/USCiLab/cereal - 快速、小巧、方便的...
2024-02-15 阅读全文 →

在2023年还建议走C++这个方向吗?

虽然现在有很多新语言和框架出现,但C++作为一门老牌编程语言,在很多领域仍然有它不可替代的优势。判断一门编程语言的趋势,它存在的时间是一个重要的参考因素。如果一个编程语言已经存在了很长时间,并且在很多领域仍然有着广泛的应用,那么它很可能会在未来继续保持其地位。C++作为一门诞生于上世纪80年代的编程语言,已经存在了很长时间,而且在很多领域仍然有着广泛的应用。...
2024-02-15 阅读全文 →

每日一题:什么是RAII,它有什么使用场景?

最近在知识星球上线了每日一题栏目,每天提出一个计算机问题,球友们讨论,并在第二天给出答案。小伙伴们的回复还算积极。这是其中一个问题,这里分享下:什么是RAII?RAII(Resource Acquisition Is Initialization)即资源获取即初始化,中文翻译意义不大… RAII在C++中非常重要。RAII的基本思想是使用类的构造函数来获取资...
2024-02-15 阅读全文 →

《C++20高级编程》出版了,送书

熟悉我的朋友大概知道我最近翻译了一本介绍C++20特性的“小红书”《C++20高级编程》(第五版)C++标准委员会Marc Gregoire著这个版本满足了我对C++绝大多数的幻想。通过Modules淘汰了C++之前编写大程序的陈旧方式;使用Concepts帮助创建类型安全的模板和实现灵活的模板特化;使用Ranges彻底改变了处理数据的方式。这些新功能可以使...
2024-02-15 阅读全文 →

C++类设计和实现的十大最佳实践

C++代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C++代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C++代码的健壮度。原文:10 Best practices to design and implement a C++ class1. 尽可能尝试使用新的C++标准到2022年,C++已经走过了40多个年...
2024-02-15 阅读全文 →

C++ 实现高性能内存池项目实现

一、概述在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配?分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内存不足时就退出软件,是明显不合理的。正确的思路应...
2024-02-15 阅读全文 →

操作系统面经

前一段时间面了一些试,这里总结一下关于操作系统的面经,我简历上写了一个操作系统相关的项目,所以面试的问题可能与平常的八股面试题等等有一些差异,更加偏向具体细节和实现。这里就面试遇到的操作系统相关问题以及我自己的想法整理一下,可以参考参考,有什么问题也还请批评指正。这个是实际问到我的问题自己引申出来的问题黑色普通文字是我的“回答”或者与面试官闲聊的内容启动启动...
2024-02-14 阅读全文 →

为何电脑从 C 盘开始? A、B 盘去哪了

科普一个小知识点:电脑硬盘为什么从C盘开始。来源 | 程序IT圈前些天硬盘坏了,幸好不是系统盘,不然那些软件安装配置会把我折腾坏,或许这也是在暗示我该换电脑了。重要的数据部分没有遭到损坏,数据是无价的,还是要勤备份。于是换上了一张新的硬盘:当时脑袋里面就闪过一个问题,为啥 windows 系统不从 A 盘开始分区显示了?其实原因也比较简单,在计算机发展历史的...
2024-02-14 阅读全文 →

互联网最值得加入的173家国企汇总!!

今年的就业形势,实在是严峻。社招都这样,更别说应届生。除过常见的互联网,以及今年热门的新能源。其实如果大家不想卷,家庭条件也还可以,我建议可以考虑一波国企。虽然有一些垃圾国企,但仍然有非常多值得考虑的国企,毕竟优质的国企很稳定,不会像互联网一样担忧年纪大被裁员的情况发生,福利又好,同事间工作不会卷来卷去,享受足额的五险一金等等。我这里汇总了一些计算机专业可以...
2024-02-14 阅读全文 →

多线程开发中,多用消息传递,少用锁

关于多线程,之前我就写过一篇文章:关于多线程,我给出13点建议其中有一条是:如果真的需要共享数据,尽量使用通信方式,而非共享内存方式。看到这条时,可能有读者不是特别理解,关于这一点,我想chromium的多线程任务理念可以给大家启发。原文链接是:https://chromium.googlesource.com/chromium/src/+/main/doc...
2024-02-14 阅读全文 →

每日一题1286:字母组合迭代器

请你设计一个迭代器类,包括以下内容:一个构造函数,输入参数包括:一个 有序且字符唯一 的字符串 characters(该字符串只包含小写英文字母)和一个数字 combinationLength 。函数 next() ,按 字典序 返回长度为combinationLength 的下一个字母组合。函数 hasNext() ,只有存在长度为 combination...
2024-02-14 阅读全文 →

每日一题1239:串联字符串的最大长度

给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串,如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。请返回所有可行解 s 中最长长度。示例1输入:arr = ["un","iq","ue"]输出:4解释:所有可能的串联组合是 "","un","iq","ue","uniq" 和 "ique",最大长度为 4。...
2024-02-14 阅读全文 →

每日一题 1219:黄金矿工

你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:· 每当矿工进入一个单元,就会收集该单元格中的所有黄金。· 矿工每次可以从当前位置向上下左右四个方向走。· 每个单...
2024-02-14 阅读全文 →

每日一题:幂集

幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例输入:nums = [1,2,3]输出:[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]分析从题意可以看出是使用...
2024-02-14 阅读全文 →

每日一题1291:顺次数

我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序)。示例1输出:low = 100, high = 300输出:[123,234]示例2输出:low = 1000, high = 13000输出:[1234,2345,3456,4567,5678,678...
2024-02-14 阅读全文 →

每日一题:无重复字符串的排列组合

题目:无重复字符串的排列组合无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1 输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。分...
2024-02-14 阅读全文 →

每日一题:有重复字符串的排列组合

题目:有重复字符串的排列组合有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1: 输入:S = "qqe" 输出:["eqq","qeq","qqe"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。分析和昨天那道”无重复字符串的排列组合”类似,区别在于这道题的输入字...
2024-02-14 阅读全文 →

每日一题:N皇后问题

N皇后设计一种算法,打印 N 皇后在 N × N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。示例: 输入:4 输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]] 解释: 4 皇后问题存在如下...
2024-02-14 阅读全文 →

每日一题:解数独问题

编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1-9 和字符 '.' 。你可以假设给定的数独只有唯一解...
2024-02-14 阅读全文 →

每日一题:不同路径问题

题目980:不同路径III在二维网格 grid 上,有 4 种类型的方格1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。示例1:输入:[[1,0,0,0],[0,...
2024-02-14 阅读全文 →

每日一题:通配符匹配

题目44:通配符匹配给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。'?' 可以匹配任何单个字符。'*' 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:...
2024-02-14 阅读全文 →

每日一题:正则表达式匹配

题目10:正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和...
2024-02-14 阅读全文 →

每日一题:单词拆分问题

题目140:单词拆分II给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例1:输入:s = "catsanddog"wordDict = ["cat", "cats", "a...
2024-02-14 阅读全文 →

每日一题:优美的排列

题目526:优美的排列假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第 i 位的数字能被 i 整除i 能被第 i 位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?示例1:输入: 2...
2024-02-14 阅读全文 →

每日一题:堆箱子

题目:堆箱子堆箱子。给你一堆n个箱子,箱子宽 wi、深 di、高 hi。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法,搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。输入使用数组[wi, di, hi]表示每个箱子。示例1:输入:box = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]输出...
2024-02-14 阅读全文 →

每日一题:长度为 n 的开心字符串中字典序第 k 小的字符串

题目1415:长度为 n 的开心字符串中字典序第 k 小的字符串一个 「开心字符串」定义为:1. 仅包含小写字母 ['a', 'b', 'c'].2. 对所有在 1 到 s.length - 1 之间的 i ,满足 s[i] != s[i + 1] (字符串的下标从 1 开始)。比方说,字符串 "abc","ac","b" 和 "abcbabcbcb" 都是...
2024-02-14 阅读全文 →

每日一题:正方形数组的数目

题目996:正方形数组的数目给定一个非负整数数组 A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组。返回 A 的正方形排列的数目。两个排列 A1 和 A2 不同的充要条件是存在某个索引 i,使得 A1[i] != A2[i]。示例1:输入:[1,17,8]输出:2解释:[1,8,17] 和 [17,8,1] 都是有效的排列。示例2:输...
2024-02-14 阅读全文 →

每日一题:爬楼梯问题

题目70:爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入:2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入:3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 ...
2024-02-14 阅读全文 →

学过 C++ 的你,不得不知的这 10 条细节!

题图:自在极意功 —— 孙悟空每日一句英语学习,每天进步一点点:“Action may not always bring happiness, but there is no happiness without action.”「行动不见得一定带来快乐,但没有行动就没有快乐。」前言我在阅读 《Effective C++ (第三版本)》 书...
2024-02-14 阅读全文 →