我做基础架构学到的42件事

什么叫做镶件?什么情况下需要做镶件?模具做镶件有什么缺陷? 一、首先介绍下什么叫做镶件? 镶件,是一个模具术语,也有叫嵌件,也有叫入子,叫法不一。它是在模具里专门指的是用于镶嵌在模具模仁中的模具配件。镶件可以是方形、圆形、片型,和所有的模具配件一样,对精密度的要求也非常高。一般没有成品,按照模具的需要进行定做。 镶件的种类:镶针、镶块、镶柱、镶圈等; 材质:SKD61、SKH51、ASP23、SKD11等,或跟与之相对于的模仁材料一样; 硬度:50HRC以上; 标准精度:±0.01mm,视具体模具精度要求而定。 二、那么问题来了,什么情况下需要做镶件? 1、节省模 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:多颗糖

74fc769f9415c6d2a592b4823998b176.jpeg


最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。

Mahesh Balakrishnan 是 Facebook Delos 项目的负责人,Delos 对标 ZooKeeper。

译注:IC = Individual Contributor,即独立贡献者,Facebook 开发团队的一个术语,指那些不是经理、不是 team leader、不是任何领导职位的编码人员,可以理解为一线开发人员。

1 对客户(用户)

1、让你的客户开心;否则这篇文章的其余部分都无关紧要。

2、要注意拥有正确数量的客户(刚开始时,就一个)和合适的客户(他允许你构建关键技术);并小心地增加这个数字。

3、直接与客户对接。很多团队内部冲突可以通过一句“我刚才和客户谈过,他们说……”来解决。在做基础架构时,我们往往不需要猜测客户的需求,我们可以直接问他们。

4、但要意识到客户可能无法表达他们真正需要的东西;不要只看到需求的表面价值,而要花时间详细地理解他们的用例,阅读他们的代码。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

2 项目管理

5、要有一个简单明了的使命宣言来表达你存在的理由。Delos 的宣言是:我们将成为 FB infra 的可靠基础。

6、反复进行任务难度的评估;决策者可能没有时间、倾向、上下文或培训来进行评估,而且可能会把它们弄错(简直是)几个数量级。

7、对 IC 的任务分配很关键;要求自己处于任何决策的关键路径上,因为你通常比经理更了解问题、代码库和 IC 们的优势。如果你和其他 IC 自己解决任务分配问题,大多数经理都会很高兴。

8、Road-map 是一种手段,而不是目的。

9、如果你有好的和/或一致的经理,要尽可能地理解、支持和包容。如果你没有这样的经理人……好吧,我还没有想明白这个问题,如果你想明白了,请告诉我。

10、使你的项目对组织架构调整有足够的鲁棒性,一个公司的管理层级本质上是脆弱的(毕竟,树是一个单连接的图);不断地与未来可能接手这个项目的经理进行交流。不惜一切代价,确保经理人的变动不会给 IC 们带来不公平的职业结果。

通常来说,公司组织架构调整是非常频繁的,经常一年就会调整一次,确保经理人的变动不会带来不公平的职业结果,这点其实很难(我也很想知道怎么做到)。

11、追踪类似的功能在你所在领域的其他项目中花费了多长时间,并以此作为任务难度评估的依据(例如,“功能 X 在系统 Y 中花了 3 年时间;这不是一个 IC 的一半工作”)。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

3 设计

12、对 API 要保守,对实现要宽松(Be conservative on APIs and liberal with implementations)。

13、但要坚持谨慎地推出新的实现(灰度、分阶段推出)。

14、设计 API 时,写代码完成第一个实现(implementation);积极计划第二个实现;并希望/祈祷事情将在第三个实现中发挥作用。(When designing APIs, write code for one implementation; plan actively for the second implementation; and hope/pray that things will work for a third implementation.)

15、设计 API 时,首要考虑向新实现的迁移;自定义迁移会造成巨大的时间消耗且不可靠。每个主要的 API 都应该有一个单一的 CLI 驱动的调用来切换实现。

