入职以来,手上的laravel项目已经开发了两个多月,随着版本的更替,项目里存在了3个版本的代码:初始版、v1、v2。
对于laravel项目来说,对于代码,大概分为四大部分:模型、控制器、前端、数据库迁移表。版本的更替,是由于前后端分离,将前端摘离出去后,剩余的三部分代码由我完成。
项目开发过程中,后端的三部分代码一直只有一分,也就是说v1逻辑代码会覆盖之前的初始版,而v2会覆盖v1,这是由于前一版本代码肯定不会重用这一确定性。而对于前端部分代码,则是按版本建立了v1、v2两个静态页面的文件夹。
而我在绑数据的时候,怕需要用到前一版本的绑定过数据的前端代码,以及前端程序员也在同时修改,为了不产生冲突,我的做法是不直接引用v1、v2文件夹下的代码,而是将文件复制一份出来,放到项目需要的地方,不破坏前端代码的完整性。
这样,我的后端代码中出现了三个版本的前端代码。此时问题就出现了。
一、命名
我之前一直觉得自己的命名习惯还可以,但是现在看来确实大有问题。
初始版前端代码我命名为_origin_xxx.blade.php
v1版代码命名为xxx_v1.blade.php
v2版代码命名xxx_v2.blade.php
三个版本的命名格式不统一。
二、存在过多版本文件。
这导致每次控制器返回页面的时候,我需要去控制器修改。
举例子来说,比如首页文件,按之前的做法是有三个index页面,其命名与控制器返回的语句分别为
_origin_index、 return view('_origin_index');
index_v1、 return view('index_v1');
index_v2、 return view('index_v2');
这样的做法导致我每次换代码,都要去找对应控制器的逻辑,完成版本更新,项目文件数量多起来以,着实是费时费力。
解决办法:
更好的做法是使用固定的页面文件,更改其中的代码,而不是指向新的文件。
还是接上面的例子,首页文件就叫index.blade.php。同样是从静态前端代码中copy,不是新建一个后缀为vx的版本文件,而是直接覆盖到index这个页面文件中,这样就省去了去控制器找逻辑的时间和精力,且项目结构看起来更清晰。而如果需要保留之前的代码,复制一个新的文件就可以了。而对于某些落后版本比较多的文件,完全可以直接删除。
对vue的components部分也是一样,保留固定的线上使用的版本,其余代码整理到完全不相干的其他目录中,保持项目清晰,提升工作效率。也方便与前端同事的交流。
之前由于我的问题导致前端同事在看代码时需要经常询问我他的代码被绑到哪里去了。
经过整理,项目结构更加清晰,前后端交流更加方便,项目开发效率提升。
在以后的开发中我会多注意这方面问题。