Go语言中文网 为您找到相关结果 74

代码质量管控的四个阶段

-- 背景 -- 本文讨论的代码质量指的是代码本身的质量,包括复杂度、重复率、代码风格等要素。代码是团队的共同财产,代码质量是团队技术水平和管理水平的直接体现。 代码质量下降通常会自成因果,导致恶性循环: * 破窗效应:在烂代码上继续生产烂代码的心理负担小很多 * 传染性:烂代码传递着一种不在意质量,只看业务成果的负面信息,会伤害团队的技术热情和工作氛围,导致更多烂代码出现 本文会分析代码质量下降的内在机制,并分享在代码质量管控方面的一些实践经验。 --------- 熵增定律与代码质量 --------- 熵增定律告诉我们,一个封闭系统总是趋向于熵增,也就是系统的无序程度只会不断增加。 阅读全文

博文 2017-09-10 07:35:23 张鑫

TypeScript基础学习(彬哥整理)

TypeScript基础学习(彬哥整理) http://www.byteedu.com/thread-1172-1-1.html (出处: www.ByteEdu.Com) 社区交流群:221273219 Golang语言社区论坛 : www.Golang.Ltd LollipopGo游戏服务器地址: https://github.com/Golangltd/LollipopGo 社区视频课程课件GIT地址: https://github.com/Golangltd/codeclass Golang语言社...阅读全文

博文 2020-01-23 16:32:41 Golang语言社区

Go语言经典库使用分析(六)| Negroni 中间件(二)

Go语言经典库使用分析,未完待续,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续系列。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 上一篇 Go语言经典库使用分析(五)| Negroni 中间件(一) 中介绍了Negroni中间的入门使用和一些介绍,比如如何添加中间等,中间件的路由等。这一篇主要讲原理,比如如何构建的中间处理链,如何编写自己的中间件等。 Negroni Handler处理器本质上来说Negroni是一个HTTP Handler,因为他实现了HTTP Handler接口,所以他可以被http.ListenAndServe使用,其次Negroni本身内部又有一套自己的Handler处理链,通过他们可以达到处理htt...阅读全文

博文 2017-09-16 03:32:13 飞雪无情

轻量级 Golang 中间件 Juliet

Juliet 是一款轻量级的 Golang 中间件链接助手,将 Context(地图)对象从中间件传递到下一个。 示例:

package main

import (
    "net/http"
    "log"
    "net"
    "fmt"

    "github.com/root-gg/juliet"
)

// Juliet is a lightweight middleware chaining helper that pass a Context (map) object
// from a middleware to the next one.
//
// Mid...阅读全文

开源项目 2016-12-18 02:00:04 root-gg

使用 Go 处理中间件

简介 gin 的中间件 创建中间件 总结 当前部分的代码 简介 开发 web 应用的时候, 很多地方都需要使用中间件来统一处理一些任务,比如记录日志, 登录校验等. gin 也提供了中间件功能. gin 的中间件 在项目创建之初, 就已经导入了一些中间件, 当时没有仔细介绍. g.Use(gin.Logger()) g.Use(gin.Recovery()) g.Use(middleware.NoCache()) g.Use(middleware.Options()) g.Use(middleware.Secure()) 前面两个是 gin 自带的中间件, 分别是日志记录和错误恢复.后面三个是设置一些 header, 具体是阻止缓存响应, 响应 options 请求,以及浏览器安全设置. /...阅读全文

博文 2019-10-18 12:32:48 帅气猫咪

在 Go 中编写令人愉快的 HTTP 中间件

在使用 Go 编写复杂的服务时,您将遇到一个典型的主题是中间件。这个话题在网上被讨论了一次又一次。本质上,中间件允许我们做了如下事情: * 拦截 `ServeHTTP` 调用,执行任意代码 * 对调用链(Continuation Chain) 上的请求/响应流进行更改 * 打断中间件链,或继续下一个中间件拦截器并最终到达真正的请求处理器 这些与 express.js 中间件所做的工作非常类似。我们探索了各种库,找到了接近我们想要的现有解决方案,但是他们要么有不要的额外内容,要么不符合我们的品位。显然,我们可以在 express.js 中间件的启发下,写出 20 行代码以下的更清晰的易用的 API(Installation API) ## 抽象 在设计抽象时,我们首先设想如何编写中间件函数(下...阅读全文

