Coder Social home page Coder Social logo

talkgo / night Goto Github PK

View Code? Open in Web Editor NEW
11.8K 714.0 1.1K 60.71 MB

Weekly Go Online Meetup via Bilibili|Go 夜读|通过 bilibili 在线直播的方式分享 Go 相关的技术话题,每天大家在微信/telegram/Slack 上及时沟通交流编程技术话题。

Home Page: https://talkgo.org

License: MIT License

Go 100.00% Dockerfile 0.01% Makefile 0.01%
golang gopher shenzhen offline go reading discuss online zoom-us share

night's Introduction

logo

Go Report Card GitHub stars GitHub forks Documentation GitHub issues license

Star History

Star History Chart

加入方法

微信群

微信搜索 night_reading_go ,添加好友,备注你的姓名、公司、工作岗位和职责, 来自:GitHub,我会拉你入群。

在群内大家会就一些话题进行深入交流和探讨,说不定你还能遇到你的“导师”,我相信你会在里面受益良多,希望这个收益可以让你也能积极参与讨论,让微信群因你的加入而更精彩。

知识星球

2023 年 Go 夜读知识星球做了内容上的全面升,不仅有 Go 新闻专栏,还有高质量的主题分享,你还可以向嘉宾提问。

  • #Go新闻 第一时间给大家分享 Go 相关的一些变更、讨论。

现在 5 周年特惠,可以阅读文章我的回顾与启航:从心出发了解更多,并领取现金券,名额有限哦!

2023 年知识星球专栏:

  • #闲聊八卦
  • #连接你我 我要为大家提供更多的 1:1 ,连接所有人的前提是先把我与你连接起来。
    • 2023 年目标,与 50 个星友连接,当前进度 2/50,还有少量名额。
  • #成长手记 讲述我在经营 Go 夜读过程中的一些经历。
  • #好书共读 从书中学,书中自有黄金屋,书中自有颜如玉。
  • #好听共享 从播客、视频中学习行业大咖的经验总结。
  • #以练带学,学以致用 开源项目的实践,7 天系列,30 天系列,效率工具,效率提升等等。
  • #以码会友 code snippet。
  • #ToBSaaS
  • #技术与管理
  • #私享会 线上交流会
  • #星友局 线下聚会

还想了解什么,直接联系我或者提 Issues。

订阅 Go 夜读微信公众号

Go 夜读微信公众号主要是 Go 语言相关的话题,例如 Go 新特性分析, Go 周边新闻,Go Proposal解读, Go 源码剖析,以及 Go 工程实践。

Go 夜读还包括读书会和算法学习板块,读书会偶尔会有读书笔记分享,也有共读共学的读书会活动。 算法学习主要是以题解讨论形式在小范围内进行,偶尔会分享一些题解以供学习交流。

YouTube, Twitter, Facebook, Telegram, Slack

我们的精神

开源!开源!开源!

重要的事,一定要说三遍。

希望有兴趣的小伙伴们一起加入,让我们一起把 『Go 夜读』建立成一个对大家都有帮助的开源社区。

我们的目标

我们希望可以推进大家深入了解 Go ,快速成长为资深的 Gopher 。 我们希望每次来了的人和没来的人都能够有收获,成长。

让每个想要学习的人都能参与进来,(包括初中高级 Go 工程师), 只有层次相当的人才有可能有思维的碰撞和交流,这样最终的产出也尽可能的高质量。

主题内容

Go 夜读将定期进行与 Go 语言相关的话题分享,例如源码阅读、工程实践等等。

我们的选题范围

我们的选题范围包括但不限于:

  • 入门级
  • 实操级
  • 架构设计级
  • 学习方法、习惯培养等
  • 效率效能提升
  • 论文研讨

我们的基本流程和分享方式

  1. 通过提交 Issue 的方式来收集大家想要研究的与 Go 相关的源码库或源码模块等话题;
  2. 提交的话题提案必须得到得到 SIG 小组的批准,并成功招募到分享人,该分享才会进入准备阶段。同样欢迎自荐话题并主动进行分享;
  3. 分享人准备分享材料,并在材料准备完毕后交付 SIG 小组审阅;
  4. 当 SIG 小组完成对材料的审阅后,将进行正式排期(这期间包括划定受众范围、审阅任务分工、分发排期计划等);
  5. 正式在线上进行分享;
  6. 将视频进行后期剪辑并上传至视频网站,再进行后续分发。

注:

报名讲师并完成分享后,我们将赠送「Go 夜读」知识星球赠票。

回看地址

往期分享

