基础的代码写的越多,就越不想再重复的去写。总有一天当你对所有Controller都厌烦的时候,就该静下来想想能否将代码更加的抽象,精炼,或者做成一个通用的功能,让我们不用增加一张数据表就需要去写一套接口。在这里,分享一个通用的Controller基类来集成这些通用的操作抛砖引玉,在这样的一个BaseController基类中,我们需要考虑的是在原来独立的Controller上所做的工作如何通用的在基类上实现。... 阅读详情
Read More →两年的疫情肆虐对于旅游行业产生了巨大的冲击,从国家发布的旅游行业统计数据来看,从2016年开始,旅游总人数及消费总金额呈逐年递增的趋势,但到了2020年之后,均出现了几近减半的情况。同时2020年的全年客运总量也从之前的递增水平变成了骤减,可以想象从疫情不断被控制又不断的死灰复燃这样跌宕起伏的情景当中,人们对于出行计划的考虑也是变得慎之又慎。... 阅读详情
Read More →做项目经常要写的,不只是代码,也不是寂寞,而是文档。项目文档,设计文档,接口文档等等。那接口文档怎么写,大家都知道用Swagger。但一说到Swagger,就不得不提一下OpenAPI。简单来说,OpenAPI简称OAS,即OpenAPI Specification,是一个用于定义和描述API的语言规范,可以通过这套规范,在向第三方的开发者提供对外暴露的接口服务时,大家达成统一的标准。... 阅读详情
Read More →对账系统或者对账平台,一般用于比对财务数据上的金额或者订单数据的差异等,都体现在交易的金额上。但这里说的对账平台其实并不想只局限的应用于财务,而更多的想突出一个工具,一个平台化的工具。对账的诉求起源于财务对账,并且目前已经支持多种业财间不同形式的对账工作,其次工具化的产品可以支持不同业务形态的大数据量比对。通过统一的平台建设,使得不同业务线相同或类似的对账诉求能够得以统一解决,减少人员消耗以及独立开发所造成的资源浪费。... 阅读详情
Read More →一直不想自己搭建环境,一来是觉得有些麻烦,从ZK,Hadoop,到Spark全都得配置一遍太耽误时间,二来公司测试环境的Spark可以用则自己能省也就省了。但后来发现在Docker下部署下来可以这么轻松,于是也就自己搞了一套。简单来说docker-compose是Docker下的一个编排工具,通过使用配置文件的方式来编排,创建和管理容器,使得集群化的容器环境管理起来更加方便。这里就使用BDE Pipline Application来构建部署Spark开发环境。... 阅读详情
Read More →每个季度结束,常常在总结的时候发现季度初制定的目标有些没有完成。但这并不是因为工作效率低,而是因为业务在不断变化,目标不断在改变。有新的任务被加入,也有老的任务降低优先级。所以是时候反思到底是哪里出了问题?我们当初制定的KPI,还是3个月后我们想要达成的目标吗?一直反复在写的绩效合同,以及这种管理方式还适合如今工作环境吗?很多公司已经从原来的KPI改成了更加拥抱变化的OKR,因此了解和学习OKR就跟我们个人未来的工作及成长息息相关。... 阅读详情
Read More →线程池的优点自不必说,重用已有的线程,可以有效减少线程创建及销毁对性能造成的损失。并且通过有效控制线程数量,可以避免资源拥堵,或提高系统资源的使用率。但如何用好线程池才是重点,本篇就通过一个简单的例子,重温线程池相关的知识点。... 阅读详情
Read More →项目上常常需要多个数据源来存取数据,最近项目上试用了Tidb,因为兼容MySql协议,我们可以直接像Mysql一样在项目中进行配置。那么如何快速的将单一的数据源改成多数据源,并能够在项目中动态的切换就是本次要说的事情。下面精简并省略了无关代码,主要使用`AbstractRoutingDataSource`实现,使用AOP切换,在此记录配置过程以便查阅,分分钟解决问题。... 阅读详情
Read More →一直认为大数据量,如几百万上千万的数据写入到Excel是一个极度不合理的需求。对于一个企业来说这么大的数据存在极易泄露的风险,同时也无法对转储的文件及使用环节进行安全管控。而通过线上各个业务系统的打通,形成线上的完整闭环,才能使数据的流转以及使用得到有效的监管和监控。但是在实际的项目中,这样的需求屡屡皆是,尤其出现在与第三方客户业务对接过程中。... 阅读详情
Read More →给定这样一个场景,现在我们要在特定的某一天里,来汇总业务系统中某一段时间内的数据。在这基础上再加上一个要求,那就是不同的业务类型数据,汇总时间及区间也不同。这样的需求场景看起来是很合理,那么在这样的背景要求下,汇总数据很简单,但是如何拿到动态的时间区间,并且我们的汇总时间能够动态的配置,怎么能够方便快速的满足需求呢?... 阅读详情
Read More →