【学习笔记】Golang学习方向整理
前言
作为一个Java开发,给大家说Golang方向,好吓人。。。溜了溜了。。。
哦对了,如有不对的地方,还请指出。感谢!
某面试平台golang技能要求简要摘录
- 掌握 GO 语言,熟悉常用 package,熟悉计算机网络编程,熟练掌握Tcp编程,熟悉并熟练使用 golang 原生数据类型
- go程序代码调优,系统具有高并发,高可用的特点。所以要求代码逻辑严谨,细心,注重性能
- 熟悉主流Go Web框架设计和实现原理(gin、beego等),了解gRPC;
- 具备良好的基本功,熟练使用基本的数据结构和算法,深入理解多线程、socket等相关技术;
- 熟悉分布式系统,微服务体系,熟练掌握一种以上服务框架和消息中间件,了解其实现原理。
- 熟悉Linux操作系统、了解网络原理,如果了解Docker,了解WebAssembly,了解Rust,优先考虑。
- grpc(Golang)、docker、k8s者优先;
- 熟悉golang基础数据结构,goruntime原理。
- 熟悉redis,local cache缓存框架技术。
- 熟悉MySQL数据库设计、查询性能优化和存储优化方面经验。
- 有良好的代码习惯,结构清晰,命名规范,逻辑性强,熟悉设计模式理论。
- 熟练使用 Docker / k8s,熟悉 k8s 运行机制;
- 熟练使用Mysql/MongoDB/Redis,Kafka或Rabbitmq,Elasticsearch
- 熟悉常见的Golang Web / ORM 编程框架
- 熟悉mysql, postgres, redis,elastic search等数据库的编程和使用方法
- 善于使用消息队列服务, 如 kafka, RabbitMQ
- 熟悉Docker,Swarm/K8S等容器云部署及开发者优先
- 熟悉 gRPC, protobuf, 以及微服务架构体系
- 熟悉IP/UDP/TCP/HTTP/HTTPS协议;
go web主流框架参考链接
https://blog.csdn.net/dev_csdn/article/details/78740990
go 微服务参考链接
https://studygolang.com/articles/22111?fr=sidebar
总结
- 【语言基础(面试必备)】
- go语言基础,goruntime原理,代码调优,对高并发有研究
- 熟练使用基本的数据结构和算法,深入理解多线程、socket等相关技术(面试必备)
- 熟悉IP/UDP/TCP/HTTP/HTTPS协议;
- 有良好的代码习惯,结构清晰,命名规范,逻辑性强,熟悉设计模式理论。
- 【web基础(工作必备)】
- 主流GO web框架设计和实现原理(gin、beego等) ,了解 gRPC & Restful
- 熟悉MySQL数据库设计、查询性能优化和存储优化方面经验。
- 【微服务基础(工作常用)】
- 熟悉分布式系统,微服务体系,熟练掌握一种以上微服务框架(Micro、Kite、Gizmo等)
- 熟悉docker、k8s优先(重点:好多都要求了)
- 熟悉redis,local cache缓存框架技术。
- 消息中间件 Kafka或Rabbitmq,Elasticsearch搜索引擎
- 【如果上面你都会了】
- github上应该至少有一个开源项目了吧
- 部分源码,原理可以研究了
【学习笔记】Golang学习方向整理的更多相关文章
- canvas学习笔记、小函数整理
http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...
- java JDK8 学习笔记——助教学习博客汇总
java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- 20155234 2016-2017-2第十周《Java学习笔记》学习总结
20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...
- 20155234 2610-2017-2第九周《Java学习笔记》学习总结
20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...
- #学习笔记#e2e学习使用(二)
前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...
- #学习笔记#e2e学习使用(一)
本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...
- mybatis学习笔记之学习目录(1)
mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发 ...
- Vue学习笔记-rest_framework_jwt 学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- TensorFlow学习笔记——深层神经网络的整理
维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”.因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中可以认为深度学习就是深度神经网络的代名词.从 ...
随机推荐
- B. Split a Number(字符串加法)
Dima worked all day and wrote down on a long paper strip his favorite number nn consisting of ll dig ...
- 爱心Java for循环实现
public class x { public static void main(String[] args) { for (int i = 0, k = 0; i < 14; i++) { i ...
- day43-线程概念
#1.进程:程序不能单独运行,要将程序加载到内存当中,系统为它分配资源才能运行,而这种执行的程序就是进程. #程序和进程的区别在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活 ...
- RPM包和YUM仓库管理
1.RPM包管理 RPMRPM Package Manger,前身Redhat Package Manger,由红帽开发用于软件包的安装升级卸载与查询有一个完整的数据库体系,每个RPM包的所有信息都固 ...
- linux下常用命令查看端口占用
在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询netstat命令各个参数说明如下: -t : 指明显示TCP端口 ...
- Resin介绍及其使用配置
Resin介绍及其使用配置一 Resin是一个提供高性能的,支持 Java/PHP 的应用服务器.目前有两个版本:一个是GPL下的开源版本,提供给一些爱好者.开发人员和低流量网站使用:一种是收费的专业 ...
- CF-551:部分题目总结
题目链接:http://codeforces.com/contest/1153 A .Serval and Bus pro:给出n种公交车的首班车时间和两班车之间的时间间隔,找t时间以后的第一辆车是第 ...
- volatile与Synchronized
摘自: https://blog.csdn.net/zxh476771756/article/details/78685581 一.JVM内存模型: JVM将内存组织为主内存和工作内存两个部分. 主内 ...
- Python:扫描目录下的所有文件
扫描目录下的所有文件并返回文件的绝对路径 def fileListFunc(filePathList): fileList = [] for filePath in filePathList: for ...
- Nginx笔记总结八:ngx_http_core_module模块中的变量
$arg_patameter HTTP请求中某个参数的值,如/index.php?site=www.ttlsa.com,可以用$arg_site取得www.ttlsa.com这个值 $args HTT ...