期数 标题 分享人 回看
152 2024-05-23 从汇编角度理解 Go 语言 挖坑的张师傅,来自希沃,负责 DevOps、多云架构等相关的工作 YouTube Bilibili
151 2024-05-16 xgo: 基于编译期代码重写实现 Mock 和 Trace xhd2015, 先后经历 vivo,字节跳动,目前在一家外企从事 Go 的研发工作。 YouTube Bilibili
150 2024-01-25 Go 并发模式介绍和创新创造 鸟窝,微服务框架 rpcx 的作者,《深入理解 Go 并发编程》的作者,《100 个 Go 典型错误》的译者之一,新技术的爱好者。 YouTube Bilibili
149 2024-01-18 如何设计现代云原生网关:Easegress 龙韵,软件工程师,来自 MegaEase。Easegress 与 EaseMesh 的架构师与开发人员。 YouTube Bilibili
148 2023-09-21 Excelize 构建 WebAssembly 版本跨语言支持实践 续日,软件工程师,开源爱好者 GitHub: @xuri,Excelize 开源基础库作者。阿里巴巴技术专家,前百度 Go 语言编程委员会成员,从事百度 Go 语言研发体系的建设工作。 YouTube Bilibili
147 2023-08-08 高性能预写日志(Write Ahead Log)的设计与实现 roseduan,目前在 hashdata 担任数据库内核开发,开源爱好者,开源项目 rosedb、lotusdb、wal、renee 作者 YouTube Bilibili
146 2023-06-29 基于 Zinx 的 TCP Server 开发 Aceld,Zinx 作者,《深入理解 Go 语言》作者 YouTube Bilibili
145 2023-06-15 go-zero 实战经验分享 Mikael go-zero-looklook 作者 YouTube Bilibili
144 2023-04-06 如何快速学习 Go 语言设计模式 廖显东,《Go 语言设计模式》作者 YouTube Bilibili
143 2023-03-23 从零开始的高性能RPC框架设计与实现 rainstorm,开源爱好者,https://github.com/zbh255 YouTube Bilibili
142 2023-03-12 如何用 things 3 管理我们的工作和生活? qcrao YouTube Bilibili
141 2022-11-24 KusionStack:"后云原生时代"应用模块化运维管理解决方案 李大元 (花名:达远) Kusion 项目负责人,蚂蚁集团 PaaS 核心团队技术专家,PaaS IaC 基础平台负责人 YouTube Bilibili
140 2022-11-16 Go 1.19 pdqsort 算法 张云浩@字节跳动 YouTube Bilibili
139 2022-11-03 Go 语言 Excelize 开源基础库介绍 续日,软件工程师 YouTube Bilibili
138 2022-07-28 Go 语言链接器 史斌@Go 语言核心贡献者(TOP 50) YouTube Bilibili
137 2022-07-27 如何学习开源项目——从全局到局部分析的思路 李纪昀@CloudWeGo CSG Member YouTube Bilibili
136 2022-07-20 如何利用命令行工具 hz 快速开发 hertz 服务——hertz 框架实践 范广宇@字节跳动架构研发工程师 YouTube Bilibili
135 2022-07-13 从精通烤肉到精通 HTTP —— Hertz HTTP 框架入门 尹旭然@字节跳动架构研发工程师 YouTube Bilibili
134 2022-06-30 JuiceFS 导出/导入元数据的优化之路 徐桑迪@JuiceData YouTube Bilibili
133 2022-06-09 缓存与数据库一致的解决方案 叶东富 YouTube Bilibili
132 2022-04-21 TransactionMesh 的一种实现方案 刘晓敏,目前在**系统从事云原生开发研究。主要开源项目 seata-golang。 YouTube Bilibili
131 2022-04-14 gRPC-Go 基于 Polaris 北极星的服务治理实践 单家骏,腾讯专家工程师,具备10年以上中间件研发经验。北极星开源社区(PolarisMesh)联合发起人,负责北极星开源社区项目的技术规划、代码开发和社区运营等工作。 YouTube Bilibili
130 2022-04-07 开源 KV 引擎 NutsDB 的设计与实现 徐佳军 YouTube Bilibili
129 2022-03-31 Go 本地缓存的技术选型对比(freecache、bigcache、fastcache) 文小飞 YouTube Bilibili
128 2022-03-30 Go 1.18 中的泛型 欧长坤 YouTube Bilibili
127 2022-02-10 消息最终一致性的架构革命 叶东富,北京大学计算机硕士,曾任常青藤爸爸 CTO,曾任搜狗架构师。开源跨语言分布式事务管理器 dtm 作者;C++ 开源网络框架 handy 作者。在分布式事务、高可用、分布式共识、性能优化等领域有深入研究。 YouTube Bilibili
126 2022-01-18 Go 自底向上性能优化实践 韩森,开源爱好者,hnes@PingCAP YouTube Bilibili
125 2022-01-13 The Tail At Scale(长尾耗时) & HotRing 论文阅读分享 陈子昌@滴滴 MPT YouTube Bilibili
124 2021-12-22 go-zero 分布式事务实践 万俊峰 & 叶东富 YouTube Bilibili
123 2021-12-09 eBPF 与 Go,超能力组合 狄卫华 《Linux 内核观测技术 BPF》译者之一,云原生架构师 YouTube Bilibili
122 2021-11-24 7 天用 Go 从零实现系列背后的故事 极客兔兔,2017 年毕业于复旦大学,现任华为 OS 内核主任工程师。Go 语言业余爱好者,《 7 天用 Go 从零实现系列》作者。 YouTube Bilibili
121 2021-11-04 微服务的数据一致性问题及解决方案 DTM 叶东富,北京大学计算机硕士,曾任常青藤爸爸 CTO,曾任搜狗架构师。开源跨语言分布式事务管理器 dtm 作者;C++ 开源网络框架 handy 作者。在分布式事务、高可用、分布式共识、性能优化等领域有深入研究。 YouTube Bilibili
120 2021-10-28 垃圾回收与 Go 实现 郑建勋,《Go语言底层原理剖析》作者 YouTube Bilibili
119 2021-10-21 Go monkey patch 的原理及应用 涛叔@Bilibili,从事 Go 服务端研发工作 YouTube Bilibili
118 2021-09-29 Go 字符串匹配及 Rabin-Karp 算法 cuishuang,目前就职于B站,担任Go服务端开发师 YouTube Bilibili
117 2021-07-03 详解开源项目 rosedb 及存储模型 roseduan/玫瑰哥@哔哩哔哩后台开发工程师 YouTube Bilibili
116 2021-06-17 理论结合实践详解 lsm 树存储引擎(bitcask、moss、leveldb 等) 文小飞@腾讯 PCG YouTube Bilibili
115 2021-05-27 理论结合实践详解 b+ 树存储引擎(innodb、boltdb、buntdb) 文小飞@腾讯 PCG YouTube Bilibili
114 2021-05-20 GoLand 2021.1 新特性介绍 Florin Pățan&范圣佑@JetBrians YouTube Bilibili
113 2021-04-29 性能优化究竟应该怎么做? 曹春晖 YouTube Bilibili
112 2021-04-27 go-zero 分布式缓存最佳实践 万俊峰 kevin@晓黑板 CTO,好未来技术委员会资深专家 YouTube Bilibili
111 2021-02-25 KubeVela:标准化的云原生平台构建引擎 孙健波 (花名:天元)@阿里云技术专家 YouTube Bilibili
110 2021-02-19 What's new in Go 1.16 杨文@Go 夜读 SIG 成员 YouTube Bilibili
109 2021-01-28 Don’t be clever - understand memory ordering 徐拯@ARM **,软件开发总监 YouTube Bilibili
108 2021-01-21 Golang 反射的应用及源码分析 kippa@早安科技 YouTube Bilibili
107 2020-11-07 Paxos 分布式共识算法介绍 黄威, 趣头条 Go 后端工程师 YouTube Bilibili
106 2020-11-05 嵌入式 Javascript 在 Golang 中的应用 Misko Lee(叶秋), Noise Labs 创始人 YouTube Bilibili
105 2020-10-03 go-zero 微服务框架解答和线上交流 万俊峰(Kevin)@晓黑板 YouTube Bilibili
104 2020-09-13 通过 hashicorp/raft 库手把手调试 raft 算法 黄威@趣头条 YouTube Bilibili
103 2020-08-20 TiDB Operator 架构与实现 付业成@PingCAP YouTube Bilibili
102 2020-08-19 Go 官方标准编译器中实现的优化集锦 老貘@go101 作者 YouTube Bilibili
101 2020-08-16 晓黑板 go-zero 微服务框架的架构设计 万俊峰@晓黑板 CTO YouTube Bilibili
100 2020-08-13 如何高效的阅读 Go 代码? Go 夜读 SIG 小组 YouTube Bilibili
99 2020-08-06 betterGo——用类似 C++的代码生成的方式实现 Go 泛型 张钰泽@西安工业大学 YouTube Bilibili
98 2020-08-01 Go 中的类型递归 卢俊杰@英语流利说 YouTube Bilibili
97 2020-07-23 我们可以从 mosn 和相关的项目中学习到什么 曹春晖@蚂蚁金服 YouTube Bilibili
96 2020-07-11 百度大规模网络流量接入技术 & BFE 开源 章淼@百度 YouTube Bilibili
95 2020-07-09 Dubbo-go 的成长与蜕变之路 邹毅贤 YouTube Bilibili
94 2020-07-02 斗鱼微服务框架 Jupiter 的诞生历程 张明可@斗鱼 YouTube Bilibili
93 2020-06-25 Seata Go 分布式事务框架的介绍与实践 刘晓敏@成都世纪加华 YouTube Bilibili
92 2020-06-18 如何用 Go 实现一个压力测试工具 疏辰辰(link1st)@小米 YouTube Bilibili
91 2020-06-17 Diagnosing Latency Issues Caused By Go’s Memory System 李泽钧@PingCAP YouTube Bilibili
90 2020-06-10 K8S 入门: 使用国内公有云快速部署容器云实验环境 陈逸文@PingCAP 实习生 YouTube Bilibili
89 2020-06-11 Sentinel Golang 面向云原生微服务的高可用流控防护组件 娄宇庭,FreeWheel/AdServer,Software Engineer Alibaba Sentinel Committer YouTube Bilibili
88 2020-06-13 哆啦 A 梦—基于 Prometheus 的企业监控平台的设计与实现 刘恒滔 YouTube Bilibili
87 2020-04-29 JetBrains GoLand 2020.1 新特性介绍 Florin Pățan&范圣佑@JetBrians YouTube Bilibili
86 2020-04-23 Go 中非类型安全指针相关的事实和使用规则 老貘 YouTube Bilibili
85 2020-04-16 斗鱼 Minerva 配置中心的设计与实现 杜旻翔 YouTube Bilibili
84 2020-04-02 图解 Go 之内存对齐 苗蕾 YouTube Bilibili
83 2020-03-27 对 Go 程序进行可靠的性能测试 欧长坤 YouTube Bilibili
82 2020-03-22 聊聊我们与 Go 夜读的故事以及效率效能学习分享 Go 夜读 SIG 小组, 曹春晖, John, Darren 等 YouTube Bilibili
81 2020-03-19 gorm 介绍与展望 Jinzhu YouTube Bilibili
80 2020-03-18 带你提前玩 Go 2 新特性:泛型 欧长坤 YouTube Bilibili
79 2020-03-12 Go-Micro 运行时工具集(三) by 舒先 舒先 YouTube Bilibili
78 2020-03-11 Go Scheduler 源码阅读 饶全成 YouTube Bilibili
77 2020-03-05 阅读 Go 源码带来的收益 杨文 YouTube Bilibili
76 2020-02-20 Kubernetes Scheduler 设计与实现 Draven YouTube Bilibili
75 2020-02-07 2020 年 Go 的一些发展计划 (Go 1.14 && Go 1.15) 杨文 YouTube Bilibili
74 2020-01-02 time.Timer 源码分析 (Go 1.14) 欧长坤 YouTube Bilibili
73 2019-12-28 趣头条在长链接方面的实践 - qrpc 徐志强 YouTube Bilibili
72 2019-12-19 Go-Micro 编写微服务实战 (二) by 舒先 舒先 YouTube Bilibili
71 2019-12-12 go-ini 配置库评析 无闻 YouTube Bilibili
70 2019-12-05 Go 中不常注意的各种细节集锦 老貘 YouTube Bilibili
69 2019-11-28 DevOps 实践之路 - 基于 Go 语言周边生态打造的行业技术中台 杨晖@腾讯教育 YouTube Bilibili
68 2019-11-21 网络知识十全大补丸 刘楠@字节跳动 YouTube Bilibili
67 2019-11-14 Go database/sql 数据库连接池分析 邹文通 YouTube Bilibili
66 2019-11-07 #Paper-Reading CSP 理解顺序进程间通信 欧长坤 YouTube Bilibili
65 2019-10-31 Go 网络编程:Go 原生同步网络模型解析 vs Multi-Reactors 异步网络模型 潘建锋 YouTube Bilibili
64 2019-10-24 深入浅出 Golang Runtime 郝以奋 YouTube Bilibili
63 2019-10-17 Go 编码风格阅读与讨论 杨文 YouTube Bilibili
62 2019-10-10 Go-Micro 微服务框架(一) 舒先 YouTube Bilibili
61 2019-09-26 Go Modules、Go Module Proxy 和 goproxy.cn 盛傲飞 YouTube Bilibili
60 2019-09-19 IPFS 星际文件系统 向程@华中科技大学研究生 YouTube Bilibili
59 2019-09-12 #paper reading Real-world Go Concurrency Bugs 欧长坤 YouTube Bilibili
58 2019-09-05 What's new in Go 1.13? 杨文 YouTube Bilibili
57 2019-08-29 sync/semaphore 源码浅析 Felix YouTube Bilibili
56 2019-08-22 channel & select 源码分析 欧长坤 YouTube Bilibili
55 2019-08-15 Go&WebAssembly 简介 柴树杉@蚂蚁金服 YouTube Bilibili
54 2019-08-14 TiDB SQL 兼容性测试工具简介 谢腾进、赵一霖@PingCAP YouTube Bilibili
53 2019-08-01 build in func delete from map 杨文 YouTube Bilibili
52 2019-07-25 httprouter 简介 曹春晖 YouTube Bilibili
51 2019-07-18 sync/errgroup 源码阅读 杨文 YouTube Bilibili
50 2019-06-27 GoLand Tips & Tricks Florin Pățan&范圣佑@JetBrians YouTube Bilibili
49 2019-06-26 TiDB 源码阅读之 Transaction zimulala@PingCAP YouTube Bilibili
48 2019-06-19 TiDB 源码阅读之 Compiler wangcong@PingCAP YouTube Bilibili
47 2019-06-12 TiDB 源码阅读之 Executor 陈霜@PingCAP YouTube Bilibili
46 2019-06-05 TiDB 源码阅读之概览 龙恒@PingCAP YouTube Bilibili
45 2019-05-30 goim 架构设计与源码分析 tsingson YouTube Bilibili
44 2019-05-29 Go map 源码阅读分析 饶全成 YouTube Bilibili
43 2019-05-23 gomonkey 框架设计与应用实践 张晓龙 YouTube Bilibili
42 2019-05-16 An Introduction to Failpoint Design 龙恒@PingCAP YouTube Bilibili
41 2019-05-12 golint 及 golangci-lint 的介绍和使用 杨文 YouTube Bilibili
40 2019-04-27 atomic.Value 的使用和源码分析 杨文 YouTube Bilibili
39 2019-04-18 init function 使用分析 杨文 YouTube Bilibili
38 2019-04-13 kubernetes scheduler 源码阅读 John YouTube Bilibili
37 2019-04-01 从 serverless 的一个设计说起 冉小龙 YouTube Bilibili
36 2019-03-28 k8s context 实践源码阅读 杨文 YouTube Bilibili
35 2019-03-21 context 源码阅读 杨文 YouTube Bilibili
34 2019-03-16 plan9 汇编入门,带你打通应用和底层 by Xargin 曹春晖 YouTube Bilibili
33 2019-03-07 Go defer 和逃逸分析 饶全成 YouTube Bilibili
32 2019-03-03 etcd raft 源码阅读 缪昌新 YouTube Bilibili
31 2019-02-23 flag 包源码阅读 杨文 YouTube Bilibili
30 2019-02-23 go mod 源码阅读 Part 4 杨文 YouTube Bilibili
29 2019-01-23 Go opentracing jaeger 集成及源码分析 jukylin YouTube Bilibili
28 2019-01-17 go mod 源码阅读 Part 3 杨文 YouTube Bilibili
27 2019-01-10 go mod 源码阅读 Part 2 杨文 YouTube Bilibili
26 2019-01-03 手把手教你基于 Github+Netlify 构建自动化持续集成的技术团队博客 John YouTube Bilibili
25 2018-12-27 TSDB 引擎介绍,对比及存储细节 yuyang YouTube Bilibili
24 2018-12-23 go mod 源码阅读 Part 1 杨文 YouTube Bilibili
23 2018-12-13 Drone 简单介绍和部分源码分析 杨文 YouTube Bilibili
22 2018-12-06 Go 开发工具讨论 杨文/John YouTube Bilibili
21 2018-11-28 errors 处理及 zap 源码分析 叶飞/阙坦 YouTube Bilibili
20 2018-11-15 go test 及测试覆盖率 杨文 YouTube Bilibili
19 2018-11-08 如何开发一个简单高性能的 http router 及 gorouter 源码分析 徐佳军 YouTube Bilibili
18 2018-09-27 去中心化加密通信框架 CovenantSQL/DH-RPC 的设计 王鹏程 YouTube Bilibili
17 2018-09-20 grpc 开发及 grpcp 的源码分析 林益帆 YouTube Bilibili
16 2018-09-06 OpenFaas 介绍及源码分析 朱振峰@字节跳动 YouTube Bilibili
15 2018-08-23 多路复用资源池组件剖析 李亚川 YouTube Bilibili
14 2018-08-17 sync.Pool 源码分析及适用场景 杨文 YouTube Bilibili
13 2018-08-10 Kubernetes 入门指南 李森森 YouTube Bilibili
12 2018-08-01 Go 中 Goroutine 的调度 郑宝杨 YouTube Bilibili
11 2018-07-26 Go 代码质量持续检测实践 吴雨豪 YouTube Bilibili
10 2018-06-28 http 包源码阅读 part3 2018-06-28 线下活动 YouTube Bilibili
9 2018-06-14 Go 标准包 net 源码阅读(三)线下活动(未录制视频)
8 2018-05-31 线下活动 - Go 标准包 net/http 源码阅读(二) YouTube Bilibili
7 2018-05-24 线下活动 - Go 标准包 net/http 源码阅读(一) YouTube Bilibili
6 2018-05-17 线下活动
5 2018-05-10 线下活动 - Go 标准包 strings 源码阅读(三)
4 2018-04-25 线下活动 - Go 标准包 strings 源码阅读(二)
3 2018-04-18 线下活动 - Go 标准包 strings 源码阅读(一)
2 2018-04-11 线下活动 - 微服务框架(teleport, tp-micro, ants)
1 2018-03-21 线下活动 - teleport, goutil

