给,你要的Go学习路线图来啦
我是一只可爱的土拨鼠,专注于分享 Go 职场、招聘和求职,解 Gopher 之忧!欢迎关注我。
欢迎大家加入Go招聘交流群,来这里找志同道合的小伙伴!跟土拨鼠们一起交流学习。
先上图
Go开发者路线图
Go Developer Roadmap
之前老有群友问谁有Go开发者学习路线图,今天恰巧总结了一下。首先介绍一下这个路线图[1]是在draw.io[2]网站上进行制作的,想法来源于 : ASP.NET Core Developer Roadmap[3],简体中文版翻译版Go开发者路线图[4] 由rainyan
翻译出品。
大概从三点罗列了一下需要学的知识点:必会、推荐学习、可选择了解。接下来我主要聊一下我觉得相对重要的一些模块并推荐一些资源和文章,欢迎指正。
Go基础
Go的基础学习,推荐的是golangbot[5]这个网站,包含了Go学习的系列教程[6]从HelloWorld到文件操作。个人感觉这个系列教程也挺不错的。同时我也想到了A Tour Of Go[7]和Go by Example[8]网站教程,上面很多example和讲解。golangbyexample[9]也被我发现了,基础教程的案例都比gobyexample和golangbot多一些,另外还配备了高级教程[10],主要包括了基础篇、进阶专题、设计模式和一些数据结构。也强烈推荐大家学习温习一波。
最后分享大家一个Go资源收集仓库Golang从入门到跑路【罗列各种Go资源】[11]
SQL基础
这里推荐学习的网站是w3schools[12],好久没上这个网站了居然变的这么lv,哈哈哈。sql的基础不说了,大家都是curd boy,
通用开发技能—开发原则
我看这里提到了一些开发中需要遵循的一些原则:SOLID、DRY、YANGNI、KISS。这里大概给大家逐一解释一下:
SOLID:
是下面五个面向对象编程中的设计原则的缩写。SOLID在Go中的运用dave[13]博客中也有讲解SOLID Go Design[14],简体中文由Haohao Tian[15]翻译,详细阅读见SOLID Go Design - Go语言面向对象设计[16]。
SRP(Single Responsibility Principle) 单一职责[17]
OCP(Open Closed Principle) 开闭原则[18]
LSP(Liskov Substitution Principle) 里氏替换[19]
ISO(Interface Segregation Principle) 接口隔离[20]
DIP(Dependency Inversion Principle) 依赖倒置/依赖反转[21]:
DRY:
Don’t Repeat Yourself
的意思——不要重复你自己。此原则是让我们在开发中把代码和逻辑划分为更小的可重用单元。重复性代码问题尤其是在多人维护的项目中也经常遇到,修改一处,其他逻辑部分也要修改极难维护。所以我们可以通过应用单一职责接口隔离等原则尽量拆分系统,模块,类,方法·。使其每一个部件都是职责明确的并且可重用的。
YAGNI:
You aren't gonna need it
的缩写,意思是指你不会需要它。主要思想是不要做过度设计,这是["极限编程"](https://en.wikipedia.org/wiki/Extreme_programming ""极限编程"")提倡的原则,指的是你自以为有用的功能,实际上都是用不到的。
KISS:
Keep It Simple, Stupid
的缩写——保持简单,愚蠢。KISS原则是保持代码可读性和可维护性的重要手段。
因为简单的代码更容易维护和理解。那什么是简单的代码呢?在我看来:每个方法只做一件事、处理很小的事情,行数最多控制在30行左右;变量、包名、方法的命名简单只戳其意;可扩展、易于修改重构。
小结
最后,我推荐一篇cheaterlin大佬写的万字详文阐释程序员修炼之道,万字详文告诉你如何做 Code Review这两篇文章,阅读量篇篇过万,主要讲述了如何去更好地写Go代码。
日志
日志的话目前为止据我了解很多Go厂中zap[22]还是用的最多的。推荐阅读
一文带你由浅入深地解读Zap的高性能
高性能 Go 日志库 zap 设计与实现
深度 | 从Go高性能日志库zap看如何实现高性能Go组件
Go设计模式
Go设计模式推荐的是go-patterns[23],中文版的我这里推荐的是mohuishou大佬的golang design pattern go 设计模式笔记[24]的思维导图分享。
设计原则
设计模式
总结
文章偏向于资源分享,希望此篇短文分享能给大家带来一些收获,更多学习向导可参考Go开发者路线图。最后祝大家周末愉快。
参考资料
[1]
路线图: https://github.com/Alikhll/golang-developer-roadmap
[2]
draw.io: https://draw.io
[3]
ASP.NET Core Developer Roadmap: https://github.com/MoienTajik/AspNetCore-Developer-Roadmap
[4]
Go开发者路线图: https://github.com/Alikhll/golang-developer-roadmap/blob/master/i18n/zh-CN/ReadMe-zh-CN.md
[5]
golangbot: https://golangbot.com/
[6]
Go学习的系列教程: https://golangbot.com/learn-golang-series/
[7]
A Tour Of Go: https://tour.golang.org/
[8]
Go by Example: https://gobyexample.com/
[9]
golangbyexample: https://golangbyexample.com/
[10]
高级教程: https://golangbyexample.com/golang-comprehensive-tutorial/
[11]
Golang从入门到跑路【罗列各种Go资源】: https://github.com/jiujuan/go-collection
[12]
w3schools: https://www.w3schools.com/sql/default.asp
[13]
dave: https://dave.cheney.net/
[14]
SOLID Go Design: https://dave.cheney.net/2016/08/20/solid-go-design
[15]
Haohao Tian: https://github.com/llitfkitfk
[16]
SOLID Go Design - Go语言面向对象设计: https://blog.gokit.info/post/go-solid-design/
[17]
SRP(Single Responsibility Principle) 单一职责: https://zh.wikipedia.org/wiki/%E5%8D%95%E4%B8%80%E5%8A%9F%E8%83%BD%E5%8E%9F%E5%88%99
[18]
OCP(Open Closed Principle) 开闭原则: https://zh.wikipedia.org/wiki/%E5%BC%80%E9%97%AD%E5%8E%9F%E5%88%99
[19]
LSP(Liskov Substitution Principle) 里氏替换: https://zh.wikipedia.org/wiki/%E9%87%8C%E6%B0%8F%E6%9B%BF%E6%8D%A2%E5%8E%9F%E5%88%99
[20]
ISO(Interface Segregation Principle) 接口隔离: https://zh.wikipedia.org/wiki/%E6%8E%A5%E5%8F%A3%E9%9A%94%E7%A6%BB%E5%8E%9F%E5%88%99
[21]
DIP(Dependency Inversion Principle) 依赖倒置/依赖反转: https://zh.wikipedia.org/wiki/%E4%BE%9D%E8%B5%96%E5%8F%8D%E8%BD%AC%E5%8E%9F%E5%88%99
[22]
zap: https://github.com/uber-go/zap
[23]
go-patterns: http://tmrts.com/go-patterns/
[24]
golang design pattern go 设计模式笔记: https://mp.weixin.qq.com/s/oTESBPt6mQjLGWc5g5iSQA##
欢迎关注Go招聘公众号,获取更多精彩内容。
后台资料分享
(后台回复以下数字获取对应资源)
100:Go简历模板 | 101:Go最全面试集锦 | 102:Go超级简历 | 103:Go安全指南 | 1024:LeetCode刷题指南 | 6379:redis集锦
往期精彩回顾
(点击关键词查看文章)
城市内推
北京 | 上海 | 深圳 | 杭州 | 广州 | 成都 | 西安 | 重庆 | 珠海 | 非996 | 外企.远程办公
大厂招聘
百度 | 阿里 | 腾讯 | 字节跳动 | 360 | 安全企业 | 京东 | 贝壳 | 滴滴 | 搜狗 | 新浪 | 探探 | 好未来 | 金山云 | 伴鱼 | 联通数科 | ApiSix | AiBee | 游戏公司 | 区块链 | 跨境电商 | 电商
资源分享
Go项目 | Go资源 | Rust项目 | Python项目 | 前端项目 |
面试专题
面经 | 面试题 | 每日一股
Golang专题
每周一库 | Go好文
给,你要的Go学习路线图来啦相关推荐
- Java学习路线图,如何学习Java事半功倍?
作为一个初学者想掌握Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来 ...
- 《Go语言从入门到实战》学习笔记(1)——Go语言学习路线图、简介
非常有幸在<极客时间>上看到<Go语言从入门到实战>这门课程,本课程的作者给出了较为详细的学习路线图,具体如下: 学习路线图 学习目的 个人学习的目的主要是了解Go语言的基本 ...
- Java架构体系学习路线图,这六点尤为重要!
Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...
- 16张思维导图+学习路线图,囊括所有Python基础,可打印
今天给大家分享的是关于Python基础的14张思维导图,对于大家知识的梳理会有很大的帮助,另外还有两张Python学习路线图,全面系统,让初学者不走弯路.一起来看一看吧! 前面知识回顾!!!!! 程序 ...
- 尚硅谷Java视频教程导航(学习路线图)
最近很火,上去看了看,对于入门的人还是有点作用的,做个记号,留着以后学习. Java视频教程下载导航(学习路线图) 网站地址:http://www.atguigu.com/download.shtml
- Linux系统管理学习路线图
Linux系统管理学习路线图 随着Linux应用的扩展,许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.作为一个Linux系统管理员,我看了许多有关L ...
- [转]Hadoop家族学习路线图
Hadoop家族学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, ...
- 前端学习路线_前端学习路线图
2020年全新前端学习路线图分享给大家! 学习是一个循序渐进的过程,是一件非常难得坚持的事情.如果真的想学习前端开发,一定要下决心! 我这里分享给你的前端学习路线图,希望对你有帮助,以下为2020年更 ...
- react实战项目_前端学习路线图--从网页设计到项目开发
前端学习路线是螺旋上升的,需要耗费的时间和精力不比其他编程的少,由于其稳健性的特点,使其成为大多数企业开发的刚需编程语言.在网上看到有很多的前端学习路线图,但大部分的前端学习路线图是很零碎的,没有系统 ...
- 转:Java学习路线图,专为新手定制的Java学习计划建议
转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...
最新文章
- 如何在三个月学习三年的生活经验
- Python_note4 程序控制结构+random库的使用
- easyDarwin--开源流媒体实现
- Object-C,NSArraySortTest,数组排序3种方式
- 如何找到下一个快手头条?赚他个1000万!
- js 禁用和解除禁用按钮_js禁用button,js 将某个按钮禁用5秒钟
- 最常用标准库函数 (转)
- Sqlserver的一些小笔记
- 政企用户网络安全常见风险盘点
- 计算机机房配电计算,银行计算机房动力配电系统浅析
- 黑盒测试和白盒测试详解
- 嵌入式学习是什么?嵌入式开发入门教程带你了解
- Copy ‘XXXX‘ to effectively final temp variable
- MICCAI-iseg2017挑战赛小结与婴儿脑组织分割总结
- 马兰戈尼晶圆干燥系统
- 抖音seo源码,抖音关键词,抖音下拉词,抖音seo矩阵系统,分发源码技术搭建
- 灰色模型(GM)的局限浅谈
- Python VTK计算曲面的高斯曲率和平均曲率
- ROS基础篇(二)-- 基础知识
- 2020-09-14 作业的补充
热门文章
- Optimizing regular expressions in Java
- wsgiref — WSGI Utilities and Reference Implementation¶
- 从零开始学MVC3——创建项目
- 怎么用程序实现调用Android手机的拍照功能
- 七人のオンラインゲーマーズ 全年龄正式汉化补丁
- IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解
- JavaScript Promise查缺补漏
- WIN版的Jenkins Master加入LINUX的SLAVE节点,并作C++程序的集成交付
- box2dweb 学习笔记--sample讲解
- 一个比较完善的购物车类