程序员黑话集
为什么 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! 早点下班!🎉
作者:Bytebase
来源:mp.weixin.qq.com/s/WRANBcZ69_COkZfnZY0pCQ
来源:mp.weixin.qq.com/s/WRANBcZ69_COkZfnZY0pCQ