跳转至

札记

Components

Components are the units of deployment. They are the smallest entities that can be deployed as part of a system. In Java, they are jar files. In Ruby, they are gem files. In .Net, they are DLLs. In compiled languages, they are aggregations of binary files. In interpreted languages, they are aggregations of source files. In all languages, they are the granule of deployment.

Components can be linked together into a single executable. Or they can be aggregated together into a single archive, such as a .war file. Or they can be independently deployed as separate dynamically loaded plugins, such as.jar or .dll or .exe files. Regardless of how they are eventually deployed, well-designed components always retain the ability to be independently deployable and, therefore, independently developable.


编辑于 2025-03-31

第一届雷军班主题班会讲稿

视频链接:Link

同学们下午好啊,其实呢,我也特别期待能有更多的时间和大家交流,但因为工作太忙呢,这个半年时间呢,我们才迎来了第二次的交流啊,也特别高兴呢,能够参与大家班会形式的沟通和交流。刚才的话呢,呃,各位同学们在汇报的时候,呃,我也在仔细听,仔细记,也思考蛮多的。呃,因为今天的时间很有限,虽然我有千言万语啊,我刚才想了想呢,我主要讲三点。

我先呢讲第一个问题,就是我为什么答应平文校长办雷军班?我还记得 2 年前。平文校长呢,第一次跟我谈的时候。我跟校长说呢,我仔细想一想。其实呢,我觉得校长刚才也讲,他听懂了,其实是我婉拒了。第二次校长跟我谈的时候呢,我是压力很大。我是压力很大的。那么。我的思考是什么?

2025-03-23 有感

绕着困难走的人永远不会成为成功的人。一个成功的人,他是主动迎接挑战的人,因为他要开辟新赛道,他如同走在沙漠当中一样,这是任正非的话。

因为没有人会给你指明未来的方向,需要你去开辟新赛道,引领未来发展的方向,这才是伟大的成功者。

所以人呐,是否能成为一个对社会有贡献的人,一是要有信念,二是要有情怀,要敢于面对挑战,迎接挑战。人往往是在迎接挑战的时候,你的才能才会得到极大的释放。

共勉!

当时只道是寻常

浣溪沙 纳兰容若

谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳。

被酒莫惊春睡重,赌书消得泼茶香,当时只道是寻常。

那些我们习以为常的日子,那些眼前的普通人,可能在某一天,都是你人生回忆里的美好,所以朋友啊,珍稀当下,珍惜眼前人。

使用 Shell 脚本管理 OpenVPN 守护进程

这篇技术博客涵盖了使用 Shell 脚本管理 OpenVPN 守护进程的完整过程,解释了每个关键步骤,并提供了代码示例。如果你有任何问题或想要进一步探讨,欢迎留言讨论!

GC 垃圾回收算法

评价标准

评价 GC 算法的性能时,我们采用以下 4 个标准。

  • 吞吐量
  • 最大暂停时间
  • 堆使用效率
  • 访问的局部性

GC 标记 - 清除算法(Mark Sweep GC)

GC 标记 - 清除算法由标记阶段和清除阶段构成。标记阶段是把所有活动对象都做上标记的阶段。清除阶段是把那些没有标记的对象,也就是非活动对象回收的阶段。通过这两个阶段,就可以令不能利用的内存空间重新得到利用。

执行 GC 前堆的状态

版本管理:追溯数据的生长链

版本管理这个词,听起来是不是就很酷?想到版本管理,大家第一反应肯定是 Git!毕竟,它是专业的版本管理工具,功能强大得能把一堆数据的变动历史精确到秒。但别着急,我们的需求可不需要这么复杂的操作。经过简单分析,我发现,版本管理的核心其实就是 条件和状态,就像一个老派的分支决策题:你选择左边还是右边?

而且说到版本管理,我脑袋里立马浮现的图景是:一棵小树苗,每次更新就长高一点点,最终茁壮成参天大树,穿越时间的洪流,经历岁月的洗礼... 就是这个感觉!🌱

版本规则:看我怎么将小树苗养成大树

我们要给每条数据生成一个版本号,每次编辑后还能选择是否更新,从而追溯数据的“成长过程”。就像一棵小树苗的成长路线图。

版本号规则

  1. 版本号有两个部分:主版本(major)次版本(minor)
  2. 主版本从 A 开始,每次更新递增,比如:A → B → C → ...,主版本部分升得飞快!
  3. 当主版本到达 Z 时,我们不怕,因为...主版本会变成 A0,然后继续递增!这就是成长的奇迹!
  4. 次版本从 0 开始,每次递增 1,简简单单,循序渐进。
  5. 版本初始化为 A.0,并有两种更新方式:普通更新和归档更新。
  6. 普通更新:就像一个持续进化的过程,A.0 → A.1 → A.2...,每天进步一点点。
  7. 归档更新:让版本变得更加历史悠久,A.n → A(A.n) → B.0 → Z.n → Z(Z.n) → Z1.0 → ...,每一个版本都像是“宝贵的历史文物”!

这个版本更新规则,就像是给数据安排了人生路线图,每个版本都是它成长的一个节点。

版本更新映射关系:就像数据的身世档案

通过以下表格,我们可以看到不同版本更新方式的生动映射:

更新方式 当前版本 主版本 次版本 更新后版本
普通更新_0 A.0 A → A 0 → 0 + 1 A.1
归档更新(送审) A.1 A 1 A(A.1)
普通更新_1 A(A.1) A → B 1 → 0 B.0

看嘛!每个版本就像一个人类的成长记录,普通更新就像升级打怪,归档更新则像是“送审”的过程——你升级后得去展示自己,给大家看看你多厉害!

云办公最佳实践_Code Server

这是一个可以运行在任何设备的 Vscode 解决方案,我认为应该是现有所有产品中最好的没有之一。

记得去年只有 Vscode 官方的 for web,部署起来略显复杂,没想到不到一年,有人才已经对其作了进一步封装。

个人用来还不错,比如读者正在浏览的博客,正是我在平板上使用 code server 远程部署迁移的。还是很激动的,毕竟闲置多时的平板得以再次利用,以后出门不用背笔记本了,哈哈!闲话不多说,进入正题哈。

Developing and publishing modules

你可以收集相关的包放到自己的模块中,推送到远程仓库方便其他开发者使用。这篇文章介绍了如何开发和推送模块。