w********m 发帖数: 1137 | 1 leetcode史上最难三道题,全是parse。就没几个人做对过
420 Strong Password Checker 14.3% Hard
65 Valid Number 15.1% Hard
8 String to Integer (atoi) 15.3% Medium
所以,能用库就用库,不用库就等报错 |
s*********n 发帖数: 34 | 2 这就去做题。
【在 w********m 的大作中提到】 : leetcode史上最难三道题,全是parse。就没几个人做对过 : 420 Strong Password Checker 14.3% Hard : 65 Valid Number 15.1% Hard : 8 String to Integer (atoi) 15.3% Medium : 所以,能用库就用库,不用库就等报错
|
g****t 发帖数: 31659 | 3 parse能不写就不写。还有一个原因是,常见的数据格式的parse,能用的库比较多。
数据预处理一下,丢给开源parse,问题不大。
【在 w********m 的大作中提到】 : leetcode史上最难三道题,全是parse。就没几个人做对过 : 420 Strong Password Checker 14.3% Hard : 65 Valid Number 15.1% Hard : 8 String to Integer (atoi) 15.3% Medium : 所以,能用库就用库,不用库就等报错
|
C*****l 发帖数: 1 | 4 csv哪有那么难搞,就怕有些人把comment, quote什么都加进去瞎搞。定好规矩,就好
办了。
【在 w********m 的大作中提到】 : leetcode史上最难三道题,全是parse。就没几个人做对过 : 420 Strong Password Checker 14.3% Hard : 65 Valid Number 15.1% Hard : 8 String to Integer (atoi) 15.3% Medium : 所以,能用库就用库,不用库就等报错
|
g****t 发帖数: 31659 | 5 csv有标准协议。但是就是这么难搞。
【在 C*****l 的大作中提到】 : csv哪有那么难搞,就怕有些人把comment, quote什么都加进去瞎搞。定好规矩,就好 : 办了。
|
C*****l 发帖数: 1 | 6 标准协议没人follow, 一般人不需要handle所有case,把字符集分隔符定好, linux
line end,不许用引号,problem solved。非要在field里面用分隔符,加引号,是自
己跟自己过不去。
【在 g****t 的大作中提到】 : csv有标准协议。但是就是这么难搞。
|
g****t 发帖数: 31659 | 7 你这样搞。大点的项目到最后,累积的不确定性叠加组合,就失控了。
用库是正确的做法。加上边界测试。
: 一般人不需要handle所有case,把字符集分隔符定好, linux line end
,不许
用引号
: ,problem solved。
【在 C*****l 的大作中提到】 : 标准协议没人follow, 一般人不需要handle所有case,把字符集分隔符定好, linux : line end,不许用引号,problem solved。非要在field里面用分隔符,加引号,是自 : 己跟自己过不去。
|
C*****l 发帖数: 1 | 8 大型项目,更要enforce纪律,每个interface spec写好,立下字据,谁break了谁负责
fix。
【在 g****t 的大作中提到】 : 你这样搞。大点的项目到最后,累积的不确定性叠加组合,就失控了。 : 用库是正确的做法。加上边界测试。 : : : 一般人不需要handle所有case,把字符集分隔符定好, linux line end : ,不许 : 用引号 : : ,problem solved。 :
|
g****t 发帖数: 31659 | 9 你得先找到谁break了才行。
: 大型项目,更要enforce纪律,每个interface spec写好,立下字据,谁break了
谁负责
: fix。
【在 C*****l 的大作中提到】 : 大型项目,更要enforce纪律,每个interface spec写好,立下字据,谁break了谁负责 : fix。
|
s*********y 发帖数: 6151 | 10 parser的确是编程基本功 重要性不言而喻
2017年cloudflare就是因为Nginx上的一个parser bug导致大面积key泄漏
2019年CloudFlare又是因为一个regex错误 导致大面积宕机 |
|
|
n******t 发帖数: 4406 | 11 我覺得非常可笑,exactly實戰中csv基本上是沒有parse的問題的。一般能100G以上的
都用csv存的,裏面的東西都是老老實實的逗號只做分割用途。
他去扯parse這些有啥意思嗎?100G會搞就是會搞,不會就是不會。
【在 g****t 的大作中提到】 : parse能不写就不写。还有一个原因是,常见的数据格式的parse,能用的库比较多。 : 数据预处理一下,丢给开源parse,问题不大。
|
n******t 发帖数: 4406 | 12 cloudflare的techlead如果能把他們成天post blog一半的時間拿去好好搞他們的服務
,就不會有這些爛事了。
【在 s*********y 的大作中提到】 : parser的确是编程基本功 重要性不言而喻 : 2017年cloudflare就是因为Nginx上的一个parser bug导致大面积key泄漏 : 2019年CloudFlare又是因为一个regex错误 导致大面积宕机
|
m******r 发帖数: 1033 | 13 这个说的对,要和对方说清楚, csv又不是垃圾桶,随便什么东西都能往里装。 去邮
局寄个东西,邮局也得问问你,易燃?易爆?液体? 给邮局多少钱也不是什么垃圾都
能寄的 。
以后谁把垃圾往csv里面放,谁滚蛋。 这个要求不过分吧。
【在 C*****l 的大作中提到】 : 大型项目,更要enforce纪律,每个interface spec写好,立下字据,谁break了谁负责 : fix。
|
g****t 发帖数: 31659 | 14 数据的来源往往是客户。选择给他们培训,或者自己改软件包括更多的corner cases。
各有优劣。
再一个,你搜一下excel csv带来的问题。这是另外一类。
: 这个说的对,要和对方说清楚, csv又不是垃圾桶,随便什么东西都能往里装。
去邮
: 局寄个东西,邮局也得问问你,易燃?易爆?液体? 给邮局多少钱也不是什么
垃圾都
: 能寄的 。
: 以后谁把垃圾往csv里面放,谁滚蛋。 这个要求不过分吧。
【在 m******r 的大作中提到】 : 这个说的对,要和对方说清楚, csv又不是垃圾桶,随便什么东西都能往里装。 去邮 : 局寄个东西,邮局也得问问你,易燃?易爆?液体? 给邮局多少钱也不是什么垃圾都 : 能寄的 。 : 以后谁把垃圾往csv里面放,谁滚蛋。 这个要求不过分吧。
|
i*****9 发帖数: 3157 | 15 引号加转义用yacc 处理又不难。要大范围使用的地方就老老实实上全功能的编译器呗
。自己小范围用的就随便怎么操了。
就好
【在 g****t 的大作中提到】 : csv有标准协议。但是就是这么难搞。
|
h*****2 发帖数: 2070 | 16 你说的是对的。前面那几个人一看就是没做过什么项目,基本还活在温室里。
实际中很多RAW数据就是很noisy,比如医疗上的直接从clinic来的。还有些schema定好
的数据,都可能出各种幺蛾子,比如telemetry的数据流。pre-processing这块儿还是
很麻烦的。
【在 g****t 的大作中提到】 : 数据的来源往往是客户。选择给他们培训,或者自己改软件包括更多的corner cases。 : 各有优劣。 : 再一个,你搜一下excel csv带来的问题。这是另外一类。 : : : 这个说的对,要和对方说清楚, csv又不是垃圾桶,随便什么东西都能往里装。 : 去邮 : : 局寄个东西,邮局也得问问你,易燃?易爆?液体? 给邮局多少钱也不是什么 : 垃圾都 : : 能寄的 。 : : 以后谁把垃圾往csv里面放,谁滚蛋。 这个要求不过分吧。
|
s******e 发帖数: 3 | 17 处理复杂数据流程里的垃圾数据,不是在每个环节添加处理代码,而是对垃圾进行预处
理。以csv里的垃圾数据,我会这样处理,1)csv的parser肯定用通用库,不会做任何
修改,parser自身的bug会反馈给开发者,尽量通过依赖解决,不自己折腾;2)对垃圾
数据进行预处理。3)预处理部分根据不同情况进行相关处理,不同的来源,会有不同
的处理方式,没有必要强塞到一个非常复杂的代码里;而且根据具体情况和分工,未必
是自己的工作,比如给源方一些提示,说不定他们一个小修改就搞定。4)另外对垃圾
要学会拒绝,学会引导客户或源端遵守必要的工业规范,不是一味迁就,迁就的结果是
,会把自己和团队搞到筋疲力尽,最后做项目失败的背锅侠。
另外大家讨论问题,不要动不动就去贬低质疑其他人的能力。老实说,到这里来发帖或
求问,都差不多吧,就算有差别,也不会大过图灵和某网红吧。
葵花版给了我很多帮助和乐趣,最近有闲,来得多了,发些贴,算是一点小反馈。 |
g****t 发帖数: 31659 | 18 不管预处理或者程序里面改,都以测试第三方库为基础。还有就是得知道文本文件是怎
么回事,csv常见的坑在哪里。不然越处理错误越多。现今有专门的data engineer这个
职称,不是全无道理的。
: 处理复杂数据流程里的垃圾数据,不是在每个环节添加处理代码,而是对
垃圾进
行预处
: 理。以csv里的垃圾数据,我会这样处理,1)csv的parser肯定用通用库
,不会
做任何
: 修改,parser自身的bug会反馈给开发者,尽量通过依赖解决,不自己折
腾;2)
对垃圾
: 数据进行预处理。3)预处理部分根据不同情况进行相关处理,不同的来
源,会
有不同
: 的处理方式,没有必要强塞到一个非常复杂的代码里;而且根据具体情况
和分工
,未必
: 是自己的工作,比如给源方一些提示,说不定他们一个小修改就搞定。4
)另外
对垃圾
: 要学会拒绝,学会引导客户或源端遵守必要的工业规范,不是一味迁就,
迁就的
结果是
: ,会把自己和团队搞到筋疲力尽,最后做项目失败的背锅侠。
: 另外大家讨论问题,不要动不动就去贬低质疑其他人的能力。老实说,到
这里来
发帖或
: 求问,都差不多吧,就算有差别,也不会大过图灵和某网红吧。
【在 s******e 的大作中提到】 : 处理复杂数据流程里的垃圾数据,不是在每个环节添加处理代码,而是对垃圾进行预处 : 理。以csv里的垃圾数据,我会这样处理,1)csv的parser肯定用通用库,不会做任何 : 修改,parser自身的bug会反馈给开发者,尽量通过依赖解决,不自己折腾;2)对垃圾 : 数据进行预处理。3)预处理部分根据不同情况进行相关处理,不同的来源,会有不同 : 的处理方式,没有必要强塞到一个非常复杂的代码里;而且根据具体情况和分工,未必 : 是自己的工作,比如给源方一些提示,说不定他们一个小修改就搞定。4)另外对垃圾 : 要学会拒绝,学会引导客户或源端遵守必要的工业规范,不是一味迁就,迁就的结果是 : ,会把自己和团队搞到筋疲力尽,最后做项目失败的背锅侠。 : 另外大家讨论问题,不要动不动就去贬低质疑其他人的能力。老实说,到这里来发帖或 : 求问,都差不多吧,就算有差别,也不会大过图灵和某网红吧。
|