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

Go1.7改善了编译速度并且会生成更快的代码

Go1.7的开发周期正在接近它的下一个里程碑,Go的提交者Dave Cheney报告了子即将发布的版本中,团队成员在语言工具链上的努力。 Cheney称,基于当前的开发状态,Go1.7将会很容易就成为最好的Go发布版本。提升工具链的努力主要聚焦在如下两个方面: 编译和链接的时间; 代码生成。 当谈到编译时间,Go编译器自从C转到了Go的影响而一直以来的较慢的性能。这个问题已经被讨论很多次并且最近的完成的工作目标就是减少编译器内存使用来改善链接时间。这项改进和Go1.5.3相比大约减少了20-30%的总编译时间,如下图所示: 代码生成,如上文所述,是Go1.7的另一个主要关注点。新的后端改用SSA,和LLVM以及其他编译器着的一样,以启用代码生成的很多优化。这些优化包含更好的无用代码的消除,寄...阅读全文

设计模式-命令模式(Go语言描述)

在上一篇博客设计模式-单例模式(Go语言描述)中我们介绍了在golang中如何去实现单例模式,在文章的最后我们也介绍到了golang独有的一种实现单例的方式-sync.Once.Do(),可以让golang轻松的实现可以应对并发请求的单利.今天我们继续探索设计模式,来介绍一下命令模式的实现. 说起命令,大家第一反应可能就是我们平时敲的各种命令,啪啪啪几行命令下去就可以完成一些功能,在看到命令模式这个词后,可能大家也会和我一样认为这里的命令就是执行一些简单任务的功能,然而并不是,这里的命令更多的像是我们发出的请求或者电视遥控器的按键.这样吧,咱们先来看看命令模式的定义,然后再从生活中找实际的例子对比一下. 命令模式是将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队...阅读全文

博文 2016-03-06 12:00:00 qibin0506

用GO实现的改进的观察者模式