如何发起分享提案?

你是否经常困扰于某些 Go 话题没有人分享或者很少人关注?自己很想深入研究,但是却是形单影只,经常半途而废呢?

机会来了!!!参考如何发起分享提案

如何参与贡献?

想要参与贡献?阅读 如何参与贡献 查看指南。

Stargazers over time

talklgo/night Star History and Stats

Contributors

Code Contributors

This project exists thanks to all the people who contribute.

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

This project is supported by:

Contributors

我非常重视每一个对这个项目的贡献者,我会将贡献者列表更新到这里,目前只有提交 Pull Request 的小伙伴,但是贡献不仅仅如此,还可以包括提交 Issue 以及在社群中有所贡献的人。

贡献者自己可以提 PR ,方法如下:

  • 安装 npm install -g --save-dev all-contributors-cli
  • sh gen_contributors.sh

贡献类型有多种,比如:"code", "ideas","review","talk","tutorial",你可以在 .all-contributorsrc 中修改。

Thanks goes to these wonderful people (emoji key):

maiyang
maiyang

💻 🤔 👀 📢
Simple Min
Simple Min

💻
kenny
kenny

💻
charnlsxy
charnlsxy

💻
AceDarkknight
AceDarkknight

💻
Data
Data

💻
侯名
侯名