16、作为一个团队去设计;作为个人实现(Design as a team; implement as individuals)。这将使设计成为瓶颈,但这是值得的:抵制并行化设计的冲动。

17、对于存储系统,在开始时就要重点关注一致性和持久性,而不是可用性;一致性和持久性更难衡量,如果出问题也更难修复。由于可用性更容易衡量,所以会有外部压力要求优先考虑它;推到后面去。

18、在测试中维护 API 的多个实现;比较它们之间的结果。这样做的代价是值得的(这将有助于正确性,也可以防止实现细节的泄露)。

19、对设计进行后期绑定(Late-bind):鼓励团队思考整个设计空间,而不是承诺使用某个特定的解决方案。与一群高智商、有主见的 IC 们一起开头脑风暴会议是一门值得掌握的艺术。鼓励在设计的关键路径上进行粗略的原型设计。

20、对实现者进行后期绑定:一旦设计完成,任何 IC 都应该能够编写代码。

21、拥有适当数量的抽象(这很难)。太少了,你会得到一个混乱的单体;太多了,团队会被理解每个抽象的语义的认知开销所淹没。

22、避免使用实时性来保证正确性或在机器间比较时钟,除非你有(并理解)时钟的错误界限。

23、有一个单一的真理来源。在各种类型的状态之间建立简单的不变量。

24、创造一种文化,让 IC 不断地思考完全不同的设计;不要停止关于假设性替代设计的对话。鼓励好奇心。

25、了解你的 SKU。云计算使人们很容易忽视硬件;但对硬件(和硬件趋势)的理解对设计来说至关重要。

4 Code Review

26、在一个具有快速评审周期的透明代码库中,除非你把关,否则 API 会泄露实现细节。

27、鼓励 IC 对 diffs 进行批判性的思考,并创造一个人们可以自由表达的环境。作为 diffs 作者,你对指出 diffs 问题的人的反应应该是感激,而不是沮丧。

28、对于关键组件,考虑非正式的规则,例如要求两个接受(即两个 LGTM)或甚至是某个子集的 IC 的一致接受。

29、对于关键组件,落地时间不是衡量其重要性的标准:抵制衡量这一标准和优化它的冲动。创造一种让 IC 可以接受 diffs 不能快速落地的文化(创造性的工作——书籍、论文等等——由于高质量 review 的成本,通常需要漫长的 review 周期;为什么代码应该有所不同?)

30、有时候,你只有在一个 IC 写出了一个候选的设计方案后才意识到这个设计是正确的。要抵制说“哦,好吧,让我们先落地,然后再修复它”的冲动;你这样做对 IC 和项目都没有帮助。创造一种文化,让 IC 感觉到如果这不是正确的解决方案,就可以丢弃代码(以身作则)。

5 策略

31、以某种节奏问自己:为什么这个团队/项目会存在?如果它不存在,会发生什么(哪个其他团队/系统会填补这个空白)?该团队是如何为公司增加价值的,以及它如何在未来继续这样做?

32、跟踪公司内你所在领域的每个其他主要项目:你应该能够比他们自己的 IC 更好地解释他们的技术设计。抓住任何机会去与其他类似项目的负责人辩论项目范围:你应该能够阐明你的项目如何适合更大的生态系统。团队间的竞争是健康和必要的。与这些项目中的 IC 交朋友:他们比公司里的其他人更了解你的技术挑战。

33、不要在原始性能或效率上与其他团队竞争;这将升级为一场军备竞赛,两个团队都会浪费时间为工作负载优化他们的系统,产生苹果与橘子的比较,等等。在基本设计特性上进行竞争。

34、如果客观上有人在你的使用场景有更好的系统,并想接手它,那就去找别的事做吧。

6 可观测性

35、测量是一种手段,而不是目的。

36、你应该能够在你的客户之前发现你的服务中的问题。

