Fire

星星之火

想要快速获取有效的信息,有以下几个重要因素需要考虑

  1. 途径
    1. 多元化途径,尤其一些高效的途径(一般经济成本也比较高)还是要有一些;
    2. 带宽:讨论交流/GPT > 阅读/看视频 > 线下听课 > 实践 > 播客;
    3. 信噪比:研讨会 > GPT > Google/书籍/论文/课程/白皮书 > 博客/公众号/播客;
  2. 语言
    1. 从源头找信息,计算机领域的基本要去找英文资料,学习国学就去看文言文;
    2. 语言是一个从陡到平的成长曲线,一本万利,学习一门新语言就是进入一个新世界,关于如何学习英语看看 GPT 咋说;
  3. 信息整理
    1. 笔记,记录下自己的灵感
    2. 博客,多输出,用自己的话再组织一遍
    3. 知识管理,文献管理工具,博客也是
  4. 时间管理,time boxing,避免迷失在信息海洋里

来自 GPT 的回答

提升获取英文信息的能力可以从以下几个方面入手:

  1. 增强英语基础:
    • 词汇积累:每天学习新单词,使用词汇卡片或应用程序(如Anki)进行记忆。
    • 语法学习:掌握基本语法规则,理解句子结构,帮助更好地理解信息。
  2. 多样化阅读材料:
    • 阅读英文书籍:选择适合自己水平的小说、非小说或专业书籍,逐步提高阅读能力。
    • 关注英文新闻:定期阅读英文新闻网站(如BBC、CNN),了解时事并提高阅读速度。
  3. 听力训练:
    • 听英文播客:选择感兴趣的主题,培养对不同口音和语速的适应能力。
    • 观看英文视频:观看TED演讲、纪录片或电影,增强听力理解能力。
  4. 参与讨论和交流:
    • 加入英语学习小组:与他人一起练习口语,分享信息和观点。
    • 在线论坛和社交媒体:参与英文讨论,提升写作和表达能力。
  5. 使用翻译工具:
    • 利用在线翻译工具:在遇到不懂的单词或句子时,使用翻译工具(如Google Translate)进行理解。
    • 逐步减少依赖:随着能力提升,逐渐减少对翻译工具的依赖,尝试直接理解英文。
  6. 定期练习:
    • 写作练习:定期用英文写作,记录学习心得或日常生活,提升表达能力。
    • 模拟测试:参加英语水平测试(如TOEFL、IELTS)模拟考试,检验自己的理解和应用能力。
  7. 利用学习资源:
    • 在线课程:参加英语学习平台(如Coursera、edX)的课程,系统学习。
    • 学习应用:使用语言学习应用(如Duolingo、Babbel)进行日常练习。
  8. 培养兴趣:
    • 选择感兴趣的主题:阅读和观看自己感兴趣的英文材料,增加学习的动力。
    • 设定学习目标:设定短期和长期目标,保持学习的持续性和动力。

自己可以改进的地方

  1. 多参加专业领域研讨会,2024 年参加一场
  2. 多输出,写笔记,写博客,2024 年再写两篇
  3. 提升英文,文言文能力,每天做一件相关的事情
    1. 多听:B站,播客,电影,TED,
    2. 多读:medium, BBC
    3. 讨论交流:语伴,小组,在线论坛,社交媒体
    4. 定期练习:模拟考试,在 medium 上写作
  4. 用好 AI,AI 可以是一个不错的语伴,也可以帮助优化工作流,以及各种咨询。

这是一篇粗糙的博客,权且当个笔记吧。

简介

本文档介绍了如何在 C++ 项目中生成代码覆盖率报告。我们将使用 lcovgcovr 工具来生成 HTML 格式的覆盖率报告。

示例项目

以下是一个简单的 C++ 项目示例,展示了如何配置和生成代码覆盖率报告。

main.cpp

1
2
3
4
5
6
7
8
cpp
#include <iostream>
int add(int a, int b) { return a + b; }
int main() {
std::cout << "Hello, World!" << std::endl;
std::cout << "2 + 3 = " << add(2, 3) << std::endl;
return 0;
}

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required(VERSION 3.10)  
project(SimpleCppProject)

# 选项:启用代码覆盖率
option(COVERAGE "Enable coverage reporting" ON)

if(COVERAGE)
add_compile_options(--coverage)
link_libraries(--coverage)
endif()

# 添加可执行文件
add_executable(simple_cpp main.cpp)

生成代码覆盖率报告

基本流程

  1. CMake 添加编译选项:在 CMakeLists.txt 中启用代码覆盖率选项。
  2. 编译和运行程序:生成可执行文件并运行,生成 .gcda.gcno 文件。
    • 示例文件路径:./build/CMakeFiles/simple_cpp.dir/main.cpp.gcno
  3. 使用 lcov 生成 HTML 报告
    • 执行命令:lcov --capture --directory . --output-file coverage.info
    • 生成 HTML:genhtml coverage.info --output-directory out

注意

  1. 生成的 .gcda.gcno 文件不在当前路径。
  2. gcov 解析 C++ 文件时会去掉 .cpp 后缀。

使用 llvm-gcov 替代 gcov

在步骤 3 中,可以使用 llvm-gcov 替代 gcov

  • 命令:lcov -c -d . --gcov-tool *llvm-gcov* -o coverage.info

lcov 报告

尝试使用 gcovr

gcovr 是一个 Python 封装的前端工具,比 lcov 更轻量。lcov 报告文件更详细,包含被调用的头文件。

  • 运行 supa project 时遇到错误,原因是使用了错误的 gcov 版本,需要使用 llvm-gcov
  • 命令:gcovr -r .. --html --html-details -o gcovr_report2/coverage.html --gcov-ignore-errors

gcovr 报告

部署指南

目标

  1. 本地能够只运行某(几)个用例,查看相应源码的覆盖率。
  2. 基于 supa 项目构建相同的流程。

操作步骤

  1. 编译时打开覆盖率开关。
  2. 运行目标程序,生成 .gcda.gcno 文件。
  3. 运行脚本 gen_cov_report.sh,生成 HTML 报告。

通过以上步骤,您可以轻松地在 C++ 项目中生成代码覆盖率报告,并进行分析和优化。

1. RAII

代码中常常需要管理资源,可能是内存,可能是锁,或者是某个 handle 等等,下面抽象了 acquire, release 两个接口分别表示获取和释放资源。

1.1. 问题场景

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void *acquire(int size) {
std::cout << __FUNCTION__ << " " << size << std::endl;
return malloc(size);
}

void release(void *ptr) {
free(ptr);
std::cout << __FUNCTION__ << std::endl;
}

void doSomething() {
void *ptr = acquire(100);
// use of ptr
// ...

release(ptr);
}

int main() {
doSomething();
}

会有如下打印

1
2
acquire 100
release

上面是 C 风格实现,这种实现需要程序员保证获取和释放一一对应,所以常常导致资源没释放,或者重复释放的问题。

RAII 意思是在 scope 内申请的资源在退出 scope 的时候自动释放,不用程序员来管理。从而极大地解放了程序员的负担,也从根本上杜绝资源的泄漏和重复释放。

2. 使用 smart ptr

C++ built-in 的 smart ptr 具备 RAII 能力。

2.1. 指定 deleter

这样可以用 unique_ptr 的 RAII 机制,当 doSomething() 结束时,会调用 deleter 函数,也就是 release。

实际上 acquire,release 是对 malloc,free 的封装,如果就用 malloc,free 的话是不需要特别指定的。

1
2
3
4
void doSomething() {
auto ptr =
std::unique_ptr<void, decltype(&release)>(acquire(100), release);
}

但是这种做法有一种情况似乎不好处理,当 acquire 定义如下,就比较麻烦了。

1
void acquire2(void **ptr, int size)

对于上面处理不了的情形,可以用下面的办法,可以用。

1
2
3
4
5
6
void doSomething() {
void *ptr = nullptr;
acquire2(&ptr, 100);
auto gen_ptr =
std::unique_ptr<void, decltype(&release)>(std::move(ptr), release);
}

这种实现不推荐,有以下两个原因

  1. 长得丑;
  2. ptr 还在,很可能被拿来做别的事情,也可能被 double free;

2.2. 使用 make_unique()

对需要管理的资源封装成一个资源管理类,在 constructor, destructor 中进行申请和释放。

make_unique是C++14引入的函数,它提供了一个更简单安全的方式来创建std::unique_ptr。

std::make_unique可以避免手动使用new来创建对象,它将对象创建和内存分配合并到一步,这样可以避免手动delete带来的潜在危险。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class CustomMemoryMan {
public:
CustomMemoryMan(int size) { ptr_ = acquire(size); }
~CustomMemoryMan() { release(ptr_); }

private:
void *ptr_ = nullptr;
};


void doSomething() {
auto mem = std::make_unique<CustomMemoryMan>(100);

// use of gen_ptr
// ...
}

3. Summary

推荐最后的版本,即封装一个资源管理类,再使用 make_unique 来构建。

原理

cmake 官方文档:UNITY_BUILD — CMake 3.16.9 Documentation

原理解释:使用 Unity Build 加速 CMake 编译 - 知乎 (zhihu.com)

cpp 代码由于历史原因只能以文件为单位进行编译,有以下问题

  1. 每个编译单元,都需要独立解析所有包含的头文件:
    a. 如果N个源文件引用到了同一个头文件,则这个头文件需要解析N次(对于 protobuf这类动辄几千上万行的头文件简直就是鬼故事);
    b. 如果头文件中有模板(STL/Boost),则该模板在每个cpp文件中使用时都会做一次实例化,N个源文件中的 std::vector<int>会实例化N次。
  2. 每个源文件独立编译,导致编译优化时只能基于本文件内容进行优化,很难跨编译单元提供代码优化;
  3. 基于问题2,C/C++ 跨编译单元的优化只能交给链接器,而链接阶段是单进程,无法并行加速,导致大项目链接极慢。

From 使用 Unity Build 加速 CMake 编译 - 知乎 (zhihu.com)

unity build 的思路是将多个文件合入到一个 cpp 文件中,最后只编译合并后的 cpp,这样可以很大程度上解决上述问题。将哪些文件合并到一个 cpp 文件中,可以借鉴模块化思路,将一个模块的代码放到一个 cpp 中,如此,一个模块中的公用头文件就只会被编译一次。

综上,对于模板用的多的场景,unity build 非常有效。

做法

上面的知乎分享中给出了手动合并文件的做法,这种做法更精细,不过成本高,要求开发者对代码相当熟悉。其实 cmake 本身也支持 unity build,由 cmake 帮你决定哪些文件合并到一起,并且有一个上限——最多 UNITY_BUILD_BATCH_SIZE 个文件合并到一个文件中。

When this property is set to true, the target source files will be combined into batches for faster compilation. This is done by creating a (set of) unity sources which <span class="pre">#include</span> the original sources, then compiling these unity sources instead of the originals. This is known as a Unity or Jumbo build. The <span class="pre">UNITY_BUILD_BATCH_SIZE</span> property controls the upper limit on how many sources can be combined per unity source file.

From: UNITY_BUILD — CMake 3.16.9 Documentation

在 CMakeLists.txt 中做如下配置

1
2
3
4
5
6
7
8
9

if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.9")

set_target_properties(${TARGET} PROPERTIES UNITY_BUILD ON)

set_target_properties(${TARGET} PROPERTIES UNITY_BUILD_BATCH_SIZE 50)

endif()

效果

优化前

1692151104184

优化后

1692151172333

编译文件数量减少了,383 -> 180,时间也减少了 226s -> 33s,这个 build 中之所以有这么大的好处是因为该实现中大量使用了模板。

Reference

  1. home page: Graphviz
  2. user guide: User Guide — graphviz 0.20.1 documentation
  3. repo: graphviz / graphviz · GitLab
  4. wiki: Graphviz - Wikipedia

Introduction

非常棒的学习对象,学习构建一个自己的工具。不少常见应用(confluence, doxygen, sphinx 等)都通过插件的方式用上它。

  1. 提供 python 接口,可以快速构图
  2. 提供 cmd line,包括 dot 等多个 binary
  3. 提供插件,给 confluence,doxygen 等提供服务
  4. 定义了 dot 语言

Example

  1. 生成 dot 文件 cmake --graphviz=dot_file_prefix .. 每个目标都会生成一个 dot 文件
  2. 将 dot 文件转成图片, dot -Tsvg graph_sublas.dot.gtest_trsv > graph_trsv.svg

1687769988727

dot 语言如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

digraph "gtest_trsv" {
node [
fontsize = "12"
];
"node137" [ label = "gtest_trsv", shape = egg ];
"node1" [ label = "/home/jenkins/workspace/xxx/build/openblas_binary_file/lib/libopenblas.a", shape = septagon ];
"node137" -> "node1" [ style = dotted ] // gtest_trsv -> /home/jenkins/workspace/xxx/build/openblas_binary_file/lib/libopenblas.a
"node3" [ label = "gtest", shape = octagon ];
"node137" -> "node3" [ style = dotted ] // gtest_trsv -> gtest
"node4" [ label = "Threads::Threads", shape = pentagon ];
"node3" -> "node4" // gtest -> Threads::Threads
"node5" [ label = "-pthread", shape = septagon ];
"node4" -> "node5" [ style = dashed ] // Threads::Threads -> -pthread
"node6" [ label = "gtest_main", shape = octagon ];
"node137" -> "node6" [ style = dotted ] // gtest_trsv -> gtest_main
"node4" [ label = "Threads::Threads", shape = pentagon ];
"node6" -> "node4" // gtest_main -> Threads::Threads
"node3" [ label = "gtest", shape = octagon ];
"node6" -> "node3" // gtest_main -> gtest
"node7" [ label = "openblas_static\n(openblas)", shape = octagon ];
"node137" -> "node7" // gtest_trsv -> openblas_static
"node5" [ label = "-pthread", shape = septagon ];
"node7" -> "node5" // openblas_static -> -pthread
"node8" [ label = "driver_level2", shape = hexagon ];
"node7" -> "node8" // openblas_static -> driver_level2
"node9" [ label = "driver_level3", shape = hexagon ];
"node7" -> "node9" // openblas_static -> driver_level3
"node10" [ label = "driver_others", shape = hexagon ];
"node7" -> "node10" // openblas_static -> driver_others
"node11" [ label = "interface", shape = hexagon ];
"node7" -> "node11" // openblas_static -> interface
"node12" [ label = "kernel", shape = hexagon ];
"node7" -> "node12" // openblas_static -> kernel
"node13" [ label = "pthread", shape = septagon ];
"node137" -> "node13" [ style = dotted ] // gtest_trsv -> pthread
"node14" [ label = "xxx", shape = doubleoctagon ];
"node137" -> "node14" [ style = dotted ] // gtest_trsv -> xxx
}


summary

学习 graphviz 来制作一个属于自己的工具。

todo

cmake 是如何集成 graphviz 的,graphviz 是如何让 cmake 集成的。

半年来的一次游泳的随想——AI 不能替我们运动

人的生命短短百年,硅基生命是永久的。人的生命的质量在于其健康程度,而健康可以分为睡眠(休息放松),运动,饮食,工作压力,四个方面。最近总是讨论 “AI 会替代哪些工作?” “哪些工作不会被替代?” 我倒是觉得,有一个问题是非常确定的,那就是 AI 必然越来越强大,“如何不让人的身体成为感受幸福的障碍,或者如何保持人的精神活力?”

个人观点,健康非常重要(当然并不是说失去健康的人就不可能幸福了)。AI 可以给人提供健康的建议,但是真正执行这些建议的还是人自己,比如睡眠,总是熬夜,AI 提醒你了,你控制不住自己,总想多看一会儿电子产品;比如运动,要人自己去动起来,而不是”被动”运动(也可能未来真的会有,但是个人不看好);比如饮食,AI 告诉你清淡饮食,你控制不住自己的食欲。

