最新 | 最热门 | 最高评价

+0  异步编程语言的常见坑

Tag: Computer System | Go | Golang | NodeJS
ideawu 发于 2014年03月12日 22:35 | 点击: 3640 | 展开摘要
天生支持异步编程的语言如 NodeJS, Golang 等, 创建一个异步 routine 的成本非常小, 这确实是一个非常方便的功能. 比如用在网络爬虫程序的开发, 对于每一个要抓取的 URL 就启动一个 routine, 类似启动一个线程, 既能充分利用 CPU 多核, 代码也很简洁.

正因为太方便, 所以常常被滥用, 并引发许多严重坑. 下面分析一下.

1. 拖垮了所依赖的服务

写异步编程的程序员是爽了, 但维护数据库的 DBA 却要哭了. 异步编程程序员每一个查

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

+2  使用Go语言一段时间的感受

Tag: code | golang | 感受
windstorm 发于 2012年03月04日 01:33 | 点击: 3433 | 展开摘要
有一段时间没更新了。最近在忙一个Server+Client的项目,Client是Android手机,大概也就是几十的规模。Server是纯Golang实现,没有apache或者ngix这种web server,也没有数据库,自己写了个文件管理module,handle这种小规模的服务没问题。算下来接触Golang也有四个多月了,断断续续写了一些东西,这里纪录一下心得吧

先大概说下为什么用Golang。我是一个对语言有洁癖的人,曾经是一个c+Python的坚定呐喊者,最常说的

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

+0  Golang中如何让html/template不转义html标签

Tag: Golang | template
youngsterxyf 发于 2013年11月01日 00:00 | 点击: 3207 | 展开摘要
近期在使用Golang的net/http和html/template开发一个简单的HAProxy负载均衡任务管理系统(见搭建高可用负载均衡组件及缓存DNS一文说明)。

htmp/template在渲染页面模板的时候默认会转义字符串中的html标签,但有时我们并不想转义html标签,以下图所示为例:

图1中“ip:port列表(一行一个)”和“说明”两个输入框的内容行与行是以\n分隔的;图2中,这两部分内容分别在表格的“后端机器列表”和“说明”两列中展示,但行与行其实是以&

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

+0  再谈一下Golang

Tag: code | golang
windstorm 发于 2012年07月23日 15:05 | 点击: 2725 | 展开摘要
上次写了一篇使用Go语言一段时间的感受。支持和反对的声音都不少,反对的不外乎都出于这几点:Golang特性少,Golang没有集成编程语言研究这些年的新成果,Golang不exciting。Blah blah blah blah。

今天看Coders at work,Douglas Crockford在谈到标准设计的时候说:

” I think the best way to make Javascript better would be to make it

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

+0  Go的50度灰:Golang新开发者要注意的陷阱和常见错误

Tag: Golang
鸟窝 发于 2015年09月10日 09:30 | 点击: 2696 | 展开摘要
原文: 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
翻译: Go的50度灰:新Golang开发者要注意的陷阱、技巧和常见错误, 译者: 影风LEY

Go是一门简单有趣的语言,但与其他语言类似,它会有一些技巧。。。这些技巧的绝大部分并不是Go的缺陷造成的。如果你以前使用的是其他语言,那么这其中的有些错误就是很自然的陷阱。其它的是由错误的假设和缺少细节造成的。

如果你花时间

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

+0  在Golang的HTTP请求中共享数据

Tag: Technical | Golang
老王 发于 2019年02月08日 11:30 | 点击: 2691 | 展开摘要
首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。

实际上,我之所以关注这个问题源自 httprouter,众所周知,httprouter 是目前 Golang 社区最流行的 HTTP 路由库,不过它有一个问题,其 handler 参数定义如下:

func

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

+0  学习Golang的HTTP中间件机制

