最新 | 最热门 | 最高评价

+0  Go HTTP Redirect的知识点总结

Tag: Go
鸟窝 发于 2017年04月20日 14:10 | 点击: 315 | 展开摘要
HTTP 规范中定义了返回码为 3xx 代表客户端需要做一些额外的工作来完成请求,大部分3xx用来做转发(redirect)。

状态码的详细说明可以参照规范或者 wikipedia、维基百科, 以下是代码的简短介绍。

300 Multiple Choices: 返回多个可供选择的资源

301 Moved Permanently: 请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一

302 Found: 请求的资源现在临时从不

查看全文: http://www.udpwork.com/item/16218.html

+0  gRPC的那些事 - interceptor

Tag: gRPC | Go
鸟窝 发于 2017年04月17日 13:41 | 点击: 404 | 展开摘要
gRPC-Go 增加了拦截器(interceptor)的功能, 就像Java Servlet中的 filter一样,可以对RPC的请求和响应进行拦截处理,而且既可以在客户端进行拦截,也可以对服务器端进行拦截。

利用拦截器,可以对gRPC进行扩展,利用社区的力量将gRPC发展壮大,也可以让开发者更灵活地处理gRPC流程中的业务逻辑。下面列出了利用拦截器实现的一些功能框架:

Go gRPC Middleware:提供了拦截器的interceptor链式的功能,可以将多个拦截器

查看全文: http://www.udpwork.com/item/16216.html

+0  Go Web 框架性能比拼 2017 春季版

Tag: Go
鸟窝 发于 2017年04月17日 10:05 | 点击: 759 | 展开摘要
谁是最快的Go Web框架?, 这是我去年发布的Go web 框架的评测。现在一年过去了,有些框架因为缺乏维护而被放弃了,又有新的轮子被创造出来,既有的轮子也在不停的演化升级,来去之间,Go的版本也已经升级的1.8了。 青年节前, kirillDanshin提了一个issue,希望能更新最新的测试结果,现在这篇文章就记录了最新的测试结果。

测试环境

CPU: Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 32 cores

查看全文: http://www.udpwork.com/item/16203.html

+0  gRPC的那些事 - streaming

Tag: Go
鸟窝 发于 2017年04月07日 11:29 | 点击: 524 | 展开摘要
gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。 客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的TCP链接次数、节省CPU使用、和电池寿命。

gRPC具有以下重要特征:
强大的IDL特性

查看全文: http://www.udpwork.com/item/16201.html

+0  [转]gRPC服务发现&负载均衡

Tag: gRPC | Go
鸟窝 发于 2017年03月26日 00:07 | 点击: 433 | 展开摘要
原文出处: gRPC服务发现&负载均衡, 作者: softfn。

构建高可用、高性能的通信服务,通常采用服务注册与发现、负载均衡和容错处理等机制实现。根据负载均衡实现所在的位置不同,通常可分为以下三种解决方案:

1、集中式LB(Proxy Model)

在服务消费者和服务提供者之间有一个独立的LB,通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB

查看全文: http://www.udpwork.com/item/16189.html

+0  一个有特色的有限状态机

Tag: Go
鸟窝 发于 2017年03月22日 23:18 | 点击: 1057 | 展开摘要
gofsm是一个简单、小巧而又特色的有限状态机(FSM)。

github已经有了很多状态机的实现,比如文末列出的一些,还为什么要再发明轮子呢?

原因在于这些状态机有一个特点,就是一个状态机维护一个对象的状态,这样一个状态机就和一个具体的图像实例关联在一起,在有些情况下,这没有什么问题,而且是很好的设计,而且比较符合状态机的定义。但是在有些情况下,当我们需要维护成千上百个对象的时候,需要创建成千上百个状态机对象,这其实是很大的浪费,因为在大部分情况下,对象本身自己会维护/保

查看全文: http://www.udpwork.com/item/16029.html

+0  [译]Go Slice 秘籍

Tag: Go
鸟窝 发于 2017年03月22日 20:17 | 点击: 439 | 展开摘要
这是 Golang官方的一个总结: SliceTricks

