摘要:
最近在遇到一个客户的POC的问题,其中经历诸多有意思的事情, 有必要记录一下,以作为后续创业所要避免的地方。
客户POC出现的问题:
- 查询SQL中, 存在给查询到的列属性赋值的情况
- 给属性的赋值的数据类型,和列属性的数据类型,不匹配,比如给整形的属性赋值字符串
- 在所做的项目中,数据库对于查询,从myql/sql层,到列引擎层, 有一次的查询语法树的转换
- 在最开始暴漏出的问题中, 存在union all场景下无法赋值,但是在union场景下却能赋值
- 对于union all的场景, 已经被解决,解决方案也比较简单,重点在于找到数据类型不一致的地方,然后使用要赋值的类型,做一次数据类型的转换
- 到此为止,唯一遗留的, 便是加上order by之后, 导致查询结果出错
- 对于order by, 此时是对temp table做处理, 在昨晚排序之后,会将元组进行一次给sender的传递, 此时存在拿列属性的操作, 而此时, 仅仅是依据列的属性做取值, 而没有考虑到给列赋值的数据的类型
- 通过以上的分析, 可以发现最麻烦的并不是具体的修复,而是找到列属性和给列赋值的值的相关信息,这要考虑到对于查询语法树本身的结构
在解决过程中的问题
一. 技术团队中的拖延现象大大出乎我的意料
- 此处如果仅仅归因于态度问题,是无法解释的
- 更多的,是做这事情的人的能力问题,具体可以理解为:
- 对现有代码的熟悉程度
- 对问题的敏感度, 也就是从现象关联到代码的能力
二. 能力问题
- 此处再次提出能力问题, 就不仅仅是对代码熟悉本身了
- 此处也包括从现有信息做出更快决策,以及从他人身上学习的能力
- 考虑到我已经将问题的重点给出,依然是徘徊,那么就必须理解为此人无法从他人身上学习
- 由于无法从他人身上学习,那么就必须从零开始做摸索,导致大量的耗时在摸索上