Go 每日一库之 rpc

简介 RPC(Remote Procedure Call)是远程方法调用的缩写,它可以通过网络调用远程对象的方法。Go 标准库net/rpc提供了一个简单、强大且高性能的 RPC 实现。仅需编写很少的代码就能实现 RPC 服务。本文就来介绍一下这个库。 快速使用 标准库无需安装。 由于是网络程序,我们需要编写服务端和客户端两个程序。首先是服务端程序: package main import ( "errors" "log" "net" "net/http" "net/rpc" ) type Ar...阅读全文

Segmentfault 2020-05-14 09:32:33 darjun

Golang入门教程——函数、循环与分支

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Golang专题的第四篇,这一篇文章将会介绍golang当中的函数、循环以及选择判断的具体用法。 函数 在之前的文章当中其实我们已经接触过函数了,因为我们写的main函数本质上也是一个函数。只不过由于main函数没有返回值,也没有传参,所以省略了很多信息。 func main() { fmt.Println("Hello World") } 复制代码 下面,我们来看看一个完整的函数是怎样的,这是golang官网上的例子。 func...阅读全文

掘金 2020年05月09日 承志

ipfs filecoin项目简介

IPFS的中文名是星际文件系统,它的激励层filecoin是由Juan Benet在2014年5月份发起的。2015年,IPFS在YCombinator孵化竞赛中拿到了巨额的投资,同时成立了协议实验室。实验室团队由14位核心开发者以及社区中上百位代码贡献者组成。 Juan Benet(胡安·贝内特):Protocol Labs的创始人,首席执行官。2012年毕业于斯坦福大学,获得计算机科学硕士学位,曾参与了大名鼎鼎的YCombinator计划。2010年1月~2011年12月,在Loki Stu...阅读全文

简书 2020-05-09 19:32:56 ipfs简介

LinuxC++技术学到多厉害,才能顺利进入BAT?

简介本科的时候对 Linux 特别感兴趣,心中向往成为一名运维工程师,就开始没日没夜的看相关的书籍。到了大约2013年前后的时候发现 DevOps 开始流行起来了,就开始学习 Python 希望成为一名 DevOps 工程师,后来出去实习发现从事运维相关的工作并不是我的追求。苦于在合肥这样的城市真的很难找到一份专职做 DevOps 的地方(当时在科大讯飞的时候,做的就是纯运维的工作,该公司的 DevOps 也才有个雏形)。所以我萌生了考研的想法,希望在 Linux 内核这个层面做深造, 我选择了...阅读全文

简书 2020-05-09 19:32:44 鱼雨丶

golang 生成随机数

真随机和伪随机概念 先大概了解一下伪随机和真随机的概念。根据密码学原理,要想对一个“随机数”进行随机性检验有以下几个标准: 统计学伪随机性 - 在给定的随机比特流样本中,1 的数量大致等于 0 的数量,也就是说,“10”“01”“00”“11” 四者数量大致相等。说人话就是:“一眼看上去是随机的”。 密码学安全伪随机性 - 就是给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。 真随机性 - 其定义为随机样本不可重现。 根据以上几个标准,其对应的随机数也就分为以下几类: 伪随机...阅读全文

简书 2020-05-09 19:32:42 顶尖少爷

proto3默认值与可选项

proto3默认值与可选项 来源: kaelzhang81.github.io 内容简介:proto3默认值与可选项 本文转载自:http://kaelzhang81.github.io/2017/05/15/proto3默认值与可选项/?utm_source=tuicool&utm_medium=referral,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。 proto3默认值与可选项 背景介绍 目前开发的产品架构采用微服务架构,微服务之间通信的消息格式则使用的proto3标...阅读全文

简书 2020-05-09 16:35:04 XBruce

如何使用 Go 语言搭建企业级高并发服务器?

每到节假日和过年,需要外出通行的人几乎都会遇到一个问题:抢火车票!当全国上亿人都在固定的时间段抢票,服务器动辄就要承受上百万级并发的情况时,你就会明白,一个支持高并发的服务器架构有多重要! 在后端程序员的面试中,如果你有开发高并发服务器的经验,也往往能得到比别人更多的机会。 后台开发工程师招聘要求 提到「高并发」,就不得不提天生为高并发而生的 Go 语言。今天,我们就带大家从 0 开始,用 Go 语言完成一个企业级服务器的开发。 关于实现一个企业级框架,你无需恐惧难度过高,你只需要有 Golan...阅读全文

简书 2020-05-09 16:35:02 实验楼