今天主要讲讲游泳的感受,游了不到一个小时,1.5km,已经半年没有游泳了,这半年运动量相对之前少了很多,体重升到 147 斤,早起不来,早睡做不到,常常脑袋昏昏沉沉,人变得慵懒,拖延症加剧,无法保持一小时以上的专注力……游完泳之后,人的精神状态立马不一样了,更容易结构化地思考。运动也让人更加自信,有这么大的运动负荷我都能顶住,其他事情上遇到困难我不会怕了。

关于拖延症,今天上午本来应该 8 点半就去游泳的,硬是看手机到 11 点才出发,总觉得还有时间,其实做好的时间就是当下。过去的在当前的理论及技术下是无法更改的,不需要为过去有懊恼,而是要建设性地思考当下要怎么做才是最优的。

如何培养运动的习惯,其实更多是心理上的改变,需要把它变成一个正反馈过程,或者换个说法,可以帮助我抵抗对疾病的恐惧。我遇到过一个困境,游泳想了各种办法没有看到进步,于是没有动力继续下去了。这其实是下下策。其实它隐含一个假设是不运动健康水平是保持不变的。其实这个假设不成立,如果以时间为横轴,健康水平为纵轴,画出一条线,没有运动的话,这条线必然是向下走的。至少保持现有的运动习惯。还可以做的就是找伙伴,找老师,他们会给你一些反馈,帮助你成长。还有一点观念调整,因为投入和得到在短时间内不是连续的,更像是离散的,阶跃的,不要让自己停在发生阶跃的前一刻。其实时间拉长了,连续的成长才会显现出来,而且肯定是一个增幅减小的曲线。做长期主义者。

未来 30 年可能会变成什么样?不管什么样,人得是健康的,这是幸福的前提。所以做好这笔长期投资,稳赚不赔,投的越久,收益越大。

概要

最近使用 Macbook 学习英语,有以下一些途径

  1. podcast
  2. dictionary
  3. 文字声音转换
  4. 翻译
  5. youtube

英文学习的一点心得

  1. 是不要把它当成一个学科,它就是个工具,日常使用,变成肌肉记忆,养成英文思维
  2. 学英语时不要用翻译,尽量查字典(不是翻译,用英英字典),你学母语时(第一个语言)时没有翻译可用
  3. 多读,多听,多复述

还需要做一些事情

  1. 评估英语水平的方法
  2. 英语水平认证,比如雅思

Youtube

  1. English Easy Practice - YouTube 很棒的英语学习课程,通过简单的故事和对话,以及互动问答来轻松学习英语
  2. zaharaEnglish - YouTube 中国人分享生活中的英语,以及一些发音,没事看一看也挺好的

Podcast

非常棒的 app,且免费。

  1. Merriam webster 不错的英文字典,它还提供了 word of the day podcast,每天听一个,培养英文思维
  2. Daily Easy English Expression: 简单有趣,每次讲一个地道的英语表达

Dictionary

Macbook 自带的字典,免费。可以添加各种语言的字典,如上所说,去掉英汉字典,我们不是想要翻译,而是字典。

1683433277966

有个缺点是 Dictionary 没有单词发音,目前我用 macbook 自带的 speech 功能来解决的,当然如果是用在线字典一般都是有发音的。

文字声音转换

说的有点拗口,其实就是选中文字 macbook 给你朗读出来,来听一听发音,或者自己说,macbook 给你转成文字。

speech

可以做到选择文本,按快捷键(默认 option + esc,我改成了 option + space),可以发音。

1683433489057

1683433446170

其实不用 speech, Macbook 原本可以右击鼠标(或者两个手指同时按触控板)就有 speaking 功能。

1683433998892

dictation

支持语音输入,转成文字。

1683433555318

1683433606799

翻译

要尽量少用,我觉得它会阻碍自然语言思维模式的养成。直接英文思维肯定是比翻译来得快得多。

读完马斯克的传,大受震撼。他是强者,敢想敢做并且都做成的典范。

埃隆的第一个特点是专注。埃隆很小就读遍各种书籍,这一点让我想到了峻哥。果然都是牛人。其次是埃隆的思维真的别具一格,埃隆是有点自闭的,也正是如此他才别别人更能专注。水哥也说过,其实他做的事也没那么难,只是我们没用心去做而已。然而我们越来越难以专心做事了。

