今天在极客时间的大规模数据处理实战看到一篇文章,说流处理和批处理,常常混合共生,或者频繁互换。
比如有A,B 2个数据提供商,A一次性给你数据,你用批处理。B给你实时数据,你用流处理。结果A说以后提供实时数据了。业务需求如果天天改,还让不让人活?
所以Google的做法,是提供一套统一的api,在架构层面做更高一级抽象,既可以批处理也可以流处理。开发者只学习一套api,不论需要如何变更,代码几乎不用改。
这个文章让我想起来,12年前,我那个项目访问数据库,需要手写jdbc,开发者不仅需要关注资源如何释放,还要知道什么字段是什么类型等等,易出错,费力费时。应有更高一级抽象,比如mybatis框架,来使工作简单化,降本增效。只不过那个时候,既没有这个思想,也没有那个能力去实现。
我猜想大多数开发面对需求变更都是不开心的,大家会怎么面对呢,
1 离职 (这家公司太坑)
2 转行(开发不是人干的)
3 抱怨 (代码太垃圾)
4 平淡面对,努力工作
5 思考如何改进流程并实践
基本做到4就是好员工了吧,但还是不够呢。要做到5才行。我特别喜欢一句话也是最近从这门课里看到的与大家分享一下:面对问题时要有独立思考,忘掉MR,忘掉Spark,忘掉Beam。如果这个世界一无所有,你会怎样设计框架,要多做思想实验,试试能否带领技术发展,而不是永远跟随别人的技术方向。
网友评论