博文 2020-01-08 17:32:04 Alex1996a

高性能消息中间件——NATS

前 言这段时间我的主要工作内容是将公司系统中使用的RabbitMQ替换成NATS,而此之前我对Nats一无所知。经过一段时间紧张的学习和开发之后我顺利的完成了任务,并对消息中间件有了更深的了解。在此感谢同事钟亮在此过程中对我的帮助。NATS属于比较小众的一款中间件产品,中文资料基本上是没有的,故写以记之,为想学习Nats的同学提供一点帮助。 在介绍NATS之前先了解下什么是分布式系统和消息中间件对于分布式系统的定义,一直以来我都没有找到或者想到特别简练而又合适的定义,这里引用一下Distributed System Concepts and Design (Thrid Edition)中的一句话A distributed system is one in which components l...阅读全文

博文 2019-01-16 20:34:42 中间件

谈谈中间件开发

前言 本文主要是写给那些想从事中间件开发的同学看的 :) 如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :) 什么是中间件开发? 随着国内软件行业的发展,国内互联网公司规模越来越大,业务越来越复杂,随之使用大量的中间件来提高后台服务性能。由此产生了中间件开发和维护人员。 诚然,在小公司,中间件,例如缓存,MQ,RPC 等服务,极大可能是由业务开发人员自己维护,或者委托第三方云平台运维(支付一些费用)。但,如果后台开发超过 200 人,基本就会组建自己的中间件或者基础架构团队,用于维护后台服务器基础架构和中间件。 更大规模的公司,则由于各种各样的原因(性能,KPI),会自己开发中间件,简称自研。这要求中间件团队需要更多的人员。 中间件开发人员需要哪些素质? 既然需...阅读全文

博文 2018-10-20 17:34:38 莫那一鲁道

使用 Go 处理中间件

简介 gin 的中间件 创建中间件 总结 当前部分的代码 简介 开发 web 应用的时候, 很多地方都需要使用中间件来统一处理一些任务, 比如记录日志, 登录校验等. gin 也提供了中间件功能. gin 的中间件 在项目创建之初, 就已经导入了一些中间件, 当时没有仔细介绍. g.Use(gin.Logger()) g.Use(gin.Recovery()) g.Use(middleware.NoCache()) g.Use(middleware.Options()) g.Use(middleware.Secure()) 复制代码前面两个是 gin 自带的中间件, 分别是日志记录和错误恢复. 后面三个是设置一些 header, 具体是阻止缓存响应, 响应 options 请求, 以及浏览器...阅读全文

博文 2019-10-18 21:04:19 帅气猫咪

论egret的坑