独特的思维模式,第一性原理,埃隆总是基于基本原理来推导来做决策。这一点很了不起,主要在于其从 0 到 1 的能力和勇气。后者更为难得。

强落地,不妥协。埃隆能够将天马行空的想法通过理论工具来具体化,再通过不眠不休的努力快速落地。这个过程他几乎是偏执的,这一点和乔布斯很像。

我不能苟同的是他的工作态度(他的使命感超强),他的理论是如果一件事做成后能赚 X,那在这件事做成之前的时间就是损失。这一点,除了 PUA 我没看到内在逻辑的合理性。他和身边人的关系似乎也不是很融洽,有点”畸形”。比如两度离婚的第二任妻子,以及第一任离婚的妻子,以及左膀右臂的布朗等等。看得出他和他身边的人的关系是不健康的。他的确在肩负使命,能看到他的矢志不渝的决心和努力。可是一个不能和自己,和世界和解的人,我觉得也是不够幸福的。

不管怎样,向埃隆学习,勇敢地去想,去做吧。树立远大目标,多折腾,多体验。

想成为 C++ 大牛,那就去做吧,STL 是最佳实践之一,那就做一个出来,对编译器感兴趣,那就搞一个。

1. 保险一扫盲及初步配置

这篇文章是笔者自己(非保险专业人士)最近配置保险做的调研和实操的结果。主要为了回答以下几个问题:

  • 什么是风险/保险
  • 保险行业怎么样
  • 保险产品是怎样的
  • 如何配置保险,结合一个实例说明

先说结论,

  • 保险很重要!很重要!很重要!
  • 越早越好,最好能 30 岁之前就能配置好。
  • 家庭经济支柱优先配置。
  • 个人配置意见:只需要考虑 4 种极端风险就好。

2. 什么是风险/保险

已经年过而立,愈发觉得自己不再是一人吃饱全家不饿,首先要解决钱的问题,而要解决钱的问题,先考虑还不是挣多少钱,而是花多少钱。简言之,要守住钱袋子,避免一夜回到解放前。

小概率事件很少发生,却几乎决定了事情的发展走向。我们需要讨论的是不好的小概率事件,极端风险,包括【身故】【意外身故】【意外全残】【重疾】。保险要做的事情不是避免风险发生,而是降低或者是消解风险产生的经济后果
当然还有很多其他风险,但是我们重点关心这些影响人生轨迹的风险。后面也仅讨论这 4 个风险。这些风险一旦发生,可能会产生两个经济后果,

  1. 经济收入急剧下跌
  2. 需要高额的治疗费用

保险要做的就是消解这两个风险,对于收入下跌,保险公司一次性赔付,对于高额医疗费用,保险公司来报销。

3. 保险行业如何

在此之前,笔者(以及身边的人)对保险行业都有刻板印象:低文化水平的保险代理人忽悠自己的亲朋好友买各种“用不上”的保险,买卖保险的人都不清楚保险的逻辑以及保险产品的应用场景。

经过一番调研发现我国的保险行业监管是世界上最严的,其监管机构就是银保监会。任何一个获得授权的保险公司,再小其实也都是巨头。且其监管和保障体系相当完善了。其实某种程度上银行都没保险公司可靠,因为银行也需要保险来兜底。保险公司即便倒闭了,人寿保单依然生效,会转给其他保险公司。

4. 保险产品介绍

这里只讨论个人保障型保险,包括重疾险,医疗险,寿险,意外险。一般家庭配置以上保险就可以覆盖我们上面提到的 4 个极端风险。

根据理赔方式不同可以分为赔付型,报销型两类产品。其中(百万)医疗险是报销型,也就是报销看病花的钱。重疾险和寿险都是赔付型,一旦触发直接赔付一定额度的钱(等于保单的保额)。意外险则既包括意外伤残导致的医药费报销和意外身故导致的赔付。

需要特别说明,保险产品条款非常复杂,缺少背景,很容易被这些纷繁的信息绕晕,找不到重点。这也是为啥要找一个靠谱的保险经纪人,让他帮你全局规划。不过即便如此,投保人也应该自己补充相关常识,因为家庭(个人)的状况自己最清楚,保险配置也应该随着家庭(个人)状况的变化而调整,具备了保险的基础知识,才能和经纪人更有效地沟通,合理配置保险。

