Newsletter 电报频道 微信公众号

该不该使用关系型数据库的物理外键

没想到 2021 年还有很多人在争论是否该使用关系型数据库的外键,这种外键我们更习惯称其为物理外键,与之相对的是由业务逻辑控制的逻辑外键,实际上当今稍稍复杂些的业务都在使用外键,只是使用的是逻辑外键而非物理外键。

物理外键是我们学习数据库原理和设计时都会遇到的章节,它的主要优势是可以通过数据库实现强制的 Referential Integrity ,即引用完整性。但这样的完整性使用逻辑外键也完全能实现,有人认为逻辑外键由于完全依赖业务代码所以无法真正保证完整性,但这其实是个伪命题,因为物理外键也是由「人」来设置的,你只能确定已经设置过的物理外键能保证引用完整性,至于那些没考虑到的、设计错误的数据关联关系仍然是物理外键无法解决的,在这一点上物理外键和逻辑外键是没有实质区别的。而实际上当今的云原生架构在数据层面追求的是分布式和最终一致性,单个 DB 存储所有数据的时代早已过去,数据在服务间流转已经是常态,此外国内场景下很多数据也不被允许直接物理删除,物理外键的作用在现代架构下变得微乎其微。物理外键不是银弹,它甚至都没有成为银弹的实力。

公司基因与工作选择

公司基因是一个较有争议的描述,很多人觉得这是对公司体制和运营模式的刻板印象,因为一家公司的固有模式和体制并不代表着它以后就不能涉猎并做好当前不擅长的领域。而我认为「公司基因」是对公司「路径依赖」的形象化描述,「基因」或称为路径依赖对公司发展的影响并不是确定的,而是概率性的,只是这个概率较大,可以用于「武断」地推断公司的战略调整是否会成功。那么公司基因又与普通员工的工作选择有什么联系呢?

如何辨别KPI驱动的技术项目

KPI 驱动的技术项目指的是表面上是为了切实解决某一问题,但实际上却是为了满足 KPI 或 OKR 需求应运而生的项目,在开源项目和公司内部都有可能出现。

技术项目是需要进行长期维护的(尤其是开源项目),但如果 KPI 已经完成,则要么维护者的迭代动力骤降,要么项目早晚会面临交接给其他团队成为边缘项目的命运,而其中的主要原因显然是这类技术项目很难为维护者们带来持续的收益,边际成本却日益上升。同时,纯粹的 KPI 驱动也容易导致技术实现的一地鸡毛。

可见,纯 KPI 技术项目对于项目的使用者来说是很不友好的,那么当一个项目具有哪些特征时我们就应该保持警惕并思考是否还要使用该项目呢?

基于Revue建立个人Newsletter

Newsletter 这个名词我在十几年前刚上网时就有所耳闻,虽然能实现通过推送达到内容直接触达用户的目标,但它既没有像 RSS 一样在开放互联网上广为人知,也没能像微信公众号一般在封闭生态内成为实际上的标准,再加上国内使用邮件作为日常沟通的场景本身就弱,所以多年以来一直是个小众领域。但最近 Twitter 等大公司在 Newsletter 领域动作频频,Newsletter 可谓是老树开新花,在人们对封闭平台越发警惕的今天,相当于去中心化的 Newsletter 受到了越来越多人的青睐。

重新定义PPT的Slidev

作为一个每次写 VBA 都要查文档的 MS Office 小白,PowerPoint 这种被人成为神器的演示工具对我来说却是阻碍生产力的绊脚石,我总是无法沉下心做好元素的对齐,也被页码问题搞得焦头烂额。终于有一天,我意识到花费在样式和结构组织上的大量精力是浪费生命的,我应该更专注于 PPT 的核心——内容。如果能有一款基于 Markdown 的工具,让我逃脱格式调整的苦海,潜心编写内容该多好啊!而当我看到 Slidev 时,我知道问题终于有了转机。

故障处理SOP是废话吗?

作为《空中浩劫》的忠实观众,我常常能看到飞行员在遇到各种险情时,只要还有时间和精力,就一定会拿起手边的操作手册(新机型应该已经电子化了)按指引逐条查找来尝试找到问题的标准解决方式。这份手册就是本文的主题,即 SOP (标准作业程序)。

虽然在航空业中,要么飞行员能够依靠 SOP 化险为夷,要么调查人员也常常会证明按照 SOP 操作很可能就能避免事故,但在互联网行业,SOP 虽常常被人提及和编纂,却很少能发挥出很大的作用,这又是什么原因呢?

Gracias Messi

时间回到 2009 年,年少无知的我在某天体育课后与朋友聊天,他说『梅西真强』,我说『梅西梅西肯定没戏』。但那时的我没有想到,未来的我会将这位『没戏』的梅西作为神一般的偶像。

投资、投机与赌博——我的韭菜经历回忆

今天看到 V 站上的一个帖子,楼主老哥讲述了自己是如何能在数字货币市场通过买卖山寨币赔掉一笔学费的故事,虽然这个故事本身实在太常见了,但当看到他被收割的山寨币列表时,我的心情变得异常复杂,因为这个山寨币就是我在数字货币市场所交的第一笔学费。

本文就来讲讲我作为一颗绿油油的韭菜,在被收割的同时有哪些感悟。

如何避免被老代码坑

我承认有些标题党,事实上写下此文时,我还没有从被老代码坑出故障带来的低落心情中走出来。本文来简单探讨下维护历史代码尤其是历史业务代码时,有哪些原则和思考点可以帮助我们减少被坑的概率。

简易增强版hexo-theme-even

Even 主题的简洁深得我心,它也是本博客当前的主题。不过有许多常用功能在原主题中并未直接支持,因此就自己 fork 后动手做了些小的体验优化和功能实现,供有类似功能需要的朋友直接使用。优化的部分思路可以参考前文

当然我只做了很小的一部分优化,主题作者 Yuexun Jiang 的主题代码创建和维护才是最核心的贡献。后续我也会通过 PR 的形式将本文内容中的通用部分提交到原主题中。

下文为增强版 even 主题的中文使用说明。