Willa
Willa
数据分析新人 Lv 42
好奇心 100 | 学习力 100

把Ctrl+Shift+Enter抠掉!

把Ctrl+Shift+Enter抠掉!

一 彳亍 一 彳亍 ————-

代码测试反思

这个问题出现在用RStudio测试分城市代码的时候,因为使用了Ctrl+Shift+Enter一键运行被旁边的大佬叫停:

当时运行的我:因为手动一行一行运行,很容易看不到 console 里的报错,但是用这三个键的组合可以准确地在错误的地方停下来;

大佬:在进行代码测试的时候(尤其是代码建立阶段),不能 Ctrl+Shift+Enter,因为比如在 For Loop 里,没办法看到到底是哪一行(哪个城市)出了错误,而且在不熟悉代码的时候,很容易出现误改重要参数的情况;

设想中的最佳情况应该是:

  • 代码端:
    • 建立容错机制,关键代码的参数分开存储(如 config.yml)
    • 为专门的场景撰写专门的测试代码(在时间容许的情况下
  • 测试时:
    • 一 彳亍 一 彳亍,慢慢运行,留意每行做的事,以及console的输出
    • 不要整段运行loop,一 彳亍 一 彳亍
    • (等到测试完成,要保证代码可以ctrl + shift + enter一键运行)
  • 沟通时:
    • 设计读入/写出的部分重点交代
    • 报错时截全上下文及 traceback
    • 不要在别人吼你的时候对吼(不然旁边的人会笑你们),问问他们的建议和这么做的原因

今天学习到的内容

测试时多探路

  • 容器测试:
    • 多用户是否可以同时运行
    • 多用户是否都有文件的读取/保存/修改/上传权限
    • 当一个用户改动文件时另一个用户是否会受到影响
    • 多用户不同配置:根据sys.info[“user”]读取yml中的对应配置
    • 在设计模型时需要考虑用户可共用的部分,以及分开跑的部分
    • 当你的容器有部分需要手动更新的脚本,记得写容器维保记录
  • 模型测试:
    • 代码测试部分如上
    • 代码修改记得兼容老旧版本:比如新数据里面没有老数据某个feature,在feature_process_workflow里可以pass,而不是直接删掉
    • 测试结果勤保存:可以用在线文档协作,同时让老板看到你们在动XD

Git使用best practice

  • git checkout -b new_branch_name

comments powered by Disqus