4.1. 重疾险

达尔文 7 号

这里不是推荐这个产品,强烈建议读者可以点进去看这个重疾险的具体配置,去感受一下各种配置的权利和义务

重疾险是保险配置中的大头,占比 70%以上。

笔者做一个简单的汇总,我比较看重几个点:

  1. 保额,第一优先级,是上面提到的赔付的额度;
  2. 保障期间,一般可以分为 60 岁以内,或者终身,也会极大影响保额;
  3. 60 岁前增加赔付比例,一般是 50%-100%,比如保额是 50 万,如果增加 50%就是 75 万;

其他一些不是关键的点,建议读者不要过分关注,以免带偏整体把控:

  1. 覆盖重疾种类,最不重要的,因为银保监局已经把常见重疾做了硬性要求,其他的是小概率事件中的小概率事件了;
  2. 身故责任,会极大影响保费,建议可以用寿险覆盖;
  3. 轻中症赔付,多次赔付都是次要的,评估极端情况就够了;
  4. 豁免,触发重症后不用再交保费,一般重疾险都会有的,没有的话要小心;

4.2. 寿险

鼎诚定海柱 2 号定期寿险(互联网专属)

这里不是推荐这个产品,强烈建议读者可以点进去看这个重疾险的具体配置,去感受一下各种配置的权利和义务

寿险的配置比例仅次于重疾险。主要应对身故/全残风险.

4.3. 医疗险

e 享护-医享无忧百万医疗险(20 年期)-个人版

这里不是推荐这个产品,强烈建议读者可以点进去看这个重疾险的具体配置,去感受一下各种配置的权利和义务

医疗险是报销型的,可以非常有效地应对看病贵,看病难的问题也可以配置高配医疗险,费用差别是 200 到 1000 。

医疗险的重点是趁早配置,趁自己身体还好,年纪在可保范围内来配置。尤其快到 60 岁的人,一定要尽快安排上。很多保险产品都是可以 20 年续保的。

4.4. 意外险

小蜜蜂 3 号综合意外险 尊享版

这里不是推荐这个产品,强烈建议读者可以点进去看这个重疾险的具体配置,去感受一下各种配置的权利和义务

应对交通事故等意外导致的伤残风险。这部分保费非常低,应该不缺这点保费。

5. 如何配置保险

5.1. 方法论(原则/步骤)

原则如下

  1. 重点评估极端风险场景的覆盖情况;
  2. 保险配置应该是一套组合方案,不同的人保险方案都不一样,不要太关注具体产品选择,那是经纪人的事情;
  3. 多咨询几个保险经纪人,对比一下,基本就能避坑骗保;

大致步骤如下

  1. 找合适的经纪人(不止一个,对比挑一挑);
  2. 自己学习保险相关常识,了解保险配置的基本框架;
  3. 和经纪人反复沟通需求,调整方案;

5.2. 具体案例

一个家庭配置,基本情况,家庭中男女生均 30 岁,房贷 200 万,年入 50 万,开销(包括房贷) 30 万,男方是家庭的经济主要来源。保费预算 2 万。

5.2.1. 配置结果的评估

5.2.1.1. 男方(家庭主要收入来源)保险配置评估

风险 重疾险 医疗险 寿险 意外险 合计
重大疾病身故 赔付 75 万 赔付 200 万 赔付 275 万
意外身故 赔付 200 万 赔付 100 万 赔付 300 万
意外全残 报销 200 万 赔付 200 万 赔付 100 万 赔付 300 万,报销 200 万
重大疾病 赔付 75 万 报销 400 万 赔付 75 万,报销 400 万
保费 6867 247 2178 288 9580

5.2.1.2. 女方保险配置评估

风险 重疾险 医疗险 寿险 意外险 合计
重大疾病身故 赔付 50 万 赔付 100 万 赔付 150 万
意外身故 赔付 100 万 赔付 100 万 赔付 200 万
意外全残 报销 200 万 赔付 100 万 赔付 100 万 赔付 200 万,报销 200 万
重大疾病 赔付 50 万 报销 400 万 赔付 50 万,报销 400 万
保费 4110 279 607 288 5284

