阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

避免非黑即白的思维模式

  • 2020-03-17
  • 本文字数:1505 字

    阅读完需:约 5 分钟

避免非黑即白的思维模式

这篇的内容实际是在 10 月份团队月会中跟团队成员分享的一些感受和理解,但是没有组织成文,年终总结回顾时我觉得还是写出来,因为平时遇到了太多的类似的思维模式上的问题,其实稍稍一转就可以把事情做的更好,单纯的从技术层面去解决问题往往还是太过局限和片面。

举个例子

举个实际案例,我们做运维的套路,第一步就是先定标准和规范,我们定了资源标准、网络标准、应用标准、DB 标准、架构标准等等一系列的标准和规范,然后就是基于这一套的标准去做相应的自动化平台开发,平台开发出来再去推广落地,以解脱对人和人力的依赖和消耗,提升效率,减少人为故障等等。这个过程中,就要求每个研发团队在开发过程中就要必须遵守我们的标准和规范,要做出一定的调整。


以上是理想中的状态,但是现实情况是,线上应用类型特点五花八门,个性化的东西非常多,比如有状态和无状态的,在线的和离线的、接入层的和后端服务的,分布式的和单体的,语言特性上,有 Java、C++、PHP、Go、Python。这一点也倒像是我们现在现在技术的发展趋势,百花齐放,纷繁复杂但又个性十足。


这时就会出现几个问题:


1、这么多特性的东西,即使做了标准化,也总会有个性化和特例的 Case 出来,那我们做标准化是否还有意义?


2、做了这些标准,那我们是不是应该先把所有的情况都梳理清楚,然后做个大而全的标准体系出来,然后再去做平台?


3、这么多的业务和应用,我们做了标准化,推进起来太累了,要一个个沟通过去,特别是遇到不遵守规则的团队和同学,我们做这个本来是要节省工作量的,没想到第一步就这么累。


这篇先来谈谈第一个问题:

避免非白即黑的思维模式

我们定了标准和规则,但是总会有人不遵守,浪费我们的时间去处理这些特例,那我们做这个事情岂不是也没 100%解决问题,那既然解决不了问题还做它干嘛?不管是之前的团队还是当前的团队,我发现有这种想法的同学不在少数,尝尝因为一个点上的问题纠结起来,认为既然做不到 100%或者哪怕只有一个特例,那么这件事情也没有意义,所以事情直接就不做或持抵触情绪,而且还经常成为这些同学做不好事情的理由和接口。


这就是比较典型的非黑即白的思维。


我先不说怎么解决好,我们逆向思考一下,举个形象的例子,每个国家都制定了非常严格的法律法规,特别是美国,他的法律相当完善了吧,但是刑事犯罪杜绝了吗?酒驾杜绝了吗?贪污受贿杜绝了吗?答案是,没有。如果是按照上面的思路去做事情,既然不能解决所有问题,那我是不是可以就不用制定法律?再假想一下,一个没有法律和规矩约束的社会和国家会是一个什么样子,是不是恐怖地无法想象。


所以,回到我们的现实情况中来,标准化可能是无法解决或避免所有问题,但是如果要是没有,那线上的应用的部署、发布、监控等等将会是一片混乱,无法管理。

跨越障碍,把事情做来最重要

所以,首先这里要说的就是这种非黑即白的思路一定要避免,一定要打破,不然事情肯定就卡在这一步上了。然后再往下做,怎么做呢?可能说的比较 high 了,就是 2/8 原则,抓主要矛盾,比如我们电商的业务,主要就是交易链路这条主业务线,跟钱相关的,这套体系的架构必定是统一的,那就从这里入手,先把交易链路的应用标准化掉,而且必须统一,基于此再进行自动化平台、持续集成和发布、监控、稳定性的建设。这一块的问题解决差不多了,其实 80%的问题就解决了,运维的工作量和压力就大大下降了,这时再空余出来的精力就可以往其它还未标准化的应用和业务上延伸。


而且事情一旦动手做起来,找到了套路和节奏,再往后做就会越做越顺,所以跨越非黑即白的思维障碍,第一步抓准重点把事情做起来才是最重要的。


本文转载自成哥的世界公众号。


原文链接:https://mp.weixin.qq.com/s/xH65oB5QU4M82m9LhUgsMw


2020-03-17 22:10745

评论

发布
暂无评论
发现更多内容

Python代码阅读(第53篇):字符串重复拼接

Felix

Python Code 字符串 阅读代码 Python初学者

BindService的生命周期分析【我读源码你不读,我吃螃蟹你吃土

android 程序员 移动开发

kubernetes系列随笔02:docker技术原理

谦寻

Docker Kubernetes 容器

DialogFragment探索与实现(1),2021年是做安卓开发人员的绝佳时机

android 程序员 移动开发

测试用例又双叒叕失败了,NLP帮你来分析

华为云开发者联盟

软件 测试 nlp 测试用例

架构训练营模块七作业-王者荣耀商城异地多活架构设计

李焕之

Flutter 2(1),字节跳动高工面试

android 移动开发

cmake使用教程(三)-安装,程序员去大公司面试

android 程序员 移动开发

Python爬虫私活,代码公开!采集了20000+漫展历史数据,一言不合就开源

梦想橡皮擦

11月日更

Context都没弄明白,还怎么做Android开发?,靠着这份面试题跟答案

android 程序员 移动开发

cmake使用教程(三)-安装(1),kotlin入门项目

android 程序员 移动开发

cmake使用教程(九)-关于安卓的交叉编译,腾讯&字节&爱奇艺&网易&华为实习面试汇总

android 程序员 移动开发

Code Review&编程习惯,安卓工程师面试题

android 程序员 移动开发

王者荣耀商城异地多活架构设计

缘分呐

架构设计

esp8266~lwip突破MTU最大1500限制,apt编译时期自动生成代码&动态类加载

android 程序员 移动开发

Flutter 2,面试官问的那些Android原理你都懂吗

android 程序员 移动开发

CountDownLatch 源码分析示例,《Android面试题及解析》分享给大家

android 程序员 移动开发

Dagger2入门系列一:基础使用,从基础到源码统统帮你搞定

android 程序员 移动开发

Canvas加动画,实现火柴人跳绳效果,2021Android开发面试解答

android 程序员 移动开发

cmake使用教程(一)-起步,移动应用开发就业

android 程序员 移动开发

Code Review&编程习惯(1),安卓网络通信开发

android 程序员 移动开发

FFmpeg之OpenGL绘制与Native Window绘制(五),安卓面试题及答案2020百度

android 程序员 移动开发

Flutter 1,基于h5框架的移动app开发

android 程序员 移动开发

BottomSheetDialog 使用详解,设置圆角、固定高度,移动开发工程师

android 程序员 移动开发

云小课|大数据时代的隐私利器-GaussDB(DWS)数据脱敏

华为云开发者联盟

EI智能体 DWS数据脱敏 数据仓库服务GaussDB(DWS)

Coroutine 基本原理,吃透这份阿里P8纯手打Android面经

android 程序员 移动开发

DialogFragment探索与实现,android高级工程师面试题

android 程序员 移动开发

模块七:王者荣耀商城异地多活架构设计

apple

BindService的生命周期分析【我读源码你不读,我吃螃蟹你吃土(1)

android 程序员 移动开发

CAS机制详解,android开发基础知识点

android 程序员 移动开发

Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料

android 程序员 移动开发

避免非黑即白的思维模式_行业深度_成哥的世界_InfoQ精选文章