“用户决定价值。” 英国大文豪狄更斯曾在《双城记》中说:“这是最好的时代,也是最坏的时代”。大浪淘沙之下,汽车产业的故事正是当下制造业最恢宏和吸睛的叙事,恢宏在于增长速度,吸睛则在于变数。 2022年对于国内汽车市场未来近十年间的发展来说算是一个分水岭,一些旧品牌黯然离场,一些新势力厚积薄发,不断刷新着市场固有格局,也引发了接下来一段时间内从汽车从品牌到产品发展的新趋势。 如今的汽车行业,机遇与风险并存。汽车消费群体年轻化,传统制造与智能化技术融合,每一次浪潮都能冲刷出一条新起跑线。王者独霸江湖的时代远去,创新成为优胜劣汰的唯一准则,谁能把握住机会,谁就能笑到最后。
不管是架构治理,还是团队管理,通过有效的度量都能找到问题并加以改进,指标也能反映改进后的效果。 指标是很神奇的,它就像是系统中的一个开关,如果你关注它,就像打开一个开关,整个系统可能会有一些奇怪的反应。找到合适的指标让系统达到自己预期的效果,非常难。然而,这并不意味着我们要放弃通过指标度量的手段来解决问题。 很多人会用医生诊病来比喻软件架构健康度优化,我也曾在 《如何提升系统可用性》 用名医扁鹊三兄弟的故事来说明提前关注系统健康度的重要性。软件系统的运行可能远不及人体那么复杂,但随着系统规模的增大,系统的运行会变得非常复杂,远超出一个人所能认知的范围,在这种情况下,软件系统和人体都可以看做是非常复杂的系统,一些“诊断”和“医治”的手段和方法大概是相通的。
抛开性能、并发、一致性等技术因素,好的业务代码,应当如一篇显浅易懂的业务叙实文章,满足以下几个基本条件: 词要达意:最基础的变量、函数、类的命名,是否名达其意。 结构清晰:类的关系结构,函数的调用结构,是否如文章的章节、段落划分层次分明和逻辑清晰。 紧扣主题:包、类、函数是否内聚,是否破坏了单一和开闭原则。 因此,好代码如同好文章,它应该是饱含业务语义(词要达意)、具有自明性和可读性(结构清晰),能够显性化表达业务意图(紧扣主题),让人赏心悦目。
Monorepo 和 Bazel 给我们带了很多优势,比如快速、正确、易扩展、易协作等。虽然 Bazel 早期版本对于 iOS 开发并不太友好,甚至让一些团队产生了放弃使用 Bazel 的想法;但 Bazel 本身极其优秀的扩展性,使得社区对其一直抱有极高的热情,开发出了许多优秀的 Rules,促使社区和 Bazel 本身一直向前进化,如今的 Bazel 已不同往日,一些早期令人诟病的问题也被一一解决。目前我们正在使用 Bazel 6.1.2 版本,且即将紧跟官方的脚步更新到 6.3.0 版本。今天我们就来聊聊我们哔哩哔哩近一年(主要是Bazel 5.0.0 版本以后)所应用的一些新特性、新 rules 以及在自建 rules 方面的探索。
Pod 作为 K8s 中一等公民,其承载了最核心的 Container(s) 的运行。同时,Pod 也是 K8s 中资源调度的最小单位,因此熟悉其初始化过程(包括网络、存储、运行时等)将会使我们更加深入理解 K8s 的容器编排原理,以期更好的服务各类业务。
本文旨在讲解常见的字符编码,如:Unicode、UTF-8、GBK字符集,以及emoji。 起初计算机在美国发明,自然大家考虑的是如何表示英文,英语字母总共26个,加上特殊字符,用128个字符,一个byte即足以表示出来。这个就是大家所熟知的ASCII编码。对应关系很简单,一个字符对应一个byte。 但很快人们发现,其他非英语国家的文字远远超过ASCII码,不同国家推出了自己不同的编码方式,中国的gb2312就是我们国家自己推行的编码方式,这样下去每个国家都有自己的编码方式,来回转换太麻烦了;这时候大家当然想统一字符编码,这时候出现了新的编码方式,unicode编码方式,将编码统一,规定了每个字符对应的unicode码。
Istio 成为 CNCF 项目的毕业生。这一历史性的时刻代表着 Istio 在云原生领域的成长和成熟,标志着最广泛部署的服务网格迎来了一个令人兴奋的新篇章。Kubernetes 是 第一个获得毕业资格的项目 [1],时间是 2018 年。今天,自它作为一个孵化项目进入 CNCF 不到一年的时间,Istio 就毕业了,成为 CNCF 历史上最快的一个。 Tetrate 是由 Istio 创始团队的成员创立的,旨在推广和扩大服务网格的应用,并自创立以来一直是 Istio 最重要的贡献者之一。我们为 Istio 及其社区的辛勤工作和奉献取得了这一里程碑式的认可而感到自豪和兴奋。