theme: cyanosis
# 前言
前面读过《矛盾论》让我很是震惊,里面思考的深度以及高度,其实是一种启发,在我们日常生活中对问题的思考有了指引的方向。那么今天我来聊聊对于《实践论》的读书感受,今晚公司团建,打了一把篮球🏀,回家修了几个bug,想想灵感来了,还是跟大家聊会~
我觉得哲学不是让人高高在上,而是可以通过哲学达到解脱的目的。正所谓,人生万般苦难,都需自渡
# 《实践论》
《实践论》是什么?目的又是什么?
《实践论》讲诉的是人的认知过程,从有个大概印象,到有概念出现,再到深入了解规律。这本书的目的书中也有谈到,是为了抨击当时的教条主义、经验主义。
认知的过程
人是怎么产生认知的?
想一想,比如我们小时候看到一个玩具,上去就是摸一下,很好玩,手感很好,哈哈哈。然后忽然玩具叫了下,然后小孩子一般就会哭,这也是第一次感受。如果遇到仙人掌🌵,摸一下,我去,真要命,那么这时我们对一个东西有了初步感性的认识。
下一个层次是概念,我们会开始对东西有一个概念,这叫仙人掌,它有刺,摸到会很痛。会对一系列感知进行归类,然后产生一个结论。
再下一层次是判断、推理。举个栗子🌰,吃起来会甜的,小时候定义为糖,那么像甘蔗这种植物也会甜,是不是里面包含所谓的糖的元素?这时我们进行一系列的推理、判断,通过以往的经验进行逻辑推理。
所以我们可以看到,人的认知是从感性的认识->概念->推理
知行合一
知道这是谁的主旨吗?没错,王阳明~
我在之前也读过他的唯心论,浅浅一看,书中辩论着知道与做到的前后关系,以及他们之后的因果。
知行合一,为啥知道总是做不到?
抖音很火的张三律师说过:人最大痛苦就是从知道到做到。
知行合一其实不是知道就做到的意思,这个理念跟《实践论》一样,讲诉的是人的认知过程,当我们去做了,然后会得到一些知识,然后通过这些知识去反哺到我们的行动,周而复始,我们对一个东西的认识就加深了。
那么在这个过程,做是因,知是果呢?从表面上看是这样,但是知行合一强调的是一个整体。
听起来很难理解,其实是因为站的角度不一样,比如我说一句:你真是个大聪明,当你做了件牛逼的事,你会觉得在夸你。当你搞砸了一件事,会觉得是在骂人。
知行合一的理解
它讲述的不是一种因果关系,而是一种认知进化的方法,为啥提出这个?其实在同个时代还有个格物致知的唯物主义,也是在研究人对事物的认知。
那这就没有毛病了,这确实是在你认知过程中,对认知加深对过程,我们知道的东西,需要通过实践来验证,如果有所偏差,那么对知识进行修整,然后再继续进行下一次的实践,一次又一次,这样你对一个事物的理解会大大的加深。
# 《实践论》实践
背景
在对于一些技术方案的看法,我们经常会提出自己心里理想的模型,然后想要去实现,但是会忽略了现实的情况。
比如说cicd项目,大家都知道吧,就是代码构建,容器部署一条龙服务。如果我们见过成熟的方案,自然会说我们应该怎么怎么做。但是实际上我们公司推了很久很久,见效比较少的。
why?
通过我对很多项目的了解,我大概摸清了很多大佬的做法,就是摸着石头过河,当然这也是正常情况,比如说项目初期为了把项目存活下来,其实是一股脑的把它做成,而不是它应该怎么做的问题。然后再是遇到什么问题,然后慢慢修改,如果遇到大的问题,就大修,有些还趴窝。【知】
我们也有做过一个cicd的项目,最后其实还是没有达到理想状态,因为我们一开始就还是摸着石头过河那种,很大的原因是整个发布流程还没有稳定,我们就开始搞这个项目,这是个前置的工作。【行】
接下来我觉得要拆分步骤去实现:沉淀稳定的发布流程->cicd整体技术方案调研->设计->开发 【知】
技术方案的调研很重要,我见的成熟方案是通过工单将各个角色串联起来,这才是一个平台。大家了解流水线吧,一环接一环,pipeline。
这个pipeline长什么样子? 首先是项目+代码+分支+功能描述,然后对应sql、nacos、mq配置,提交之后,到了下一个环节,这些配置的执行,然后是代码分支合并还有构建,再到容器部署,测试、研发leader、产品在里面充当review代码、合并代码、测试、验收的角色,在这条流水线上运作。
再到落地实践 【行】
# 摸石头过河的缺陷
在人的认知过程中,我能理解这是人初次认识的阶段,这时经验凸显出优势了。
在最近做的一个项目里头,我很明显感知到这个缺陷。我们会有很多订单的平台,每种业务都不一样嘛,然后忽然大佬说要搞个类似整合的平台,我仔细看了相应的设计,我明白牵头的人还没想好这个平台究竟是要做成什么样子。
这种情况是正常的,一开始很多业务类型,然后会出现n多平台,操作开始复杂起来的时候,就会进行整合简化,但是我在跟相关人交流的时候发现,他们的思想还停留在拆分的情况,就是把当前的整合平台当成另外一个订单平台,我去这岂不是n+1个平台。
我之前做过微商城项目,一开始他们很明确,数据库有个店铺租户,我就要一个平台,多个店铺,每个店铺还会有不同逻辑。我认为这才是一种经验,就是在行的基础上一种知,去做实践。
再举另外一个栗子🌰
我做的一个平台,一开始也是拼命搞业务,对我来说洒洒水,业务也没啥问题,但是当 业务开始复杂起来之后发现,卧槽,居然有模块的概念,然后之后很多字段在不同表都不一样命名。这也是认知中,初期的阶段
# 站在巨人身上的优势
我一直感受到这种力量,就是你见过一种成熟的产品,跟一种摸着石头过河的产品对比,效果太明显了。这种情况是我们吸取别人的认知,然后根据实际情况进行行动,并且做修正。
用过阿里鹰眼都同学都知道里头有个慢查询吧,但是我们自研的框架就没有整进去,你想想开发除了看报错,最重要的优化是啥,就是慢查询,好家伙,居然没有。有次我跟老大聊的时候提了一嘴,我听到一个有意思的东西,就是其他平台执行的sql无法监控到。确实啊,既然做sql的监控,那么它应该是个比较全面的,或者说可以分几期的实现,一期apm sql查询时间,二期yearming sql执行。。。
有些好的想法是成熟的产品给的,但是实际落地还需要考虑其他方面