草庐IT

DragLine封装

全部标签

dataclass 数据封装

在python中使用dateclass来封装数据,除了显得Pythonic之外,开发体验也非常好。dateclass非常适合这样的场景:已知接口json数据格式,但这个格式嵌套层级较多,如下图所示,父字段还有自己子字段的格式。API格式这时候,很多人会首先想到用python字典作为数据容器,然后循环向列表字段中append数据,而这些要append的数据,本身也可能是字典,可能还需要循环append各种固定格式的数据。coding的认知负担会随着嵌套层级的增大而指数增加,而且,字典封装的数据,IDE无法给出字段提示,无法用.操作符,只能用丑陋的data['solutions']这种方式来访问数

使用函数作为参数 传递数据,封装阿里 easyexcel 导出大数据量 excel

注意数据是从函数里面拿到,很多语言都支持函数作为参数,java8之后也支持函数作为参数有些不好理解,但是很多写法就是比较灵活了如Scala代码就十分优雅,鼓励用/***大数量导出*@paramfileName生成文件地址*@paramhead表头*@parampageSize页大小*@parampages总页数*@paramfunction获取数据函数*@return*/publicStringexportBigData(StringfileName,Classhead,intpageSize,intpages,Function>function){//每个sheet数据量大小固定最大1百万i

使用函数作为参数 传递数据,封装阿里 easyexcel 导出大数据量 excel

注意数据是从函数里面拿到,很多语言都支持函数作为参数,java8之后也支持函数作为参数有些不好理解,但是很多写法就是比较灵活了如Scala代码就十分优雅,鼓励用/***大数量导出*@paramfileName生成文件地址*@paramhead表头*@parampageSize页大小*@parampages总页数*@paramfunction获取数据函数*@return*/publicStringexportBigData(StringfileName,Classhead,intpageSize,intpages,Function>function){//每个sheet数据量大小固定最大1百万i

uniapp小程序webSocket封装、断线重连、心跳检测

1,前言最近在做IOT的项目,里面有个小程序要用到webSocket,借这个机会,封装了一个uniapp小程序适用的Socket类,包括断线重连,心跳检测等等,具体实现如下。2,代码实现classwebSocketClass{constructor(url,time){this.url=urlthis.data=nullthis.isCreate=false//WebSocket是否创建成功this.isConnect=false//是否已经连接this.isInitiative=false//是否主动断开this.timeoutNumber=time//心跳检测间隔this.heartbea

uniapp小程序webSocket封装、断线重连、心跳检测

1,前言最近在做IOT的项目,里面有个小程序要用到webSocket,借这个机会,封装了一个uniapp小程序适用的Socket类,包括断线重连,心跳检测等等,具体实现如下。2,代码实现classwebSocketClass{constructor(url,time){this.url=urlthis.data=nullthis.isCreate=false//WebSocket是否创建成功this.isConnect=false//是否已经连接this.isInitiative=false//是否主动断开this.timeoutNumber=time//心跳检测间隔this.heartbea

jetpack compose实战——Banner轮播图的使用和封装

前言项目地址:https://github.com/Peakmain/ComposeProject上篇文章我们讲到TopAppBar的封装,主要是封装一个标题居中的TopAppBar,包括支持沉浸式状态栏。今天我们来实现一个Banner的封装Banner框架介绍和使用项目源码地址:Banner.kt源码效果我们首先看下我们今天要做的效果轮播图效果图.gif框架使用详细使用文档:https://github.com/Peakmain/ComposeProject/wikiBanner(data=viewModel.bannerData,//设置数据onImagePath={//设置图片的url地

jetpack compose实战——Banner轮播图的使用和封装

前言项目地址:https://github.com/Peakmain/ComposeProject上篇文章我们讲到TopAppBar的封装,主要是封装一个标题居中的TopAppBar,包括支持沉浸式状态栏。今天我们来实现一个Banner的封装Banner框架介绍和使用项目源码地址:Banner.kt源码效果我们首先看下我们今天要做的效果轮播图效果图.gif框架使用详细使用文档:https://github.com/Peakmain/ComposeProject/wikiBanner(data=viewModel.bannerData,//设置数据onImagePath={//设置图片的url地

在项目中用ts封装axios,一次封装整个团队受益

写在前面虽然说FetchAPI已经使用率已经非常的高了,但是在一些老的浏览器还是不支持的,而且axios仍然每周都保持2000多万的下载量,这就说明了axios仍然存在不可撼动的地位,接下来我们就一步一步的去封装,实现一个灵活、可复用的一个请求请发。这篇文章封装的axios已经满足如下功能:无处不在的代码提示;灵活的拦截器;可以创建多个实例,灵活根据项目进行调整;每个实例,或者说每个接口都可以灵活配置请求头、超时时间等;取消请求(可以根据url取消单个请求也可以取消全部请求)。基础封装首先我们实现一个最基本的版本,实例代码如下://index.tsimportaxiosfrom'axios'i

在项目中用ts封装axios,一次封装整个团队受益

写在前面虽然说FetchAPI已经使用率已经非常的高了,但是在一些老的浏览器还是不支持的,而且axios仍然每周都保持2000多万的下载量,这就说明了axios仍然存在不可撼动的地位,接下来我们就一步一步的去封装,实现一个灵活、可复用的一个请求请发。这篇文章封装的axios已经满足如下功能:无处不在的代码提示;灵活的拦截器;可以创建多个实例,灵活根据项目进行调整;每个实例,或者说每个接口都可以灵活配置请求头、超时时间等;取消请求(可以根据url取消单个请求也可以取消全部请求)。基础封装首先我们实现一个最基本的版本,实例代码如下://index.tsimportaxiosfrom'axios'i

vue+element 基础组件(输入框,下拉框,日期框)二次封装

前言组件库也已经上线运行了一段时间,该改的BUG也都解决了,也基本可以稳定运行了。今天就抽出点时间更新下文档方便日后查看!背景随着公司项目的迭代更新,业务需求越来越多,如果继续大规模使用element原生封装的组件,就会使得业务代码更加的繁琐并且难以维护。所以就决定把element进行二次封装,在封装之前查阅了一些资料,为了方便后期维护最后决定分装成一个组件库!设计思路参考网上封装的思路,发现只是对el-input层进行封装,虽然在使用过程中可以简化一点使用代码,但是整体的封装层次不大。如果添加校验还是要和element一样单独添加relus,添加验证规则,如果这样的话封装的意义就不大了。所以