首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go 每日一库之 rxgo

想象一下,我们日常作为一个 Observer,一个重要工作就是观察 BUG 事件流。每次发现一个 BUG,我们需要去解决它。 Rx 仅仅只是一个 API 规范定义。...它们都是通过 channel 连接。RxGo 实现就是基于 pipelines 理念,并且提供了方便易用包装和强大扩展。 快速使用 本文代码使用 Go Modules。...即每次调用Observe()创建一个新 channel。我们使用Defer()方法创建 Cold Observable,它参数与Create()方法一样。...调用它Observe()方法时并不会立刻产生数据。使用它,我们可以等所有的观察者准备就绪了(即调用了Observe()方法)之后,再调用其Connect()方法开始生成数据。...与Marshal不同,Unmarshal需要知道转换目标类型,所以需要提供一个函数用于生成该类型对象。然后将[]byte数据Unmarshal该对象中。

1.5K40

别再重复造轮子了,几个值得应用到项目中 Java 开源库送给你

Java 8 Stream Stream 不算是工具库,但是通过 stream 提供一系列方法,可以实现集合过滤、分组、集合转换等诸多操作。 例如下面的方法,实现列表元素根据某个字段去重功能。...如果你不是经常做日期处理,那差不多每次需要时候需要查询相关 API,而有了工具类就不一样了,只要一个 “.”,你想要方法就出现了,而 Joda Time 就是一款好用工具库。...比如我实现了下面这个 Excel 动态导出,包括动态表头、动态合并单元格功能,只用了很少代码,如果是使用 POI 的话,那可能代码量增加不止一倍啊。 ?...,通过一系列简单友好链式操作实现反射调用。...官网上对他定义如下: 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。 只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。 热加载、代码生成、分页、性能分析等功能一应俱全。

61520
您找到你想要的搜索结果了吗?
是的
没有找到

Excel2JSON ExcelJSON Excel另存为JSON技巧

小编今天推荐使用Excel直接另存为JSON方法。...该方法特点是:除可以正常直接按照表头作为key,内容作为value输出之外,还可以根据指定规则(schema)输出JSON,如可以将ID相同输出到一组,如将年龄相同的人放到一组等等。...以”栗子”1为例,选中需要转换JSONExcel单元格,然后点选Excel to JSONrow选项,就可以导出成常规JSON,也就是以表头为Key,以每行内容为ValueJSON。...6.以”栗子”2为例,选中需要转换JSONExcel单元格,然后点选Excel to JSONNested选项,然后在下侧文本框中输入Schema,点击Go即可完成啦。看下效果吧。...赶紧打开Excel试试另存为JSON效果吧,如果想要知道更多关于Excel to JSON使用方法和使用教程,可以直接点击Excel to JSON上面提供documentation网址,查看具体文档资料

1.9K11

实效go编程--3

我们已经见过许多简单示例了;通过实现 String 方法,我们可以自定义打印函数,而通过 Write 方法,Fprintf 则能对任何对象产生输出。...(Sequence、sort.IntSlice 和 []int)来使用相应功能,每次转换完成一部分工作。...若该类型通过忽略转换失败来满足该接口, 那么JSON编码器仍可工作,但它却不会使用定制实现。...其次,若相同嵌套层级上出现同名冲突,通常会产生一个错误。若 Job 结构体中包含名为 Logger 字段或方法,再将 log.Logger 内嵌其中的话就会产生错误。...因此,就算添加字段与另一个子类型中字段相冲突,只要这两个相同字段永远不会使用就没问题。 并发 通过通信共享内存 并发编程是个很大论题。但限于篇幅,这里仅讨论一些Go特有的东西。

79470

软件测试|Junit5 实现参数化和数据驱动

图片登录:不同用户名,不同密码,不同组合需要做登录场景测试,正常排列组合下可能会产生多个用例搜索:不同搜索条件产生不同搜索结果,搜索也是常见测试项,单个搜索参数或者多种搜索参数组合;...参数化:我们在写自动化用例时候会有很多方法,一般我们都会把数据通过参数来传递给方法,而不会直接在方法中写“死”,所以方法之间数据传递都是通过参数化来进行,利用参数化进行数据与变量对应;比如我们登录账号密码设置在参数中...,再将参数传递方法中。...写法更简洁,并且还可以注释,因此最推荐使用就是(从表格中所处位置也可猜到~)…位于C位YAML!...我们可以给定一个对象类型,或者一个二维数组等,用来产生映射关系,将文件数据和我们对象绑定,方便数据读取。如上述例子中我们通过TestFileSource实例化对象来调用age变量。

1.3K40

Junit5 + YAML 轻松实现参数化和数据驱动,让 App 自动化测试更高效(一)

