一个手艺活 - 跨语言编程
在2023年,曾经尝试过在第一次使用python时,使用c-python混合编程。当时对这个环境所能用到的三方包都不熟悉,所以做的磕磕绊绊。部分尝试就记录在这里。
今年对那个程序作了完整地重构,加入了一些测试点,看起来一切OK,但是只要有测试不到的地方,就会有问题出现,比如,采样数据在UI显示时扯起了红旗。
UI修改是在解算程序处理完毕才接入了。这个故障,稍加分析我大概定位到了它的原因——数据中被插入了更多的零,这是个无符号数据,所以,红色的旗帜直接拉到底。稍稍侦听数据,发现确实:
然后,从后往前检索。发现了几处不良代码,典型的错误有如下这些:
处理过程中还发现:np.ascontiguousarray(src_ptr) # 确保连续内存这类语句居然不能乱加。
对很少接触的陌生代码,必须打断点,插入调试日志,逐行逐模块调教才行。这类陌生操作,是手艺活。和编程的能力无关。
这轮调测时,有意添加了类似电路板的测试孔一样的专门用于调测的几个主要的数据观察界面,这部分是二进制数据。不容易支持观察,居然就能出错。这是命——也就是故障的随机分布。
不过前兆是有的,比如测试时发现频率计数偏差大概有个5%左右,实际上应该就是这个传输错误的后续连锁效应。不过这事,不能作为自我批评的理由。没啥批评的,项目总要先完成再打磨。
以上。
8 files changed, 67 insertions(+), 20 deletions(-)
此外:对于类似的编程是手艺的说法:
https://blog.csdn.net/asdddaa/article/details/122445362
我附上的评论:
如何区分正常和异常很重要。我现在从业25年以上,对某些研发中遭遇的问题仍然没有平常心——我不知道是该自我批评;还是仅仅引以为戒;或者这仅仅是一种错误的正态分布。我的感觉就是。工作这么久了,对于工作中一些频繁遭遇的问题,我对它们定性,归因能力仍是近乎不及格。
对于单个错误,我总能搞定它们,这没啥疑问。但是对这些层出不穷的漏洞不断出现,会让我对自身素质感到怀疑:这是我的一类本质的资质有问题吗?我不知道该如何对这些错误进行分析和统计,有效规避,然后形成某种自主性。
上半年,我在资料收集的过程中,明显对问题域的掌握加深了——之前一种现象出现,到底是正常还是不正常,没有人说的清楚。经历了两次的独立的异常分析,我的自信心明显提升,回答一些行业问题,会更有自信——所以,这类知识,似乎也是一种手艺活,一种熟练度。
- 2023年,我完成了4份分析报告。
- 2024年,9个月内,完成了16项与工作相关的分析报告。
- 2025年,在4.5个月内,我完成了25项分析报告。
这些数据似乎也在支撑熟练度的认知。是的,需求、设计、编码和吉他,钢琴小提琴大概率是一样,得练,下死功夫。