• 坏代码长什么样


    坏代码长什么样

    起因

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

    最近做了新的小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是不是为此而生呀

  • 相关阅读:
    mysql执行顺序及习题
    多表查询
    PyQt5-03-信号与槽
    PyQt5-01-安装及简单例子
    252.anaconda升级版本
    251.anaconda下载资源包慢
    250.anaconda+vscode
    61.基础语法-函数式编程
    60.基础语法-异常的处理
    59.语法基础-包
  • 原文地址:https://www.cnblogs.com/qulianqing/p/13715194.html
Copyright © 2020-2023  润新知