查看原文
其他

程序员黑话集

天舟 Bytebase 2022-12-19


为什么 10.24 是程序员节

计算机采用的是 2 进制,2 的 10 次方是 1024,而数据存储的单位从 B, KiB, MiB, GiB, TiB ..... 以 1024 作为一个跨度,比如 1 KiB = 1024 B。程序员在日常工作中接触到 1024 的机会太多了,看到 1024 就会产生条件反射。
除了 1024 外,程序员届还有许多的术语/黑话,借着 10.24 这个日子,也和大家分享一下吧。学会了这些术语,基本就能和程序员们谈笑风生,而把非程序员们唬得一愣一愣。

通用术语

404

当请求的网络资源不存在时,返回的错误编号。扩展为某样东西不存在/找不到。

403

当没有权限访问网络资源时,返回的错误编号。扩展为没有权限/资格接触某项信息。

500

当在请求某个网络资源时,服务器内部发生错误时,返回的错误编号。扩展为系统发生内部故障。

API

Application Programming Interface。程序间对接的接口,两边程序只要遵循这个接口,就能互相交互。扩展为两个对象之间交互应该遵循的规范,对象没有限定,可以为人,机器,系统等概念。

Bug

软件错误。扩展到因为人为疏漏导致的问题。

Cookie

网站记录你个人访问行为的载体。你能被广告主精准命中的关键情报仓库,各种 “Allow Cookie" 骚扰弹窗的根源。

Cache

一层缓冲,商家每年搞剁手节,能不被海量用户冲垮的核心堤坝。当然偶尔流量实在太大,也会决堤,比如被屡次冲垮的微博。

RFC

Request for Comments。起初用于起草互联网标准,比如 HTTP 1.0 协议是 RFC 1945。后来不少公司的设计文档也沿用了 RFC 这个名字。

Interesting

有趣🧐。起初是个褒义词,但现在在许多场合下,因为无法给出积极评价的时候,会用该词来化解尴尬。有时甚至会传达嘲讽,所以请慎用。

UI vs UX

UI - User Interface。用户的视觉感受。UX - User Experience。用户的真实使用感受。

Frontend and Backend

前端和后端,一个应用的两个组成部分。前端是用户能感知的部分,后端则是用户感知不到,隐藏起来的部分。既有左图里美如画的前端,脏乱差的后端,也有右图里风雨飘摇的前端,高精尖的后端。

研发流程相关

DevOps

把研发(Dev) 和运维(Ops) 两种职能融合在一起的运动。也有人认为这是让一个人打两份工的阴谋。

生产环境 (Production / Prod)

也叫线上环境,实际在生产当中使用的。与之对应的是内部的研发环境 (Dev),测试环境 (Test),预发环境(Staging)。

Test in Prod

一种以快速迭代作为借口,不做全面的测试,就直接把代码发布到生产环境的行为。虽然许多产品都是这么做的。

Canary (金丝雀)

过去矿工下井时会带上金丝雀,因为金丝雀对有害气体敏感,如果有害气体超标,金丝雀会率先死亡,矿工便知道需要撤离。在软件发布中,也通常会采用金丝雀模式,把新的版本先发布到一小部分用户中。有些地方把前面提到的预发环境也直接叫做金丝雀环境。

删库跑路

最严重的事故莫过于误删了应用数据库,所有的数据都没了,那整个公司的业务也就完蛋了。就像当年的扁鹊一样,无法挽回,唯有跑路了。扩展为强调后果的严重性。

Fat Finger

胖胖的手指。因为手指粗,所以误敲到了回车键,引发了诸如删库这样的事故。扩展为人为的操作不小心。

Repository / Repo

仓库,托管代码的地方。

Branch

分支。多人在同一个仓库上工作时,为了避免互相影响到对方,会在不同的分支上进行开发。

Trunk