由于引入了内建的append的方法, 包container/vector的很多方法都被移除了,可以被内建的append和copy方法代替。

下面是栈vector的操作方法的实现,使用slice实现相关的操作。

AppendVector

1

a = append(a, b...)

Copy

1
2
3
4

b = make([]T, len(a))
copy(b, a)
// 如果a不为空,也可以用下面

查看全文: http://www.udpwork.com/item/16187.html

+0  前端架构的设计与进化

Tag: First Category
s5s5 发于 2017年03月21日 10:04 | 点击: 428 | 展开摘要
上周参加了一门这个课,笔记一下

架构

开发模式

通用模型

模板引擎

基础类库

组件框架

避免GOOGLE

大厂

选合适的

不用时怎么办

代码结构

团队和业务快速变化

开发行为耦合

多特性多并行

主线是什么

开发规范

编码

设计思路

模块拆分

结构分层

工具平台

工程化过程

框架支撑

研发效率(质量)

代码管理

运营支撑

运维监控

流程边界

流程

分工跨界

活动开发

平台化

经验沉淀

核心理念

查看全文: http://www.udpwork.com/item/16185.html

+0  编写地道的Go代码

Tag: Go
鸟窝 发于 2017年03月10日 10:36 | 点击: 854 | 展开摘要
在阅读本文之前,我先推荐你阅读官方的 Effective Go文档,或者是中文翻译版: 高效Go编程,它提供了很多编写标准而高效的Go代码指导,本文不会再重复介绍这些内容。

最地道的Go代码就是Go的标准库的代码,你有空的时候可以多看看Google的工程师是如何实现的。

本文仅作为一个参考,如果你有好的建议和意见,欢迎添加评论。

注释

可以通过 /* …… */ 或者 // ……增加注释, //之后应该加一个空格。

如果你想在每个文件中的头部加上注释,需要在版权注释

查看全文: http://www.udpwork.com/item/16139.html

+0  为 Go Mutex 实现 TryLock 方法

Tag: Go
鸟窝 发于 2017年03月09日 17:49 | 点击: 400 | 展开摘要
Go标准库的sync/Mutex、RWMutex实现了sync/Locker接口, 提供了Lock()和UnLock()方法,可以获取锁和释放锁,我们可以方便的使用它来控制我们对共享资源的并发控制上。

但是标准库中的Mutex.Lock的锁被获取后,如果在未释放之前再调用Lock则会被阻塞住,这种设计在有些情况下可能不能满足我的需求。有时候我们想尝试获取锁,如果获取到了,没问题继续执行,如果获取不到,我们不想阻塞住,而是去调用其它的逻辑,这个时候我们就想要TryLock方法

查看全文: http://www.udpwork.com/item/16169.html

+0  [译] Go 可视化性能分析工具

Tag: Go
鸟窝 发于 2017年03月06日 11:52 | 点击: 570 | 展开摘要
原文: A Short Survey of PProf Visualization Tools by Jordan Crabtree。

调试CPU相关的问题经常会涉及关于趋势的微妙问题。堆使用的峰值是否逐渐的增长? routine在什么地方被调用,调用的频度如何?

一图胜千言。
一张图片就可以提供很多有用的上下文信息,否则如果用语言解释起来累的半死。将pprof可视化显示可以将有用的CPU统计数据与整个时间的上下文关联起来。

pprof 是什么?

PProf是一个CP

查看全文: http://www.udpwork.com/item/16153.html

+0  [译]Go HTTTP Response代码片段

Tag: Go
鸟窝 发于 2017年02月22日 13:51 | 点击: 376 | 展开摘要
原文: HTTP Response Snippets for Go by Alex Edwards.

受 Rails layouts and rendering启发, 我觉得写一个关于Go HTTP Response的代码片段集合是一个不错的主意, 它可以用来说明Go web应用程序中通用的HTTP Response的使用。

只发送header

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

package main

import (
"

查看全文: http://www.udpwork.com/item/16143.html
|<<<1234567>>>| 一共48页, 573条记录