注册

程序员黑话集

为什么 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。用户的真实使用感受。d0125a14b2b19336f917524f3417c2b0.jpg

Frontend and Backend

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

研发流程相关

DevOps

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

生产环境 (Production / Prod)

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

Test in Prod

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

Canary (金丝雀)

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

删库跑路

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

a9b3d6ee24b880426d9f9f2f5d828d12.jpg

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 这个名字沿用了下来。6d249295c44b42c584fc882a749f8749.jpg

Spaghetti code

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

PR

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

虚构概念

ACME

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

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.d18b3babdacdbf1a0318ea95eba2fb62.jpg
Happy 1024! 早点下班!🎉


作者:Bytebase
来源:mp.weixin.qq.com/s/WRANBcZ69_COkZfnZY0pCQ

0 个评论

要回复文章请先登录注册