给,你要的 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初学者到就业 ...
最新文章
- TCP/IP的四层负载均衡
- python入门(5)使用文件编辑器编写代码并保存执行
- AC_Dream 1211 Reactor Cooling
- adaptivitypara设置选0还是1_喝牛奶,选全脂还是低脂?家里人能不能喝同1种牛奶?...
- appium启动APP配置参数:
- python 基本数据结构 ndarray
- easyui中datagrid空数据集不刷新的解决方式
- 研究生们都在推荐哪些好用的论文在线翻译软件?
- 打开VsCode经常弹出:尝试在目标目录创建文件时发生一个错误:拒绝访问:重试 跳过这个文件(不推荐),关闭安装程序
- Python_2018-11-27_机器视觉——百度人脸识别
- JavaScript批量定义对象
- MaprRduce v2 在 java 代码中远程提交作业到 Yarn 的配置项
- 无限渗透实战(2)--绕过认证上校园网
- java什么是this_java中的this是什么
- 【数据结构-堆栈(顺序存储)GO语言实现】
- ABBYY FineReader OCR图文识别软件如何快速将纸质文档转为电子档教程
- 分享一个自用的zsh主题
- android 内核调整工具,内核调谐器(Kernel Tuner)手机工具 for android v4.4.8 安卓版
- MAC中的PS无法正常安装怎么办?抱歉,安装失败 发生了未知错误。错误代码: 1
- php pusher,php – Pusher没有接收来自Laravel 5.2广播的事件
热门文章
- 1166:The Clocks
- IRQL_NOT_LESS_OR_EUQAL,间歇性蓝屏,4800h笔记本,暗影精灵6,解决办法,蓝屏问题排查
- MICROSOFT OFFICE MSDT操作系统命令注入漏洞(CVE-2022-30190)
- Python | 阿尔法基本数据类型
- c语言程序设混分,lol:自己C不起来?学会它让你混分如鱼得水
- mysql 手写建 表_mysql手写sql 建库建表示例
- java创建线程的四种方法
- 银行核心系统软件开发 转
- 服务器如何接收curl上传文件,linux curl上传文件到服务器
- HTML怎么在字体下方加波浪线,CSS实现文字下面波浪线动画效果