💻
dumliu01
dumliu01

💻
hlily2005
hlily2005

💻
henrylee2cn
henrylee2cn

💻
shaqsnake
shaqsnake

💻
tbwisk
tbwisk

💻
Huang ChuanTong
Huang ChuanTong

💻
The notes of SQL optimize
The notes of SQL optimize

💻
zhouxinxin19920802
zhouxinxin19920802

💻
macaria
macaria

💻
Dennis
Dennis

💻
orangleliu
orangleliu

💻
HarbinZhang
HarbinZhang

💻
LiMingji
LiMingji

💻 📖
wintersnow
wintersnow

💻
zhuzhenfeng
zhuzhenfeng

💻
徐佳军
徐佳军

💻
nicho
nicho

💻
Weifeng Wang
Weifeng Wang

💻
John Deng
John Deng

💻
赵吉彤
赵吉彤

💻
YING ZOU
YING ZOU

💻
zsy619
zsy619

💻
杨帆
杨帆

💻
HundredLee
HundredLee

💻
mlboy
mlboy

💻
fish
fish

💻
时小光
时小光

💻
Ziyi Yan
Ziyi Yan

💻
李朋飞
李朋飞

💻
煎鱼
煎鱼

💻
Wang Fei
Wang Fei

💻
742161455
742161455

💻
feifeiiiiiiiiiii
feifeiiiiiiiiiii

💻
崔爽
崔爽

💻
jasonxie
jasonxie

💻
haoc7
haoc7

💻
鱼乐
鱼乐

💻
Littlesqx
Littlesqx

💻
mchangxin
mchangxin

💻
Hokkaitao
Hokkaitao

💻
Max Li
Max Li

💻
GameOver
GameOver

💻
davygeek
davygeek

💻
Ou Changkun
Ou Changkun

💻
LinkinStar
LinkinStar

💻
Eiger
Eiger

💻
dayu
dayu

💻
scylhy
scylhy

💻
尚墨
尚墨

💻
xhochipe
xhochipe

💻
Andy Pan
Andy Pan

📢
Jinzhu
Jinzhu

📢
Unknwon
Unknwon

📢
Shu xian
Shu xian

📢
nandyliu
nandyliu

📢
shanks
shanks

📢
yaxinlx
yaxinlx

📢
Bo-Yi Wu
Bo-Yi Wu

💻
Kippa
Kippa

💻 📢
15ho
15ho

💻
Draven
Draven

📢
h3l
h3l

💻
seladb
seladb

💻
郝俊禹
郝俊禹

📖
Roger
Roger

📖
clip
clip

📖
Shengyou Fan
Shengyou Fan

📢
Florin Pățan
Florin Pățan

📢
Kevin Wan
Kevin Wan

📢 📖
小佳
小佳

💻
Xingwang Liu
Xingwang Liu

💻
零件
零件

💻
jaydenwen123
jaydenwen123

📢
roseduan
roseduan

📢
yedf
yedf

📢
jonson
jonson

📢
epii1
epii1

📢
Ikko Ashimine
Ikko Ashimine

📖

This project follows the all-contributors specification. Contributions of any kind welcome!

night's People

Contributors

allcontributors[bot] avatar changkun avatar dependabot[bot] avatar feirie avatar felixseptem avatar haojunyu avatar harbinzhang avatar itcuihao avatar jasonrd avatar jiaduo-lin avatar john-deng avatar kissmonx avatar lizhongxuan avatar macaria avatar maxyzli avatar mickey0524 avatar mlboy avatar mougecm avatar orangle avatar qcrao avatar qiangmzsx avatar seladb avatar xpzouying avatar xudong963 avatar xujiajun avatar yangfan21 avatar yangwenmai avatar yuhao5 avatar zhouxinxin19920802 avatar zsy619 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

night's Issues

