创业公司与代码技巧

我在搭建榄盛邦的后台框架(类MVC,基于Python Flask开发)的时候,在Model基类的构造函数里写了一个小功能。即如果构建Model对象时如果没有传入DBSession对象(SQLAlchemy数据库Session对象),则自动创建,并赋值给self.session。这样做的好处主要是简化开发。例如:

原写法:

def update_username(user_id, username):
    db_session = DBSession()
    Model(db_session).update_username(user_id, username)
    db_session.close()

新写法

def update_username(user_id, username):
    Model().update_username(user_id, username)

减少了一些代码量,也让代码看起来更舒服。但是这段代码让我以后麻烦不断。

有一次,我被告知用户提现,显示提现显示失败,但余额被冻结,过了很久前既没有到账,也没有退回到余额。我查询服务器得知,在向第三方支付服务器发送提现请求时,因为网络问题出现了超时异常。

我检查了一下代码,发现后台程序员使用了没有传递DBSession对象的Model 对象。原因是使用不传递DBSession对象的Model 对象习惯了,函数里没有DBSession对象,于是也没有想到出现异常回滚的操作。我当时令其修稿,但是后来还是会不时出现这种事情。

后来我想到,如果我当初没有编写这个功能,出错的概率会不会小一点。我想是的。

总结:在创业公司,受困于资金:

  • 很难招到足够水平的开发人员
  • 往往缺失了测试环节

也就是说,创业公司开发的产品,容易出BUG,而且有相当一部分的BUG是在上线后才逐渐浮现的。我对此的应对意见是:在不能招人、增加测试的情况下,尽量使用最简单的方式,尽量不使用技巧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 下班到家,刚推开门。 小朋友风一样的跑过来:“妈妈,妈妈,有虫子在飞!”。我抬头,果然有一只飞蛾一样的虫子,从餐桌...
    海星_love阅读 310评论 0 1
  • 孩子,你不会懂—— 当你与我一起 走在这条石板路上 岁月的河 静静地流淌 多少个世纪了 岁月的脸和这石板路一样沧桑...
    亚民阅读 235评论 0 1
  • 亲们:感谢韦志中教授激情洋溢的分享,星期三心理学时间 第一期:向《西游记》取育儿经——心理学在亲子关系中的应用 ,...
    高铭玉阅读 221评论 0 0