不知不觉间已经一个多月过去了,就随便聊一聊这个月都做了什么吧。

放假的时候以为寒假也就一个多月的时间,哪知道一直在家里呆到了 5 月 5 号才回校。

说实话,一开始在家里呆着的时候总是想着快点回学校(体验高速宽带),真的要回校时候才发现,原来在家里呆着也是挺舒服的。

然后到了学校又不知不觉间一个多月过去了,也不知道自己到底干了啥子。上网课也没有那木认真的,一直在划水。哎,还有科目需要预习呢。

最近发生的比较重要的事情就是社团换届了吧。基本流程就是让我们填一下申请的职位,我掂量了一下自己似乎没啥子可以拿出手的东西(看到学长做的东西,觉得自己水水水)。

但另一方面我确实没有参与到一些社团项目的开发,或许是因为自己水平不够吧,这方面的经验还是太少。

不够另一个值得一提的就是,我在另一个社团需要对一个 app 进行重构。

其实,这个重构计划还是我一直在提的。因为,我拿到 app 的代码之后才发现里面真的是一团糟。

你可以想一下,一个 5 年前的东西,经过了多少人的手,还有就是许多被淘汰的代码居然还没有删除,依旧保留着,还包括资源文件,xml 文件。

更新界面的方法就是新建一个 xml 文件,把旧的就放在哪里。

这也就算了,但是一些 xml 文件是可以重用的,但是却没有。这样也就算了,但是居然不是复制粘贴过来的,导致界面行为有问题。我也是醉了。

还有就是关于代码方面的问题,因为 tmd 根本就没有文档。所以,我还是花了挺长时间去研究一些究竟做了什么东西。

到了后面才发现代码估计是写 high 了,许多冗余代码,对 api 的请求是直接写 UI 类里面的。之前封装好的都丢弃不用了吗?

好吧,说句公道话,这个 app 在几年前应该是很火的,因为代码里面有许多被抛弃的功能(但是还没有被删掉)。

我也可以想象,最初写这个 app 的代码结构一开始是很整洁清楚的,从遗留在 15 年的注释可以看出来。

只不过代码传了几届后越来越乱了。现在轮到我们来在屎山上舞蹈。

重构的想法

我一开始是打算用 java 进行重构,这样可以统一一下语言(现在 kotlin 占据大部分)。

重构的想法很简单,就是在理解源代码的基础上把一些基础的能用的直接复制过来,然后去除那些无用的代码和注释等其它。

我提出后,学长表示他们也考虑过重构,不过是使用 flutter。

What? flutter 是什么???一时间陷入知识的盲区。

不过我们有谷歌,复制粘贴。

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single odebase.

原来 flutter 是用来写 UI 的,不过我从一开始是有些抵触的,因为又要学习新的技术或者语言了。(从我选择使用 java 而不是 kotlin 也可以看出来)。

这意味着我需要投入额外的时间和精力去做别的事情。

尽管这样,我还是花了时间去了解一些 flutter,以及 flutter 在国内的现状。似乎 flutter 在国内挺火的,咸鱼已经用上了 flutter,还开源了 fish_redux。

于是,我又花了一些时间去了解一下dart语法,这里不得不说dartlanguage tour还是做得挺好的。

基本上看过一遍就能对dart有关总体的印象,简言之就是上手特别快。

所以说语言还是挺其次的。

重构的准备

为了这次重构我也是挺拼的,特地使用社团的接口来踩踩坑,当然了我还因为爬接口被教育了一顿。

不过 flutter 带给我的感觉确实很棒棒,肝了一个星期写出来一个雏形。这效率对我来说完全是 amazing 嘛。

如果是 java 说不定我还在折腾 xml 文件呢。

不过坑还是有的,此外,加上第一次确实没有经验,代码写的也是乱七八糟的,没有一个清晰的架构。

不过好在让我对 flutter 有了信心,重构这个 app 完全不在话下。

重构的行动

本来打算和社员一起进行代码的重构的,但是奈何社员一个二个带有鸽子属性,我也没有办法啊。

我应该是五月 25 号开始写代码的。在这之前我还因为发热被隔离许多天。

之后整天就有了事情可以做了,也因此游戏玩得更少了,也就不去想一些乱七八糟的东西了。

整体就是做的事情就是写代码,查文档,调试。然后吐槽调试的时候变量又不显示了,还有就是巨慢无比的代码补全。

这个代码补全啊,就是你输入一个if都能卡半天的那种,这在jetbrain家 IDE 就不会卡。

因为这个严重影响到了我的效率,想一些输入一个if卡你半天你会是什么感受?

不过,我居然忍受了,因此没有代码补全我根本啥也做不了。

那木为何不使用AS呢?主要是因为我不熟悉 AS 的键位,vscode用多了,还有就是AS太笨重了,没有vscode快速的启动速度,因为我需要同时打开许多个vscode来参考别人写的代码。

这次重构目前是只有我一个人在写,因为组员们都是鸽子。

也因此,写的代码恐怕有些放开了。在重构的过程中又对代码进行了小范围的重构。

API 接口

这里不得不吐槽一下后台给的接口。文档算是又,但是许多地方描述的不清不楚的也没有实例数据。

搞得我只能一个一个去试,同时还得考虑到出错情况下数据是什么格式。

但是这些并不是什么大问题,最最难受就是接口经常超时,虽然是学校的锅,但是......

好吧,这些根源还是我们太穷了导致的。

关于 UI

App 是有 UI 设计图的,但是我为了方便就直接按照原版的 UI 来画。但是后面发现和设计图上有很大的出入。好吧无所谓了,太丑了。

此外就是,一些 UI 对我来说用 flutter 太难实现了,因为这个 UI 效果 flutter 并没有提供实现。

有点晚了,后面再找个时间说一说 flutter 踩的坑。

END

Last modification:June 8th, 2020 at 01:39 am
要饭啦~