1080×468 58.4 KB 登录:不同用户名,不同密码,不同组合需要做登录场景测试,正常排列组合下可能会产生多个用例 搜索:不同搜索条件产生不同搜索结果,搜索也是常见测试项,...参数化:我们在写自动化用例时候会有很多方法,一般我们都会把数据通过参数来传递给方法,而不会直接在方法中写“死”,所以方法之间数据传递都是通过参数化来进行,利用参数化进行数据与变量对应;比如我们登录账号密码设置在参数中...,再将参数传递方法中。...;但是, YAML 写法更简洁,并且还可以注释,因此最推荐使用就是(从表格中所处位置也可猜到~)…位于C位YAML!...我们可以给定一个对象类型,或者一个二维数组等,用来产生映射关系,将文件数据和我们对象绑定,方便数据读取。 如上述例子中我们通过TestFileSource实例化对象来调用age变量。

1.2K30

Go每日一库之87:zap

// 非开发模式 Development: false, // 采样设置 Sampling: &SamplingConfig{ Initial: 100, // 相同日志级别下相同内容每秒日志输出数量...所以对于每个日志级别,提供了三种方法。 zap@v1.16.0 - sugar.go 以 info 级别为例,相关三种方法。 // Info 使用 fmt.Sprint 构造和记录消息。...当然,大多数应用程序不会注意Logger慢影响:因为它们每次操作会需要几十或几百毫秒,所以额外几毫秒很无关紧要。 另一方面,为什么不使用结构化日志快速开发呢?...由于写入通常是序列化,因此在最需要时,logger会限制吞吐量。 采样通过删除重复日志条目来解决这个问题。在正常情况下,您应用程序会输出每个记录。...当然,这并不保证日志永远不会丢失,但它消除了常见错误。 有关详细信息,请参阅 Uber-go/zap#207 中讨论。 什么是DPanic?

42640

Go 操作 excel 利器之 excelize

Excelize 是 Go 语言编写一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML标准。可以使用它来读取、写入 XLSX 文件。...相比较其他开源类库,Excelize 支持写入原本带有图片(表)文档,还支持向 Excel 中插入图片、图标、以及工具函数等,同时对单元格渲染以及图表类型有良好支持,并且在保存后不会丢失图表样式...使用场景 在一些情况下我们需要通过程序操作 Excel 文档,例如:打开读取已有 Excel 文档内容、创建新 Excel 文档、基于已有文档(模版)生成新 Excel 文档、向 Excel 文档中插入图片.../excelize/v2 基础使用 excelizeGithub[1]上有些简单demo,读写Demo,创建图表,插入图表等,我这里写了一个简单Demo,把一个简单Json文本数据写入Excel...最后查看一下输出demo.xlsx文件 写在最后 网上有一个详细介绍excelize使用中文文档,写挺好,对于操作excel基本操作都有说明,这里分享一下: 地址为: https://www.bookstack.cn

4.7K11

详解Python实现采集文章微信公众号平台

简单和无副作用:GET请求被设计为安全和幂等,这意味着重复执行相同GET请求应该得到相同结果,且不会对服务器数据状态产生改变。...相同POST请求如果被重复发送,可能会每次产生不同结果,例如在数据库中创建多个资源。 形式 请求体: 数据是在HTTP请求主体中发送,而不是在URL中。...一般来说POST发送场景有: 表单提交:在用户提交表单(尤其是包含敏感信息表单,如登录凭证)时使用。 文件上传:在上传文件服务器时使用。...静态网页 就像是一张印刷好菜单,上面的内容是固定每次你去餐厅,看到菜单都是一样不会根据你偏好或者是时间变化而改变。 在网页方面,静态网页是一次创建好,之后内容就不再改变。...) df = pd.read_excel(excel_file) ​ # 将DataFrame转换JSON格式 json_data = df.to_json(orient='records

58354

Cytoscape中文教程(2)

SBML BioPAX PSI-MI Level 1 and 2.5 GraphML Delimited text Excel Workbook (.xls, .xlsx) Cytoscape.js JSON...这会使cytoscape每次加载时候,重新计算一个新网络输出。 SIF中line限定一个source node,一个关系类型(或叫edge type),一个或多个target nodes ?...这个视窗可以通过使用F5键隐藏和重现,也可以使用VIEW-show/hide table panel菜单实现。想其他面板一样,通过点击这个视窗右上角图标可以对它进行漂浮设置。...使用视窗下面的三个标签项node table,edge table,network table可以在他们之间进行转换。...不是0TRUE,0是faulse。对于整数型数值列,浮点数据值会被转换使用excel INT功能。圆括号可以用了组合,还有改变评价顺序。运算符优先顺序和标准数学运算一样。

5K30

Go语言中常见100问题-#77 JSON handling common mistakes

