优劣重要,还是标准重要No.186

2024-05-15 08:18
文章标签 重要 标准 优劣 no.186

本文主要是介绍优劣重要,还是标准重要No.186,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

社区还是公司里,经常会有人讨论,A实践比B实践好。比如下面这样的讨论。

A:我用 Go+Go-xorm+Grpc+Gorouting 搭建框架,开发效率非常高,真的超好我跟你讲。balabala

B:我用 Spring

A:我跟你讲,SVN 的代码一致性最好,所有人的代码都是一样的,真的超好我跟你讲。balabala

B:我用 Git

A:我跟你讲,我用 JMI 协议和Dubbo协议,用得超舒服我跟你讲。balabala

B:我用 Grpc

于是就引发了一个问题,究竟某一些技术在某一些场景某些团队里面,孰优孰劣,经常是争得死去活来。孰优孰劣,真的那么重要吗?在一个集体里面,永远使用最佳的实践,与大家尽量使用一个统一但是可能没那么好的实践,哪个更有利于团队?

我们都知道技术栈统一的重要性,如果一些人总是急着自己造轮子,每个人都搞出一套自以为是最佳实践的套路,这样对于团队来说是好是坏?我觉得某种程度上来说,是一件好事,可以让团队里的人提高自己的见识,知道在自己的做法之外其实还有其他做法,也在实现着一样的目标。但是如果团队的其他人并不认可这种新的做法,那又怎么办呢?

我的答案是,在大规模协作里,统一比优劣重要。

我们都知道 HTTP 协议存在着大量的问题,比如显而易见的安全问题。

通信使用明文(不加密),内容可能会被窃听 
不验证通信方的身份,因此有可能遭遇伪装 
无法证明报文的完整性,所以有可能已遭篡改

如果我创造了一种新协议,叫 dajiao.HTTP 协议,在 http 的基础上解决了上面的问题,可以说我的协议比 http 更加优秀,全世界人民,都应该使用这个协议吗?显然是不可能的。你还觉得优劣比统一重要吗?

众所周知,HTTP 协议被诟病的还有 head 很重的问题,如果在超大规模集群里,我需要压缩每个请求的量,我自己创造了一种  mini.dajiao.http,整个请求的网络传输量只有 HTTP 的 10%,可以说我的协议比 HTTP 更加优秀,大家都用我这个协议吗?显然,在一定程度的团队内是可行的,但是要推广到全世界,抱歉,你还得付出比你预想要更加巨大的代价。

还是回到 mini.dajiao.http 的问题,在一定程度的团队内,在工具不完善的情况下,所有人跟你的系统交互,都要理解你第一个字节代表什么,第二个字节代表什么,要背诵下来,每次对接都要小心翼翼,对接一个接口可能需要花掉2个工程师10天的工作。在这个场景下,你还觉得你的协议比较好使吗?

我理解每一种方案都有它适应的地方,单纯讨论孰优孰劣,意义其实仅仅在于学术讨论阶段。到了大规模协作实战层面,谁能把一种方案做到大规模统一,就算它比其他方案要差一点点,必然是做了某些 trade-off,只要是统一的,就是好的。

因为毕竟,只要统一了,就可以投入更多更多的精力,对它进行重点优化了,会出现很多的周边工具,出现很多的配套设施,出现更加完善的文档,出现更加完善的兼容性设计。到最后,未必比你以为的好方案,表现更差。

一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝。扁担的设计就是一个人一组效率最高,标准做法就是一个人挑两桶水,非要来个人说,两个人挑那就是 1/2,一百个人挑每个人就是 1/100,更省力了,必然更好。

你品,你细品。

这篇关于优劣重要,还是标准重要No.186的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991294

相关文章

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

图像处理相关的重要期刊汇总

期刊名称 Impact factor/收录 Image and Vision Computing   (IVC) 1.474 Pattern Recognition Letters 1.303 Artificial Intelligence 3.036 Computer Aided Geometric Design 1.33 Compute

C++11 标准库头文件模拟实现

系列文章目录 文章目录 系列文章目录前言● 智能指针模板● Vector1. 简单版本2. X 总结 前言 暂不考虑支持多线程 常用STL的简单实现,主要内容百行左右完成,意在理解STL的原理 ● 智能指针模板 SharedPtr #include <assert.h>#include <atomic>template <class T>class S

SuiNS发布子名及新命名标准,推动Web3身份结构的进步

SuiNS子名是Sui Name Service的强大扩展,最近与新命名标准一起发布。子名允许用户在一个主要的SuiNS名下创建额外的自定义身份,而无需额外费用。用户 @gia 可以创建如 gaming@gia 或 lending@gia 这样的子名,从而增强个人组织和支持群组与组织的层级结构。 这一发展对于个人和企业都具有重要意义。通过子名,公司、DAO和其他组织可以为其用户或员工发放品牌账户

「Python标准库:fileinput」优雅的读取文件

每当我写个脚本涉及文件输入时,一般写法都是下面这种 import sysfile_in = sys.argv[1]for line in open(file_in, 'r'):commands 这个操作有一个缺点就是,如果我想从管道里面传入数据给Python的话,就会报错,因为原代码要求文件而不是标准输入。 这个问题可以通过Python的一个标准库: fileinput进行解决。 imp

Java中的标准注解与数据校验:深入解析与实例

目录 Java中的标准注解与数据校验:深入解析与实例1. 基础校验注解`@NonNull``@NotBlank``@Size` 2. 数值校验注解`@Min` & `@Max``@Positive` & `@Negative` 3. 枚举与模式匹配自定义注解示例(概念性展示) 4. 自定义校验逻辑结论 Java中的标准注解与数据校验:深入解析与实例 在Java开发中,注解(An

Lucene的一个简单的标准测试(Lucene包基于3.5版本的)

Lucene编程一般分为:索引、分词、搜索 索引源代码: package lucene的一个标准测试;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;

20240623(26.0) 重要财经新闻

财经关注 ► 券商中国:北交所于6月21日晚间受理了3家企业的IPO申请。6月20日晚间,沪深交易所各受理了1家IPO申请。这也意味着,三大交易所IPO受理全部恢复。与此同时,三大交易所IPO上市委会议也已经全部重启。 ► 全球多地近期遭遇高温酷暑,持续高温天气导致来自约10个国家超过1000人在朝觐期间死亡,其中大部分人来自埃及。  宏观经济  1、6月22日,视频调度湖

音视频开发29 FFmpeg 音频编码- 流程以及重要API,该章节使用AAC编码说明

此章节的一些参数,需要先掌握aac的一些基本知识:​​​​​​aac音视频开发13 FFmpeg 音频 --- 常用音频格式AAC,AAC编码器, AAC ADTS格式 。_ffmpeg aac data数据格式-CSDN博客 目的: 从本地⽂件读取PCM数据进⾏AAC格式编码,然后将编码后的AAC数据存储到本地⽂件。 流程: 关键函数说明: avcodec_fin