golang中的值传递和引用传递

前言 相信写golang时间不长的同学经常会被值传递和引用传递所困扰,我们今天通过几个简单的实战例子来说明一下。 举例之前,我们先要记住两点: golang默认都是采用值传递,即拷贝传递 有些值天生就是指针(slice、map、channel) 举例 package main import ( "fmt" ) func main() { // map m := make(map[int]string) m[0] = "a" m[1] = "b" changeMap(m) fmt.Printf("...阅读全文

简书 2020-05-09 16:32:54 王_坤

六、基于多阶段构建减小镜像体积降低复杂度

本文是《Docker必知必会系列》第六篇,原文发布于个人博客:悟尘纪。 上一篇:Docker必知必会系列(五):Docker 数据持久化存储与性能调优 一、引言 如何减小所构建镜像的体积最非常具有挑战性的事情。Docker 17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 FROM 指令。 二、单 Dockerfile 构建镜像 如果将所有的构建过程都包含在一个 Dockerfile 中,包括项目及其依赖库的编译、测试、打...阅读全文

简书 2020-05-09 11:32:52 悟尘80

5-9

oh. before I started. I want to say. do not ready my diary. don't you have any other things to do? even I don't read it. take your time,please. I made two nightmare. so horrible. I don't want talk about one. the other is about huge pit. I walk. maybe...阅读全文

简书 2020-05-09 11:32:52 蛐蛐儿阳

protoc-gen-gogofaster: program not found or is not executable MacBookPro 搭建golang和protobuf开发环境

为了编译公司的ios端的一个sdk,需要在我的mac上下载公司的go项目源码和搭建相关开发环境。但是在初期就遇到了一些问题。这里记录一下。 我安装golang是使用命令行安装,命令网上搜的,运行go env也没有问题,go get等命令也能正常执行。公司源码项目的编译是执行make 命令,因为目录下有对应的makefile文件。但是编译后报错,内容如下:cd proto; protoc --gogofaster_out=. *.proto -I . -I /Users/biaohu/go/pkg...阅读全文

简书 2020-05-09 11:32:51 神奈备命

让我们一起啃算法----罗马数字转整数

罗马数字转整数(Roman-To-Integer) 题干: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值 I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数...阅读全文

Segmentfault 2020-05-13 22:32:34 三斤和他的朋友们

Go 每日一库之 xorm

简介 Go 标准库提供的数据库接口database/sql比较底层,使用它来操作数据库非常繁琐,而且容易出错。因而社区开源了不少第三方库,如上一篇文章中的sqlc工具,还有各式各样的 ORM (Object Relational Mapping,对象关系映射库),如gorm和xorm。本文介绍xorm。xorm是一个简单但强大的 Go 语言 ORM 库,使用它可以大大简化我们的数据库操作。 快速使用 先安装: $ go get xorm.io/xorm 由于需要操作具体的数据库(本文中我们使用 ...阅读全文

Segmentfault 2020-05-13 18:32:35 darjun

(一)Golang概述(2)-简单实例

1.简单开发 1.1 需求 要求开发一个 hello.go 程序,可以输出 "hello,world” 1.2 代码 image-20200508142914375.png go文件的后缀是 .go package main ​ 表示该 hello.go 文件所在的包是 main, 在 go 中,每个文件都必须归属于一个包。 import “fmt” ​ 表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数,比如:fmt.Println (4) func main() {}...阅读全文

简书 2020-05-08 23:32:56 21号新秀_邓肯

区块链4.0,拥抱 Wisdom Chain

自 中本聪于 2009 年 1 月发布比特币的代码以来,比特币和区块链技术的发展已经走过了十个年头。 这十年间,比特币经历了密码朋克(Cypherpunk)和 Geek 们的玩具、黑市交易和洗钱的工具、投机炒作标的物等多个阶段,现在已经成为了一种政府和主流金融机构也不得不正视其价值的数字资产。 在这十年间,区块链技术先是从比特币所描绘的点对点的电子现金系统扩展到了可编程资产的公共账本,然后又进一步发展出了以以太坊为代表的、可以执行图灵完备的运算并记录结果的「通用状态计算机」。 如今又基于性能、功...阅读全文

简书 2020-05-08 23:32:51 智慧链技术社区

送你一份Redis书单,以后使用缓存的问题不用再问我啦!

点击蓝色“程序员书单”关注我哟 加个“星标”,每天带你读好书! ![](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")​ 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java...阅读全文

简书 2020-05-08 23:32:51 程序员书单