1. Tween坑 功能:实现点击播放动画,播放动画后跳转到新标签页面 this.addEventListener(egret.TouchEvent.TOUCH,()=>{ var tw = egret.Tween.get(... tw.to({...},150) .call(()=>{ window.open("http://www.xx/xxx.html", '_blank'); }); } , this); 这样是会被认为不是用户手动触发的,是会被浏览器默认拦截的,不要写在call里边,但是可以写在settimeout里边 setTimeout(function () { window.open("http://www.xx/xxx.html", '_blank'); }) 扩展,像这...阅读全文

博文 2018-09-28 15:34:43 陨石坠灭

Python-GUI编程-PyQt5

课程介绍:Python-GUI编程-PyQt5编写出你开心就好的界面!实属Python各种工具开发必备!课程目录:├─001第一章:Python-GUI编程-简介│ 001-Python-GUI编程-简介│ 002-Python-GUI编程-GUI库的简介│ 003-Python-GUI编程-PyQt的简介│ 004-Python-GUI编程-PyQt的优势│ ├─002第二章:Python-GUI编程-PyQt的环境安装│ 005-Python-GUI编程-PyQt的环境安装(win)│ ├─003第三章:Python-GUI编程-GUI编程应该学什么?│ 006-Python-GUI编程-GUI编程应该学什么?│ ├─004第四章:Python-GUI编程-了解PyQt5库结构│ 007...阅读全文

博文 2020-01-14 22:59:28 lijm1266

Go语言经典库使用分析(五)| Negroni 中间件(一)

Go语言经典库使用分析,未完待续,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续系列。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 上一篇介绍的Gorilla Handlers中间件,严格来说不能称之为一个库或者框架,他只是一系列包装http.Handler的中间件函数,并且他们之间没有任何关系,也没有定义一种规则如何让我们基于它来开发我们自己的中间件,总之它是孤立的,中间件之间没有关系的。 我们这篇文章介绍的Negroni中间件库,是一个非常经典的库,非常小,但是功能强大,因为他定义了中间件的框架和风格,让我们可以基于它开发出我们自己的中间件,并且可以集成到Negroni中。 Negroni还兼容原生的http.Handle...阅读全文

博文 2017-09-02 01:38:37 飞雪无情

go的net/http包使用

网上资料有点杂,有的还掺杂中间件进去,导致使用有障碍,所以,直接上官方文档: 1,首先搞清[]byte string的相互转换,最简单的方式就是 string转[]byte:[]byte(para string) []byte转string:string([]byte) 然后还有就是io包的一些实现方式,比如: bytes.NewBuffer(para []byte).String() 2,如何从request中获取form,body,head,下面是官方的api: type Request func NewRequest(method, urlStr string, body io.Reader) (*Request, error) func ReadRequest(b *bufio.Re...阅读全文

博文 2017-07-11 11:03:27 dmwan

十分钟学会用Go编写Web中间件

本文首发于公众号,关注文末公众号回复gohttp03 获取文章所用完整源代码。 中间件(通常)是一小段代码,它们接受一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到了程序的解耦。如果没有中间件那么我们必须在最终的处理程序中来完成这些处理操作,这无疑会造成处理程序的臃肿和代码复用率不高的问题。中间件的一些常见用例是请求日志记录,Header操纵、HTTP请求认证和ResponseWriter劫持等等。 画外音:上面这段描述中间件的文字,跟我两年前在Laravel源码解析之中间件写的几乎一样(其实这图也是从那里拿过来的)。再次说明做开发时间长了以后掌握一些编程的思想有时候比掌握一门编程语言更重要,这不咱们就又用Go来写中间件了。 创建中间件...阅读全文

博文 2020-02-08 19:32:38 Kevin

01背包问题

01背包问题 有N件物品和一个容量为V的背包,每个物品只能使用一次, 第i件物品的体积时Vi,价值为wi 求解将哪些物品装入背包,可使物品的总体积不超过背包的容量,且总价值最大,并输出最大值。 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 wi,vi,用空格隔开,分别表示第 i 件物品的体积和价值 题目思路 这是一道经典的算法设计,解题之前,我们不妨先看个实际场景,一个小偷准备去某个大户人家偷东西,小偷带了一个包,该包的最大容积为5体积,该大户人家中物品的体积和价值如下: 体积 价值 1 2 2 4 3 4 4 5 问该小偷应该怎么选择物品,才能获得最大的物品价值? 按照小偷的思路,小偷面对一个物品的时候只有两种选择,放进包中或者不放进包中...阅读全文

博文 2020-01-05 13:32:43 陌无崖

兄弟连区块链培训教程图形用户界面1:初识Walk

很多人喜欢Go语言,其实是因为Go语言有其独特的语言属性在支撑着其在编程语言界的发展,今天兄弟连Go语言+区块链培训老师给大家介绍一下关于Go语言图形用户界面1:初识Walk,下面我们一起来看一下吧。( http://bt.itxdl.cn/ ) Go与GUI——GO语言的图形界面Walk GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。 关于Walk界面库(官方介绍):Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。 安装Walk 在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网...阅读全文

博文 2018-09-21 16:34:46 兄弟连区块链培训

golang:send mail using smtp package

go语言发送邮件,可以使用smtp包,两个关键函数: func PlainAuth(identity, username, password, host string) Authfunc SendMail(addr string, a Auth, from string, to []string, msg []byte) error 刚开始玩的时候,很好奇邮件的title是怎么设置进去的,毕竟从代码没看见有setTitle。后来发现是解析msg获取标题、发件人、收件人、邮件格式、邮件内容等;因此msg需要按一定格式写:To: xxx\r\nFrom:xxxx\r\nSubject: xxxx\r\nContent-Type:text/html; charset=UTF-8\r\n\r\n[邮...阅读全文

博文 2017-12-14 07:00:01 dannyyao

十分钟学会用Go编写Web中间件

本文首发于公众号,关注文末公众号回复gohttp03 获取文章所用完整源代码。 中间件(通常)是一小段代码,它们接受一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到了程序的解耦。如果没有中间件那么我们必须在最终的处理程序中来完成这些处理操作,这无疑会造成处理程序的臃肿和代码复用率不高的问题。中间件的一些常见用例是请求日志记录,Header操纵、HTTP请求认证和ResponseWriter劫持等等。 画外音:上面这段描述中间件的文字,跟我两年前在Laravel源码解析之中间件写的几乎一样(其实这图也是从那里拿过来的)。再次说明做开发时间长了以后掌握一些编程的思想有时候比掌握一门编程语言更重要,这不咱们就又用Go来写中间件了。 创建中间件...阅读全文

博文 2020-02-10 11:34:23 kevinyan

golang mail 实现ssl发送邮件

由于我们使用的阿里云服务器不能telnet 25端口,发送ssl时候感觉很蹩脚,就自己写了一个go mail 发送1、文档结构2、main.go// main.go package main import ( "flag" "fmt" "io/ioutil" "log" "net/smtp" "os" "sslmail/mymail" "strings" ) func SendMail(fromuser, password, subject, host, port, bodyfile, bodyhtmlfile string, tousers, attachs []string) error { // NewEmail返回一个email结构体的指针 e := mymail.NewEmail(...阅读全文

博文 2019-12-14 00:33:43 xingzhehxiang

gor 引流测试中间件golang代码添加注释

package main import ("bufio""bytes""encoding/hex""fmt""github.com/buger/goreplay/proto""os") // requestID -> originalTokenvar originalTokens map[string][]byte // originalToken -> replayedTokenvar tokenAliases map[string][]byte func main() {originalTokens = make(map[string][]byte)tokenAliases = make(map[string][]byte) scanner := bufio.NewScanner(os....阅读全文

博文 2018-07-02 21:35:46 gcjs10

10分钟掌握Android消息机制(一)机制分析

提到消息机制大家应该都不陌生,从开发的角度来说,Handler是Android消息机制的上层接口,这使得再开发过程中只需要我们和Handler打交道就可以了。Handler的使用过程很简单,通过它可以轻松的将一个任务切换到handler所在的线程中去执行。很多人认为Handler的作用就是更新UI,这的确没错,但是更新UI仅仅是Handler的一个特殊的使用场景。具体来说是这样的:有时候需要在子线程中进行耗时的操作,可能是读取文件或者访问网络等,当耗时操作完成以后可能需要在UI上做一些改变,由于Android开发规范的限制,一般情况我们并不能在子线程中访问UI控件,否则就会触发程序异常,这个时候通过Handler就可以将更新UI的操作切换到主线程中执行。因此,本质上来说,Handler并不是...阅读全文

博文 2019-08-26 15:33:06 Android阿沁

【干货分享】大数据开发套件DataIDE使用教程

课程介绍 大数据开发套件(Data IDE) 是阿里云数加重要的Paas平台产品,是”DataWorks”中最重要的核心组件。提供全面托管的工作流服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。 大数据开发套件(Data IDE) 基于MaxCompute作为核心的计算、存储引擎,提供了海量数据的离线加工分析、数据挖掘的能力。您可以参见 MaxCompute 简介来对其进行深入了解 。 使用大数据开发套件(Data IDE),可对数据进行数据传输、数据转换等相关操作,从不同的数据存储引入数据,对数据进行转化处理,最后将数据提取到其他数据系统。 产品详情:https://data.aliyun.com/product/ide 课时列表 • 课...阅读全文

要获得中间件开发的Offer,难么?

# 前言本文主要是写给那些想从事中间件开发的同学看的 :)如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :)# 什么是中间件开发?随着国内软件行业的发展,国内互联网公司规模越来越大,业务越来越复杂,随之使用大量的中间件来提高后台服务性能。由此产生了中间件开发和维护人员。诚然,在小公司,中间件,例如缓存,MQ,RPC 等服务,极大可能是由业务开发人员自己维护,或者委托第三方云平台运维(支付一些费用)。但,如果后台开发超过 200 人,基本就会组建自己的中间件或者基础架构团队,用于维护后台服务器基础架构和中间件。更大规模的公司,则由于各种各样的原因(性能,KPI),会自己开发中间件,简称自研。这要求中间件团队需要更多的人员。# 中间件开发人员需要哪些素质?既然需要中...阅读全文

博文 2020-04-07 15:32:46 编程的程序员