JSON处理常见问题 Go标准库中encoding/json包提供了对JSON操作支持,本节将介绍使用encoding/json序列化和反序列数据时常见三个问题。...当将event传给json.Marshal进行序列化时,不会使用默认序列化方法,而是使用time.Time提供MarshalJSON方法。这就是导致序列化后ID字段内容丢失原因。...顾名思义,单调时钟保证时间只能向前移动,不会受到时间跳跃影响。但它可能受到潜在频率调整影响,例如,如果服务器检测到本地石英移动速度与NTP服务器不同时,即使在这种情况下,时间也不会产生跳跃。...下面打印m["id"]类型输出内容为float64. fmt.Printf("%T\n", m["id"]) 我们应该牢记数值被转换成float64类型这条规则,以确保不会做出错误假设。...例如提供数值不含小数,转换后我们以为是int类型,实际上是float64, 这时如果对类型做不正确假设转换可能会产生panic.

58720

Spring MVC 学习总结(三)——请求处理方法Action详解

1.1.2、自定义数据类型 除了基本数据类型,也可以自定义数据类型,如一个自定义POJO对象,Spring MVC会通过反射把请中参数设置对象中,转换类型,示例代码如下: package com.zhangguo.springmvc03...一般情况下来说常用其来处理application/json类型。 通过@requestBody可以将请求体中JSON字符串绑定相应bean上,当然,也可以将其分别绑定对应字符串上。...是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动转换JSON数据再解析成相应集合,Spring默认json协议解析由...2.3.2、直接响应输出结果 当方法返回值为void,但输出流中存在输出内容时,则不会去查找视图,而是将输入流中内容直接响应到客户端,响应内容类型是纯文本,如下代码所示: @RequestMapping...2.8.1、输出Excel 返回类型还有许多如view等,通过view可指定一个具体视图,如下载Excel、Pdf文档,其实它们也修改http头部信息,手动同样可以实现,如下代码所示:

2K10

Go标准库`mathrandv2`

