坏代码长什么样

坏代码长什么样

起因

最近上了一个项目,所在的一个组里,初级开发比较多。 加上项目的本身特殊性,于是就烂代码一堆。

最近做了新的小feature,从一个二十号的大组里分出了五六个开发来做。

我呢, 是另一个组里调过来的。

大组

刚进新组的第一天,问了做feature的几个人,组里都有哪些成员,发现没有一个人能够认识全,大家说好多人都不认识。

导致:

  • 每天开「僵尸站会」,其他人说的我压根不关心,我说的其他人不关心。

  • 没有归属感,做一个feature的成员之间,没有信任感,也压根没有默契。

  • 做的东西杂,没有机会去focus在一个特定的feature上,通常是今天做一张一个feature的卡,过两天另一个featrue紧急,又被拉去做另一个feature了。

  • 心累。 频繁的上下文切换,对于新人来说压力很大,刚刚熟悉了一个上下文,又被拉到另一个陌生的上下文里。

复杂的代码仓库

在业界通用的微服务架构模式下,产生了很多的代码仓库。

多个团队修改同一个代码库,通常是第一个release是A公司的团队做,第二个release变成了B公司的团队做,之后又有C公司、D公司。

经历过这么一波后,刚开始写代码的人都已经不认识了。

中间有什么功能也不知道,接到的就是一盆屎。

测试呢: 早就挂掉了,pipeline已经没有test那个阶段了。恐怖的是有些仓库的代码测试编译就不会通过。

破窗效应就来了。

接下来,没有人去修这个巨大的破窗,窗户只会越破越大,最后项目烂掉,没人敢动。

距离黄的目标不远了。

紧急的release

客户

这个功能,我两周之后要上线。

PM

好的,我先从别的组里调一些人来做。

紧急的release,大家时间都很紧迫,如果没人强烈意识到code review的重要性,那么code review,往往是被割的那个活动。

大家在时间很紧,且没有code review的情况下,代码质量的保证,只能看个人对自己的要求了。

由于前面的「复杂的代码仓库」于是会加剧破窗效应。

坏代码

好了回归主题, 前边聊了坏代码为什么产生。

我个人总结了以下几个方面:

  • 写代码的人的水平一般。水平是指代码水平。
  • 平时对自己的代码要求低,得过且过。
  • 思考少。平时写代码fellow别人的规则,没有去想为什么这样。换了一个项目,突然之间没有规则了,好代码就不知道怎么写了。

例子

当你去问一个人问题的时候,如果他能把问题讲清楚,那么他大概率是理解的。

对应到代码上,如果他能够将代码每一行讲清楚,那么我觉得他的代码大概率是没问题的。

  • 这段代码我也不知道什么意思,我就加了一个字段。
  • 这段代码我是抄的,我也不知道原来那里为什么要那样写。

通常这么说,大概率他压根没有理解代码,写出来的代码大概率是有问题的。

前端

对应到前端上,如果这个人的前端水平一般,并且没有写好代码的习惯,那么恭喜你接了一个「坑」

  • this 透传,之后又传回来。
    • 传了几层之后压根记不住呀。
  • 抽象层次太高,文档跟不上。
    • 过高的抽象层次,必然会引入很多规则,然后fellow这个规则。如果没有文档,那就JJ
    • 如果放后端我觉得还好,放JS的代码里,那就酸爽了。

前后端分离开发

有点「伪敏捷」了。(敏捷里讲究全功能团队)

前后端两个人分别开发。人生第一次,由于没人会做前端,只能我来了。

前后端分离的问题

要说问题, 第一个当属「扯皮」。

一个功能是放前端做还是后端做,「要扯」。。

如果一个人做,那就是我觉得放哪里合适就放哪里。

消费方(前端)和提供方(后端)契约定义

消费方想要我用起来最简单的,提供方又想提供我最小effort能够实现的。

于是就出现奇葩的现象,后端就不改。前端你自己去做处理。BFF是不是为此而生呀

posted @ 2020-09-22 22:04  Bluto  阅读(262)  评论(0编辑  收藏  举报