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

Go 模块存在的意义与解决的问题

本文首发于我的博客,如果有用,欢迎点赞收藏,让更多的朋友看到。 作者:William Kennedy | 原文:Modules Part 01: Why And What 最近,我在尝试整理一篇关于 Go 包管理发展历史的文章,希望能加深自己对这一块知识的认识。在搜集资料的时候,发现了这篇文章,顺手翻译了一下。 本文是该系列的第一篇,主要介绍包依赖管理中一些基础知识。文中提出了 Go 开发中的三个痛点,如何解决只能在 GOPATH 指定路径开发,如何实现有效的版本管理,以及如何支持 Go 原生工具集依赖管理。针对它们,Go Module 都提供了相应的解决方案。 从第一篇的内容上看,作者后面的文章应该会对 Go 的模块机制进行详细的剖析,很期待。话说,总感觉这篇文章翻译的有点别扭,检查的时候...阅读全文

博文 2019-10-14 19:34:29 波罗学

老用户快速从经典网络迁移VPC,阿里云提供便捷解决方案

摘要: 近日,阿里云宣布推出经典网络迁移VPC完整解决方案,帮忙云上老用户平滑迁移到VPC。 阿里云起步于经典网络,但已经全面转向VPC。专有网络VPC(Virtual Private Cloud)以其在安全、成本和网络功能方面的优势,正受到越来越多用户的欢迎,已经成为云上用户的首选网络类型,也是阿里云默认推荐的网络类型。 近日,阿里云宣布推出经典网络迁移VPC完整解决方案,帮忙云上老用户平滑迁移到VPC。 阿里云起步于经典网络,但已经全面转向VPC。专有网络VPC(Virtual Private Cloud)以其在安全、成本和网络功能方面的优势,正受到越来越多用户的欢迎,已经成为云上用户的首选网络类型,也是阿里云默认推荐的网络类型。然而,云上还有很多存量用户在使用经典网络,为了...阅读全文

再次升级!阿里云Kubernetes日志解决方案

摘要: 今天阿里云Kubernetes日志解决方案再次升级,为您带来以下改进: 1、极致部署体验:只需一条命令一个参数即可完成整个K8S集群的日志解决方案部署。 2、支持更多配置方式:除原生控制台、SDK配置方式外,支持通过CRD方式进行配置(kubectl、控制台、K8S openapi)。 背景 针对K8S日志采集存在的采集目标多、弹性伸缩难、运维成本大、侵入性高、采集性能低等问题,在18年2月份日志服务和容器服务团队一起发布了阿里云Kubernetes日志解决方案。1分钟内即可完成整个集群部署,实现该节点上宿主机日志、容器日志、容器stdout等所有数据源的一站式采集。并且后续集群动态伸缩无需对采集做任何二次部署。 今天阿里云Kubernetes日志解决方案再次升级,为您...阅读全文

GoLang 字符串倒置

字符串倒置 Hello World --> dlroW olleH 解决方案1: length := len(str) array := make([]string , length) for i , v := range str{ array[i] = string(v) } for i := 0 ; i < length/2 ; i++ { array[i], array[length -i - 1] = array[length - i -1 ], array[i] } str = "" for _ , v := range array { str += v } 大致想法是: str -循环-> array -循环-> 倒置 --循环--> str 可以转换中文. 问题: 看上去比较繁...阅读全文

博文 2017-09-29 03:35:10 小立立

DockOne技术分享(四):AppC和Docker的对比