37、在尽可能的情况下,可观察性应该在 API 之上,并在实现(implementations)之外。这可以确保你可以切换实现并比较性能,而不会在测量代码中引入错误。它还可以简化实现;并降低新实现的门槛。

38、任何不容易测量的东西(例如,一致性)往往被遗忘;要特别注意那些难以测量的属性。

39、尽可能将关键的检查(例如一致性)推到部署本身;尽量减少对外部服务的检查(否则你现在有两件事要跟踪,而不是一件)。

7 研究

40、追踪你所在领域的研究成果。很快你就会和你的 IC 有一个速记,可以实现超快的沟通。“如果我们尝试项目 X 中的那个东西呢?并将其与项目 Y 中的技术相结合?”。

41、尝试新事物。在可行的解决方案内,偏向于新的东西。抵制逐字逐句地复制设计的冲动。每一个重要的系统在某些时候都只是某人头脑中的一个半生不熟的想法。

42、写论文。为那些对你正在做的事情没有任何背景的听众写作,将迫使你检查和澄清你的假设。论文可以使你更容易雇用到优秀的人才,也更容易让他们上岗。研究生应该能够向你解释你的设计(并发现错误!)。当被要求做讲座时,尽量答应。它们很有趣,而且你可以认识新的人。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

3499d70dabb973a4383fef8e6cda7c47.png

已在知识星球更新源码解析如下:

05f258d150a6fa9ebe011e541a2d540c.jpeg

6f689a769c2554f92fa8e13bf25940c5.jpeg

17e4d9f9e02559e6fbf12dea4e41930b.jpeg

51efcc801b1069232f09f97e4432dff6.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
几年基础架构的经验之谈[42 things I learned from building a production database] 几年基础架构的经验之谈[42 things I learned from building a production database] 最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。 Mahesh Balakrishnan 是 Facebook Delos 项目的负责 阅读详情

相关推荐

全球顶尖网站架构设计精华:Facebook, Google, Amazon篇