Weekly Digest (3 January, 2019 - 10 January, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 1 issue was created.
It is closed now.

CLOSED ISSUES

❤️ #120 docs(post): update github+netlify, by yangwenmai


PULL REQUESTS

Last week, 1 pull request was created, updated or merged.

MERGED PULL REQUEST

Last week, 1 pull request was merged.
💜 #120 docs(post): update github+netlify, by yangwenmai


COMMITS

Last week there was 1 commit.
🛠️ docs(post): update github+netlify by yangwenmai


CONTRIBUTORS

Last week there was 1 contributor.
👤 yangwenmai


STARGAZERS

Last week there were 23 stagazers.
chx0501
aKaigege
loveFeng
Hyvi
LiuYamn
guoweikuang
ChengYayu
LIYINGZHEN
Alex1996a
WisperDin
Allianzcortex
Mr9esx
liunian1004
supercoding
jichengwang
niyonghui
dsmlily
jlutt
dunhamdaxia
alonlong
t-zeus
SJTUboy
ritayzy
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Weekly Digest (14 February, 2019 - 21 February, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 4 issues were created.
Of these, 3 issues have been closed and 1 issues are still open.

OPEN ISSUES

💚 #155 Weekly Digest (12 February, 2019 years - 19 February, 2019 years), by yangwenmai

CLOSED ISSUES

❤️ #157 Update 2018-11-08-http-router-in-go.md , by xujiajun
❤️ #156 feat(bigdecimal): add discuss, by yangwenmai
❤️ #154 docs(post): update go mod part 4, by yangwenmai


PULL REQUESTS

Last week, 3 pull requests were created, updated or merged.

MERGED PULL REQUEST

Last week, 3 pull requests were merged.
💜 #157 Update 2018-11-08-http-router-in-go.md , by xujiajun
💜 #156 feat(bigdecimal): add discuss, by yangwenmai
💜 #154 docs(post): update go mod part 4, by yangwenmai


COMMITS

Last week there were 3 commits.
🛠️ feat(bigdecimal): add discuss by yangwenmai
🛠️ Update 2018-11-08-http-router-in-go.md by xujiajun
🛠️ docs(post): update go mod part 4 by yangwenmai


CONTRIBUTORS

Last week there were 2 contributors.
👤 yangwenmai
👤 xujiajun


STARGAZERS

Last week there were 17 stagazers.
JarHMJ
wen-long
hioop
3lackrush
wangzhiyuanme
Joursion
Amanda111
crazycarry
Nexpro
kenvinwei
wenwen936
uhowep
wheatj
chunzhouyu
JiangTengfei
si9ma
sunhongyue4500
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

第 34 期 plan9 汇编入门,带你打通应用和底层

这是今天春晖大佬要讲的内容,我从滴滴内网上找到的资料,晚上一定要勾搭上曹大。

推荐大家阅读,建议大家以后夜读之前一定要提前预习,并且提议参与夜读的同学每人至少准备一个问题,可以随时提问。好处:提高参会者参与感,提前预习,带着问题也会更有效率;提高主讲人的存在感,上次我分享的时候,感觉全程就我一人存在,没有反馈,体验不太好。

附件是春晖大佬的文章:

《plan9 汇编入门,带你打通应用和底层》视频回放
曹春晖——plan9 assembly 完全解析.pdf
《plan9 汇编入门,带你打通应用和底层》讲义
《plan9 汇编入门,带你打通应用和底层》视频地址
曹大的Go高级编程书,纸质书即将出版
曹大go源码阅读
曹大博客

Weekly Digest (21 February, 2019 - 28 February, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 6 issues were created.
Of these, 5 issues have been closed and 1 issues are still open.

OPEN ISSUES

💚 #162 第 32 期 Go 夜读之 etcd raft 源码阅读预习材料, by yangwenmai

CLOSED ISSUES

❤️ #164 docs(post): reading flag, by yangwenmai
❤️ #163 docs(post): update preview raft, by yangwenmai
❤️ #161 docs(post): update preview raft, by yangwenmai
❤️ #159 Notice, by yangwenmai
❤️ #158 docs(post): update go mod part 4 and notice, by yangwenmai


PULL REQUESTS

Last week, 5 pull requests were created, updated or merged.

MERGED PULL REQUEST

Last week, 5 pull requests were merged.
💜 #164 docs(post): reading flag, by yangwenmai
💜 #163 docs(post): update preview raft, by yangwenmai
💜 #161 docs(post): update preview raft, by yangwenmai
💜 #159 Notice, by yangwenmai
💜 #158 docs(post): update go mod part 4 and notice, by yangwenmai


COMMITS

Last week there were 5 commits.
🛠️ docs(post): reading flag by yangwenmai
🛠️ docs(post): update preview raft by yangwenmai
🛠️ docs(post): update preview raft by yangwenmai
🛠️ docs(post): update words by yangwenmai
🛠️ docs(post): update go mod part 4 and notice by yangwenmai


CONTRIBUTORS

Last week there was 1 contributor.
👤 yangwenmai


STARGAZERS

Last week there were 16 stagazers.
simplephp
shaoqi
qcrao
fei922
lppklm
wuchuwuyou
YihuaWanglv
zhengzhong1210
ray1888
haroldduan
buffge
krucezhang
hakehong
zoroqi
WaterRice
sweetweapen
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Weekly Digest (24 January, 2019 - 31 January, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 3 issues were created.
Of these, 2 issues have been closed and 1 issues are still open.

OPEN ISSUES

💚 #149 go mod 在 goland编辑器中的问题, by wolfstudy

CLOSED ISSUES

❤️ #147 add jaeger md, by jukylin
❤️ #146 ARTICLES: 增加如何调优, by xpzouying

NOISY ISSUE

🔈 #147 add jaeger md, by jukylin
It received 1 comments.


PULL REQUESTS

Last week, 2 pull requests were created, updated or merged.

MERGED PULL REQUEST

Last week, 2 pull requests were merged.
💜 #147 add jaeger md, by jukylin
💜 #146 ARTICLES: 增加如何调优, by xpzouying


COMMITS

Last week there were 3 commits.
🛠️ chore(weekly): change weekly digest on thurday by yangwenmai
🛠️ add jaeger md by jukylin
🛠️ ARTICLES: 增加如何调优 https://github.com/xpzouying/learning_golang/tree/master/how_to_tuning by xpzouying


CONTRIBUTORS

Last week there were 3 contributors.
👤 yangwenmai
👤 jukylin
👤 xpzouying


STARGAZERS

Last week there were 18 stagazers.
xtcmoons
yongliu1992
dengcongbao
coolemiao
wilcosheh
Greentor
ycwei5
hsowan
op-y
redwarn
belonHan
qiuyeming
veetine
wvuu
tdkr
chenjipdc
theonexu
jinliangshui
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Weekly Digest (7 February, 2019 - 14 February, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 1 issue was created.
It is closed now.

CLOSED ISSUES

❤️ #152 docs(post): update file name, by yangwenmai


PULL REQUESTS

Last week, 1 pull request was created, updated or merged.

MERGED PULL REQUEST

Last week, 1 pull request was merged.
💜 #152 docs(post): update file name, by yangwenmai


COMMITS

Last week there was 1 commit.
🛠️ docs(post): update file name by yangwenmai


CONTRIBUTORS

Last week there was 1 contributor.
👤 yangwenmai


STARGAZERS

Last week there were 9 stagazers.
marionxue
NSNEVER
gitsrc
rovast
Waitfantasy
zixks
gmyofustc
tommyliu1114
xartisan
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Weekly Digest (28 February, 2019 - 7 March, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 2 issues were created.
Of these, 2 issues have been closed and 0 issues are still open.

CLOSED ISSUES

❤️ #167 docs(post): add meeting minutes, by polyrabbit
❤️ #166 docs(post): reading etcd/raft, by yangwenmai


PULL REQUESTS

Last week, 2 pull requests were created, updated or merged.

MERGED PULL REQUEST

Last week, 2 pull requests were merged.
💜 #167 docs(post): add meeting minutes, by polyrabbit
💜 #166 docs(post): reading etcd/raft, by yangwenmai


COMMITS

Last week there were 2 commits.
🛠️ docs(post): add meeting minutes by mchangxin
🛠️ docs(post): reading etcd/raft by yangwenmai


CONTRIBUTORS

Last week there were 2 contributors.
👤 mchangxin
👤 yangwenmai


STARGAZERS

Last week there were 24 stagazers.
zhenzou
Jiadz
nange
sendya
Cloud33
kuafou
19951206chao
wq1019
SayHe110
xieguangtai
zhengzhanw
liudonglin
biekanwonicheng
yeezyi
kangzhanlei
kyushuzhao
15106119704
a15641404
3Golds
motopig
cookedsteak
tsingson
royswale
DaoYoung
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Weekly Digest (12 February, 2019 years - 19 February, 2019 years)

Here's the Weekly Digest for developer-learning/night-reading-go:


PULL REQUESTS

Last weeks (2019-02-12 08:00:00 +0000 UTC~2019-02-19 08:00:00 +0000 UTC), 2 pull request's were created, updated or merged.

MERGED PULL REQUEST

Last weeks, 2 pull request were/was merged.
💜 #154 docs(post): update go mod part 4 merged at 2019-02-16 14:37:39 +0000 UTC, by yangwenmai
💜 #152 docs(post): update file name merged at 2019-02-13 14:07:19 +0000 UTC, by yangwenmai


Weekly Digest (31 January, 2019 - 7 February, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week, no issues were created.


PULL REQUESTS

Last week, no pull requests were created, updated or merged.


COMMITS

Last week there were no commits.


CONTRIBUTORS

Last week there were no contributors.


STARGAZERS

Last week there were 11 stagazers.
demonkm
jiangdless
uxgnaw
420691301
wokill
scapegoat1630
wsbjwjt
pangzicaicai
holen1210
albert-8
tian2008
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

自动更新 README 脚本化

现在更新某子项目的时候会存在同时要同步两个 README.md ,是否可以做到添加文件后自动更新呢?

Golang 代码质量持续检测

Golang 代码质量持续检测

Author: Kenny Allen

Email: [email protected]

前言

在软件开发过程中,人工检查项目代码中的漏洞和潜在的 BUG 是一件让人十分费神费力的事情,为了解决这一痛点,SonarQube诞生了,它实现了一系列代码自动检测过程,包括命名规范,代码漏洞,代码重复量等。

但是光有 SonarQube 还不能发挥出应有的高效率,一个完整的代码质量持续检测应配合代码仓库(如 gitlab) 和 Jenkins 来共同构建一个自动化过程。

环境

  • Gitlab、Jenkins、SonarQube 服务都在一台物理机上的Docker中运行

  • 网络 (局域网IP:192.168.1.100)

image

  • 主机科学上网代理

    192.168.1.100:1087

    10.03.05

  • 模拟外网访问

    # 修改 hosts 文件,模拟外网访问
    sudo sh -c "echo '192.168.1.100 jenkins.kenny.com\n192.168.1.100 gitlab.kenny.com\n192.168.1.100 sonarqube.kenny.com' >> /etc/hosts"

    10.04.09

  • 工具集

名称 版本
golang go1.10.3
docker 18.03.1-ce

搭建

接下来,我以一个完整的案例来介绍搭建过程。

Jenkins

启动服务
# $jenkins_home 宿主机目录,挂载容器 /var/jenkins_home
# 我的数据卷目录是 ~/.jenkins
export JENKINS_HOME=~/.jenkins
docker run -d --restart=always -p 8080:8080 -p 50000:50000 -v $JENKINS_HOME:/var/jenkins_home --name jenkins jenkins:2.60.3

# 查看 jenkins 日志
docker logs -f jenkins
初始化
  1. 打开浏览器,访问 http://jenkins.kenny.com:8080

    9.11.34

    # 在日志中找到管理员密码
    docker logs -f jenkins 
    
    # 或者在 $JENKINS_HOME/secrets/initialAdminPassword 文件中找到管理员密码
    cat $JENKINS_HOME/secrets/initialAdminPassword

    9.09.27

    9.11.06

  2. 安装推荐插件 (如果你想自定义安装插件,点击 Select plugins to Install)

    9.13.59

  3. 创建管理员账号

    9.19.17

  4. 初始化完成

    9.19.55

Gitlab

启动服务 (gitlab 集成的服务比较多,因此需要占用较大的内存,官方推荐4GB以上)
# $gitlab_home 宿主机目录
# 我的数据卷目录是 ~/.gitlab
export GITLAB_HOME=~/.gitlab
docker run -d --restart=always -e 'GITLAB_HOST=gitlab.kenny.com' -p 443:443 -p 80:80 -p 22:22 -v $GITLAB_HOME/conf:/etc/gitlab -v $GITLAB_HOME:/var/opt/gitlab -v $GITLAB_HOME/log:/var/log/gitlab --name gitlab gitlab/gitlab-ce:11.1.0-ce.0

# 查看 gitlab 日志
docker logs -f gitlab
初始化
  1. 打开浏览器,访问 http://gitlab.kenny.com

    9.26.59

  2. 设置新密码后,使用 root 用户登录

    9.27.29

    9.27.42

  3. 新建 sonarqube 项目组

    9.29.45

  4. 在 sonarqube 项目组下新建 demo 项目

    9.31.26
    9.32.38

  5. 添加主机公钥到 Gitlab

    # 生成 rsa 公钥和密钥
    ssh-keygen -t rsa
    
    # 查看并复制公钥
    cat ~/.ssh/id_rsa.pub

    9.36.12

    9.37.39

    访问 http://gitlab.kenny.com/profile/keys ,将公钥添加至 Gitlab

    9.38.15

    9.38.18

  6. 将 sonarqube/demo 项目拉至主机的 $GOPATH 下

    # 在 $GOPATH 下创建 gitlab.kenny.com 文件夹
    mkdir -p $GOPATH/src/gitlab.kenny.com && cd $GOPATH/src/gitlab.kenny.com
    
    # clone code
    git clone [email protected]:sonarqube/demo.git

SonarQube

启动服务
# 由于目前 sonarqube 官方的 Docker images 只有 7.1 版本,不满足 SonarGO 所需 7.2+ 版本,所以我参考7.1 的 Dockerfile 制作了一个 sonarqube 7.2.1 的镜像
# $sonarqube_home 宿主机目录
# 我的数据卷目录是 ~/.sonarqube
export SONARQUBE_HOME=~/.sonarqube
# 正式环境中应启用外部数据库服务来存储必要数据,在启动容器时设置如下JDBC相关参数:
# -e SONARQUBE_JDBC_USERNAME=sonar 
# -e SONARQUBE_JDBC_PASSWORD=sonar 
# -e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar
docker run -d --restart=always -p 9000:9000 -v $SONARQUBE_HOME:/opt/sonarqube/data --name sonarqube kennyallen/sonarqube:7.2.1

# 查看 sonarqube 日志

Dockerfile:

FROM openjdk:8

ENV SONAR_VERSION=7.2.1 \
    SONARQUBE_HOME=/opt/sonarqube \
    SONARQUBE_JDBC_USERNAME=sonar \
    SONARQUBE_JDBC_PASSWORD=sonar \
    SONARQUBE_JDBC_URL=


# Http port
EXPOSE 9000

RUN groupadd -r sonarqube && useradd -r -g sonarqube sonarqube

# grab gosu for easy step-down from root
RUN set -x \
    && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.10/gosu-$(dpkg --print-architecture)" \
    && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.10/gosu-$(dpkg --print-architecture).asc" \
    && export GNUPGHOME="$(mktemp -d)" \
    && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
    && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
    && rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
    && chmod +x /usr/local/bin/gosu \
    && gosu nobody true

RUN set -x \
    && cd /opt \
    && wget -O sonarqube.zip https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip \
    && unzip sonarqube.zip \
    && mv sonarqube-$SONAR_VERSION sonarqube \
    && chown -R sonarqube:sonarqube sonarqube \
    && rm sonarqube.zip \
    && rm -rf $SONARQUBE_HOME/bin/*

VOLUME "$SONARQUBE_HOME/data"

WORKDIR $SONARQUBE_HOME
COPY run.sh $SONARQUBE_HOME/bin/
ENTRYPOINT ["./bin/run.sh"]

run.sh:

#!/bin/bash

set -e

if [ "${1:0:1}" != '-' ]; then
  exec "$@"
fi

chown -R sonarqube:sonarqube $SONARQUBE_HOME
exec gosu sonarqube \
  java -jar $SONARQUBE_HOME/lib/sonar-application-$SONAR_VERSION.jar \
  -Dsonar.log.console=true \
  -Dsonar.jdbc.username="$SONARQUBE_JDBC_USERNAME" \
  -Dsonar.jdbc.password="$SONARQUBE_JDBC_PASSWORD" \
  -Dsonar.jdbc.url="$SONARQUBE_JDBC_URL" \
  -Dsonar.web.javaAdditionalOpts="$SONARQUBE_WEB_JVM_OPTS -Djava.security.egd=file:/dev/./urandom" \
  "$@"
初始化
  1. 打开浏览器,访问 http://sonarqube.kenny.com:9000

    8.58.40

  2. 使用管理员账号登录

    • 账号 admin
    • 密码 admin

    8.59.06

  3. 生成 token (作为远程连接 SonarQube 的标识,只生成一次,记得备份哦)

    admin_token: 74439d5bc557dcc206fa8b1f2f5516e65680bdc8

    8.59.41

  4. 安装插件 (进入 Administration -> Marketplace)

    9.01.25

    安装完成后点击重启 SonarQube 服务就OK了

集成

  • 将 Jenkins、Gitlab 和 SonarQube 有机整合

Jenkins 安装插件

  1. 点击进入 系统管理 -> 插件管理 -> 可选插件

    9.43.39

  2. 过滤选中 Gitlab、SonarQube Scanner,点击下载待重启后安装

    9.45.12
    9.45.35

    10.19.06

Jenkins 配置

  1. 安装 SonarQube & JDK

    进入 系统管理 -> Global Tool Configuration

    JDK 安装

    ​ 勾选我同意 Java SE Development Kit 的许可协议

    ​ 点击 Please enter your username/password

    11.31.38

    输入你的 oracle 账号密码

    10.20.43

    SonarQube Scanner 安装11.32.15

  2. SonarQube Server

    进入 系统管理 -> 系统设置

    Add SonarQube servers

    Name 随便填写

    Server URL: http://sonarqube.kenny.com:9000

    Server version: 5.3 or higher

    Server authentication token: 填 SonarQube 初始化时生成的 token

    9.53.05

  3. 取消 Gitlab 授权

    取消选中 Enable authentication for '/project' end-point,保存

    11.20.17

  4. 在 jenkins 容器中安装 golang 环境及工具

    # 在 Jenkins 容器中执行命令
    docker exec -it jenkins /bin/bash
    # 临时设置环境变量
    export GOROOT=$JENKINS_HOME/go
    export GOPATH=$JENKINS_HOME/workspace/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    export http_proxy=http://192.168.1.100:1087;export https_proxy=http://192.168.1.100:1087;
    # 进入 jenkins 主目录
    cd $JENKINS_HOME
    # 下载 golang
    wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
    # 解压 golang 包
    tar -xvf  go1.10.3.linux-amd64.tar.gz
    # 删除 golang 包
    rm go1.10.3.linux-amd64.tar.gz
    # 安装必要工具
    # vgo
    go get -u -v golang.org/x/vgo
    # gometalinter
    go get -u -v github.com/alecthomas/gometalinter
    gometalinter --install
  5. 配置邮件通知

    进入 系统管理 -> 系统设置

    Jenkins Location

    系统管理员邮件地址修改为你自己的邮箱地址,如 [email protected]

    11.29.11

    Extend E-mail Notification

    SMTP Server 填写对应的SMTP服务地址,如 smtp.163.com

    点击高级,勾选使用SMTP认证

    用户名 注意不需要加 @xxx.xxx

    密码 填写自己的邮箱密码或授权码

    10.26.50

    11.50.08

    Default Triggers 选中 Always

    11.50.26

新建 Jenkins 构建任务

  1. 新构建一个自由风格的软件项目

    10.35.38

  2. 使用自定义的工作空间

    点击高级,勾选使用自定义的工作空间

    10.28.20

    目录:$JENKINS_HOME/workspace/go/src/gitlab.kenny.com/demo

    10.51.25

  3. 源码管理

    Repository URL:http://gitlab.kenny.com/sonarqube/demo

    Credentials:点击Add ,添加凭据 (Gitlab 用户名密码或 SSH登录等方式都可以)10.37.19

    10.29.32

  4. 构建触发器,选中

    Build when a change is pushed to GitLab. GitLab webhook URL: http://jenkins.kenny.com:8080/project/demo

    Enabled GitLab triggers 选中 Push Events 和 Accepted Merge Request Events ,表示当 Gitlab 有 push 或 merge 操作发生时触发构建。

    10.39.03

  5. 新建 webhook

    在浏览器中打开 http://gitlab.kenny.com/admin/application_settings (请使用 root 登录),找到 Outbound requests ,点击 Expand 后,选中 Allow requests to the local network from hooks and services 并保存更改。 (允许本地网络的 githook)

    10.43.37

    进入 http://gitlab.kenny.com/sonarqube/demo/settings/integrations

    URL: http://jenkins.kenny.com:8080/project/demo

    SecretToken: 不填

    选中 Push eventsMerge request events

    取消选中 Enable SSL verification

    点击 Add web hook

    10.46.50

  6. 增加构建步骤,选中 Execute Shell

    #!/bin/bash
    # 环境变量
    export GOROOT=$JENKINS_HOME/go
    export GOPATH=$JENKINS_HOME/workspace/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    export http_proxy=http://192.168.1.100:1087;export https_proxy=http://192.168.1.100:1087;
    
    # 安装依赖
    vgo mod -vendor
    
    # coverage
    go test ./... -coverprofile=coverage.out
    
    # test
    go test ./... -json > report.json
    
    # vet
    go vet ./... 2> govet-report.out
    
    # golint
    golint ./... > golint-report.out
    
    # gometalinter 
    # 执行 gometalinter 会失败,因此加了 || true
    gometalinter ./... > gometalinter-report.out || true
  7. 增加构建步骤,选中 Execute SonarQube Scanner

    Analysis properties

    sonar.projectKey=gitlab.kenny.com
    sonar.projectName=demo
    sonar.sources=.
    sonar.exclusions=**/*_test.go,**/vendor/**
    sonar.tests=.
    sonar.test.inclusions=**/*_test.go
    sonar.test.exclusions=**/vendor/**
    sonar.go.coverage.reportPaths=coverage.out
    sonar.go.tests.reportPaths=report.json
    sonar.go.govet.reportPaths=govet-report.out
    sonar.go.golint.reportPaths=golint-report.out
    sonar.go.gometalinter.reportPaths=gometalinter-report.out
  8. 增加构建后操作,选中 Editable Email Notification

    Project Recipient List 填写接收邮件的Email地址,或使用默认配置

    Default Content 加上 SonarQube URL: http://sonarqube.kenny.com:9000

    11.51.18

测试

# clone demo 代码
cd $GOPATH/src/gitlab.kenny.com && git clone [email protected]:yuhao5/sonarqube-golang.git && rm -rf demo && mv sonarqube-golang demo && cd demo
# push 代码,触发 Jenkins 任务进行自动构建
git remote add gitlab [email protected]:sonarqube/demo.git
git push -u gitlab master

# 若 gitlab 仓库地址不是 [email protected]:sonarqube/demo.git ,请根据以下步骤修改:
docker exec -it gitlab /bin/bash
vim /etc/gitlab/gitlab.rb
# 找到 external_url,修改为 external_url 'http://gitlab.kenny.com'
# 然后执行
gitlab-ctl reconfigure

11.53.59

11.35.27

11.09.34

11.10.01

11.10.42

TODO

  1. 解决执行 gometalinter 失败问题
  2. Golang 质量标准,规则自定义

Weekly Digest (20 January, 2019 - 27 January, 2019)

Here's the Weekly Digest for developer-learning/night-reading-go:


ISSUES

Last week 7 issues were created.
Of these, 6 issues have been closed and 1 issues are still open.

OPEN ISSUES

💚 #147 add jaeger md, by jukylin

CLOSED ISSUES

❤️ #146 ARTICLES: 增加如何调优, by xpzouying
❤️ #145 docs(post): update reading, by yangwenmai
❤️ #144 docs(post): update reading opentracing jaeger, by yangwenmai
❤️ #143 chore(README): update replay, by yangwenmai
❤️ #142 docs(post): update reading date, by yangwenmai
❤️ #141 added k8s reading, by john-deng

NOISY ISSUE

🔈 #141 added k8s reading, by john-deng
It received 1 comments.


PULL REQUESTS

Last week, 7 pull requests were created, updated or merged.

UPDATED PULL REQUEST

Last week, 1 pull request was updated.
💛 #147 add jaeger md, by jukylin

MERGED PULL REQUEST

Last week, 6 pull requests were merged.
💜 #146 ARTICLES: 增加如何调优, by xpzouying
💜 #145 docs(post): update reading, by yangwenmai
💜 #144 docs(post): update reading opentracing jaeger, by yangwenmai
💜 #143 chore(README): update replay, by yangwenmai
💜 #142 docs(post): update reading date, by yangwenmai
💜 #141 added k8s reading, by john-deng


COMMITS

Last week there were 7 commits.
🛠️ ARTICLES: 增加如何调优 https://github.com/xpzouying/learning_golang/tree/master/how_to_tuning by xpzouying
🛠️ docs(post): update reading by yangwenmai
🛠️ docs(post): update reading opentracing jaeger by yangwenmai
🛠️ chore(README): update replay by yangwenmai
🛠️ docs(post): update reading date by yangwenmai
🛠️ adjust weight by john-deng
🛠️ added k8s reading by john-deng


CONTRIBUTORS

Last week there were 3 contributors.
👤 xpzouying
👤 yangwenmai
👤 john-deng


STARGAZERS

Last week there were 17 stagazers.
pureboys
witness02
ClareChu
zh1014
chengjingtao
l5211314121
xtcmoons
yongliu1992
dengcongbao
coolemiao
wilcosheh
Greentor
ycwei5
hsowan
op-y
redwarn
belonHan
You all are the stars! 🌟


RELEASES

Last week there were no releases.


That's all for last week, please 👀 Watch and Star the repository developer-learning/night-reading-go to receive next weekly updates. 😃

You can also view all Weekly Digests by clicking here.

Your Weekly Digest bot. 📆

Telegram Bot 功能建议

  1. 新人报道,自动发送欢迎消息,附上项目相关的 Github,Youtube 链接。以及加群注意事项
  2. Github 有更新自动发送提交记录到群里
  3. Youtube 有更新,也自动发送链接
  4. 还可以抓一些比较好的博客文章发到群里
  5. 抓去 Go 官方博客
  6. 抓去 Github Go 的 Release 记录
  7. 根据时间屏蔽群里的发图频率
  8. 广告机器人屏蔽

获取昨天时间,获取n天前的时间。____大风

获取昨天时间:
timeCST := time.Now()
yesTime := timeCST.AddDate(0, 0, -1) // 能得到昨天时间
若在循环中,例如for i:=0, i<5,i++
yesTime := timeCST.AddDate(0, 0, -i+1)
的循环中,为什么从后天开始往前计算。而不是直接往前推5天。

go mod 在 goland编辑器中的问题

当我们clone一个.mod的go项目的时候,一般我们只要使用go mod tidy就可以找到我们所需要的相关依赖包,但是在goland中,我们需要注意,具体如下图:

image.png

如图所示:我们需要在goland中将mod打开,否则goland会找不到对应的module文件。

之后重启 goland 即可

致谢:杨文

【sync.Once源码分析】注释问题!

sync.Once源码分析中Do方法的注释有一部分有问题:

func (o *Once) Do(f func()) {
        //......
	if o.done == 0 {
	        // 原注释:先将done设置为1,再执行f函数
                defer atomic.StoreUint32(&o.done, 1)
		f()
	}
}
  1. done不会先设置为1,而是在退出Do函数时设置为1
  2. defer在此处还有另一个用意——即便f()发生panic仍会在退出Do函数时将0.done设置为1
    • 由此引发的另一个问题是调用者需要确认:你的f()正确执行,你保存的once对象也是与f()正确执行时对应的那个once对象
    • 一旦f()发生错误要重新创建once对象再调用once.Do(f)(绝不可复用前一个once对象)
    • 若f()成功则保留该once对象,不成功重复上面的过程

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.