EHS_Scrutinizer开发者文档
目录
EHS_Scrutinizer开发者文档
招贤纳士
目前,项目处于起步阶段,需要各方面的能人巧匠,你可以通过主页的联系方式或线下咨询详情。
前提条件:有相关的EHS工作经验。
职位 | 技术栈 |
---|---|
Python工程师 | Peewee, Sqlite, Pytest |
C/C++工程师 | Qt, CMake, GUI设计 |
核对校审 | 录入、核对、同步GBZ相关信息,表格设计 |
原理
流程图如下:
- 从用户填写的EXCEL表格(模板.xlsx)中获取信息。
- 通过预处理过滤器清洗数据,出现概念问题(如同一操作位接害时间不同)提醒用户,并决定是否继续流程。并进行专门化的数据处理。
- 通过通用预处理过滤器清洗数据,确保数据原子性。
- 数据入Sqlite数据库。
- Sql查询,通过后处理过滤器清洗数据,并进行专门化的数据处理。
- 通过通用后处理过滤器清洗数据。
- 数据写入EXCEL表格。
测试
命令
pytest test.py
用例
- 测试用例路径:/test/test-NUM.xlsx /test/res-NUM.xlsx
注意事项
- 所有PR在合并主线前先Approve,后过CI,如果CI未过,请自行check。
- 涉及到新表格(Sqlite和EXCEL)的开发,请在测试目录下的测试EXCEL中新增相应的测试sheet;其他开发能过CI即可。
- 确保EXCEL Sheet名称与Sqlite table名称一致,便于分辨和开发。
- ⚠️禁止EXCEL Sheet名称、Sqlite table名称、字段名有任何的中文字符,请翻译为英文;输出结果的pd.Dataframe{}和EXCEL除外。
常见问题
Q:为什么要用Sqlite,不能直接内存中读写吗?
A:SQL使得许多的逻辑无须自己实现,在代码结构上更加易读、便于分层设计。在多表联查等复杂环境中,SQL的优势更加明显。
Q:我不懂技术,想参与项目,该做些什么准备?
A:你可以参与核对校审工作,对GBZ相关信息进行录入、核对、同步(比如GBZ 2.1 / GBZ 2.2),设计程序输出表格。在开展工作前,你需要了解一些Git的概念,掌握Git的基本使用方法(比如上文提到的PR、CI,以及Merge、Commit、Push等)。当然如果你想参与技术开发,需要自学一下相关的技术栈。