废话不说。上代码: Publisher.go: package main import ( "container/list" ) type Handler interface {//这里主要参考了Go里HTTP包的实现 Serve(int) } type HandlerFunc func(args int) func (f HandlerFunc) Serve(args int) {//是不是很熟悉的代码? f(args) } type Publish struct { HandlerFuncs *list.List Value int } func NewPublisher() *Publish { p := new(Publish) p.HandlerFuncs = list.New()...阅读全文

博文 2015-06-18 09:02:16 zha_stef

golang中使用kafka

golang中比较好用的kafka client有 sarama confluent-kafka-go go_kafka_client optiopay-kafka siesta 其中 sarama的使用者应该是最多的, 然后还有一个sarama的cluster版本sarama-cluster 本文简单描述下sarama的一些简单使用 生产者接口 func producer_test() { fmt.Printf("producer_test\n") config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll config.Producer.Partitioner = sarama.NewRand...阅读全文

博文 2018-09-29 18:34:37 yandaren

golang: facebookgo之inject测试用例

依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。在传统的程序设计过程中,调用者是自己来决定使用哪些被调用者实现的。但是在依赖注入模式中,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由注入器来完成,然后注入调用者,因此也称为依赖注入。 下面是facebookgo/inject 包的测试用例, 需要的自取。 https://github.com/e421083458/injec...阅读全文

Go 实现安全 cookie

我第一次学习 Go 的时候,已经有了一定的 Web 开发经验,但是直接使用 cookie 的经验还比较少。我之前是用 Rails 的,在 Rails 里面如果要读/写 cookie,并不需要自己去实现所有的安全措施。 如你所见,Rails 偏向于通过默认配置就将大部分事情搞定。你不必去设置 CSRF 反制措施,或者做任何特殊操作来加密 cookie。在较新版本的 Rails 中这一切都默认帮你做好了。 用 Go 开发就完全不同了,这些事情并没有默认帮你做好。所以当你想使用 cookie 时,了解所有这些安全措施就很重要:为什么存在有这些措施,以及如何在我们自己的程序中使用它们。本文旨在帮助你了解上述知识点。 > 本文目的不在于引发关于哪条路线更好的讨论/争论。两者都有各自的优点,这里不去比较...阅读全文

博文 2018-11-21 09:44:27 polaris

golang并发编程实践 -- 简单生产者消费者(with lock)

上一篇文章用golang中的channel实现了简单的消费者模型,下面的版本是用传统的锁技术实现的版本,相对比会发现golang提供的channel更好用。而且golang的channel可以完成很多在别的语言里需要很多代码才能实现的功能。以后陆续解答。 package main import ( "fmt" "sync" "time" ) type Queue struct { Elem []int Capacity int Front int Rear int Lock sync.Locker Cond *sync.Cond } func New() *Queue { theQueue := &Queue{} theQueue.Capacity = 10 theQueue.Elem = ...阅读全文

博文 2014-10-04 19:26:11 aura521521

Golang的值类型receiver和指针类型receiver

Golang的值类型和指针类型receiver一直让我比较混淆,在此做几个试验备忘 先看指针类型的receiver: package main import ( "fmt" ) type BasicEvent struct { EventId int } func (ev *BasicEvent) updateEventID(id int) { ev.EventId = id } func main() { ev1 := &BasicEvent{EventId: 1} fmt.Printf("before update id = %d\n", ev1.EventId) ev1.updateEventID(2) fmt.Printf("After update id = %d\n", ev1....阅读全文

博文 2015-04-23 15:00:01 miros

Go负载均衡

负载均衡 请求者向均衡服务发送请求type Request struct { fn func() int // The operation to perform. c chan int // The channel to return the result. } 注意这返回的通道是放在请求内部的。通道是first-class值 能很好的模拟一个请求者,一个负载产生者func requester(work chan<- Request) { c := make(chan int) for { // Kill some time (fake load). Sleep(rand.Int63n(nWorker * 2 * Second)) work <- Request{workFn, c} // ...阅读全文

博文 2017-03-05 19:45:34 紫若丹枫

Golang分布式设计模式之-----星型拓扑分形设计

Golang分布式设计模式之-----星型拓扑分形设计 上一篇分层设计中,利用了简单的流水线原理,实现了简单的状态转移的设计。如下 这一篇我们将考虑另外一种情况。例如,linux内核中的进程管理。所有的进程都有一个父进程。当子进程正常运行时候,与父进程基本无通信。但当子进程死亡时,要通知其父进程,让父进程进行资源回收。当父进程死亡时,两种情况,子进程随着父进程一起死亡,或者将子进程交由父进程的父进程管理。类似于下图 其中每个进程都有自己的父进程,也有可能会有自己的子进程。 在这种管理中,父子关系,或者说是管理者与被管理者的关系。被管理者,可以独自运行,但要将其的一些状态告知管理者,或者管理者,可以定期获取被管理者的状态。 下面以一个p2p下载器为例: 一、职能划分,形成管理者与被管理者 1)...阅读全文

博文 2015-01-21 09:17:51 screscent

一份来自阿里云引擎ACE的求职信,你收到了吗?

尊敬的企业领导,个人站长、开发者们: 如果有个员工,可以把企业把70%运维的工作都干了,你们再也不用操心对操作系统、运行环境、应用中间件的安装、配置、优化、监控、升级等一系列繁杂的维护工作,可以专注精力在业务运营上,您是否会考虑录用他? 下图就是阿里云引擎ACE求职信,敬请查收! 详细了解ACE:http://www.aliyun.com/product/ace !![1111111.jpg](http://studygolang.qiniudn.com/151126/487be9e31756e7b913347e4f645e3023.png) 详细了解ACE:http://www.aliyun.com/product/ace...阅读全文

2019公链项目实战 区块链公链项目实战 golang公链项目实战(视频+源码)

任务1:001 – 内容介绍.mp4任务2:002 -Block结构.mp4任务3:003 – 根据区块数据生成区块HASH.mp4任务4:004 – CreateGenesisBlock.mp4任务5:005 – Blockchain结构.mp4任务6:006 – 添加新的区块.mp4任务7:007 – ProofOfWork框架.mp4任务8:008 – 工作量证明算法分析.mp4任务9:009 – target移位处理.mp4任务10:010 – 挖矿算法完整实现.mp4任务11:011 – 判断区块Hash的有效性.mp4任务12:012 – 课程目标.mp4任务13:013 – 区块的序列化和反序列化.mp4任务14:014 – boltdb数据库的创建或者打开.mp4任务15:0...阅读全文

博文 2019-03-12 20:34:43 java20192019

Go 多返回值

Go语言革命性地在静态开发语言阵营中率先提供了多返回值功能。这个特性让开发者可以从原来用各种比较别扭的方式返回多个值的痛苦中解脱出来,既不用再区分参数列表中哪几个用于输入,哪几个用于输出,也不用再只为了返回多个值而专门定义一个数据结构。 package main import "fmt" func vals() (int, int) { return 3, 7 } func main() { a, b := vals() fmt.Println(a) fmt.Println(b) _, c := vals() fmt.Println(c) } 123456789101112131415 package mainimport "fmt" func vals() (int, int) { ret...阅读全文

开源邮件代理服务Exim被爆RCE和DoS漏洞,建议赶紧升级!

影响范围 4.88和4.89 开源邮件传输代理Exim简介 Exim是由剑桥大学Philip Hazel开发的邮件传输代理,负责邮件的路由,转发和投递。它可运行在绝大多数的类Unix系统上,包括Solaris、AIX、Linux、macOS等。相比其他MTA,Exim配置更灵活,支持String Expansion技术,能执行诸如条件判断,字符转换等功能。 Exim漏洞提交至BugTracker 一名安全研究员发现并公开披露了流行互联网邮件信息传输代理Exim中的两个紧急漏洞,其中一个能导致远程攻击者在目标服务器上执行恶意代码。 最开始漏洞是由Phil Ponnock在黑五(11月25日)没有任何预告发布在这里的,提交到了该项目的BugTracker。 漏洞详情 第一个漏洞是使用后释放漏洞C...阅读全文

博文 2017-11-30 01:53:04 www.dbsec.cn

老司机带你用 Go 语言实现 Raft 分布式一致性协议

老司机带你用 Go 语言实现 Raft 分布式一致性协议   随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。   为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。任何一个分布式系统都无法同时满足 Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中两项。 但是,一个分布式系统无论在 CAP 三者之间如何权衡,都无法彻底放弃一致性(Consistency),如果真的放弃一致性,那么就说明这个系统中的数据根本不可信,数据也就没有意义,那么这个系统也就没有任何价值可言。...阅读全文

博文 2017-02-09 06:00:24 chauncy

Golang学习笔记之方法(method)

如果对与结构体还有什么疑问的可以看一下Golang学习笔记之结构体 ⽅法总是绑定对象实例,并隐式将实例作为第⼀实参 (receiver)。 • 只能为当前包内命名类型定义⽅法。 • 参数 receiver 可任意命名。如⽅法中未曾使⽤,可省略参数名。 • 参数 receiver 类型可以是 T 或 *T。基类型 T 不能是接⼝或指针。 • 不⽀持⽅法重载, receiver 只是参数签名的组成部分。 • 可⽤实例 value 或 pointer 调⽤全部⽅法,编译器⾃动转换。 • Go 不允许同名函数,但是同名方法可以定义在不同的类型上 • method和receiver必须在同一个包里定义 • 作为函数参数,值类型就是值类型,指针类型就是指针类型 • 方法有一个值类型和指针类型的接受者时,...阅读全文

博文 2018-12-06 19:34:54 学生黄哲

Darma Cash简介

基础DMC 是在XMR基础上整合树图、DDPOS 、智能合约、预言机、及时通信等技术的区块链项目。一、创新 1、 创新采用树图结构并结合POW + DDPOS 共识模型,保证了币分发的公平性,又能保证币流通的安全性。 通过引入树图协议,让DMC在去中心化且POW条件下实现高TPS和协议层杜绝双花;而DDPOS (不限制节点的去中心化委托权益证明)进一步加强了网络的安全性,树图结构+POW +DDPOS 三者的融合让DMC在性能、安全、去中心化三角中实现了最优解。2、 在XMR基础上原创基于Omni Layer协议的隐私TOKEN,具有比ERC20 更安全、可靠、且完美继承XMR 全部的隐私特性的优点。3、支持golang语言的DVM虚拟机DMC原创并集成了一个基于WASM 优化的轻量级、图灵...阅读全文

博文 2020-03-05 03:32:40 DarmaCash

一人耗时 2 年,收集 2000 多万数据,创建了一个提供免费翻译搜索的网站

> 作为小微开发者,难以支付高昂的翻译费用,在线翻译又难以满足精度,所以想通过复用高质量的翻译实例进行软件内容翻译,我花了两年时间收集了2000 多万条移动 app 的翻译数据,将它们做成了一个搜索网站,期望能帮助小微开发者以更低的成本更好的质量完成软件或者网页的国际化。 #### i18n 多语言语料搜索引擎 - 网址:[https://i18ns.com](https://i18ns.com/) - 功能:支持 11 国语言搜索,包括:中文、英文、西班牙文、葡萄牙文等语言。有一千多种语言数据,超 2000 多万条数据,免费提供搜索服务。 - 详细介绍: <https://i18ns.com/help.html> - 中文搜索地址:[http...阅读全文

C,Go,Rust,Nim 4语回文数大战!仅供娱乐参考!

联想笔记本 inter i7,2.4GHz,16G,win10 C语言(应该是全C,vs2015编译) #include #include #include bool ishuiwen(int n) { int sn = 0; sn = n; int tn = 0; while (sn != 0) { tn = tn * 10 + sn % 10; sn = sn / 10; } if (tn == n) return true; return false; } int hw1() { int tx = 0; int x = 0; for (x = 0; x <= 10000000; x++) { if (ishuiwen(x) == t...阅读全文

博文 2015-09-25 09:00:00 捍卫机密

cannot call pointer method on xxx literal 错误❌原因

因: 指针不能作为接收者, 需要需要定义变量来接送地址​type myTreeNode struct{ node *tree.TreeNode } func (mynode *myTreeNode) postOrader(){ if mynode==nil || mynode.node==nil{ return } //错误的写法 myTreeNode{mynode.node.Left}.postOrader() right := myTreeNode{mynode.node.Right}.postOrader() mynode.node.Print() //正确的写法 left := myTreeNode{mynode.node.Left} left.postOrader() right ...阅读全文

博文 2018-08-27 21:44:48 zhangyangbest

机器学习入门:概念原理及常用算法

课程介绍 本课程主要讲解机器学习的概念、原理和应用场景,以及机器学习的常用算法,比如有监督学习、无监督学习、线性回归等。 讲师介绍: 西亭,蚂蚁金服大规模机器学习高级算法专家 学习入口:[请点击这里](http://click.aliyun.com/m/27941/) 课程目标 掌握机器学习的概念、原理和算法 适合人群 大数据开发者 机器学习开发者 阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场) ...阅读全文

马士兵:从零到年薪百万,写给浮躁的程序员

做老师这么多年,最高兴的就是听到学生说:“老师,我找到工作了!” “老师,我又涨薪水了”。听到这些,我由衷的替他们感到高兴,与此同时,也有作为老师参与到他们的人生发展中的那种自豪。但是,更多的是那些刚刚入行的人,他们感受到最多的,是迷茫,是无助。“老师,我怎么这么倒霉,刚毕业就赶上互联网寒冬,听说京东裁员了,听说阿里关闭招聘了,听说腾讯提高标准了,听说头条通过率只有.....”,“老师,这条路我还走下去吗?”作为一个骨灰级的“老人”,所谓的寒冬,我已经经历过多次。和其他行业一样,IT业也有自己的浮浮沉沉,每当行业低谷期,一群群在十字路口徘徊的人哪,都在不停的问:“我到底该何去何从?”我能建议的,是沉下心来学习。八年前,简晓敏以大专生的身份入职阿里,前几天,他说:“老师,您知道吗,我终于翻越百...阅读全文

博文 2019-05-09 03:35:01 马士兵

关于golang编写的kafka客户端消费者创建的问题

本人刚刚接触go语言,在用go语言写kafka消费者的时候遇到了如下问题:panic: kafka server: Offset's topic has not yet been created.可以确定是有这个topic的,而且用kafka-console-consumer.sh也是可以正常消费。go语言代码如下: brokers := []string{"xxxxxxx:9092","xxxxxxx:9092","xxxxxxx:9092"} topics := []string{"test"} config := cluster.NewConfig() config.Consumer.Return.Errors = true config.Consumer.Offsets.Commit...阅读全文

博文 2018-11-05 17:06:44 Eric_Gao

Docker 1.8.0增加Content Trust,容器安全性提升

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/08/docker1.8.01.jpg) Docker这家初创公司,让Docker在Linux容器中构建和部署应用越来越受欢迎,最近宣布了一项行特性,Docker在其最新版本的开源产品中增添Content Trust,这项功能将为使用容器的人们提供一个额外的安全层。 Docker Content Trust ,现在可以在Docker1.8.0版本中获取,它允许开发者在Docker Hub上下载container images之前检查其合法性。此项措施有望确保企业在利用Docker在自己的基础设施上部署应用时,不会有任何潜在的危险。 这对Docker来说异常...阅读全文

golang中Ticker的使用

// code_048_Ticker project main.go package main import ( "fmt" "time" ) //Ticker是一个定时触发的计时器, //它会以一个间隔(interval)往channel发送一个事件(当前时间), //而channel的接收者可以以固定的时间间隔从channel中读取事件。 func main() { ////创建定时器,每隔1秒后,定时器就会给channel发送一个事件(当前时间) ticker := time.NewTicker(time.Second * 1) i := 0 go func() { for { //循环 <-ticker.C i++ fmt.Println("i =", i) if i == 5 { ...阅读全文

博文 2018-10-08 17:35:50 ck_god

go语言调用阿里云OpenApi的签名加密问题?

https://help.aliyun.com/document_detail/25492.html?spm=5176.doc25490.2.2.Uwn9UA 我按照url的文档,对StringToSign进行hmac sha1进行加密,然后base64,得到的结果与文档例子的结果不一致 [v2-c7765a6260196517ed843e4f01d9e381_r.png](http://studygolang.qiniudn.com/170504/f396c10be7d70db4cbf999e6d0680f74.png) 我的代码: ``` package main import "fmt" import "crypto/sha1" im...阅读全文

Signal守望者 (Watcher)

#Watcher ###Signal 守望者 #####可以设置Signal处理回调.并提供Signal的退出函数,线性与并行执行选择,提供一个向制定进程发送Signal的函数 ######预期是希望在用户自定义Signal中添加优雅的服务器重启与关闭,因为没有思路,目前还没有实现.大家可以在处理函数中自己添加处理. Github:https://github.com/Congenital/watche...阅读全文

golang 依赖注入

使用facebook的三方库:https://github.com/facebookgo/inject type C struct{ B *B `inject:""` } type B struct{ A *A `inject:""`//这里会根据注入对象的Name字段有选择的进行注入 } type A struct{ Name string } var injectGraph inject.Graph func main() { a := A{ name: "hello", } a2 := A{ Name: "hello2", } c := C{} err := injectGraph.Provide(//对象提供者 &inject.Object{Value: &a}, &inject.O...阅读全文

博文 2019-02-23 17:34:44 杜子龙

Go语言中普通函数与方法的区别

1.对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然。 2.对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以。 以下为简单示例: package structTest //普通函数与方法的区别(在接收者分别为值类型和指针类型的时候) //Date:2014-4-3 10:00:07 import ( "fmt" ) func StructTest06Base() { structTest0601() structTest0602() } //1.普通函数 //接收值类型参数的函数 func valueIntTest(a int) int { return a + 10 } //接收指针类型参数的函数 func poi...阅读全文

博文 2015-06-17 23:02:21 books1958

简单的网站优化方法

简单的网站优化方法 做好网络推广,首先你要做好网站的站内优化。 一、 关键词: 做站内优化,第一步也是最重要的就是关键字的选择,这一个关乎你后期页面的排名,一个网站不但首页排名高,其他页面排名上来了,这样才能到达覆盖效果。 小建议: 1.合理的挑选关键词 2.不要把所有词都堆积在首页, 3.关键词的部署要分配好,(顶级关键词、目标关键词、固定关键词、长尾关键词分配不同的页面) 4.每个页面关键词使用合理 例:耐思尼克首页 文章页面 每个栏目页面的关键词选择都要不同,title;keyword;description都需要设定好,针对自身的产品或者服务来选定自己的关键词。注:如果是一个新站,已经有许多行业网站,你在关键词的选择上可以偏向于长尾词...阅读全文

2019 年软件工程师现状报告:开发者最讨厌 PHP,最爱 Python

Hired 网站近日发布了“2019 年软件工程师现状”报告,亮点颇多。 image 该报告数据由 Hired 数据科学团队收集与分析,覆盖了 13 个城市的 98 000 名求职软件工程师,反映了过去一年超过 170 000 个面试申请和工作机会,还收集了来自 Hired 平台上 700 多名软件工程师的调查回复,以了解开发人员的工作偏好。 报告中有以下几大要点值得关注: 开发者对待开源的态度 大约一半的开发者参与到开源项目中,其中 5% 的人是因为工作需要,24% 是想让个人简历好看一些,还有 25% 是觉得自己有进行开源贡献的使命感,但最大比例的开发者还是觉得参与开源很有趣,占据了 30%。你的态度呢? image 全球区块链工程师需求上涨了 517%,安全工程师和嵌入式工程师热度也不...阅读全文

博文 2019-03-06 17:34:46 开源中国

Pokemon Go 反伪造GPS机制的探讨

免责声明:本文只是从技术的角度去探讨游戏当中的缺陷,任何组织与个人不得利用本文中的内容从事非法活动,请不要传播或利用本文中提到的漏洞,否则后果自负。 Pokemon Go是最近比较流行的基于AR和LBS的收集向游戏,老牌IP号召了一票玩家。游戏目前bug较多,这里讨论的是0.29.0版本以及在安卓平台下的反mock GPS的机制。 在未阅读过源码之前,一下的分析都基于实际测试结果,也就是黑盒测试。 目前已知的情报有: 1.游戏中存在检测伪造gps信息的机制,目前来看是只在客户端,至于服务端有没有无从而知 2.当游戏检测到用户正在使用mock gps之类的软件的时候会显示“failed to detect location”之类的字样,并终止与服务器端的交互 3.重启游戏可以解决上述问题 4....阅读全文

博文 2016-09-10 11:00:00 ytx1991

golang中所谓的”方法提升“,求解答。。。。

如果 S 包含一个匿名字段 T,S 的方法集不包含接受者为 *T 的方法提升。 这条原则说的是当我们嵌入一个类型,嵌入类型的接受者为指针的方法将不能被外部类型的值访问。 刚才在golang中国博客上看到这个说法,自己验证了后发现完全可以访问,哪位高手能解释下,期待ing........阅读全文

开启go语言之旅

在python学习了半年之后,不经意间又一次对go语言做了一番解读,有捧的,有砸的,捧的肯定是七牛的许式伟,据说七牛的核心服务都是用go语言写的,而且翻译了一本《go语言程序设计》,并合著了一本《go语言编程》,所以以七牛为主的一伙肯定是力捧go语言的,砸的也有,比如有个叫Liigo的人在CSDN上写了一遍《我为什么放弃GO语言》的文章,想看的百度下就有,链接就不贴了,我也仔细读了他的文章。反正新的事物出来肯定是有人喜欢,有人不喜欢,但是我觉得做为程序员最需要的就是学习,如果对本专业相关的东西,我觉得都可以学习,本着这样的精神,我决定开始学习go语言之路。 本身我是学c++出身,半年前学习了python,学习go语言我觉得应该也会很快,按照我之前学习python的模式,我相信一个月内把go语...阅读全文

博文 2015-12-22 05:00:02 zhangchilei

【夏洛的课】第8期——go get 加速

不积小流,无以成江海。每天两分钟。欢迎进入夏洛的课。 go get加速 近几期一直在讲加速,今天该轮到golang了,因为 Go 1.13 将 GOPROXY 默认成了中国大陆无法访问的 https://proxy.golang.org ,所以我们国内的开发者以后必须先修改 GOPROXY 才能正常使用 go 来开发应用了。好在七牛提供了国内代理。 设置环境变量,修改GOPROXY: export GOPROXY=https://goproxy.c...阅读全文

博文 2020-01-25 03:32:50 夏洛的课

Java开发者的Go之旅

Go, 也被称为Golang, 是由当前在谷歌工作的三位杰出开发者创造的一种编程语言. 它是一门非常新的语言, 2012年才发布1.0版本. 创造该语言的信念是因为C++成长的过于复杂而且臃肿, Go最初是为了吸引系统级的程序员. 却最受Python开发者和其它动态语言社区的的欢迎. Go是一门非常优秀的语言, 它提供轻量而简洁的语法, 能媲美高级语言, 加入了静态类型, 十分给力的并发支持, 原始性能可以媲美(类似于C/C++)低级别语言. Java在大规模和大团队的企业项目中是一门奇妙的语言, Java需要相当大的开销来开发和部署一个新的应用. 它冗长的特性不适合小型项目和一次性任务. 所有许多Java开发者拥有一门或者多门的语言作为后备语言去轻松应对其它的任务. 其它的语言经验能拓宽开...阅读全文

博文 2015-05-12 20:00:04 Chasel-Li

Bytom国密网说明和指南

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 国密算法是指国家密码管理局制定的自主可控的国产算法,包括一系列密码学算法:SM1、SM2、SM3、SM4、SM7、SM9、以及祖冲之算法。最常用的三种商用密码算法是 SM2椭圆曲线公钥密码算法、SM3密码杂凑算法以及 SM4分组密码算法。 其中,SM2 算法属于椭圆曲线公钥密码系统,相较于 RSA 公钥密码系统,这种新型的公钥密码系统拥有加解密速度更快,使用的密钥更短的优点。SM2算法密钥长度为192至256位长度的安全性就能达到 RSA 算法2048至4096位密钥长度的安全要求。SM2的优异性能取决于求解椭圆曲线...阅读全文

博文 2018-10-26 08:34:40 比原链Bytom

(厦门)招聘公链开发工程师

岗位名称:公链开发工程师 20K-30K 坐标厦门岗位需求:1. 熟悉比特币或以太坊代码2. 了解常用的加密原理, 熟练掌握ECC加密和签名算法3. C++ 3年以上,需熟练掌握c++ new features4. 较强的英语读写能力5. 能承受较大压力加分项:1. 了解匿名技术原理2. 参与过公链底层开发3. 掌握rust或golang4. 有BAT工作经历岗位职责:参与公链开发,包括但不限于底层代码编写,数字钱包,浏览器后端代码编写以及线上部署运维等工作。有意向者简历投向407946127@qq.com(投递时注明招聘信息来源链才网)公司名称:趣熵(厦门)软件有限公司地址:厦门是湖里区万科云玺1号楼薪酬:20K-30K(具体面议...阅读全文

对未来的一些思考

其实我不怎么看书,买了书之后就翻一翻前面几页,就没有然后了。最近花了几天看了阮一峰的《未来世界的幸存者》,算是打破记录把整本书都看完了。 这本书写于 2017 年,从 AlphaGo 战胜人类引发对未来的思考。读完整本书也让我对现实和未来有了些新的认知。 2019 年看这本两年前的书,其实一点也不过时。不仅可以让我们对未来进行思考,还可以验证作者当时对未来的看法。 做一个有想法的人 以前的我以为只要多掌握一门或者多门编程语言,在工作中我就能比其他的程序员有更多的优势。于是我不停的学,学了 JavaScript、Python、Golang,在工作中不仅干前端的本职工作,也做了后端,甚至还干了一些运维的工作。 至于对产品的思考,基本上没有。产品经理说要做什么,能实现的基本上都会去实现。至于为什么...阅读全文

博文 2019-11-03 14:33:23 aside section._1OhGeD

golang-MD5

什么是MD5? MD5:为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321. MD5算法具有以下特点: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 下面是在goalng下如何实现md...阅读全文

golang panic and recover

panic 是一个内置函数,当一个函数 F 调用 panic,F 的执行就会停止,F 中 deferred 函数调用会被执行,然后 F 返回控制到它的调用者。这个过程会沿着调用栈执行下去,直到当前 goroutine 中的所有函数返回,然后程序 crash。出现 panic 是因为: 调用了 panic 函数 出现了运行时错误(例如,数组越界访问) recover 是一个内置函数,用于恢复一个 panicking goroutine 的控制。需要注意的是,recover 只能使用在 deferred 函数中。如果当前的 goroutine panicking,recover 调用将会捕获 panic 传递的值并且恢复正常的执行。看一个例子: package main import "fmt"...阅读全文