2017/3/31-代码修改的流程问题

背景

    一个给supervisor写的查看各组提交到渲染农场的任务的工具。设计思路是:在数据库中新建一张专门用于存放用于显示给用户查看数据的表,且不添加任何关联其他表的外键,短平快,且易于编写。因为设计新旧流程交互的问题,在旧流程和新流程中各添加一个方便其他工具调用的API。在旧流程中的Peewee Model是为了给Nuke和Houdini工具调用的,且使用一个函数作为程序调用的接口,输入一些如shot_name,path等的参数即可将艺术家提交到Qube上的任务信息存放在数据库中。新流程的Peewee Model是为了给自己的GUI工具调用所写的,内容也只是一些Peewee的Modle,方便数据调用。

    PS:我们读写数据库为了避免使用SQL,且需要用一种Python用户熟悉的方式操作数据库,我们的选择是ORM,而且选择了一款轻量级的ORM,也就是Peewee。


问题出现

    supervisor有了新的需求,想要查看更多的渲染信息,比如show_name,department等。我的想法是直接在存储数据的时候即将数据写入,而不通过已有的数据信息,比如shot_name,user_name通过外键再去查找所对应的的show名和department名。因为很有可能两个show会有相同的shot名,所以要尽量避免这样的冲突。我的解决办法是先在数据库相应表中添加对应的column,这一步并不会对现有的工具产生任何的影响。然后我需要修改读写数据库的Peewee Model,为相应的类添加类属性,这一步也不会对整个流程上的工具产生什么影响。然后我需要修改API中的接口函数,新增几个参数,方便别人的工具调用。这一步就是问题所在,我直接在函数的输入参数中新增了几个参数,但并没有设定默认值,然后直接commit并push到了Gitlab上,Publish了我的工具,并将整个流程的环境指向了拥有我新代码的master分支上。现在只要你打开maya或者Houdini,我的代码就已经存在了。


问题所在

    因为我没有定义默认参数,所以当别人的工具在调用我的函数的时候,参数是不够的,而且参数位置也有可能发生错误,艺术家在提交任务到Qube上时就会报错。


解决问题

    只需要为show_name和user_name设定为默认参数None即可。


分析

     看起来是一个很小很小的问题,有时候却是很致命的。虽然事后再看这样的问题发生很幼稚,但的的确确需要警醒自己下次不要再犯这样的错误。每次写新代码或者修改代码的时候要先想清楚写或者修改的流程,并且在提交自己的代码之前一定要经过测试,不要想当然以为只改了几个参数就不需要测试了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值