本文还有配套的精品资源,点击获取 简介:网站架构设计是构建高效、可扩展且可靠在线服务的核心。本文集合了123篇关于Facebook、Google和Amazon的架构设计文章,涵盖了这些互联网巨头的核心架构理念、技术栈、演化历程以及面临的挑战和解决方案。Facebook以社交网络为核心,采用了动态内容分发网络(CDN)、大数据处理框架(Hadoop/Spark)、缓存系统(M...

weixin_35006125的博客 1353

Facebook 的框架及技术栈

然后在需要使用圆角边框的元素中引用这个 mixin,如,可以方便地为按钮添加圆角边框,并且可以根据需要调整半径值。

yournameplease的专栏 1225

基于CatBoost回归模型的完整预测分析:从建模到SHAP可解释性分析

本文介绍了使用CatBoost回归模型进行完整预测分析的流程。首先导入必要的Python库并加载数据,进行数据预处理包括训练测试集划分和归一化处理。然后通过网格搜索优化CatBoost超参数,使用最优参数训练模型并评估预测性能。结果显示模型具有较高的决定系数(R²=0.9944)和较低的误差指标(RMSE=0.0696)。接着进行残差分析和正态性检验,发现残差基本服从正态分布。最后通过SHAP分析实现模型可解释性,识别关键特征影响。该方法为梯度提升树在回归问题中的应用提供了完整解决方案。

fx666_的博客 746

为新的Facebook.com重建我们的技术栈

英文 |https://engineering.fb.com/web/facebook-redesign/译文 | https://www.yuque.com/docs/share/6...

web前端开发 9783

Unity3d SECTR 2019 从零开始了解(零)

插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。 除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。 翻译内容: 【零】API REFERENCE MANUAL第一章Documentation Core Concept 【一】 名词概述 CORE CORE是SECTR的核心,一个快速将 Sectors 和 Portals 加入到Unity中的工具,以及完整的源代码,可以构筑独特的功能。 VI

狗蛋在土里瑟瑟发抖 1500

EGO_Plannerv2代码学习(一):栅格建图之V1 V2的区别

最近在尝试将高飞老师的集群规划器部署到真实无人机上跑一下,开这个新帖记录下学习过程中的问题和想法。

qq_41069236的博客 5749

Facebook 数据库项目负责人:我做基础架构学到的42件事

译者序最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。Mahesh Balakrishnan 是 Facebook Delos 项目的负责人。...

架构师小秘圈 289

WinCC动态选择报警记录案例

本例中需要确认查询的时间段以及查询的关键字,然后通过一个按钮来执行报警数据查询脚本,并把查询出的结果加载到当前报警控件中。<本例中数据查询脚本的思路是根据选项组所选定的参数加载相应的归档变量到在线趋势控件,根据设定的查询时间范围设定控件时间轴的开始时间及结束时间。本文以 WinCC V8.0为例,介绍如何动态的查询WinCC报警记录,包括关键字查询/时间&关键字查询,如图1所示。<在WinCC变量管理中创建不同的变量组,并在变量组下创建相应的变量,如图2 所示(下图并非实际变量值)。

weixin_45072604的博客 2708

[译] 我做基础架构学到的 42 件事

译者序 最近读到了分布式系统研究者 Mahesh Balakrishnan 的一篇博客《42 things I learned from building a production database》。同样做基础架构,看完大佬总结的经验后拍案叫绝,其中有几条简直是真知灼见,故翻译了全文。 Mahesh Balakrishnan 是 Facebook Delos 项目的负责人。Delos 对标 ZooKeeper,关于 Delos 更多详细细节其团队已经发了两篇 paper,感兴趣的同学可以自行搜索。

耕耘 228

软件工程大作业——图书管理系统/图书个性化推荐与实现系统

软件工程期末大作业,图书管理系统,包含ER图、程序流程图、属性图、结构图

2401_82857325的博客 3646

论文超详细精读|万字:2s-AGCN

1. 提出了一种新的双流自适应图卷积网络(2S-AGCN)用于基于骨架的动作识别。**模型中的图的拓扑既可以统一地学习,也可以通过BP算法以端到端的方式单独学习。** 2. 提出了一种同时对**一阶和二阶信息(骨架的长度与方向)建模的双流框架**,在识别精度上有了显著的提高。 它将骨架数据的图结构参数化,并嵌入到网络中,与模型共同学习和更新。 3. 文章主要创新点有两个,一个是双流网络,另外一个是自适应。

IanYue的博客 6383

做基础架构学到的42件事

做基础架构设计工作时的一些准则

yingwei13mei的博客 230

WPF中使用TreeView封装组合控件TreeView+DataGrid

wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果如下,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第一种:技术的选择是TreeView(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是使用TreeView的实现。第二种:技术的选择是DataGrid。

故里2130 1650

安装好kali后必做的5件事

大部分人以为安装好kali后就万事大吉,可以进行下一步的学习,实则不然,我们要对kali进行进一步的配置,这样我们才能更好使用,好了,废话不多说,接下来介绍安装好kali后必做的5件事。本文参考苑房弘老师的《kali Linux 入门教程》,感兴趣的同学可以看一下 安装vm-tools(虚拟机增强工具) 虚拟机增强工具可以帮我我们在虚拟机上更好的使用kali,包括虚拟机和物理机之间的复制等功能...

qq_43777823的博客 1万+

DO-297标准详解:IMA系统开发与认证指南

DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,Integrated Modular Avionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代航空领域,系统复杂性逐渐增加,传统上各子系统独立运行的方式已经不适应多任务、多功能的需求。

qq_41854911的博客 1583

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

他和她一起做的100件事

他和她一起做的100件事   1.在每次小别之后第一次见面都要结结实实的一个拥抱,如果在公众场合,就要你亲亲我的脸,如果没人,就亲嘴巴。 2.买一张可以放在床上的小桌,不愿意起床的时候,我们可以赖在被窝里上网,吃饭,下棋。 3.有一个漂亮的水晶花瓶,你下班回来的路上给我买的花,即便已经皱掉,也会高高兴兴地把他们插起来。 4.每个月学一道新菜。 5.躺在你的腿上看电视,指手画脚的叫你给我拿吃的。 6

郑沁空间 3728

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

一生要做的99件事、要看的50部电影 [ZT]

    一生要做的99件事    1.重回童年居住的地方   2.珍藏一件凝聚情感的物品   3.倾听大自然的声音   4.拜访你的恩师   5.大声说出你的爱   6.凭吊古战场,感受苍凉和悲壮   7.每3至5年写一个小自传   8.亲手播种、收割一次   9.找到真正的友谊   10.追寻你生命中的导师   11.体验另一种生活——在乡间居住数日,享受田园风光   12.为自己种一棵树——让

Getting Things Done 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

chatgpt可以帮做42件事,总有一个适合你

我正在「Gochat:探索go语言和chatgpt」和朋友们讨论有趣的话题,你⼀起来吧?chatgpt可以帮做42件事,总有一个适合你。

soft2967的专栏 252

这20件事千万不要对自己做!

美国社会心理学家费斯汀格有一个很出名的行为理论,被人们称为“费斯汀格法则”: 生活中的10%是由发生在你身上的事情组成,而另外的90%则是由你对所发生的事情如何反应所决定。 换言之,倘若你做错1件事,你就可能需要做9件事去弥补它,追着错误跑你会越错越远。 如果想要改变自己,就请永远不要对自己做以下20件事: 1. 不要和烂人烂事纠缠 周国平说,人生要有不较劲的智慧。常与同好争高下,不...

东皋长歌的专栏 299

DayDayUp:人生必做的100件事,那么,你完成多少了呢?

DayDayUp:人生必做的100件事,那么,你完成多少呢? 导读:二十弱冠,三十而立,四十不惑,五十知天命,六十花甲子,七十古来稀,八十为耄耋之年。人生必做的100件事,你完成多少了? 目录 人生必做的100件事,那么,你完成多少呢? 人生必做的100件事,那么,你完成多少呢? ...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 8684

10件你首先要做的事

 10件你首先要做的事

xueshanzhisheng的专栏 355

干货|面试结束后应该做的5件事

在职场上,我们经常在面试前做许多准备,其实除此之外,面试之后有时也很重要,今天播妞为大家分享,面试结束后应该做的5件事,希望给大家有所帮助~面试结束后,切忌立刻打听结果人都有好奇心,越是...

传智播客的专栏 1937

一生要做的99件事、要看的50部电影

一生要做的99件事、要看的50部电影  原始出处: 高仕登留网    一生要做的99件事         1.重回童年居住的地方   2.珍藏一件凝聚情感的物品   3.倾听大自然的声音   4.拜访你的恩师   5.大声说出你的爱   6.凭吊古战场,感受苍凉和悲壮   7.每3至5年写一个小自传   8.亲手播种、收割一次   9.找到真正的友谊   10.追寻你生命中的导师   11.体验另

731

程序员应该知道的97件事

程序员应该知道的97件事 ISBN: 9787121117565 作者:Kevlin Henney 译者:李军 译 / 吕骏 审校 推荐指数: ★★★★★ 阅读时间: 2016-04-24 上星期拿了三本书来看,其中一本就是《程序员应该知道的97件事》。 大概通读了一遍里面有73位著名的人物,分别写了97件事。 每个人都有自己总结的一句话,对于程序员们确实很实用。 这里面的人物在程序员这一职业中有工作20年以上的经历,有自己开公司的也有是博士、教授的。 若能认真遵守这97件建议,我想你应该是一个了不起的

Jack魏 2167
上一篇: Nacos 2.1.1 正式发布,真心强!
下一篇: MyBatis多条件查询、动态SQL、多表操作、注解开发详细教程
公众号-芋道源码
博客等级 码龄10年 1628粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值