近日,Li Yiyang 老师基于Goc做了个VS Code插件,能够直观的看到被执行到的代码,当真充满想象力: 感兴趣的同学可以去goc仓库查看详情. Goc的核心能力就在于能够帮助我们在被测程序运行时收集覆盖率结果,而这就为精准测试提供了技术支撑.基于此,有很多的想象力空间,亟待大家发挥. 为方便彼此交流,我们建立了goc讨论群,大家可以去goc github主页扫码加入.目前该群已汇集了一帮对goc感兴趣的小伙伴,大家在沟通中碰撞出了不少非常有价值的需求,比如: goc profile 支…
我们上一篇<基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)>主要讲解了如何搭建一个实时数据通讯服务器,客户端与服务端是如何通讯的,相信通过上一篇的讲解,再配合上数据库的数据储存,我们就可以实现一个简易版的 Web 聊天工具了,有空的朋友可以自己尝试下实现,那么我们今天的主要内容真的是实现 WebGL 3D 拓扑图实时数据通讯了,请大家接着往下看. 有了前面的知识储备,我们就可以来真正实现我们 3D 拓扑图组件上节点位置信息的实时数据同步了,毋庸置疑,节点的位置信…
 Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket 的跨浏览器的实时应用.支持主流浏览器,多种平台,多种传输模式,还可以集合 Exppress 框架构建各种功能复杂的实时应用. 您可能感兴趣的相关文章 Chance – 功能强大的 JavaScript 随机数生成类库 Manifesto – HTML5 离线应用程序缓存校验工具 Codrops 教程:基于 CSS3 的全屏网页过渡特效 Zoom.js:一款效果非常独特的页面内容缩放插件 Popline:很特别…
