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

【Java核心设计模式】DAO开发实战业务分析

课程介绍 本课程是由Java SE向Java WEB学习的过渡课程,为了更好的巩固Java SE中所学习到的各项技术,同时也为了更完整的阐述Java在整个项目开发中的核心意义,所以讲解了综合的DAO设计模式。 在学习本课程之前请确保已经学习了:《Oracle从入门到精通》、《Java8编程入门》、《Java8面向对象编程》、《Java8高级编程》几门课程,并且已经熟练的掌握了接口、类集、JDBC等技术的使用。 课时列表 • 课时1:软件分层设计 • 课时2:设计分析实例 • 课时3:程序开发准备(定义数据库连接类) • 课时4:程序开发准备(定义VO类) • 课时5:数据层设计与开发(定义数据层标准) • 课时6:数据层设计与开发(数据层...阅读全文

fabric中的plugin机制

fabric中的plugin机制 之前是研究1.0的实现,发现endorse的过程中去escc签名的流程变化很大。下面以escc为例,看下新版的fabric是怎么实现的。 首先怎么自定义一个escc的plugin handlers: ... endorsers: escc: name: DefaultEndorsement custom: name: customEndorsement library: /etc/hyperledger/fabric/plugins/customEndorsement.so ... core.yaml,可以看到/etc/hyperledger/fabric/plugins/customEndorsement.so,这里是使用了golang的一个plugin的...阅读全文

博文 2019-03-04 15:35:50 Pillar_Zhong

【GO学习二】包,函数,常量和变量

主要介绍go语言的基本元素,包引入,变量,函数声明 引入包: go语言通过import引入包最佳实践:import顺序:系统package,第三方package,程序自己的package package main import ( "fmt" "math" ) func main() { fmt.Printf("math test number %g ",math.Sqrt(7)) } # 运行输出 cuixiaozhuai:main cuixiaohuan$ ./hello math test number 2.6457513110645907 函数定义 go中函数可以没有参数或者接受多个参数 基本格式 func xx(AA type,aa) Type { } package main i...阅读全文

博文 2017-10-12 13:34:48 崔小拽

与BSN的链码进行通信互动

在上一节完成链码部署后,就可以与链码进行通信互动了。互动有多种方式,如通过SDK编程,也可以使用peer节点使用命令行操作完成。本节先使用后者实现预置链码包介绍通过区块链服务网络开发者手册可知,BSN提供的预置链码包提供了五个方法,我们逐一来操作处理1、增加数据(set)输入参数说明baseKey:需要保存的唯一的主键标识baseValue:保存的数据信息` 例:{"baseKey":"str","baseValue":"this is string"}` 其中 baseKey 是不能为空的字符串,baseValue 可以是任意类型的数据。如果 baseKey 已经存在,则直接返回已经存在,不能添加;如果不存在,则添加数据。2、获取数据(get)输入参数说明baseKey:需要获取的唯一的主...阅读全文

博文 2020-05-27 19:32:45 凡星_

go网络编程学习笔记6(安全)

简介 尽管互联网最初被设计为可以承受敌对代理攻击的系统,但它过去一直是在一个可信的实体和合作的环境中发展起来的。可惜现在已经时过境迁。垃圾邮件,拒绝服务攻击,网络钓鱼这些东西使得每一个上网者都需要自行承担风险。 应用程序应当在复杂的互联网环境中仍然可以正确工作。“正确”不光意味着程序功能的正确,同时还意味着要确保数据传输过程中的保密性和完整性,甚至只允许合法用户进行访问和其它问题。 这自然使得编程更加复杂。在构建安全应用程序的过程中,会出现很复杂和微妙的问题。如果你想自己这样做(如实现一个自有安全库),通常都会以失败而告终。相反,你需要使用安全专家设计的安全库。 ISO 安全架构 功能层次 主要的安全系统功能 认证 - 身份校验文件 数据完整性 - 数据不被篡改 保密 - 数据不能暴露给他人...阅读全文

博文 2019-06-14 16:02:51 GeminiGirl0604

加密货币的本质

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去年,比特币暴涨,其他币也像雨后春笋一样冒出来,已经有1000多种了。 很多人都在问,加密货币(cryptocurrency)的时代,真的来临了吗?将来会不会人类不再使用美元、人民币,改用加密货币?那么多品种,我应该使用哪一种币?要不要现在就去投资一些? 这些问题的答案,我也想知道,就花了很多时间查阅资料、研究协议。前两周发表的《区块链入门教程》和《比特币入门教程》,是我的学习心得。但是,那两篇教程主要介绍基本概念、探讨协议的可行性,没回答一个根本的问题:加密货币到底是什么? 下面就是我对这个问题的思考。阅读之前,如果你已经了解区块链和比特币,那很好;如果不了解,也没关系,本文不涉及技术,只讨论最基本的原理。 一...阅读全文

使用BSN开发区块链应用智能合约-golang篇

作者:曹国波 时跃堂智能合约又称链码(Chaincode),是用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,通过调用智能合约实现交易的自动执行和对账本数据的操作。一个BSN应用可以部署多个链码,每个链码包含多个方法。链码支持多种语言编写,包括golang、java、node.js。每个链码程序都必须实现Chaincode接口,链码包含:Init ,Invoke ,Query三个基本操作:▶ Init :链码初始化的方法,在链码实例化或者升级的时候调用一次,以便链码可以执行任何必要的初始化,包括应用程序状态的初始化。▶ Invoke :接收和处理链下业务系统调用事务处理提案,其参数包含调用的链码程序中函数的名称和具体业务处理数据参数。即在Invoke中根据不同的方法参数调用其他分支处...阅读全文

博文 2020-01-17 01:32:52 区块链服务网络BSN

protobuf 验证器

# proto 中注入 tag, 验证 #### 1. 介绍 - 1. 对 `xxx.pd.go` 文件中的 `struct` 注入自定义的 `tag` - 2. 通过验证器对内容进行验证, 验证器暂只支持: 必填, 长度, 多个一个必填 #### 2. 注入工具使用 - 1. 先下载本项目: `go get -u gitee.com/xuesongtao/protoc-go-valid` - 2. `protoc-go-valid` 命令操作, 如下: - 2.1 `protoc-go-valid -init="true"` - 2.1 `protoc-go-valid -d="待注入的目录"` - 2.2 `prot...阅读全文

密码学家的工具箱(golang代码实现)

本文参考《图解密码技术》第三版    密码学家的工具箱,指六种常用加密方式包括 对称密码、非对称密码、单向散列函数、消息认证码、数字签名、伪随机数生成器。堪称六大杀器,现代社会的信息安全皆基于此。本文用go语言代码实现六种工具的具体应用。 对称密码 是指加密解密时用同一个秘钥,下面代码采用AES进行加解密,私钥长度只支持128,192,256位的字节数组。 AES加解密的代码应用: package main import ( "bytes" "crypto/aes" "crypto/cipher" "fmt" ) func PKCS5Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ci...阅读全文

03GORM源码解读

简介 模型交互 AutoMigrate createTable callbacks 实际注册流程 createCallback 总结 简介 GORM 源码解读, 基于 v1.9.11 版本. 模型交互 前面已经研究过模型是如何定义并被解析的了, 这次看一下模型是如何和数据库交互的. package main import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) type Product struct { gorm.Model Code string Price uint } func main() { db, err := gorm.Open("sqlite3", "test.db") i...阅读全文

博文 2020-01-14 18:32:40 帅气猫咪

数据一致性(二)

我们流连于事物的表象,满足浅尝辄止的片刻欢愉,却几乎从不久留。我们在人生的道路上争先恐后,却吝于用片刻思考目标和方向。 概述 至今没有接触过MySQL多主的情况,即存在多个MySQL实例同时负责读写请求(抛弃只读库)。思考后认为:没有这么实现的技术难点在于:数据的一致性得不到保证。此外,还会涉及: MySQL采用自增主键索引的话,多主之间的数据同步简直是灾难。 内部锁机制的优势大打折扣,跨主库间的锁应该也是灾难级别的吧。 那么支持分布式的其他数据库又是怎么搞定这个问题的呢?比如Cassandra,多个节点之间可以同时处理读写请求,那么它是如何处理节点间数据同步以保证一致性的呢? MySQL数据的一致性 We think this is an unacceptable burden to pl...阅读全文

博文 2019-03-17 15:34:38 neojos

从 Eclipse 到 IDEA,金字塔到太空堡垒

IDEA有什么好? 换到IDEA并渐渐适应之后,用一个词形容这款IDE,就是:现代。 再看Eclipse,如同埃及金字塔,精巧但粗粝、宏伟但迟钝。而IDEA如同太空堡垒,精致大气、舒适内敛。 因为我对IDEA非常有好感,决定向你推销一下。让我们先来看看他那些让人不可自拨的功能吧: 插件安装 在Eclipse上安装一款插件,要到marketplace中搜索,点击install。因为跨国网络访问,所以一般下载插件会很慢。 在IDEA上安装插件,逻辑相似,Ctrl+Alt+S呼出Settings,找到Plugins进行搜索,如果没有找到会跳转到远程仓库,然后install即可。 不过对于有些插件来说,IDEA上的安装流程比Eclipse顺畅了不止一个级别,比如大家常用的lombok,Eclipse...阅读全文

博文 2019-01-13 16:34:39 凯睿看世界

MaxCompute访问TableStore(OTS) 数据

摘要: MaxCompute作为阿里云大数据平台的核心计算组件,承担了集团内外大部分的分布式计算需求。 免费开通大数据服务:https://www.aliyun.com/product/odps **前言** MaxCompute作为阿里云大数据平台的核心计算组件,承担了集团内外大部分的分布式计算需求。而MaxCompute SQL作为分布式数据处理的主要入口,为快速方便处理/存储EB级别的离线数据提供了强有力的支持。 随着大数据业务的不断扩展,新的数据使用场景在不断产生,在这样的背景下,MaxCompute计算框架也在不断的演化,原来主要面对内部特殊格式数据的强大计算能力,也正在一步步的开放给不同的外部数据。 之前我们介绍了怎样[在MaxCompute上处理存储在OSS上...阅读全文

从 Eclipse 到 IDEA,金字塔到太空堡垒

IDEA有什么好?换到IDEA并渐渐适应之后,用一个词形容这款IDE,就是:现代。再看Eclipse,如同埃及金字塔,精巧但粗粝、宏伟但迟钝。而IDEA如同太空堡垒,精致大气、舒适内敛。因为我对IDEA非常有好感,决定向你推销一下。让我们先来看看他那些让人不可自拨的功能吧:插件安装在Eclipse上安装一款插件,要到marketplace中搜索,点击install。因为跨国网络访问,所以一般下载插件会很慢。在IDEA上安装插件,逻辑相似,Ctrl+Alt+S呼出Settings,找到Plugins进行搜索,如果没有找到会跳转到远程仓库,然后install即可。不过对于有些插件来说,IDEA上的安装流程比Eclipse顺畅了不止一个级别,比如大家常用的lombok,Eclipse上安装过程繁琐...阅读全文

博文 2019-05-05 18:34:57 Daphne_307d

vim 插件学习-参考https://github.com/yangyangwithgnu/use_vim_as_ide

4. 插件 主要是c++相关的. ~/.vimrc文件在GitHub上有:https://github.com/whuwzp/vim_config 以下内容参考: https://github.com/yangyangwithgnu/use_vim_as_ide 4.1 vundle插件管理器 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 在 .vimrc 增加相关配置信息 " vundle 环境设置 filetype off set rtp+=~/.vim/bundle/Vundle.vim " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle...阅读全文

博文 2020-03-02 01:32:47 笔默纸言

02GORM源码解读

简介 定义模型 ModelStruct 获取表名 StructField Relationship 更多 Scope 模型解析 字段解析 小结 总结 简介 GORM 源码解读, 基于 v1.9.11 版本. 定义模型 GORM 是 ORM, 所以模型定义是最重要的部分, 这一次来探究下具体实现. type User struct { gorm.Model Name string Age sql.NullInt64 Birthday *time.Time Email string `gorm:"type:varchar(100);unique_index"` Role string `gorm:"size:255"` // 设置字段大小为255 MemberNumber *string `go...阅读全文

博文 2019-12-29 10:32:39 帅气猫咪

Golang MSC 约定

分层结构 Model (模型) 可以包含少量方法; 不引用外部资源; 功能: 数据传输; 持久话; 校验信息; json、xml转换格式定义; 如无必要,转换json、xml格式时无需改变字段大小写,减少无谓的工作量; Service (服务) 提供被多方使用的公共方法; 名称以Service结尾; 会被多个Ctrl或Service调用; 可创建、输入、输出Model; 可调用其他Service; 不可调用Ctrl; 主要的单元测试对象,覆盖率要足够高; 提供一个New方法创建服务,方法的参数是需要引用的其他服务; Ctrl (控制器) 对外提供交互服务; 名称以Ctrl结尾; 包含一个路由方法(Party),说明RESTful调用名称、路径、模式参数等; Ctrl不能被Model和Serv...阅读全文

博文 2019-08-29 11:32:53 安德徐

ARTS 第21周

ARTS 第21周分享 [TOC] Algorithm 242. Valid Anagram [easy] [题目描述] Given two strings s and t , write a function to determine if t is an anagram of s. Example 1: Input: s = "anagram", t = "nagaram" Output: true Way One: [解题思路] 将字符串按照每个字符的值的大小排序, 比较两个byte slice 是否相等 [参考代码] type myBytes []byte func (my myBytes) Len() int { return len(my) } func (my myBytes)...阅读全文

博文 2019-08-25 17:32:55 陈卧虫

Go Web 编程--如何确保Cookie数据的安全传输

什么是Cookie Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。 Cookie主要用于以下三个方面: 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置、主题等) 浏览器行为跟踪(如跟踪分析用户行为等) Go语言如何表示Cookie 在Go的net/http库中使用http.Cookie结构体表示一个Cookie数据,调用http.SetCookie函数则会告诉终端用户的浏览器把...阅读全文

博文 2020-03-08 16:33:04 Kevin

C++服务端面试准备(2)MySQL相关

声明:本文内容纯属博主自己查找和归纳的个人所需的知识点,仅作参考,如有错误,博主强烈希望您指出。如果您是某个知识点的原创博主,如有需要,可联系本人加上链接。本文内容会根据博主所需进行更新,希望大家多多关照。 MySQL底层数据结构 B+树 存储引擎之二:InnoDB与Myisam InnoDB Myisam 事务 支持 不支持 外键 支持 不支持 锁 表锁、行锁 表锁 总行数 需要扫描整个表 直接读取 文件 .idb数据文件和它的.frm文件,表的大小只受限于操作系统文件的大小,一般为 2GB .frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 使用环境 都符合要求的情况下,改动多的时候 都符合要求的情况下,查找多的时候 自...阅读全文

博文 2020-04-07 18:32:47 DX3906

每天一点Go语言——Go语言语法基础及基本数据类型

每天一点Go语言——Go语言语法基础及基本数据类型 一、Go语言基础语法 ​ 上篇Go语言讲解中谈到了有关Go语言的基本组成结构,该小节就来讲述有关go语言的基础语法。Go语言程序由多个标记组成,如:关键字、标识符、常量、符号、字符串。 ​ 行分割符——一行表示一个语句结束,无需写“;”。当然,你可以将多条语句写在一行,并且使用“;”号区分,但是不推荐这样写开发代码。 ​ 注释在本文就不多说了。 标识符 ​ 如果说变量是shell入门的第一道关卡,那么可以说,标识符就是开发语言的第一道门槛。 ​ 标识符,从官方角度解释:用于命名变量、类型等程序实体。一个标识符具备的特点:实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母huo下划线而不能...阅读全文

博文 2020-04-03 14:33:23 wx5d8a17c45cb5b

Golang 基础(二)

常量常量使用关键字 const 定义,用于存储不会改变的变量。无法在程序运行过程中修改它的值。存储在常量中的数据只可以是布尔型、数字型(整数型,浮点型和复数)和字符串型。例如: 格式:const identifier [type] = value const Pi = 3.141592658 const a = 3 Go语言中,可以省略类型说明符 type ,Go的编译器可以根据变量的值来推断它的类型,例如: const a string = "abc" // 显式类型定义 const a := "abc" // 隐式类型定义 另外,未定义类型的常量会在必要时候根据上下文来获得相关类型,例如: var n int f(n + 5) // 无类型的数字型常量"5" 它的类型再这会变成int 常...阅读全文