【编者的话】 现在一说到“容器”,几乎所有人首先想到的就是Docker。Docker作为目前最主流的容器标准,掩盖了许多前辈和后续者的光辉。事实上,Docker既不是第一个容器类产品(OpenVZ、Lxc等都远远早于它),也不会是最后一个。今天我们来聊一个最近有点火的新容器标准:AppC。 AppC是 CoreOS 公司在2014年12月发起的社区项目,旨在设计一种新式的跨平台容器在镜像格式、运行方式和服务发现机制等方面的标准。 从官方的表态说,这个项目最初诞生的原因是,主流容器工具 Docker 正在从一个单纯的容器工具成为自成一体的生态圈。而 Docker 的中心式管理方式(由每个主机上的 Docker -d 后台进程统一控制)对于 Systemd 以及第三方的任务编排工具并不友好(具体...阅读全文

golang利用gob序列化struct对象保存到本地

golang可以通过json或gob来序列化struct对象,虽然json的序列化更为通用,但利用gob编码可以 实现json所不能支持的struct的方法序列化,利用gob包序列化struct保存到本地也十分简单. gob包实现的序列化struct对象保存到本地 务必注意的是golang序列化有个小坑,就是struct里的字段必须要可导出也就是首字母大写 package main import ( "encoding/gob" "fmt" "os" ) type User struct { Id int Name string } func (this *User) Say() string { return this.Name + ` hello world ! ` } func mai...阅读全文

博文 2018-06-04 11:33:05 mickelfeng

DockOne微信分享( 一零二):基于容器的日志管理实践

【编者的话】业务平台每天产生大量日志数据,为了实现数据分析,需要将生产服务器上的所有日志收集后进行大数据分析处理,Docker提供了日志驱动,然而并不能满足不同场景需求,本次将结合实例分享日志采集、存储以及告警等方面的实践经验。 2013年以来Docker迅速火了起来,它的理念带来了非常大的便利性,不过实际应用中会发现还有监控、日志、网络等问题尚待解决,本文会结合实例分享数人云做容器日志系统的经验。 基于ELK的日志管理系统架构日志收集是大数据的基础,业务平台每天产生大量日志数据,为了实现数据分析,需要将生产服务器上的所有日志收集后进行分析处理;高可用性,高可靠性以及可扩展性是日志收集系统的必备要素。 ELK是目前较流行的日志一体化解决方案,提供日志收集、处理、存储、搜索、展示等功能。容器标...阅读全文

博文 2017-06-25 16:25:28 Dataman数人科技

【TiDB@丰巢】支付平台的迁移之旅

因为本文是我第一次发表在 丰巢技术团队 公众号上,所以在简书上发表只能算是转载。丰巢第一次在生产环境实际使用TiDB,是在2018年,其场景是每天产生一亿条以上数据的推送平台,当时我们还发了一篇文章,被PingCAP官方收录:TiDB at 丰巢:尝鲜分布式数据库。这次,因为实际的项目需要,我们选择了QPS和数据一致性要求更高的支付平台,作为第二个迁移到TiDB上的项目。由于丰巢的所有支付,都会通过该平台产生,所以其稳定性和性能,都是重中之重了,而这次的迁移之旅,也就特别的漫长和曲折。1. 支付平台现状及问题在迁移TiDB之前,丰巢支付平台全部运行于MySQL之上,其基本情况如下:实例数量:4台物理机,4个Master数据库数量:40+个数据库重要表分表数量:500+表分库分表规则:用户ID...阅读全文

golang中你不知道的 string

golang中你不知道的 string 字符串对于一篇博客文章来说似乎太简单了,但是一个简单的东西想用好,其实也不容易。 遍历字符串 package main import ( "fmt" "unicode/utf8" ) func main() { const sample = "我爱golang" for i := 0; i < len(sample); i++ { runeValue, _ := utf8.DecodeRuneInString(sample[i:]) fmt.Printf("position:%v, value:%c \n", i, runeValue) } } 复制代码position:0, value:我 position:1, value:� position:2...阅读全文

博文 2019-12-09 16:34:41 _西门吹牛

万用大数据修炼手册!教你如何在成为大牛的路上保护好你的秀发!

也许你想在数据研究领域工作,你对数据工程师和数据科学家之间的区别还不是很清楚,甚至很多人可能认为这是同一件事。如果你真的这么认为,那是个大错误!这两个位置之间的差别正在增大。如果你不能深入理解这些异同,那么在未来绝对不会有几声雷鸣在等你。这篇文章必须读!数据工程师在技术上工作。他们负责数据系统架构的设计和维护,包括从基础设施分析到数据仓库的许多概念。数据工程师需要对常用的脚本语言有一个透彻的理解,并通过使用和改进数据分析系统,稳步提高数据的质量和数量。他们还负责创建建模、挖掘、验证和获取数据的步骤和过程。 预计行业对熟练数据工程师的需求将迅速增长。在现代世界,企业和组织需要一个可靠的数据体系结构来获取和存储数据。当企业发展到需要使用数据科学的程度时,它需要数据工程师。因此,迫切需要数据工程师...阅读全文

博文 2019-01-29 00:34:43 大数据的风风

Python面试QA

讲讲日常开发中都用到了那些Python内置的模块 一.语言 1.推荐一本看过较好的python书籍? 拉开话题好扯淡 2.谈谈python的装饰器,迭代器,yield? 3.标准库线程安全的队列是哪一个?不安全的是哪一个?logging是线程安全的吗? 4.python适合的场景有哪些?当遇到计算密集型任务怎么办? 5.python高并发解决方案?我希望听到twisted->tornado->gevent,能扯到golang,erlang更好 二.操作系统 可以直接认为是linux,毕竟搞后端的多数是和linux打交道。 1.tcp/udp的区别?tcp粘包是怎么回事,如何处理?udp有粘包吗? 2.time_wait是什么情况?出现过多的close_wait可能是什么原因? 3.epoll...阅读全文

博文 2018-11-29 14:34:41 星泼拿衣服

gof23创建类模式(golang版)

区块链的征程已开启 单例模式 Java中的单例模式的实现可以有饿汉式、懒汉式、双锁、静态内部类、枚举等形式,在go中如何实现单例呢,先来最简单的形式,不考虑高并发的情况下,应该怎样实现 package main var m *Singleton type Singleton struct { } func GetInstance() *Singleton { if m == nil { m = &Singleton{} } return m } 问题就是并发的时候会取到多个对象,解决方案加锁 package main import ( "sync" ) var instance *Singleton var lock *sync.Mutex = &sync.Mutex{} type Sing...阅读全文

博文 2018-12-01 22:34:42 菟潞寺沙弥

波司登全国超千家门店,销售状况如何实时监控?

摘要: 公司以往一直使用ERP的报表进行数据的展示,近期也上线了以HANA数据库为基础的BO报表进行业务数据支持,但是依然存在数据实时主动展示的缺陷。我们需要的销售业绩数据可以实时通过业绩大盘进行展示,这样可以更加友好的为团队提供数据支撑。 来自 波司登国际控股有限公司 黄金友 的撰稿 1. 需求概述 公司的零售团队存在一个无法实时获取市场的销售业绩数据并有效通过大盘进行展示的痛点。我们在与阿里云的合作过程中,了解了ARMS这款端到端一体化实时监控解决方案的PaaS级阿里云产品,正好可以很好地解决我们零售业务的痛点。我们成功完成了业绩数据的准备及业绩数据的展示。 这里简单分享一下ARMS用于实时业绩数据展示的经验。 公司以往一直使用ERP的报表进行数据的展示,近期也...阅读全文

解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)