主干或者叫主干分支。通常主干的分支名字叫 main 或者 master。主干也是一个仓库的代码主线,大家在不同的分支上开发,但某一个时刻,还是要把开发的代码合并进入主干。另外要开启新的分支时,通常也会基于主干进行分叉。当然也可以基于其他分支进行进一步分叉,但最终在某一个时间点,代码还是要合并回主干的。

主干开发 (Trunk-based development)

一种强调迭代速度的开发模式。要求大家尽可能频繁地把开发完的功能合并进主干,但同时也要尽量保证主干的健康。如果主干经常有问题的话,团队就无法基于主干开启新的分支,进行新的研发任务。所以主干开发会强调小步快跑,高频提交小规模变更。

Cherrypick

有时候你只想从一个分支里挑选一部分的内容合并到另一个分支,这个动作就像是捡樱桃一样。落水三千,只取一瓢。

Release Train

发布列车。每隔一段时间,软件就会进行发布,发布负责人往往会规定一个时间点,如果希望让自己的功能赶上这次的发布,就需要在这个时间点前把代码提交,不然发布列车就开走了。不过现实中,发布列车往往要等某一个 VIP 功能,会推迟发车时间。

TODO

在代码里记录一个将来再解决的问题,但至于什么时候去解决,谁知道呢。

Postmortem

原义是验尸报告。在软件研发领域,在发生事故后,详细的故障分析报告,报告最后通常会留好几个 TODO。

On-call (Carry the pager)

值班,以前带着的传呼机叫做 Pager。现在传呼机被手机/软件取代了,但 Pager 这个名字沿用了下来。

Spaghetti code

形容代码乱成一团,像通心粉一样交织在一起。

PR

不是指公关 (Public Relations),而是 Pull Request。GitHub 里要像某一个分支合并代码时,提交的合并请求。而在 GitLab 里,对应的概念叫 Merge Request (MR)。你看出来了,这两家老对着干,倒霉的是我们这帮程序员。

虚构概念

ACME

一家虚构的公司,一般文档例子里要用到一家子虚乌有的公司时,会用这个名字。

Alice and Bob

一组虚构人物,起源于网络安全,交换信息的双方。

example.com

访问这个网站就知道是用来干嘛的了。

Foo, Bar, Baz

一组没有意义的占位符(Placeholder)来指代某种概念。失去自我,成就大我。

缩略语

LGTM

Looks Good To Me。通常用于审核(Review)流程中,比如代码审核,文档审核。审核人(Reviewer)用来表示认同,批准👍。

PTAL

Please Take Another Look。通常用于审核(Review)流程中,比如代码审核,文档审核。发起人(Author)告知审核人(Reviewer)再次审核。

Nit

Nitpicking。吹毛求疵,通常用于审核(Review)流程中,比如代码审核,文档审核。审核人(Reviewer)提出的一些不影响核心内容,或者带有主观判断的建议。

WDYT

What Do You Think。在双方问题讨论中,在提出自己观点后, 一种启发式的希望获得对方反馈的表达方式。

YMMV

Your Mileage May Vary。在分享完自己的经验和观点后,也提醒他人要思辨地吸收。

EOF

End Of File。标识一个文件结尾的符号。扩展为表示一件事情的终结。

IMO / IMHO

In My Opinion / In My Humble Opinion。在表达自己观点前,为了降低对方抵触情绪,附加的谦逊语气。但也不要指望加了这个,就能避免引起对方的不适。

WYSIWYG

What You See Is What You Get。所见即所得,一种提供更好用户体验的交互方式。

TGIF

Thank God It's Friday 🪩!

TIL

Today I Learned.

Happy 1024! 早点下班!🎉

DevJoy,一场办给开发者的游园会

中国首个,Bytebase 进入 CNCF Landscape CI/CD 目录

VCS 集成的 Database CI/CD 工作流落地实践

科技公司内部 SaaS 工具大公开|活动回顾(含视频 & PPT)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存