在那一点上,我们决定Go 1兼容性包括给定种子特定随机输出,并添加了一个测试[5]。 对这类生成器来说,目标并不是产生适合导出加密键或其他重要秘密随机数。...从Go 1大约Go 1.5,我们回过头来绘制了每一个"fully inked"版本:我们将编译器和运行时转换Go;我们编写了一个新、精确、并发、具有微秒暂停时间垃圾收集器;并根据需要替换了标准库实现为更复杂...大多数用户不会直接使用Source和Rand,而是通过像Intn这样顶层函数来访问math/rand包提供全局生成器。按照 C 标准库做法,全局生成器默认表现得像是在启动时调用了Seed(1)。...这对于可重复性是好,但对于希望每次运行都得到不同随机输出程序来说却不是。...然而,除非 2^{63} 是 n 倍数,否则没有算法能够将 2^{63} 个可能性等概率地转换为 n 个等概率值:在其它情况下,某些输出必然会比其他输出更频繁(作为一个更简单例子,尝试将4个等可能转换

17210

Java编程入门(2.4):变量和基本类型

使用 StringBuilder 类场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程环境中,则可以考虑使用 StringBuilder,如 SQL 语句拼装、JSON 封装等...所以经常改变内容字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM GC 就会开始工作,那速度是一定会相当慢。...虽然在任意时间点上它包含某种特定字符序列,但通过某些方法调用可以改变该序列长度和内容。在程序中可将字符串缓冲区安全地用于多线程。...每个方法都能有效地将给定数据转换成字符串,然后将该字符串字符追加或插入字符串缓冲区中。append 方法始终将这些字符添加到缓冲区末端;而 insert 方法则在指定点添加字符。...两者使用方法基本相同

41910

Structured Logging with slog

它在我们年度调查中一直排名靠前,Go生态系统中许多包提供了它。其中一些非常受欢迎:Go第一个结构化日志包之一,logrus[2],被超过100,000个其他包使用。...有许多结构化日志包可供选择,大型程序通常会通过它们依赖关系包含多个。主程序可能需要配置每个这些日志包,以便日志输出一致:它们都发送到同一个地方,以相同格式。...输出与之前相同。 最初,slog输出通过默认log.Logger进行,产生我们上面看到输出。我们可以通过更改记录器使用处理器来更改输出。slog带有两个内置处理器。...这个对LogAttrs调用产生了与上面相同输出,但是它更快: slog.LogAttrs(context.Background(), slog.LevelInfo, "hello, world",...以下是两个API更改例子,涉及context.Context: 1.最初,API支持将记录器添加到上下文中。许多人觉得这是一种方便方式,可以轻松地将记录器通过不关心它代码级别。

21210

Go text模版和HTML模版【Go语言圣经笔记】

每个actions包含了一个用模板语言书写表达式,一个action虽然简短但是可以输出复杂打印值,模板语言包含通过选择结构体成员、调用函数或方法、表达式控制流if-else语句和range循环语句...对于Age部分,第二个动作是一个叫daysAgo函数,通过time.Since函数将CreatedAt成员转换为过去时间长度: func daysAgo(t time.Time) int {...以同样方式,我们可以通过定义一些方法来控制字符串格式化,一个类型同样可以定制自己JSON编码和解码行为。time.Time类型对应JSON值是一个标准时间格式字符串。...一旦模板已经创建、注册了daysAgo函数、并通过分析和检测,我们就可以使用github.IssuesSearchResult作为输入源、os.Stdout作为输出源来执行模板: var report...下面的程序演示了两个使用不同类型相同字符串产生不同结果:A是一个普通字符串,B是一个信任template.HTML字符串类型。

1.6K10

go-zero 成长之路—微服务电商实战系列(七、并发处理工具MapReduce使用

概述大家知道:go-zeroapi服务需要通过api文件进行定义。其中返回值类型定义中并没有支持time.Time类型。...如果历史文章不是很清楚,可通过如下传送门:go-zero 成长之路—微服务电商实战系列(六、条件查询)go-zero 成长之路—微服务电商实战系列(五、RPC定义)go-zero 成长之路—微服务电商实战系列...最终不会被reducer聚合reducer中如果不调用writer.Wirte则返回结果为nil, ErrReduceNoOutputreducer为单线程,所有mapper出来结果在这里串行聚合使用流程...:generate 产生需要使用数据mapper 处理 generate 产生数据mapper 对 mapper 数据进行聚合处理,然后输出到结果mapper 返回结果:interface{} 通过...(productsDataMap)json.Unmarshal(productsDataJson, &productsData)}// 输出到结果writer.Write(productsData)})

56620

Go语言——测试与性能

; SkipNow:不会记录失败用例信息,然后终止测试; Log:输出错误信息,在单元测试中,默认不输出成功用例信息,不会中断后续测试; Logf:相比于前者多了个格式化输出; Error:相当于Log...+Fail,不会中断后续测试; Errorf:相比于前者多了个格式化输出; 在默认情况下,单元测试成功时,他们打印信息不会输出,可以通过加上-v选项。...因为默认情况go test会运行单元测试,为了防止单元测试输出影响查看基准测试结果,可以使用-run="none"匹配一个不存在 单元测试,过滤掉单元测试输出,这里使用none,因为基本不会创建这个名字单元测试...为了进一步分析三个函数快慢根源,可以通过-benchmem分析内存使用情况。-benchmem可以提供每次操作分配内存次数,以及每次操作分配字节数(B)。...="out path":输出cpu profile指定路径,可以使用pprof查看; memprofile="out path":输出内存profile指定路径,可以使用pprof查看 执行一个基准测试时候

1.1K30

Havoc Framework C2 Agent开发记录

第三方Agent注册以后,发送数据都是固定结构,每次数据发送到C2监听端口,会检查4个字节(Magic Value)魔数: (CALLBACK DATA)回调数据会被TeamServer发送到...会接受到不通数据,通过其中字段区分是那种类型请求: •register Agent上线 •base64 接收到Base64数据,解码输出到控制台上 •get_task 从TeamServer获取任务...它可以自动化构建、打包和发布 Go 项目,并支持将项目发布各种不同发布渠道,如二进制文件、Docker 镜像、Homebrew、Snapcraft 等。 ️...Garble 是一个通过包装Go工具链来混淆Go代码一个工具,它基本上兼容了Go编译命令,在此基础上增加了一些混淆模式选项,通过设置选项可以构建不同混淆程度Go二进制程序。...bash /local/path/to/file.sh C2 > shell_script cmd.exe /local/path/to/file.bat 如此一来,进程命令行就不会产生

92510

golang错题集

因此,我们可以做一个推断:虽然每次循环启用了一个协程,但是这些协程都是引用了外部变量,当协程创建完毕,再执行打印动作时候,name值已经不知道变为啥了,因为主函数协程也在跑,大家并行,但是在此由于...,并输出"poniter" 感觉有点诧异,请接着看以下代码,试问能编译通过?...自带json转换转换,会将map中key顺序改为字母顺序,而不是map赋值顺序。...map这个结构哪怕利用for range遍历时候,其中key也是无序,可以理解为map就是个无序结构,和php中array要区分开来 Json反序列化数字interface{}类型值中,默认解析为...答案其实很简单,在test方法中,如果使用varTest, err := function()这种方式的话,相当于在函数中又定义了一个和全局变量varTest名字相同局部变量,而这个局部变量又没有使用

59800
领券