解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标。您可以假定每个输入都只有一个解决方案,并且您可能不会两次使用同一元素。举例:给定数组 =[2, 7, 11, 15], 目标值 = 9,因为nums[0]+ nums[1] = 2 + 7 = 9,所以返回 [0,1].思路:我们定义一个字典来存储元素及其索引。我们将一一检查元素。 假设当前元素是a; 我们将元素及其索引存储到字典中; 并使用目标减去当前元素来获得差值b; 我们检查映射是否可以使用b作为键来获取任何内容,如果该值不为空并且其索引也不相同,则得到答案。Javascript:twoS...阅读全文

博文 2019-10-31 17:32:58 aside section._1OhGeD

glang 多种http请求

func HttpGet(url string) ([]byte, error) { resp, err := http.Get(url) if err != nil { // handle error return nil, err } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error return nil, err } return body, err } func HttpPostForm(queryUrl string, queryData map[string]string) ([]byte, error) { // ) if len(quer...阅读全文

博文 2019-12-23 11:32:42 Cazy

Tidb + 分布式锁实现幂等--golang实现奖品发放系统

问题背景 最近业务上遇到这样的场景,觉得很有代表性,所以拿来说一说。我们有一个奖品发放系统,当用户申请奖品的时候,首先需要判断用户有没有申请过奖品,如果没有申请过,则去奖品总量扣除一个,然后再把用户申请记录写回数据库。 流程如下: 时序 事件 t1 检测用户申请过奖品 t2 奖品扣除 t3 插入用户申请记录 t4 返回申请成功 如果是正常的但线程执行完全没有问题,但是我们是并发的。所以很有可能会有好多事件都到t2导致多次申请,或者奖品多次扣除等情况。 解决方案 方案1:事务 最开始想到的就是数据库的事务了,在t1开始前启动事务,t1查询使用for update加锁,其他事务继续执行相同条件的for update的时候则会block,直到上个事务执行完成。这种方案很完美,但是只限于InnoDB...阅读全文

博文 2019-07-07 15:32:42 lucasgao

10分钟将你的Go工程转换为Go Module模式

引言自从在Go 1.11和更高版本中引入了Go的新的依赖管理系统以来,GoLang开发人员已经接受了包版本控制解决方案。这样做的用户可以使用GoCenter存储库中的不可变公共Go 模块,并通过更健壮、更可靠的Go Pipeline获得更快的构建速度。但是,将现有的项目转换为使用Go Module并不总是很容易,尤其是如果该项目已经尝试过GoLang的其他包管理解决方案时。为了帮助GoLang社区正确地使用Go Module,我们将使用开源的etcd项目(Kubernetes使用的键值数据存储)作为示例。这是一个最佳实践的实际示例,因为它足够复杂,可以展示一些常见的实践PS:在上一篇关于Go语言开发的的文章中(传送门:Go 语言依赖管理的优势),我们介绍了Go 依赖管理的发展历史以及Go M...阅读全文

博文 2020-03-05 18:25:06 JFrogChina

golang-101-hacks(10)——String

注:本文是对golang-101-hacks中文翻译。 在Go中string是由不可变的字节数组构成的。一旦赋值,就不能修改字符串的值。例如 In Go, string is an immutable array of bytes. So if created, we can't change its value. E.g.: package main func main() { s := "Hello" s[0] = 'h' } 编译结果会提示错误: The compiler will complain: cannot assign to s[0] 对字符串的修改可以将其转换为“byte”数组。但是实际上您并没有对原始字符串进行修改操作,改变的只是一个原始字符串的副本。 To modify...阅读全文

博文 2019-05-30 23:34:40 羊羽share

2017双11技术揭秘—分布式缓存服务Tair的热点数据散列机制

摘要: Tair是阿里巴巴集团自研的弹性缓存/存储平台,在内部有着大量的部署和使用。Tair的核心组件是一个高性能、可扩展、高可靠的NoSQL存储系统。目前支持MDB、LDB、RDB等存储引擎。本文基于Tair的存储和访问原理,对缓存的读写热点问题进行讨论,并给出一个满足现阶段需求的热点数据读写问题的解决方案。 作者:刘欢(浅奕) ![图片描述](http://img.blog.csdn.net/20171229113421675?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVucWlpbnNpZ2h0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity...阅读全文

Eosforce开发周报 21-jan 2019

工作1. FORCE IBC解决方案中继链BP模式中继合约完成基本合约框架。2. FORCEIO添加bus插件。3. FORCE IBC解决方案中继链实现映射Token合约。4. FORCE IBC解决方案中继链设计Token互换合约实现方案。5. FORCEIO重构账户名实现, 支持定制账户名格式。6. FORCEIO重构系统合约账户初始化实现。7. goeosforce库支持FORCEIO。8. 钱包完善FORCEIO支持。下一周工作1. FORCE IBC解决方案中继链BP模式中继合约开发。2. FORCEIO完成基本的跨链Token映射过程。3. FORCE IBC解决方案中继链实现基本的Token互换合约。4. 实现一个简单的FORCEIO golang客户端链接库。EOSForc...阅读全文

博文 2019-01-25 22:34:43 苏博明

golang结构体json的时间格式化解决方案

最近开发项目时候发现一个结构体的Json转换的时间格式问题。即这种1993-01-01T20:08:23.000000028+08:00 这种表示UTC方法。从我们习惯来说,更喜欢希望的是1993-01-01 20:08:23这种格式。重新复现代码如下:package main import ( "time" "encoding/json" ) type Student struct { Name string `json:"name"` Brith time.Time `json:"brith"` } func main() { stu:=Student{ Name:"qiangmzsx", Brith:time.Date(1993, 1, 1, 20, 8, 23, 28, time.L...阅读全文

博文 2018-07-02 12:19:04 梦朝思夕

Go基础学习记录之阻止Session劫持(Preventing session hijacking)

阻止Session劫持(Preventing session hijacking) Session劫持是一种常见且严重的安全威胁。在与服务器通信时,客户端使用Session ID进行验证和其他目的。不幸的是,恶意第三方有时可以跟踪这些通信并找出客户端Session ID。本次分享,将向您展示如何为教育目的劫持Session。 Session劫持过程 以下代码是count变量的计数器: // WelcomeLogin 欢迎登录页 func WelcomeLogin(w http.ResponseWriter, r *http.Request) { session, err := appSession.SessionStart(w, r) if err != nil { fmt.Fprintf(...阅读全文

博文 2018-11-06 14:34:44 DurbanZhang

理解Kubernetes网络:ingress篇

在本系列的第一篇文章中,我讲了Pod跨Kubernetes集群中的节点相互连接的网络。第二篇重点讲了服务网络如何为Pod提供负载平衡,以便群集内的客户端可以与它们可靠地通信。对于这第三篇也是最后一篇文章,我想以这些概念为基础来展示集群外的客户端如何使用同一服务网络连接到Pod。由于各种原因,这很可能是三篇涉及最多的,并且掌握前两篇关于pod和service的内容是理解本篇的的前提。 路由并不是负载均衡 在上一篇文章中,我们创建了一个具有两个Pod的部署,并为该服务分配了一个IP,称为“集群IP”,针对Pod的请求已发送到该IP。我将在此处继续根据该示例进行构建。回想一下,该服务的群集IP 10.3.241.152位于与Pod网络以及节点本身所在的网络不同的IP地址范围内。我称这个地址空间为“...阅读全文

Java中生产者与消费者问题的演变

Java中生产者与消费者问题的演变队列阻塞(BlockingQueue)关于Blocking Queue的更多细节Java中生产者与消费者问题的演变原文链接:https://dzone.com/articles/the-evolution-of-producer-consumer-problem-in-java作者: Ioan Tinca译者: liumapp想要了解更多关于Java生产者消费者问题的演变吗?那就看看这篇文章吧,我们分别用旧方法和新方法来处理这个问题。生产者消费者问题是一个典型的多进程同步问题。对于大多数人来说,这个问题可能是我们在学校,执行第一次并行算法所遇到的第一个同步问题。虽然它很简单,但一直是并行计算中的最大挑战 - 多个进程共享一个资源。问题陈述生产者和消费者两个程...阅读全文

博文 2018-10-22 17:17:14 Enjoyjava

GO小知识之实例演示 json 如何转化为 map 和 struct

简单谈一些 JSON 数据处理的小知识。近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题。实时数据实时数据获取是通过阿里开源的 canal 组件实现的,并传通过消息队列 kafka 传输给处理程序。我们将接收到的 JSON 数据类似如下的形式。{ "type": "UPDATE", "database": "blog", "table": "blog", "data": [ { "blogId": "100001", "title": "title", "content": "this is a blog", "uid": "1000012", "state": "1" } ] }简单说下数据的逻辑,type 表示数据库事...阅读全文

博文 2019-06-09 11:00:18 波罗学​

云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据

摘要: 使用过开源HBase的人都知道,运维HBase是多么复杂的事情,集群大的时候,读写压力大,配置稍微不合理一点,就可能会出现集群状态不一致的情况,糟糕一点的直接导致入库、查询某个业务表不可用, 甚至集群运行不了。 **概述** 使用过开源HBase的人都知道,运维HBase是多么复杂的事情,集群大的时候,读写压力大,配置稍微不合理一点,就可能会出现集群状态不一致的情况,糟糕一点的直接导致入库、查询某个业务表不可用, 甚至集群运行不了。在早期0.9x版本的时候,HBase的修复工具还有一下bug,使得即使你懂得如何修复的情况下,依然需要多次重复运行命令,绕过那些不合理的修复逻辑,甚至有时候需要自己写代码预先修复某个步骤。 **背景** 上周五,某公司使用的某Dat...阅读全文

[Go语言]binary tree算法的华山论剑

版权声明:本文为Sunface(孙飞)原创文章,转载请注明出处 https://blog.csdn.net/abv123456789/article/details/53956732 前言 在benchmarkgame(世界上最火的性能对比网站)上,Go语言一直有一个槽点,就是极其慢的binary tree性能,执行用时40秒 (我的机器上,16秒),与此对比,Java版本是6秒,那么问题来了:为什么慢得令人发指?我们来深入研究下慢的原因,然后看看能否对其进行改进。 对于binary tree算法中,最耗性能的地方就是海量的node分配和bottomUpTree()递归函数的调用,与这两项对应的go的特性就是gc的goroutine的堆栈分配。 GC 这个世界没有完美的GC,任何选择都有代价...阅读全文

利用Prometheus 打造企业分布式监控平台(1)--扩展性

Prometheus是CNCF基金会管理的一个开源监控项目,由于其良好的架构设计和完善的生态,迅速成为了监控领域事实上的标准,尤其是在云原生领域。 随着深入地了解Prometheus,你会发现一些非常好的功能: 服务发现使配置更加容易。Prometheus支持consul,etcd,kubernetes以及各家公有云厂商自动发现。对于监控目标动态发现,这点特别契合Cloud时代,应用动态扩缩的特点。我们无法想象,在Cloud时代,需要运维不断更改配置。 开源社区建立了数百个exporter。基本上涵盖了所有基础设施和主流中间件。 工具库可从您的应用程序获取自定义指标。基本上主流开发语言都有对应的工具库。 它是CNCF旗下的OSS,是继Kubernetes之后的第二个毕业项目。Kubernet...阅读全文

NSURLProtocol 拦截 NSURLSession 请求时body丢失问题解决方案探讨

摘要: “IP直连方案”主要在于解决DNS污染、省去DNS解析时间,通常情况下我们可以在项目中使用 NSURLProtocol 拦截 NSURLSession 请求,下面将支持 Post 请求中面临的一个挑战,以及应对策略介绍一下。 “IP直连方案”主要在于解决DNS污染、省去DNS解析时间,通常情况下我们可以在项目中使用 NSURLProtocol 拦截 NSURLSession 请求,下面将支持 Post 请求中面临的一个挑战,以及应对策略介绍一下: 在支持POST请求过程中会遇到丢失 body的 问题,有以下几种解决方法: 方案如下: 1.换用 NSURLConnection 2.将 body 放进 Header 中 3.使用 HTTPBodyStream ...阅读全文

Go 自定义日期时间格式解析解决方案 - 解决 `parsing time xx as xx: cannot parse xx as xx` 错误

最近在解析 Go 的日期数据格式时(mysql 的 datetime 类型)时遇到个问题,在网上搜了很多方案都试了以后发现不可行,于是自己尝试解决后将解决方案发布出来。 Go 自身的 time.Time 类型默认解析的日期格式是 RFC3339 标准,也就是 2006-01-02T15:04:05Z07:00 的格式。如果我们想要在 Gin 的 shouldBindJSON 方法中,传入 YYYY-MM-DD hh:mm:ss 格式的日期格式作为 time.Time 类型的值,就会引发类似于 parsing time xx as xx: cannot parse xx as xx 的报错信息。这是因为 time.Time 类型默认支持的日期格式与我们传入的格式不同,导致解析出错。。 遇到这个...阅读全文

博文 2020-04-04 19:34:27 晒兜斯

Golang string, byte slices, rune

我们经常会碰到string,byte slices以及rune之间的相互转化问题,现简单介绍一下。 String本质上是只读的slice of bytes。 indexing a string yields its bytes, not its characters: a string is just a bunch of bytes. rune是int32的别名,代表字符的Unicode编码,采用4个字节存储,将string转成rune就意味着任何一个字符都用4个字节来存储其unicode值,这样每次遍历的时候返回的就是unicode值,而不再是字节了。 String is immutable byte sequence. Byte slice is mutable byte sequen...阅读全文

博文 2020-03-08 00:32:42 打倒美帝

关于个人博客的优化

作为一名懂前端的程序员,天天在嘴上谈样式,可是自己的个人博客网站却没有时间打理。就好像农民伯伯把最好的菜卖给别人,让自己的傻儿子却吃“长势不太好”的蔬菜,可农民伯伯其实是非常心疼自己的孩子的。 好了,废话不多说,先来看看成果吧。 pc端效果 样式借鉴了tower —— 一款团队任务管理的产品的样式,非常的简洁干净。然后,同时对移动端进行了适配: 移动端效果 简介 该博客是根据开源项目deepzz0/goblog修改而来。服务器端采用go语言,使用beego作为服务器端框架,前端采用bootstrap,采用golang模板技术,同时原项目使用了docker,但docker部分被我弃用了。 github地址:https://github.com/deepzz0/goblog 首先,让我介绍一下该...阅读全文

博文 2019-03-10 11:34:42 陨石坠灭

Go Web编程--解析JSON请求和生成JSON响应

现在无论是网站、App、小程序还是移动端H5页面应用,都是采用前端与后端单独部署,相互之间以API接口交互的形式构建而成的。因为在结合可读性、编码数据大小和开发者使用难度上都JSON格式是一个比较好的选择,所以接口的数据格式通常都采用JSON,即前端在发送POST,PUT,PATCH请求添加,更改数据时会把数据以JSON格式放到请求的Body中。而后端则是所有数据都会以JSON格式返回。 关于JSON可读性、编码数据大小和开发者使用难度上,因为其可读性不如XML结构,但是数据量小,用程序操作起来更方便。对比Protobuf来说,Protobuf编码速度、编码后数据大小比JSON都要好,但是用程序操作起来没有JSON方便简单,编码后的数据是二进制格式的,易读性完全没有。所以整体来说JSON是一...阅读全文

博文 2020-04-03 11:32:53 Kevin

Bytom Dapp 开发笔记(三):Dapp Demo前端源码分析

本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案。 储蓄分红合约简述 为了方便理解,这里简单说说储蓄分红合约的内容,具体可以查看储蓄分红合约详细说明,储蓄分红,顾名思义就是储蓄之后,当达到一定的时间,按照比例返回本息这样的意思,所以demo中拆分成saving(储蓄)与profit(提现)两个页面,本章内容是针对合约交易的提交,所以只针对储蓄页面说明。 比原官方Dapp-demo使用说明 比原官方demo地址 1)访问的前提需要用chrome打开比原官方demo地址,同时安装bycoin插件,在应用商店搜索就行; 2)安装完bycoin,需要初始化用户信息,新建或者导入备份文件去恢复...阅读全文

博文 2019-08-28 11:02:41 比原链Bytom

Go字符串初探

这篇博文的知识,主要是阅读了Go的官方博客在2013年发表的一篇,名为《Strings, bytes, runes and characters in Go》的文章,里面解释了Go语言中的string、byte以及rune类型以及Go中的编码方式等内容。 相关概念的辨析 字符串、字符、字节、位: 位bit:bit是计算机中最小的存储单位,一个bit表示一个二进制位,存储0或1。 字节byte:一个byte由8个bit组成。在Go中,byte也是一种类型,其底层实际上是一种uint8类型的别名,主要是为了区分字节类型和uint8类型,可以指代一个ASCII的字符。 字符:字符表示一个可以正常显示的一个符号,譬如一个字符串abc,其中a、b、c都是字符,在Go中,一个字符对应一个rune类型值。...阅读全文

博文 2020-05-02 23:34:50 周小路

记Python “用户环境”的一次完美应用

首发于个人公众号:《Python编程时光》 我的博客原文:python.iswbm.com/en/latest/c… 我的 Github:github.com/iswbm/Pytho… 在之前写过一篇关于虚拟环境使用的文章 :Python 虚拟环境使用指南. 但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写。 恰巧这两天,自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例,就拿出来分享一下。 1. 我的使用背景 公司有数以万计的服务器,为了对实现对访问记录进行集中管理以及出于安全考虑,每台服务器都有访问限制,必须使用公司的跳板机才能登陆。 每个公司的员工在跳板机上都有自己的用户、 家目录,对于很多需要 root 权限的...阅读全文

博文 2020-04-29 14:36:32 王一白

记Python “用户环境”的一次完美应用

首发于个人公众号:《Python编程时光》我的博客原文:http://python.iswbm.com/en/la...我的 Github:https://github.com/iswbm/Pyth... 在之前写过一篇关于虚拟环境使用的文章 :Python 虚拟环境使用指南. 但是还没有好好的介绍一下 Python 的用户环境,原因是自己一直没遇到要使用 用户环境 的使用场景,所以就一直懒得写。 恰巧这两天,自己遇到了一个使用用户环境的体验可以完爆虚拟环境的案例,就拿出来分享一下。 1. 我的使用背景 公司有数以万计的服务器,为了对实现对访问记录进行集中管理以及出于安全考虑,每台服务器都有访问限制,必须使用公司的跳板机才能登陆。 每个公司的员工在跳板机上都有自己的用户、 家目录,对于很多需...阅读全文

博文 2020-04-29 13:32:47 Python编程时光

Github架构师解读C/C++应用包管理的Why和How

一、背景本文整理自Johannes Nicolai在JFrog 2019用户大会上的讲演《DevOps for Non-Hipsters(aka C/C++ programmers)》。​Johannes Nicolai是Github的解决方案架构师,主要负责德语区的用户。他和很多制造业的用户(多数使用C/C++)交流,询问他们在DevOps或持续交付方面的挑战,通常会得到如下的描述:​在嵌入式C/C++领域,花费几十个小时完成一个完整的DevOps流水线并不少见。为某一个提交运行单独的构建和测试几乎是不可能的,通常每次构建都包含了几百个同事所有的提交。而构建时间长的主要原因在于交付包包含了大量的依赖包,而每次构建这些依赖包都需要从头开始重新构建。上述的描述并不仅限于德语区,Johannes...阅读全文

博文 2020-04-03 12:18:58 JFrogChina