Socket.IO – 基于 WebSocket 构建跨浏览器的实时应用 Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket 的跨浏览器的实时应用.支持主流浏览器,多种平台,多种传输模式,还可以集合 Exppress 框架构建各种功能复杂的实时应用. 您可能感兴趣的相关文章 Chance – 功能强大的 JavaScript 随机数生成类库 Manifesto – HTML5 离线应用程序缓存校验工具 Codrops 教程:基于 CSS3 的全屏网页过渡特效 Z…
一.基本信息 标题:基于面向方面和UML的实时系统建模研究 时间:2010 出版源:计算机技术与发展 领域分类:面向方向:实时系统:横切关注点:统一建模语言: 二.研究背景 问题定义:实时系统建模研究 难点:关注点分散于不同的类中,造成代码纠缠和重用性差等缺点,对系统的开发和维护造成困难. 相关工作:理解相关概念如:关注点.AspectJ主要术语.UML的扩展机制.关注点的分离,关注点的建模. 三.创新方法 1.运用UML扩展机制满足建模的需要 2.关注点的分离相关与关注点建模 3.扩展UML表…
原博客系列文章链接:https://www.cnblogs.com/jackcao/ 金焰的世界 感谢博主无私的奉献,感谢博主幼儿班的教学 基于jackcao博客使用VsCode开发及感悟One搭建开发环境 进入正文,原博主的文章适用于有一定基础的人,因此对于新手来说不算友好.因此此系列文章围绕如何搭建开发环境,如何跟着博主一步一步去学习理解这个平台. 很多初学者看着这一大堆东西,无从下手,遂从入门到放弃.我就从最简单的如何在windows上最小化开发开始,希望大家同我一起从入门到深入. 我的环…
Gin是一个用Golang编写的HTTP网络框架.它的特点是类似于Martini的API,性能更好.在golang web开发领域是一个非常热门的web框架. 启动一个Gin web服务器 使用下面的命令安装Gin go get -u github.com/gin-gonic/gin 在代码里添加依赖 import "github.com/gin-gonic/gin" 快速启动一个Gin服务器的代码如下 package main import "github.com/gin-…
在前两篇文章介绍路由的时候,我们了解到gin可用通过类似DefaultQuery或DefaultPostForm等方法获取到前端提交过来的参数.参数不多的情况下也很好用,但是想想看,如果接口有很多个参数的时候再用这种方法就要调用很多次获取参数的方法,本文将介绍一种新的接收参数的方法来解决这个问题:模型绑定. gin中的模型绑定可以理解为:把请求的参数映射为一个具体的类型.gin支持JSON,XML,YAML和表单参数等多种参数格式,只需要在对应的字段上声明标签. 绑定表单或者查询字符串 type…
web开发基本都离不开访问数据库,在Gin中使用mysql数据库需要依赖mysql的驱动.直接使用驱动提供的API就要写很多样板代码.你可以找到很多扩展包这里介绍的是jmoiron/sqlx.另外还有一个用来处理空值的包guregu/null. go get github.com/go-sql-driver/mysql go get gopkg.in/guregu/null.v4 go get github.com/jmoiron/sqlx 连接数据库 jmoiron/sqlx包为databas…
在前文介绍访问数据库时介绍了github.com/jmoiron/sqlx包,本文基于这个包使用数据库事务. defer 在使用数据库事务之前,首先需要了解go语言的defer关键字.defer是go语言的延迟执行语句,defer后面的语句会被go进行延迟处理,在函数即将结束的时候,defer后面的语句将逆序执行.也就是说,先defer的语句最后执行.defer很像java或者C#中的finally语句.下面通过一个例子看一下defer. package main import "fmt&quo…
gin中间件(middleware)提供了类似于面向切面编程或路由拦截器的功能,可以在请求前和请求之后添加一些自定义逻辑.实际开发中有很多场景会用到中间件,例如:权限验证,缓存,错误处理,日志,事务等. 使用中间件 gin的中间件分为三类:全局中间件.路由中间件.分组路由中间件. 全局中间件:注册全局中间件之后注册的路由才会生效,如果有一些不希望使用全局中间件的路由规则,注册路由代码要放在注册全局中间件之前. 路由中间件:在注册路由时传入的中间件,只对当前路由规则生效. 分组路由中间件:在分组路…
在前后端分离的项目维护一份完整且及时更新的api文档会极大的提高我们的工作效率,传统项目中接口文档都是由后端开发手写的,这种文档很难保证及时性,久而久之便失去了参考意义.swagger给我们提供了一种新的维护文档的方式,在gin中只需要编写一些注释即可生成一份可交互的接口文档. go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/…
作为后端开发者我们要记住一句话:"永远不要相信用户的输入",这里所说的用户可能是人,也可能是另一个应用程序."永远不要相信用户的输入"是安全编码的准则,也就是说,任何输入的内容在验证无害之前都是有害的.很多应用程序的安全漏洞都和用户输入有关,比如SQL注入漏洞. 我们可以通过参数验证.sql语句过滤和参数化查询等方式对用户的输入进行处理来规避这种安全隐患.本文介绍第一种方法,并对基于gin的golang web开发:模型验证进行补充,了解更多的参数验证方法. 验证非…
本文是对前几篇文章的一些补充,主要包含两部分:单元测试和实际项目中使用路由的小问题. 拾遗1:单元测试 Golang单元测试要求代码文件以_test结尾,单元测试方法以Test开头,参数为*testing.T类型.以下是一个计算hash值的工具包和对应的单元测试. hashUtils.go package utils import ( "crypto/md5" "crypto/sha1" "fmt" ) func Md5(str string)…
微服务开发中服务间调用的主流方式有两种HTTP.RPC,HTTP相对来说比较简单.本文将使用 Resty 包来实现基于HTTP的微服务调用. Resty简介 Resty 是一个简单的HTTP和REST客户端工具包,简单是指使用上非常简单.Resty在使用简单的基础上提供了非常强大的功能,涉及到HTTP客户端的方方面面,可以满足我们日常开发使用的大部分需求. go get安装 go get github.com/go-resty/resty/v2 使用Resty提交HTTP请求 client :=…
前文分别介绍过了Resty和gin-jwt两个包,Resty是一个HTTP和REST客户端,gin-jwt是一个实现了JWT的Gin中间件.本文将使用这两个包来实现一个简单的用户登录功能. 环境准备 实现登录功能之前要提前准备一个用于查询用户是否存在的服务.访问服务http://127.0.0.1:18081/users?username=root时返回用户root的相关信息 { "total": 1, "data": [ { "id": 1,…
一.粘"包"问题简介 在socket网络编程中,都是端到端通信,客户端端口+客户端IP+服务端端口+服务端IP+传输协议就组成一个可以唯一可以明确的标识一条连接.在TCP的socket编程中,发送端和接收端也同样遵循这样的规则. 1.部分字符和乱码的可能原因 如果发送端多次发送字符串,接收端从socket读取数据放到接收数据的recv数组,由于recv数组初始化为\0,仅收到部分字符串就开始打印.该部分字符串放在recv数组中,末尾仍是以\0结尾,打印函数见到\0则默认结束打印输出,后…
1.golang的下载安装 golang的官网最近好像整合了内容,统一到了一个地址:https://go.dev/ 首页直接点击download,下载自己对应的版本即可. 安装是傻瓜式的,一般默认安装位置即可. 2.golang的环境变量配置 老手应该都会吧! 我的电脑→属性→高级系统设置→环境变量 (1)系统变量 golang安装时已经默认添加好了,可以查看确认. 另外一种方法是打开CMD命令框,输入语句:go version,有版本信息证明环境变量已经成功添加. (2)用户变量 用户变量设置…
20个最强的基于浏览器的在线代码编辑器 - OPEN资讯 20个最强的基于浏览器的在线代码编辑器…
基于git命令的代码统计方法 没什么好说的,基于git log命令,使用前提是安装了git ...... .统计所有人代码量 统计所有人代码增删量,拷贝如下命令,直接在git bash等终端,git项目某分支下执行 git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat…
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理   摘  要: 设计了一种基于现场可编程逻辑器件的线阵CCD实时图像采集系统.系统采用线阵CCD TCD2252D作为图像传感器,使用CCD专用信号处理芯片AD9826对CCD信号去噪并实现高速A/D转换,同时用USB接口芯片完成CCD数据的传输,最后在上位机显示采集的图像数据.整个系统由基于Ve…
一.基于Sklearn的PCA代码实现 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.decomposition import PCA digits =…
一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb/releases/influxdb-1.6.2_windows_amd64.zip     ,下载下来是一个zip包,直接本地解压缩就可以了,目录如下: InfluxDB 的数据存储主要有三个目录.默认情况下是 meta, wal 以及 data 三个目录,服务器运行后会自动生成. meta 用于…
在近期的 Apache Kylin × Apache Hudi Meetup直播上,Apache Kylin PMC Chair 史少锋和 Kyligence 解决方案工程师刘永恒就 Hudi + Kylin 的准实时数仓实现进行了介绍与演示.下文是分享现场的回顾. 我的分享主题是<基于 Hudi 和 Kylin 构建准实时.高性能数据仓库>,除了讲义介绍,还安排了 Demo 实操环节.下面是今天的日程: 01 数据库.数据仓库 先从基本概念开始.我们都知道数据库和数据仓库,这两个概念都已经非…
在基于gin的golang web开发:路由中我们介绍了Gin的路由和一些获取链接中参数的方法,本文继续介绍其他获取参数的方法. 文件上传 在web开发中文件上传是一个很常见的需求,下面我们来看一下基于Gin的文件上传. func main() { router := gin.Default() router.MaxMultipartMemory = 8 << 20 // 8 MiB router.POST("/upload", func(c *gin.Context) {…
Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发web api的时候大部分参数都是需要验证的,比如email参数要验证是否是邮箱格式.phone参数要验证是否是手机号格式等等,使用模型验证方法可以将验证过程隔离在业务之外. 内置的验证标签 Gin通过集成go-playground/validator提供模型验证功能,并提供了很多常用验证规则可以满足我们大部…
Go语言访问mysql数据库需要用到标准库database/sql和mysql的驱动.标准库的Api使用比较繁琐这里再引入另一个库github.com/jmoiron/sqlx. go get github.com/jmoiron/sqlx go get github.com/go-sql-driver/mysql 连接数据库 db, err := sqlx.Connect("mysql", "...?parseTime=true") if err != nil {…
Golang天生适合运行在docker容器中,这得益于:Golang的静态编译,当在编译的时候关闭cgo的时候,可以完全不依赖系统环境. 一些基础 测试容器时我们经常需要进入容器查看运行情况,以下命令启动一个centos容器并进入bash交互环境. docker run -it --rm centos bash -it 组合参数-i: 以交互模式运行容器,-t: 为容器重新分配一个伪输入终端. --rm 在容器退出时就能够自动清理容器. alpine镜像中没有bash,启动容器并进入终端的命令为…
JSON Web Token(JWT)是一种很流行的跨域认证解决方案,JWT基于JSON可以在进行验证的同时附带身份信息,对于前后端分离项目很有帮助. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c JWT由三部分组成,每个部分之间用点…
实时查询方案 HBase+Solr+HBase-Indexer 1.HBase提供海量数据存储 2.solr提供索引构建与查询 3.HBase indexer提供自己主动化索引构建(从HBase到Solr) HBase Indexer https://github.com/NGDATA/hbase-indexer 教程 https://github.com/NGDATA/hbase-indexer/wiki/Tutorial…