圆桌议题
- 议题一:开源自 2020 年开始列入国家规划后,开源项目越来越多。开源项目的涌现,为大家提供了学习和深度了解升级项目的途径。从学习的角度来看,一个开发者如何参与项目、学习项目?
-
议题二:CloudWeGo 开源项目主要方向是云原生微服务框架, 这类项目主要的使用场景是什么样的?学习这类项目的价值点在哪里?混迹社区有什么经验分享?
-
议题三:程序员作为项目使用者的角色,开发者作为开源项目设计者的角色, 这两种角色关注的点有什么不同?作为一个经历过这类角色转换的社区 Committer 来说,有什么经验可以分享?
-
议题四:在社区视角和全局角度下, 谈一谈为什么大厂都在招聘 Go 工程师?程序员应该如何规划自己的职业发展?程序员最终的归宿是哪里?
-
议题五:大佬分享环节,大佬们关注的博主/学技术的网站/书籍推荐。
嘉宾
议题一
开源自 2020 年开始列入国家规划后,开源项目越来越多。开源项目的涌现,为大家提供了学习和深度了解升级项目的途径。 从学习的角度来看,一个开发者如何参与项目、学习项目?
分享人:王伟超
关于这个问题的介绍主要从以下四个方面展开:
-
如何与 Kitex、CloudWeGo 社区结缘;
-
个人关于云原生和开源文化的认识;
-
为什么要参与开源以及我理解的开源精神;
-
个人以后对开源的想法。
如何与 Kitex、CloudWeGo 社区结缘
-
2021 年 9 月尝试在 InfoQ 做输出,挑战日更,更多是做翻译;
-
10 月底决定学一点特定的技术,发现之前自己学习的更多是“道”和“法”层面,主要关于编程理念的知识和理解,很少关于“术”和“器”;
-
联想孔子的一句话:“吾尝终日不食,终夜不寝,以思,无益,不如学也”,就是之前都是思维层面和架构层面的思考,不如学点具体的技术。因此,我决定再找一个话题,从感兴趣的方面入手,但是 Docker、云原生、架构设计、微服务思考这些话题非常火热且竞争很大,可能一时难以入手做出自己的东西;
-
想起刚刚开源的 Kitex ,以及刚开源的 CloudWeGo 项目中相关的一些中间件集合的资料和实践应该比较少,于是开始了《CloudWeGo 微服务实践》系列,做了一个小的集合,但是也没写完整,只是写到了操作数据,不是一个完全的业务实践。
个人关于云原生和开源文化的认识
为什么要参与开源以及我理解的开源精神
-
学习优秀的开源项目
-
开源世界是一个包容开放的世界
-
协同共建,从点滴做起,融入社区带来成就感
个人以后对开源的想法
-
梦想
-
布道者
-
未来计划
分享人:杨文
关于这个问题,从我的实际经验出发,将从两个方面进行分享:
-
自己去做的角度;
-
参与项目的角度。
自己去做的角度
-
明确开源项目运作的意义
-
项目发展需要过程
-
起初,开源项目的发展可能是由某一两个人发起的。在这个过程中,你可以引入一些对这方面感兴趣的人,或者通过你的项目给别人带来帮助,然后吸引别人进来,进而逐步扩展项目规模。不管是什么样的项目,其实都是这样的过程。即便是那些现阶段比较成熟、规模较大的项目,比如说 Go 夜读、 PingCAP 的 TiDB 以及其他的一些 Go 的 Repo ,其实都是这样一点一点做起来的。
参与项目的角度
-
能解决你的问题。这是评判你要怎么选择项目、参与项目的条件或标准。
-
确定开发语言。选择相对来说覆盖面比较广的开发语言,不管是项目构建还是开源的运作会更体系化、规范化,避免踩坑。
-
参与开源项目的目的。考虑开源项目的影响力,能否有所学习和收获并为项目输出一些自己的价值。
分享人:李龙
关于开发者如何参与开源的问题,我提供了以下三种参考方式:
-
通过参与 First Good Issue 贡献 / 解决社区 Issue;
-
通过实战(项目实战 / 性能对比等),发现可优化的点,解决并反馈社区;
-
直接阅读源码。
参与 First Good Issue 贡献 / 解决社区 Issue
-
一般社区会有很多积压的 Issue ,初期可以挑选一些简单的 Issue。
-
开源社区一般会不时提供新手任务,大家可以积极参与。
实战(项目实战 / 性能对比等)
-
修改文档上的实例 Demo 反馈社区。
-
做一些压测,去压下不同框架的性能。
直接阅读源码
议题二
CloudWeGo 开源项目主要方向是云原生微服务框架, 这类项目主要的使用场景是什么样的?学习这类项目的价值点在哪里?混迹社区有什么经验分享?
分享人:李龙
CloudWeGo 的使用场景
-
高性能( Netpoll / Sonic / Frugal 等)
-
提供了丰富的扩展能力
-
优化的用户 API 接口
学习这类项目的价值点
-
学习框架分层设计 / 一些比较好的设计点
-
学习框架的一些性能优化的 tip ,扩展自己的视野
-
压测框架性能,探讨交流学习
社区经验分享
-
一个好的 Case:通过在社区学习优秀的设计和性能优化点,贡献兄弟社区。
-
【举例】@Halst 的 关于shardmap中size大小的调整 · Discussion #306 · cloudwego/kitex,在社区发起讨论,并将优秀的、可借鉴的地方应用到其它的开源项目中。
-
-
一个不好的 Case:对使用的框架提出了一些模糊的问题 / 评价。
-
【举例】经典评论:“设计的不太好 / 设计的太重了”,具体哪里设计的不好 / 太重了需要说出理由,这种 Case 请及时规避,尽量用数据说话。
-
议题三
程序员作为项目使用者的角色,开发者作为开源项目设计者的角色, 这两种角色关注的点有什么不同?作为一个经历过这类角色转换的社区 Committer 来说,有什么经验可以分享?
分享人:王伟超
项目使用者视角
-
开源项目是否会持续维护;
-
文档是否丰富;
-
社区是否活跃;
-
当前项目是否可用、好用,能解决当下团队的技术问题;
-
不满足的地方是否能扩展。
开源项目设计者视角
-
通过维护项目接受用户反馈,还有哪些共性的问题没有覆盖到;
-
开发新的一些特性;
-
Bug 的维护是否及时;
-
能否比较快的帮助用户解决他们遇到的问题;
-
文档维护与不断丰富,业务案例的整理。
议题四
在社区视角和全局角度下, 谈一谈为什么大厂都在招聘 Go 工程师?程序员应该如何规划自己的职业发展?程序员最终的归宿是哪里?
分享人:杨文
为什么大厂都在招 Go 工程师?
-
Go 语言的逐步发展
-
Go 语言的特性
-
大厂的应用场景
程序员的职业发展及最终归宿?
-
本身擅长语言,希望在技术深度上去发力?
-
结合所在业务,希望提升业务能力、相关的个人软性素质以及管理能力?
-
通过技术解决业务的问题,带来业务价值?
议题五
大佬分享环节,大佬们关注的博主/学技术的网站/书籍推荐。
分享人:李龙
-
《设计数据密集性应用》
-
《程序员的自我修养:链接、装载与库》
-
《Google SRE 工作手册》
-
《微服务架构设计模式》
分享人:杨文
-
《微习惯》
-
《沸腾新十年》
-
《Salesforce 传奇》
分享人:王伟超
-
书单
-
博客
-
软技能
Q&A
更多资讯
- 官网地址:CloudWeGo
- 项目地址:https://github.com/cloudwego
- Hertz: https://github.com/cloudwego/hertz
- Hertz v0.2.0 版本发布:Hertz v0.2.0 版本发布 | CloudWeGo
- Kitex: https://github.com/cloudwego/kitex
- Netpoll: https://github.com/cloudwego/netpoll
-
Thirftgo: https://github.com/cloudwego/thriftgo
-
Netpoll-http2: https://github.com/cloudwego/netpoll-http2
Tags: