2020/1/19 开源社区招募进展以及任务进展

开源社区自10月开展以来,经过120多天的日积月累,结下了累累硕果。Fusion大家庭以肉眼可见的速度茁壮成长着!这一切都离不开社区的帮助和支持!新年的脚步愈来愈近,FOSC也在此预祝大家新年快乐!开源社区「超能力者」招募计划于2019年10月16日00:00开启的「超能力者」招募计划已于1/16日结束,奖励发放已超百万,申请者来自五湖四海!截至发稿,FOSC开源社区共计收到723位「超能力者」申请,共计为425位「超能力者」发放了奖励,总数量104,9298个FSN(时间锁定三个月)。其中, ...阅读全文

简书 2020-01-19 23:32:47 FUSION官微

第一个只出现一次的字符

题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 思路 先将字符串遍历一次,使用map存储每个字符出现的次数。 再将字符串遍历一次,若当前字符在map中对应的次数是1,即为正确答案。 若出了两次循环,说明没有正确答案,返回-1即可。 Java代码实现 public class Solution { public int FirstNotRepeatingChar(String str)...阅读全文

简书 2020-01-19 23:32:46 youzhihua

golang之x509解析及序列化

x509.Certificate Desierialize Error 调用json.Marshal将以下old code序列化后,在调用json.Unmarshan反序列化后,会出现各种解析出错的诡异问题。 最省力的方式时保存证书的pem,动态解析pem。 Old Code type Message struct { CertPEM x509.Certficate `json:"cert"` Msg []byte `json:"msg"` } New Code type Message str...阅读全文

简书 2020-01-19 23:32:46 金果儿

2020年最具“钱途”的编程语言

编程语言是人们指导或控制机器的工具,其开发目的在于让操控机器的过程更加简单和顺畅。正因如此,数百种编程语言应运而生。然而,它们的命运却各不相同。一些语言已不复使用,或将在未来几年淘汰。相应地,一些语言将会被充分使用,还有一些崭新的编程语言正在逐渐被人们所接受。本文选取真实可信的调查、统计数据、搜索结果以及薪资等数据,预测 2020 年编程语言的发展趋势。这篇文章将帮助初学者选择适合自己的入门语言,并指导资深人士在切换语言和继续使用当前语言之间作出选择。 我通过两个表格总结了过去五年间编程语言的潮...阅读全文

简书 2020-01-19 23:32:46 编程圈

Rboot 文档--安装

开始创建你自己的机器人 你需要安装 golang 1.3+ 或者更新的版本 源码安装 go get github.com/ghaoo/rboot 推荐使用 go modules 进行开发! 没有梯子的同学可以将 goproxy 设置为国内代理,https://goproxy.io/ 案例在项目文件下 cmd 文件夹下,你也可以自己创建新项目。 创建你的机器人 要创建一个机器人是非常简单的一件事,只需要几行代码就可以让机器人跑起来! 创建你自己的机器人需要创建项目文件夹,并在项目文件夹下创建 ma...阅读全文

简书 2020-01-19 23:32:44 chca

「工具推荐」golang 代码可视化工具 go-callvis

「工具推荐」go-callvis go-callvis是相对 以图片的形式展示了go程序的调用关系,这个工具在看复杂项目时尤其有用。 亲测,借助它看祖传golang代码,头痛好多了。 安装 go get -u github.com/TrueFurby/go-callvis # or git clone https://github.com/TrueFurby/go-callvis.git cd go-callvis && make install 运行依赖 Go 1.12+ Graphviz:h...阅读全文

Segmentfault 2020-01-26 08:32:33 goodspeed

记一次线上Giao(go)服务内存占用率过高问题排查

本文作者: 保护我方李元芳 商业转载请联系作者获得授权,非商业转载请注明出处。 故障现象 某线上埋点上报机器偶尔触发内存占用过多的报警。ssh到机器top发现主要内存被埋点服务占用。之前重启过几次,但是过段时间仍然会发生内存占用过多的警报。下面是报警详情。 [P1][PROBLEM][ali-e-xxx-service03.bj][][ all(#3) mem.memfree.percent 4.19575<5][O3 >2019-10-28 10:20:00] 问题推断 埋点服务主要接收客户端...阅读全文

掘金 2020年01月19日 保护我方李元芳

Go语言快速入门笔记(2)--值类型和引用类型,silce切片,map映射

内容速览 本文包含Go语言的简单入门语法,值类型和引用类型,silce切片,map映射 本文适合人群 具有一定编程语言基础(如:C/C++,java等),并且想要快速入门Go语言的同学 值类型和引用类型 值类型:直接对值操作的类型,包括 1.基本数据类型(int,float等) 2.struct结构体 3.数组 复制代码 引用类型:通过指针(引用)对内存单元操作的类型,包括 1.silce切片 2.map映射 3.其他容器 复制代码 数组和切片slice 声明://一维数组 格式1:var 数组...阅读全文

掘金 2020年01月18日 无知影

图解kubernetes服务打散算法的实现源码

在分布式调度中为了保证服务的高可用和容灾需求,通常都会讲服务在多个区域、机架、节点上平均分布,从而避免单点故障引起的服务不可用,在k8s中自然也实现了该算法即SelectorSpread, 本文就来学习下这个算法的底层实现细节 1. 设计要点 1.1 zone与node zone即代表一个区域,node则是一个具体的节点,而该打散算法的目标就是将pod在zone和node之间进行打散操作 1.2 namespace namespace是k8s中进行资源隔离的实现,同样的筛选也是如此,在筛选的过程...阅读全文

掘金 2020年01月18日 代码仔

这个IM项目没时间搞了,开源算了。10万并发,基于golang。

先上效果 安装方法 本系统升级到golang1.12,请开启如下支持 #开启go mod支持 export GO111MODULE=on #使用代理 export GOPROXY=https://goproxy.io 1.下载项目 git clone https://github.com/winlion/chat.git 2.项目配置 2.1 ide配置 goland IDE ADD Configuration->左上角+->go build类型,右侧填写 files :{你的项目路径}/hel...阅读全文

Segmentfault 2020-01-25 18:32:33 非正式解决方案

文件断点续传的基本实现

断点续传原理 每次拷贝时,使用seek记录偏移量,并将其记录在本地文件中,下次拷贝时读取时从记录的偏移量的位置继续进行 上次上传代码有错误,已修复 代码实现 核心方法 func ContinueCopy(srcFile, destDir string) (int, error) { // 1. 定义源文件 fileSrc, err := os.Open(srcFile) if err != nil { return 0, err } log.Printf("源文件名称:%s\n", fileSr...阅读全文

掘金 2020年01月19日 永动的图灵机

Go 每日一库之 cobra

简介 cobra是一个命令行程序库,可以用来编写命令行程序。同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架。非常多知名的开源项目使用了 cobra 库构建命令行,如Kubernetes、Hugo、etcd等等等等。 本文介绍 cobra 库的基本使用和一些有趣的特性。 关于作者spf13,这里多说两句。spf13 开源不少项目,而且他的开源项目质量都比较高。 相信使用过 vim 的都知道spf13-vim,号称 vim 终极配置。 可以一键配置,对于我这样的懒人来说绝对是...阅读全文

掘金 2020年01月18日 darjun

学习使用 Go 的反射

什么是反射 大多数时候,Go中的变量,类型和函数非常简单直接。当需要一个类型、变量或者是函数时,可以直接定义它们: type Foo struct { A int B string } var x Foo func DoSomething(f Foo) { fmt.Println(f.A, f.B) } 复制代码但是有时你希望在运行时使用变量的在编写程序时还不存在的信息。比如你正在尝试将文件或网络请求中的数据映射到变量中。或者你想构建一个适用于不同类型的工具。在这种情况下,你需要使用反射。反射使...阅读全文

掘金 2020年01月19日 kevinyan

【代码篇】从零开始一步步搭建自己的golang框架(二)

上一篇我写到了项目初始化完成,今天接着写。目标是完成项目基本的代码目录架构。 第一步 首先,创建main.go文件,作为我们的程序的入口文件。 第二步 顺着思路走,我们先不写具体的代码,有了入口文件之后,我们下一步应该怎么做?读取配置?不,应该是写日志了。所以我们创建一个logger目录,用来存放日志组件。 第三步 现在是时候,读取我们项目的配置了,我们创建一个config目录来存放配置有关的东西。 第四步 想想,我们读取完配置之后,配置一般可能包含哪些东西?是不是有数据库的配置?是不是有队列的...阅读全文

简书 2020-01-19 11:32:43 onepunchgo

学习使用 Go 的反射

什么是反射 大多数时候,Go中的变量,类型和函数非常简单直接。当需要一个类型、变量或者是函数时,可以直接定义它们: type Foo struct { A int B string } var x Foo func DoSomething(f Foo) { fmt.Println(f.A, f.B) } 但是有时你希望在运行时使用变量的在编写程序时还不存在的信息。比如你正在尝试将文件或网络请求中的数据映射到变量中。或者你想构建一个适用于不同类型的工具。在这种情况下,你需要使用反射。反射使您能够在...阅读全文

Segmentfault 2020-01-25 11:32:32 Kevin

go资源整理

``` 1、入门:《Go 语言圣经》中文版 https://books.studygolang.com/gopl-zh/ ,该书建议一定看看 2、进阶:《Go 语言实战》 ``` ``` 1.Learning Go 《学习Go语言》 http://www.miek.nl/projects/learninggo/ 中文版http://mikespook.com/learning-go/ 2.Go by Example Go is an open sour...阅读全文

Go语言中文网 2020-01-19 10:26:05 andy_wb_22

Django高级实战 开发企业级问答网站

​Django开发企业实战 面向就业/升职(中高级教程)【点击下载】从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态、文章、问答、私信、消息通知、搜索、个人中心,打造企业级知识问答网站,由此全面学习Python后端开发技术栈,内容涵盖Python、Django生态、通用类视图的源码、DFS/BFS/C3线性化算法、组合模式与观察者模式、TestCase测试用例、MySQL数据库、Redis缓存、WebSocket实时推送、Haystack+Elasticsearch搜索、应用部署和运...阅读全文

Go语言中文网 2020-01-19 02:19:08 xuezhe

AQS抽象队列同步器

模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 Lock接口及其实现 中,DemoReentrantLock 和 DemoReadWriteLock 代码相似度很高。DemoReentrantLock 中的加解锁完全可以用DemoReadWriteLock中代替,即可实现加解锁。 优化两个锁的代码-采用模板方法模式 CommonMask实现两个锁共有的方法 import java.util.concur...阅读全文

简书 2020-01-19 01:32:42 依弗布德甘