导出数据与业务人员

任何企业级SaaS系统必不可少的就是数据,如数据的录入、数据的转换、数据分析后的输出等。作为研发工程师,必不可少的会与业务人员打交道,这里的业务人员指与客户直接或间接对接的人。业务人员通常与研发工程师打交道,更多的是某些数据的导出。以我上家教育SaaS公司为例,实际上研发工程师每天的任务是非常饱和的,既包含新功能的库表设计与代码编写,也包含运营反馈客户问题的处理等,其中运营反馈客户问题的处理既包含一些疑似bug问题的处理也包含一些数据的导出。特别是关于数据的导出,有一种骂人的冲动,每次写代码写着写着,整个人沉迷其中,彷佛与整个世界隔绝一样,突然一下,运营找上来了,说某某客户需要导出某些学员的数据,然后给她(他)导完了;然后又一个运营找上来了,说某某机构的人员需要重新迁移到其他机构,然后通过sql给他(她)解决了;再然后又一个运营找上来了,说某某账号手机号发送验证码达到了上线,需要手动修改一下数据表。诸如这样的,每天占到工作的比例长达40%~50%,当然了,也包含一些线上问题的修复。有人说,这些东西不是可以用代码实现,这样就能减少人力的成本。的确是可以用代码实现的,但是,庞大系统从0到1,再从1到2这样的不断演变,太多的技术债务,这是一个方面;还有一个方面是,上千家培训机构,每个培训机构的需求不一样,而且他们这样的要求,每次都不同,难以将其产品化。综合归纳为如下:

Java之ImmutableMap使用

需引入对应的Maven依赖:

1
2
3
4
5
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>

可去Maven仓库搜索guava即可!!!

ImmutableMap模板代码:

我在M2公司做架构之对外新系统与鉴权机制

随着业务线的不断扩大,基于一些特别的厂商需求,需要做一个业务系统适配不同厂商的需要。对外新系统不能完全的放开(公网公布,只要知道网址就能访问得到),这就需要一套鉴权机制。鉴权相关的技术选型我在如下几篇文章提到过,就不再多加赘述:
深入理解SaaS之架构篇
我在M2公司做架构之某网与Webservice
我在M2公司做架构之技术选型