Tag: Technical | Golang
老王 发于 2019年01月31日 23:23 | 点击: 2318 | 展开摘要
因为 Golang 内置的 net/http 天生就支持 HTTP 中间件机制,所以即便不用 gin 之类的 Web 框架,我们也可以写出扩展性很好的 Web 应用。

假如你不了解 Golang 的 HTTP 中间件机制的话,那么可以把它看成是一个洋葱:

通过洋葱看中间件

每一个中间件都是一层洋葱皮,其中每一个中间件都可以改变请求和响应,我们可以很自然的把不同的逻辑放到不同的洋葱皮里,更代码更符合单一职责原则:

package main

import (
"net

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

+0  如何实现Golang的http请求处理中间件(译)

Tag: Golang | 翻译 | 中间件
youngsterxyf 发于 2014年01月17日 00:00 | 点击: 2293 | 展开摘要
原文:Golang Http Handlers as Middleware

译者:youngsterxyf

大多数现代Web组件栈允许通过栈式/组件式中间件“过滤”请求,这样就能干净地从web应用中分离出横切关注点(译注:面向方面程序设计中的概念?)。
本周我尝试在Go语言的http.FileServer中植入钩子,发现实现起来十分简便,让我非常惊讶。

让我们从一个基本的文件服务器开始说起:

func main() {
http.ListenAndServe(

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

+0  通过实例入门Golang

Tag: Technical | Golang
老王 发于 2017年06月09日 19:43 | 点击: 2179 | 展开摘要
如果想学会一门新语言,不仅要多读文档,还要多看别人写的代码,更要强迫自己用新语言多写代码。我在学习 Golang 之前,读过好几本相关的书籍,不过总感觉没真正学会,于是我决定动手用 Golang 写一个能用的工具试试,因为 Golang 最大的优势就是 goroutine 和 channel,所以我觉得实现一个简版的 ab(Web 压力测试工具)应该是一个不错的选择,用 Golang 磕磕绊绊总算实现了预想的功能,能够计算 Requests per second 和 Time

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

+0  再谈一下Golang

Tag: code | golang
windstorm 发于 1970年01月01日 08:00 | 点击: 2009 | 展开摘要
上次写了一篇使用Go语言一段时间的感受。支持和反对的声音都不少,反对的不外乎都出于这几点:Golang特性少,Golang没有集成编程语言研究这些年的新成果,Golang不exciting。Blah blah blah blah。 今天看Coders at work,Douglas Crockford在谈到标准设计的时候说: ” I think the best way to make Javascript better would be to make it s

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

+0  Go 语言简介(下)— 特性

Tag: 程序设计 | 编程语言 | Go | golang
陈皓 发于 2012年11月07日 08:17 | 点击: 1987 | 展开摘要
希望你看到这篇文章的时候还是在公交车和地铁上正在上下班的时间,我希望我的这篇文章可以让你利用这段时间了解一门语言。当然,希望你不会因为看我的文章而错过站。呵呵。

如果你还不了解Go语言的语法,还请你移步先看一下上篇——《Go语言简介(上):语法》

goroutine

GoRoutine主要是使用go关键字来调用函数,你还可以使用匿名函数,如下所示:

package main
import "fmt"

func f(msg string) {

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

+1  Go 语言简介(上)— 语法

Tag: 程序设计 | 编程语言 | Go | golang
陈皓 发于 2012年11月06日 08:27 | 点击: 1815 | 展开摘要
周末天气不好,只能宅在家里,于是就顺便看了一下Go语言,觉得比较有意思,所以写篇文章介绍一下。我想写一篇你可以在乘坐地铁或公交车上下班时就可以初步了解一门语言的文章。所以,下面的文章主要是以代码和注释为主。只需要你对C语言,Unix,Python有一点基础,我相信你会在30分钟左右读完并对Go语言有一些初步了解的。

Hello World

package main //声明本文件的package名

import "fmt" //import语言的fm

查看全文: http://www.udpwork.com/item/8576.html
|<<<12>>>| 一共2页, 20条记录