其他分享
首页 > 其他分享> > 关于最近烦闷的工作

关于最近烦闷的工作

作者:互联网

关于恶心人的屎山代码

最近在维护公司以前的代码,准确来说应该是重构,之前看这个项目的时候我还以为这玩意儿应该至少是7,8年前的代码了,然后看了一下 SVN(忽略为什么现在这公司在用 SVN,我也不知道呵呵).

呵呵,大部分的代码都是 2019 年的代码,我实在不能够想到 2019 年能将代码写成那个样子。

2019年,C# 8 也已经发布了吧(先忽略,我为什么又跑去写 C# 了),实在搞不能够为什么代码能够写成那个样子。

下面列举一下我个人举的非常恶心的地方,欢迎各位对号入座,包括我自己(因为我已经开始摆烂了)。

这是之前的代码恶心的地方,那么现在来说说问什么现在的代码一样让我感到烦躁。

首先项目是个门户网站,也就是说这些数据很少做更改,更多的是对已有的数据做一个聚合展示的作用,也就是说读很多,但是写很少。写操作永远只会在管理后台进行。
业务逻辑根本是不复杂的,或者说根本没啥也无逻辑(有什么业务逻辑呢?)。这个是项目背景,也就是解释,为接下来的吐槽做一个铺垫。

然后现在的代码设计要求是,对于部分表的数据都做一个缓存,然后对一些聚合的查询做一些缓存(直接放到 redis 中)。我们肯定知道是吧,知道用到缓存就一定存在
怎么处理缓存一致性的问题,而这也是一个恶心的问题,如果能够不处理这个问题,那么当然是不处理得好。对部分表的数据做缓存不是不行,可是这不是将事情复杂化了
么。我的想法是直接缓存页面数据,URL 作为 Key,设置一个过期时间,根本就不需要考虑缓存一致性的问题,用实时性换响应速度,然而这个问题很大吗?

而且比他这样做表数据的缓存要快得多,一次 Redis 请求和多次 Redis 请求谁快?而且更加简单。

而且就算按他的想法来,代码设计也有问题啊。如果按他的想法(或者说明确指定),那么有两个缓存层级,一个是表(或者你叫他领域对象,不过我羞于启齿),一个
是聚合查询的方法,而实际代码的编写又将他们混在了一起,也就是说在一个相同的层级上有的方法用了缓存,而有的没有。

这样子一个问题是可能不一致(现在想象好像也不是什么大问题,不一致也没什么问题),再就是很丑。

这个是代码让我不喜欢,在一个就是现在这个工作基本上就是我一个人在做。其他人他们都有其他的项目,也都不想碰这个项目,于是这个大责任自然也就来到了我这个新人
手里。呵呵哒。

而已我到现在也没梳理清楚原来的代码怎么搬到现在这里来,一个是原来的项目我是实在没搞懂他是怎么正常跑起来的?再一个就是这个新的重构项目他们创建的模型(我更宁
愿称之为表)我没法直接对应到原来对应的 SQL 查询上面去。

关于原来那个狗屎项目的表设计又是一个值得吐槽的地方,然而已经很晚了,就此打住。

标签:缓存,烦闷,一个,代码,项目,恶心,最近,关于,方法
来源: https://www.cnblogs.com/freesfu/p/16651592.html