关于近期项目代码实现的一些总结

来源:互联网 发布:床单跟床笠哪个好 知乎 编辑:程序博客网 时间:2024/05/14 18:42

最近在进行一项清理数据的工作,数据是这样的,一个曲谱,对应了多张曲谱图片,但是部分写入了数据库,部分没有,因此需要对没有写入数据库的部分进行清理。
要处理的
第一次处理如此大数据量的工作,犯了好些低级的错误,在此整理总结一下,也给大家提供一些思路经验:

1、获取单列数据用array_column($data, ‘column_name’):我在读取了数据库的数据后想要获取name列的值,傻傻的进行了一次遍历。影响效率;

2、模块化的方法拎出来单独写,不要都写在同一个方法里: 写的过程中我把所有的处理全部写在了一个方法里,比如:将图片信息写入数据表、将图片关系写入数据表,导致最后整个方法有几百行,简直看不下去。这些部分都可以单独拎出来写在一个新的方法里;

3、同一类的操作尽量不要分开两次来完成: 在项目中需要对未写入数据库的文件进行处理,存在的场景有两种,一是曲谱以及曲谱图片都没有写入数据库,还有就是曲谱已经写入了,但是曲谱的图片没有都写入数据库,有部分遗漏。当时考虑的时候觉得这是两块工作,就把他们写入数据库的步骤给分开完成,所以最后跑得效率也比较低。后面请教了领导,领导把这两部分对曲谱图片的处理进行了统一,一次把两种类型的图片都记录入数据库中,效率大大提高。

4、代码运行的逻辑并不一定就按照产品的逻辑来走: 其实这一点是延续上面的一点来补充的。刚开始做项目,代码的实现总是容易跟着产品实现的功能的逻辑来思考,容易陷入误区,使得代码变得复杂。比如前面说要实现的要把没写入库的曲谱和曲谱图片信息保存到数据库,并记录他们的关系。其实从一开始把他们考虑为两个场景就是错误的,更简便易行的逻辑应该是:1、把遗漏的曲谱信息写入数据库;2、把遗漏的图片信息写入数据库;3、根据oss储存的文件名称信息,获取他们在数据库里的id值,将关系写入关系表中;

以上是最近的总结,表达可能有些混乱,希望给大家给自己一点点帮助。

原创粉丝点击