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

BoltDB 一个简单的纯 Go key/value 存储 [译]

boltDB Blot Bolt 是由 Howard Chu 的 LMDB 项目启发的一个纯粹的 Go key/value数据库。 该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速和可靠的数据库。 由于 Bolt 是用来作为这样一个低层次的功能,简单是关键。 该API将是小的,只专注于获取值和设置值而已。 项目状态 Blot 稳定,API固定,文件格式固定。 使用完整的单元测试覆盖率和随机黑箱测试来确保数据库一致性和线程安全性。 Blot 目前用于高达1TB的高负载生产环境。 Shopify 和 Heroku等许多公司每天都使用 Bolt 来支持服务。 A message from the author Bolt 最初的目标是提供一个简单的纯 ...阅读全文

分布式计算系统 Go Glow

Glow 是使用 Go 编写的易用分布式计算系统,是 [Hadoop Map Reduce](http://www.oschina.net/p/hadoop),[Spark](http://www.oschina.net/p/spark-project),Flint,[Samza](http://www.oschina.net/p/samza) 等等的替代品。 Glow 的目标是提供一个库,可以在并行线程或者分布式集群机器中进行更简单计算。 安装:

go get github.com/chrislusf/glow
go get github.com/chrislusf/...阅读全文

Golang GC算法

概括 Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 三色并发标记清理算法。 非分代:不像Java那样分为年轻代和年老代,自然也没有minor gc和maj o gc的区别。 非紧缩:在垃圾回收之后不会进行内存整理以清除内存碎片。 写屏障:在并发标记的过程中,如果应用程序(mutator)修改了对象图,就可能出现标记遗漏的可能,写屏障就是为了处理标记遗漏的问题。 三色:将GC中的对象按照搜索的情况分成三种: 黑色: 对象在这次GC中已标记,且这个对象包含的子对象也已标记 灰色: 对象在这次GC中已标记, 但这个对象包含的子对象未标记 白色: 对象在这次GC中未标记 并发:可以和应用程序(mutator)在一定程度上并发执行。 标记清理:GC算法分为两个大步骤:标记阶段找出要回收的对象,清理...阅读全文

博文 2019-01-03 21:34:49 一剑光寒十九洲

Go 语言的异步任务队列和作业队列 AsynQ

## asynq 是一个 Go 语言的异步任务队列和作业队列,基于分布式消息传递。 ### asynq 中的任务(或者作业)可通过多个 worker 在很多服务器上并发的执行,或者可在单个服务器上利用 Go 的协程运行多个 worker 进程。来自谷歌员工2020年创建的标准库。 https://github.com/hibiken/asyn...阅读全文

博文 2020-01-18 00:48:00 paigel

游戏服务器框架mqant

mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好...阅读全文

开源项目 2017-02-28 03:04:10

Go语言的浮点型比较大小及其函数式编程魅力

我们在编程中经常需要对两个浮点型比较大小,下面我就来分享一段这样的代码,同时也展示了Go语言函数式编程的独特魅力: import ( "fmt" "math" ) func main() { // 设置精确度为0.00001 var a Accuracy = func() float64 { return 0.00001 } fmt.Println(a.Equal(0.11111222, 0.11111222233333)) //打印结果为:true } type Accuracy func() float64 func (this Accuracy) Equal(a, b float64) bool { return math.Abs(a-b) < this() } func (this ...阅读全文

博文 2016-09-05 15:00:00 henrylee2cn

Go语言适用的领域

Go语言适用的领域【转载自知乎】1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。2、分布式系统,数据库代理器等。3、网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。4、内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。5、云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。6、游戏服务端的开发...阅读全文

博文 2017-02-10 11:30:56 抚琴煮酒

Golang web开发目录结构说明

通常开发项目开发时目录结构可以随意设计,但好的目录结构能让代码显得更加清晰。 Golang web 项目通用目录结构说明: projectName # 项目名称 |-- app # 应用程序目录 |---- controllers # 控制器,入参校验 |---- middleware # 中间件 |---- routers # 路由 |---- services # 业务逻辑处理 |-- config # 配置文件 |-- dao # 数据库访问 |-- models # 数据模型 |-- storage #存储 |---- cache # 缓存 |---- logs # 日志 |-- main.go # 程序入...阅读全文

博文 2018-11-27 23:34:39 野尘lxw

beego自动化部署

beego是Golang写的应用程序开源框架http://beego.me/,我使用`beego`写了一个项目小项目,golang是编译语言,需要编译之后再部署,每次部署到服务上是件很麻烦的事情。就写了一个自动打包部署到服务器的脚本,方便发布部署。 ##**项目结构**先看看beego项目的结构: beepkg |-- conf | `-- app.conf |-- controllers | `-- default.go |-- main.go |-- models |-- routers | `-- router.go |-- static | |-- css | |-- img | `-- js |-- tests | `-- default_test.go `-- views `--...阅读全文

博文 2017-02-10 14:46:23 姜家志

【币码翁】IPFS官方周报第54期 ​

​ 欢迎关注 IPFS 周报!提请注意: 请将 URL 复制/粘贴到浏览器中打开网站。感谢您的支持!星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub (https://github.com/ipfs ) 上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱吗? 订阅我们的每周通讯( https://tinyletter.com/ipfsnewslette...阅读全文

博文 2019-08-14 19:32:46 IPFS星际特工

微服务架构

微服务架构·基础篇 看到最近“微服务架构”这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习。而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究。 于是成小胖马上屁颠屁颠的跑过去向老王请教:“王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?” 老王笑了笑说:“要想知道什么是微服务架构,你得先知道什么系统架构设计。” 成小胖的理想是成为一名架构师,平时积累了不少知识,因此对“系统架构设计”这个概念还是很熟悉的,因此他马上就给出了答案【1】: 系统架构设计描述了在应用系统的内部,如何根据业务、技术、组织、灵活性、可扩展性以及可维护性等多种因素,将应用系统划分成不同的部分,并使这些部分彼此之间相互分工、相互协作,从而为用户提供某...阅读全文

博文 2017-10-29 15:03:58 Leo_wl

Google 为 TensorFlow 启用 tensorflow.google.cn 域名

8月31日,Google 在中国的开发者网站上提供数百份实用资源,让中国的开发者们能够更便捷地使用 TensorFlow 打造人工智能应用。所有对 TensorFlow 感兴趣的开发者、研究人员或公司都可以在 tensorflow.google.cn 上获取使用指南,在知识库中搜索现有的 API(应用程序编程接口),或是构建模型的方法。如果你是一家希望打造人工智能服务的初创公司,可以在这里清楚地了解到 TensorFlow 的使用方式,并通过实践教程进行学习,而这些资料和教程都完全免费。 Google 很重视中国的 AI 开发者? 中文官网:https://tensorflow.google.cn/ 官网:https://www.tensorflow.org...阅读全文

Google资深工程师深度讲解Go语言

课程地址:http://icourse8.com/go_pachong.html
课程地址:http://icourse8.com/go_pachong.html
课程目录第1章 课程介绍第2章 基础语法第3章 内建容器第4章 面向“对象”第5章 面向接口第6章 函数式编程第7章 错误处理和资源管理第8章 测试与性能调优第9章 Goroutine第10章 Channel第11章 http及其他标准库第12章 迷宫的广度优先搜索第13章 开始实战项目第14章 单任务版爬虫第15章 并发版爬虫第16章 数据存储和展示第17章 分布式爬虫第18章 课程总结 class Solution: def isMonotonic(self, A: List[int])...阅读全文

博文 2019-05-24 20:35:12 zhongjunr

Go 项目标准布局(结构)

https://github.com/golang-standards/project-layout 项目总结了 Go 项目的布局,这是Go应用程序项目的基本布局,并不是Go核心开发团队定义的官方标准;但是,这是Go生态系统中的一种常见的项目布局模式。 Go目录 /cmd 该目录用于存放 Go 项目的入口,即 main.go。一般来说,我们应该在 cmd 目录下创建子目录,子目录名称代表可执行程序的名称(例如/cmd/myapp)。上面列出的优秀开源项目基本上遵循了这一规则。 一般来说,该目录中的代码应该尽可能少。如果认为该代码可以导入并在其他项目中使用,那么它应该位于/pkg目录中。如果该代码不可重用,或者不希望其他人重用它,则将该代码放在/internal目录中。 /internal 这...阅读全文

博文 2020-03-03 15:33:24 DevilRoshan

DockOne微信分享(五十九):基于Docker的分布式服务研发实践

【编者的话】Docker自从发布以来,短短3年的时间就迅速成长为各家争先追捧的宠儿,各家企业都希望能够借助Docker来提升自己的产品、优化现有的研发流程。本文分享Docker在天云软件分布式服务研发过程中的应用与实践,主要介绍使用Docker、Compose构建分布式服务的CI/CD体系;容器技术的引入为天云软件的SkyForm CMP带来了哪些变化;围绕着CI/CD,如何使天云软件在日常研发活动中变得更加敏捷、高效。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯、中国民生银行等公...阅读全文

博文 2017-06-25 16:25:00 franklin798

Go语言,Docker和Kubernetes

载自:http://www.yinwang.org/blog-cn/2016/03/27/docker 当我嘲笑Go语言的时候,有些人跟我说,你说Go语言是垃圾,可是你看像Docker和Kubernetes之类的云计算项目,为什么是Go语言写的呢? 其实答案很简单:这些东西并不是非得用Go语言写才可以,用其他语言实现它们其实并没有什么问题,只不过它们碰巧是用Go语言写的而已。Docker和Kubernetes之类的项目,其实只依赖于操作系统的构架细节,对语言没有特别的要求,而且也没什么性能需求,所以它们其实可以用任何语言(包括Shell,Perl,Python,Ruby,C,Java……)来实现。只因为有人跟风,用Go语言写了这些东西,并不能说明Go语言是好东西。在当今混乱的IT业界,随便你...阅读全文

博文 2016-05-10 18:00:03 cytzrs

Canonical 用 Go 做了这五个超酷的项目

前不久,Google 的 Go 问鼎 TIOBE 排行榜,成为 2016 年年度编程语言。Go 因其易学性及务实性受到大家的喜爱。抛开长篇累牍的理论,Go 更注重的是实践经验,因此越来越多的用户将其应用到工业环境中。在 Canonical 中也一样!作为 Go 的支持者,我们用 Go 做了五个超酷的项目: 1、Juju Juju 堪称是“DevOps工作经验的结晶”,能使用 Charms 将应用程序体系结构部署到 EC2,OpenStack,Azure,HP 数据中心,甚至是基于 Ubuntu 的笔记本电脑。它使得开发和部署过程中团队间的对话和工作流程变得极为清晰明了。 2、Snapcraft Snapd 和 snap工具使系统能够使用 .snap 文件。 为每个 Linux 桌面,服务器,...阅读全文

博文 2017-01-24 17:00:09 编辑部的故事

(一) Tendermint 简介及与Fabric对比

一、什么是Tendermint Tendermint 是支持拜占庭容错的区块链引擎,包含区块链共识引擎(Tendermint Code)和通用应用程序接口(Tendermint Application BlockChain Interface, 也称作为 Tendermint ABCI). 基于Tendermint 我们可以很方便的进行公链和联盟链的开发。 以广为人知的加密货币比特币为例。 比特币是一个加密货币区块链,每个节点都维护一个经过完全验证的未支出交易输出(UTXO)数据库。 如果有人想在ABCI上创建一个类似比特币的系统,Tendermint Core将会实现: 在节点之间共享区块和交易 建立交易标准/不可更改的顺序(即区块链) 应用程序将会实现 维护UTXO数据库 验证交易签名 ...阅读全文

博文 2020-03-01 03:32:47 卡戎li

时速云镜像市场发布 欲打造中国版的Docker Hub

以Docker为代表的容器技术正在席卷整个IT业界,容器技术赋予了企业开发部署运维更多的敏捷性。而在以Docker为代表的容器虚拟化技术市场,国内云计算创业公司时速云TenxCloud是最早的开拓者之一,时速云推出了国内首个轻量级的容器云平台。其倡导以容器化应用作为云端应用交付的标准,为开发者和企业提供快速构建、集成、部署、运行容器化应用的云平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。 Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到主流的 Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口,性能开销很低,可以很容易地在机器和数据中心中运行。 Docker的以下优势决定了容器技术将会引领下一次云计算的变革: 1)...阅读全文

我看好的编程语言

golang google出品要旨在替代c语言,天生支持并发与协程,在区块链领域大放光彩 dart google出品,本来是要替代javascript没有成功,直到flutter框架的出现,可以快速在iOS和Android上构建高质量的原生用户界面 Kotlin google官方安卓开发语言,由JetBrains公司开发 R 语言 科学计算与人工智能语言,受到研究人员喜爱,非开源 Rust 与golang竞争的语言,由Mozilla开发 lua 一种小巧的脚本语言,所有脚本引擎中,Lua的速度是最快的,许多游戏的扩展脚本都由它编写,torch人工智慧框架有此语言接口 Erlang 天生的并发式语言,很古老,主要用于开发并发和分布式系统 Elixir Elixir 是一个基于 Erlang 虚...阅读全文

2018最新后端开发人员的路线图

现在的 Web 开发与几年前完全不同了,有很多不同的东西可以轻易地把人拒之门外,这也是我们决定制作这个循序渐进指南的原因之一,并让任何人可以清楚地了解他们在 web 开发中扮演的角色。可以在下面的图片中找到详细的路线图,而我也将在下面的描述中解释每一个步骤。在开始之前,虽然我们没有在下面的路线图中列出 HTML / CSS 的知识,但建议读者至少要了解一些基本的 HTML / CSS 知识。 Step 1 —— 学习一门语言(Learn a Language)语言有很多选择,我已经将它们分成几类,以便更容易做出决定。对于刚开始进入后端开发的初学者,我建议你选择任何脚本语言,因为它们有很多功能,可以让你快速起步。如果你有一些前端知识,你可能会发现 Node.js 更容易(还有一个很大的就业市场...阅读全文

博文 2018-06-23 22:34:39 Alukar

区块链100讲:Hyperledger Fabric 中的链码(智能合约)

image 1 链码概念 网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易所必须的智能合约(在 Hyperledger Fabric 中被称之为 Chaincode,也就是链上代码)的相关知识,以便于理解账本中的数据到底是通过什么方式进行操作。 Chaincode:链上代码,简称链码,一般是指由开发人员使用Go语言(也支持Java等语言)编写的应用程序代码,提供分布式账本的状态处理逻辑。链码被部署在Fabric的网络节点中,能够独立运行在具有安全特性的受保护的 Docker 容器中,以 gRPC 协议与相应的 peer 节点进行通信,以操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。 链码分类 在 Hyperledger Fabric ...阅读全文

博文 2018-12-01 22:35:05 宇宙永恒

Golang老男孩Go语言第一期

微信号:new_video qq号码:2381392963资料来源网络,仅供学习使用,请勿传播。如有侵权,请联系删除。 课程介绍: Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(RobPike)说:我们之所以开发Go,是因为过去10...课程截图...阅读全文

博文 2019-08-20 16:02:57 天天向上学习

Etcd 架构与实现解析

前一段时间的项目里用到了 Etcd, 所以研究了一下它的源码以及实现。网上关于 Etcd 的使用介绍的文章不少,但分析具体架构实现的文章不多,同时 Etcd v3的文档也非常稀缺。本文通过分析 Etcd 的架构与实现,了解其优缺点以及瓶颈点,一方面可以学习分布式系统的架构,另外一方面也可以保证在业务中正确使用 Etcd,知其然同时知其所以然,避免误用。最后介绍 Etcd 周边的工具和一些使用注意事项。 阅读对象:分布式系统爱好者,正在或者打算在项目中使用Etcd的开发人员。 Etcd 按照官方介绍 Etcd is a distributed, consistent key-value store for shared configuration and service discovery 是...阅读全文

博文 2017-02-09 19:54:39 jolestar

Docker 网络 Weave

Weave 创建一个虚拟网络并连接到部署在多个主机上的 [Docker](http://www.oschina.net/p/docker) 容器。 ![Weave Virtual Network](http://static.oschina.net/uploads/img/201411/05072923_yhZd.png "Weave Virtual Network") 应用程序使用该网络就好像它们是插在同一个网络交换机上,无需任何配置和端口映射。容器内的服务可直接为容器外的应用所访问,而不需要关心容器运行在什么地方。 ![Weave Deployment](http://static.oschina.net/uploads/img/201411/05072924_uWUJ.png "...阅读全文

Validator

https://github.com/smartwalle/validator ## Validator 这是一个用 Golang 写的数据验证组件,主要用于验证 Struct 的属性是否满足特定的规范。 Golang 已经存在很多类似的第三方组件,但是总感觉使用起来不够灵活,尤其是在开发 API 接口的应用程序中,如果数据验证错误,需要返回一个 code 和 message 字段。[Validator](https://github.com/smartwalle/going/tree/master/validator) 这是我之前写的一个,使用起来总觉得不方便。 新版本的 Validator 将数据验证的权限完全将由者处理,开发者为每一个需要验证的属性写相关的验证方法,...阅读全文

GoCollaborate: Golang轻量级分布式服务器框架搭建系列 - 0 (索引篇)

前言 Golang 是 Google 在2007年发布的一门开源的静态编译型编程语言,在垃圾回收、结构类型以及并发编程的处理上拥有自己的独到之处,近年来更是成为使用频率上升速度最快的编程语言之一。 想必大家对于 Golang 的大名早已有所耳闻,而今天作者菌则准备通过自己的一个开源项目 GoCollaborate 为例,给大家介绍一下我们如何利用Golang快速开发高性能服务器集群,并将之应用到能源网络,量化交易,区块链,机器学习等等大数据计算场景。 GoCollaborate 是什么? 很多同学看到这里可能会问了,这个框架什么?我又能用它来做什么呢? 简而言之, GoColaborate 是一个提供分布式服务管理搭建的轻量级通用框架,您可以轻松地用它进行编程,构建扩展,以及创建自己的高性能...阅读全文

博文 2017-09-05 04:34:57 CodeBrewer

基于 MySQL 的新一代分布式关系型数据库RadonDB

RadonDB 是青云(QingCloud)基于 MySQL 研发的新一代分布式关系型数据库,于 5 月 10 日开源。 RadonDB 不仅支持分布式事务,全面兼容 MySQL,还能够实现容量与性能无限水平扩展,具备金融级数据强一致性,满足企业级核心数据库对大容量、高并发、高可靠及高可用的苛刻要求。此外,还支持智能化自动分表、自动扩容及自动运维,大幅减轻数据库运维压力。 此次开源的 RadonDB 包括 Radon 和 Xenon 两个子项目,其中: Radon 即 RadonDB 的 SQL 层实现,具有分布式事务与无限可扩展的功能; Xenon 是存储层的高可用工具,使用 Raft 选举算法与 MySQL Binlog 并行复制技术,实现后端 MySQL 集群的金融...阅读全文

go的switch case

可以一个case带几个参数: var i = 0 switch i { case 0, 1: fmt.Println(“1”) case 2: fmt.Println(“2”) default: fmt.Println(“def”) } 默认有break效果,要取消就加上fallthrough: var i = 0 switch i { case 0: fallthrough case 1: fmt.Println(“1”) case 2: fmt.Println(“2”) default: fmt.Println(“def”) } case还可以是表达式: var i = 0 switch { case i > 0 && i < 10: fmt.Println(“i > 0 and i <...阅读全文

博文 2019-01-22 18:35:15 梁十八

左耳朵耗子:Go语言?Docker?对新技术怎么看?

作者|陈皓 编辑|杨爽 对于 Go 语言和 Docker 这两种技术,在国内的技术圈中有相当大的一部分人和群体还在持观望或是不信任的态度。所以,我想写这篇文章,从两个方面来论述一下我的观点和看法。本文摘自陈皓(左耳朵耗子)在极客时间 App 开设的付费专栏“左耳听风”。 Go语言,Docker和新技术 来自InfoQ 00:0001:34 本音频时长 1′34′′,12′完整音频请在【极客时间】收听。 上个月,作为 Go 语言的三位创始人之一,Unix 老牌***罗勃·派克(Rob Pike)在新文章“Go: Ten years and climbing”中,回顾了一下 Go 语言的发展过程。其中提到,Go 语言这十年的迅猛发展大到连他们自己都没有想到,并且还成为了云计算领域中新一代的开发语...阅读全文

博文 2019-04-08 14:35:18 qq5ac46f12063af

分布式系统跟踪框架 Apache HTrace

Apache HTrace是Cloudera开源出来的一个分布式系统跟踪框架,支持HDFS和HBase等系统。该项目目前还在孵化阶段。 ![htrace-f1](http://static.oschina.net/uploads/img/201606/06153821_NjbB.png) Apache HTrace是一个 Apache Incubator 项目, 可以与独立的应用程序和库使用。 HTrace是专为大的分布式系统使用的, 如Apache Hadoop分布式文件系统和Apache HBase存储引擎。 通过添加HTrace 支持到你的项目上,你将允许终端用户跟踪他们的请求。 此外,任何其他项目 使用HTrace都 可以使它 按照 你的项目的请求。  这就...阅读全文

go 性能监控神器

文地址:Golang 大杀器之性能剖析 PProf 前言 写了几吨代码,实现了几百个接口。功能测试也通过了,终于成功的部署上线了 结果,性能不佳,什么鬼????? 想做性能分析 PProf 想要进行性能优化,首先瞩目在 Go 自身提供的工具链来作为分析依据,本文将带你学习、使用 Go 后花园,涉及如下: runtime/pprof:采集程序(非 Server)的运行数据进行分析 net/http/pprof:采集 HTTP Server 的运行时数据进行分析 是什么 pprof 是用于可视化和分析性能分析数据的工具 pprof 以 profile.proto 读取分析样本的集合,并生成报告以可视化并帮助分析数据(支持文本和图形报告) profile.proto 是一个 Protocol Bu...阅读全文

Golang-函数式编程(闭包)

github:https://github.com/ZhangzheBJUT/blog/blob/master/closure.md 一 函数式编程概论 在过去近十年时间里,面向对象编程大行其道,以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象思想产生之前,函数式编程已经有了数十年的历史。就让我们回顾这个古老又现代的编程模型,看看究竟是什么魔力将这个概念在21世纪的今天再次拉入我们的视野。 随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,函数式编程也再次进入了我...阅读全文

博文 2015-06-17 20:17:25 Crazy__Programmer

【币码翁•IPFS】第56期官方周报

​ 欢迎关注IPFS周报!星际文件系统 (IPFS)是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周报旨在跟踪整个生态系统的开发。IPFS生态圈动态你在 Twitter 上关注 IPFS吗? 关于新闻中 IPFS 的最新汇总,请查看我们的Twitter 提要或查看有关 Awesome IPFS 的最新文章。包装链项目概述,David Craven,2019年8月24日幻灯片:go-libp2p-noise,Ed Mazurek,ETHBerlinZwei,2019年8月24日我如何使用3Box建立一个全栈Dapp,Pedro Gomes,2019年8月23日为您的应用程序添加身份验证的简便方法,2...阅读全文

博文 2019-08-29 20:32:46 IPFS星际特工

Golang的压测工具 hey

https://github.com/rakyll/hey -n 要运行的请求数。默认是200。 -c 并发运行的请求数。请求的总数不能小于并发级别。默认是50。 -q 速率限制,以每秒查询(QPS)为单位。默认没有限制。 -z 发送请求的应用程序配置。当时间到了,应用程序停止并退出。如果指定持续时间,则忽略n。例子:- z 10s - z 3m。 -o 输出类型。如果没有提供,则打印摘要。“csv”是唯一受支持的替代方案。转储文件的响应以逗号分隔值格式的度量。 -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -H 自定义HTTP头。您可以通过重复标记指定所需的数量 For example, -H "Accept: ...阅读全文

Golang实现一种生存UUID唯一标识的方法

1、什么是UUID UUID简介 通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。 UUID的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。 2、Go中现有的UUID第三方生成办法 目前,golang中的uuid还没有纳入标准库,我...阅读全文

博文 2019-01-23 18:34:42 IT无崖子

Google Container Engine进军生产环境,容器技术势不可挡

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/08/Google1.jpg) 谷歌现在提供的容器管理服务,名为Google Container Engine,上周正式进入生产环境。这将为企业在Google Cloud Platform上运行他们自己最重要的应用做好了准备。 越来越多的组织或企业使用容器来构建应用程序,因为基于容器技术的应用易于扩展、复制和更新。这项新服务提供了一种方法来管理大量的容器,消除大量容器编排的繁琐工作。 谷歌在2014年11月推出容器引擎预览版。凭借当前的这个商业版本,谷歌准备正式进军生产环境,承诺保证99.95%的正常运行时间。 定价是这样的:最高可以免费使用6节点...阅读全文

golang graphviz与pprof

sudo port install graphviz fuyundeMacBook-Pro:~ fuyun$ sudo port install graphviz Warning: The Xcode Command Line Tools don't appear to be installed; most ports will likely fail to build. Warning: Install them by running `xcode-select --install'. ---> Computing dependencies for graphviz ---> Fetching archive for graphviz ---> Attempting to fetch gr...阅读全文

博文 2015-06-17 20:04:01 x_focus

在Golang中使用Protobuf

本教程使用proto3版本的protocol buffer语言,提供了一个基本的在Go程序中使用protocol buffer的介绍。通过创建一个简单的示例应用程序,向你展示如何 在.proto文件中定义消息格式。 使用protoc编译器编译生成Go代码。 使用Go的protocol buffer API读写消息。 它不是一个全面的在Go中使用protocol buffer的指南,更详细的参考信息请查看前面的两个教程。 Protobuf语言指南 Protobuf生成Go代码指南 为什么使用protocol buffer 我们将要使用的示例是一个非常简单的“地址簿”应用程序,可以在文件中读取和写入人员的联系人详细信息。地址簿中的每个人都有姓名,ID,电子邮件地址和联系电话号码。 如何序列化和检...阅读全文

博文 2019-09-20 14:02:42 KevinYan

2017 年 Go 语言编程的发展

导读 在 Go 开源之后的 7 年里,它已被全球采用。他们可以更轻松地在易读而可用于生产环境的应用程序中向他人展示数据模型。与此相结合的是 Go 的广泛使用,而且有数据专家创建“可用并且与其它程序配合”的程序。任何使用 Go 构建的应用数据科学家会在公司其他部分使用相同的语言,或者至少它非常适合现代架构。 今年像动态插件,Serverless Go 以及 HTTP/2 这些创新对开发意味着什么 Go 1.8 刚刚发布,它有几个新功能,包括: 1.HTTP/2 Push 2.HTTP 服务器平滑关闭 3.插件 4.缺省 GOPATH 这些新功能的影响力取决于你和开发团队如何使用 Go。 自从 Go 1.0 于 2012 年发布以来,其简单性、并发性和内置支持使其保持普及度不断增长,所以对“Go...阅读全文

博文 2017-03-13 12:00:38 linux-tao

响应式网页设计(RWD)__Go:2015 及未来的技术

本文中,我们将一同看看当今 Web 开发的发展趋势,给大家分享我对 2015 年及未来的一些看法、观察和预测。我从 2000 年就开始做 Web 技术方面的工作,而近几年主要是做云架构解决方案。作为一名 Web 开发者,我曾在 .Net、Node.js 和 Go 技术栈上开发 Web 应用和 Web 服务。最近,我将 Web 技术和开发趋势作为整体研究了一遍,在这里分享一下我的想法和观察结果。 首先,让我分享一些我所观察到的可用性和体系结构目前的趋势。 可用性的趋势 如今,用户体验变得比以往更重要,响应式网页设计(RWD)也成为了网站必备的特性。RWD 能让最终用户在不同尺寸的设备上访问网站,包括手机和平板浏览器。有了 RWD 取代移动网站,我们便无需为移动用户单独开发额外的网站。特别是当我...阅读全文

博文 2014-10-12 02:00:05 oywl2008

Go 语言的数据结构 :栈与队列

在[先前的博文](https://studygolang.com/articles/12686)中,我们探讨了链表以及如何将它应用于实际应用。在这篇文章中,我们将继续探讨两个相似且功能强大的数据结构。 ## 建模操作和历史 让我们看看 Excel 或 Google 文档,他们是人类发明的最普遍的构成文件的应用程序。我们都使用过它们。 正如你可能知道的,这些应用程序有各种各样对文本的操作。 比如在文本中添加颜色、下划线、各种字体和大小,或者在表格中组织内容。这个列表很长,我们期望从这些工具中得到一个普遍的功能 —— “撤销”和“重做”已经执行了的操作的能力。 你是否考虑过让你做,你将如何规划这样的功能?下面让我们探索一个可以帮助我们完成这样一项任务的数据结构。 ![](https://raw....阅读全文

博文 2018-05-10 21:46:45 SergeyChang

Docker容器网络指南

尽管媒体对容器技术存在大肆宣传,但是,应用程序打包技术仍在不断发展之中,特别是与网络有关的。 在过去的一年里,虽然Docker容器自身在网络功能方面有着长足的进步。但与此同时,Docker也构建了一个插件架构,允许更先进的网络管理工具控制容器。 同时,众多创业公司也已经开发出定制的平台来管理容器,而传统的供应商,如思科和VMware使他们的网络管理工具控制容器。因此,最初的容器网络挑战开始得到解决,但还有更多的工作要做。 ### 基本挑战 一直都存在容器网络问题。容器托管在相同的物理服务器上可以相互作用和共享数据。但Docker开发者最初没有能力将容器从一个主机迁移到另一个主机,或在不同的主机上将一个容器到另一个容器建立连接。 “跨容器通讯一直是最大挑战,”技术...阅读全文

【红岸智能】 -- IPFS官方周报第56期

​ 星际文件系统 (IPFS) ( https://ipfs.io/ )是一种新的超媒体分布协议,通过内容和标识来寻址。IPFS 支持创建完全分布式的应用程序。它的目标是使网络更快、更安全、更开放。由于范围广大,本周刊旨在跟踪整个生态系统的开发。想参与其中?点击下面的一些链接,查看我们在 GitHub ( https://github.com/ipfs )上的内容,或加入我们的 IRC ( https://riot.im/app/#/room/#ipfs:matrix.org )。想要更新你的收件箱吗? 订阅我们的每周通讯! (https://tinyletter.com/ipfsnewsletter)以下是自上次 IPFS 周刊以来的一些亮点。IPFS 生态圈的动态你是否关注Twitter...阅读全文

博文 2019-10-17 20:35:43 aside section ._1OhGeD