5.2.2. 最终配置结果

6. 后续

主要是理赔事项的关注,以及优化配置。

  1. 理赔相关,如何理赔,理赔对治疗的影响
  2. 医疗险的高额配置,VIP 通道等
  3. 境外保险配置

7. 参考资料

做 leader 是从 2021.10 月份开始,已经持续了 14 个月,渐渐有一些心得。大概有以下一些点

1. 向上管理 vs 向下管理

如果把工作比喻为打仗,那 leader 的职责是领好方向,并带出一支训练有素的队伍。

向下管理,直觉上是主要职责,责无旁贷。需要给团队指明方向,同时还要培养团队,在工作中训练他们,关心他们,帮助他们尽快成长。从而实现个人与团队双赢的好效果。

向上管理,比较容易忽视,也常常会联想到套近乎,拍马屁等负面形象。实际上并不是。
向上管理包括多跟老板(公司)的目标对齐,本质上我们就是在拿老板的钱帮老板解决问题,所以不要轻易觉得老板的想法很愚蠢,相反,他应该比你懂得多。如果出现刚刚的情况,更多的时候是你看错了。
除此,懂得如何汇报,对跟老板无缝合作也是很有裨益。

我觉得向上管理,跟向下管理的精力分配应该是二八原则,前者只需要固定频率去接触以下就好,后者是要花主要精力去实践的。很遗憾,当前自己所在团队的情况基本是反过来的。老板过分对他的老板向上管理,导致对他的下属也是如此要求,过于频繁的管理行为,就像是经济学中的宏观调控,而无视市场规律,完全是计划经济,组织僵化,效率低下,内卷,劣币驱逐良币的情况时有发生。

2. People leader vs Technique leader

个人觉得这是个伪命题,更多的是公司组织的一个噱头罢了。
leader 就是 leader,一个不能 lead 项目的 leader 不会是合格的 leader,不能 lead 人的也不会是合格的 leader。
可能有人会觉得术业有专攻,且八路军还有团长和政委之分,但是实际上他们就是一个主一个次而已,people leader, tech leader 就是个鸡肋,真的相信这个说辞反而是双输。

3. 管理 vs 技术

这个是个经典命题了,这个也可以叫做软技能 vs 硬技能,这个命题也对 individual contributor 适用。
要做一个 leader,两者必须兼备,只是两者之一不同人各有突出罢了,但是几乎一定是都要超过一个及格线。初阶是硬技能成长更快,对他的要求也是如此,高阶则是更看重软技能,软技能的提升也一般要更慢一些,比如包括与人沟通、格局、善良、自我要求高等,这些品质也更看天意,要改变相对更困难一些。

4. 管理项目 vs 管理人

管理项目,主体是项目,它有一套比较健全的方法论和流程,以及工具,比如 JIRA,conf,git,teams,WBS 等。相对比较简单。

管理人,复杂多了,职场沟通有各种“套路”,但是套路的目的是为了不套路,真诚是最厉害的套路。坚持不要太把自己当人,不要太不把别人当人就好了。

5. 营造健康的团队氛围,“有为” vs “无为”

团队氛围管你是“有为”,“无为”,都会形成。但是一个好的,健康的氛围,绝对是有花心思的地方的。
最近看到宁高宁说,一个人只要是善良,对人好,对自己要求高,他在一个地方待个两年,他身边自然会形成一个好的氛围。这是某种“无为”,但是实际上对自己要求高,为此付出努力是某种“有为”。
除此,还有真的有为,你需要“显式”地去营造氛围,这种要小心,因为很容易用力过猛,弄巧成拙。

6. leader 最厉害 vs 组员比 leader 厉害

leader 是团队的天花板,这句话我更愿意看成是 leader 对自己的高要求,要尽量通过提升自己来抬升团队的成长空间。
但是实际上肯定是有组员在工作的某些方面超过 leader 的,这种应该鼓励他的长处,而不是小家子气,担心功高盖主。leader 要 lead 的将士们的精神,而不是技能。

0%