美文网首页
学习go路上的一点点心得

学习go路上的一点点心得

作者: d6791d6ddd9c | 来源:发表于2020-02-15 23:17 被阅读0次

    心得:一下子不能太猛。

    和写博客一样,实践过了,每日打卡是坚持不下来的,反而断开一天后有了更多的“无所谓”的情绪。

    为了学习Go,其实我有完整的需求,但是需要的知识超过了原本的想象,现在需要放慢节奏,夯实基础。

    首先我原本是做Java后端的,鉴于区块链和微服务的发展,期望有点新知识能跟上技术潮流。

    既然不是从无到有,那么学习的第一步一定是类比,从Go Web开始做。

    这里遇到这几个比较麻烦的事,当然有些问题Java里也是存在的。

    1、依赖安装

    Go的大部分代码在官网和GitHub上,前者是不翻墙的情况下完全上不去,后者是速度很慢,执行go get经常会失败,如果是从网页上下载,会像rpm一样存在多层依赖的情况。

    Java目前比较流行的有Maven等,即使换成国内镜像,有时候也会有速度等问题存在,而且Java的依赖包是二进制的,也有可能会有包名冲突。

    2、Web框架

    目前Web趋于成熟,而且其解决思路和Java还是有一点区别的。

    目前的框架有Beego,Gin,Iris等,但也存在一些问题。Beego是国人写的,它是golang在国内还不普及的时候出现的,它承载了一个普及使命,所以它自身的架构更像原来PHP的样子。学习golang的时候我们可以借鉴它的代码,不过并没有特别体现golang的特征和优势。

    Gin和Iris都是简洁的框架,用起来都很简单,但正因为如此对初学者会有一个误区。我目前遇到的一个问题就在这里,我知道golang“可以”这么做,但我总感觉这么做很可能存在问题,不过因为我初学,所以没什么经验,无法判断。目前可以找到的基于Gin等框架的项目很少,可参照的代码不像Java那样各等级的开源项目都有很多。

    3、新知识

    目前golang的优势区域在云计算、区块链、微服务上,在学习golang,肯定要先定一个方向,那么这几个肯定都不适合。云计算、区块链、微服务,都有自己非常复杂的领域知识,我所知道的一些产品有:

    云计算:Docker,K8s

    区块链:IPFS

    微服务:go-micro

    而现在的Web也和以前不同了,Java可能还有一些jsp、freemark等老架构在SpringBoot这些新框架里,正好可以用来过渡学习使用。而golang中能找到的一些开源代码,基本也是前后端分离的了,需要额外的nodejs环境。虽然按照帖子一步一步是能搭建成的,但前后端的架构关系、各种架构的优缺点,就不是“可以这么做”、“能做到”这些范畴的了,是需要很多实践才能累积到的经验。而同时在前端、后端和前后端之间进行实践,无疑风险就高了很多。

    在看一些golang视频时,有一个老师讲了一个让我非常有感触的事情,具体事情不提,主要的意思就是无论做什么都要“专业”。我常常对事情抱有很犹豫的态度,不确定要不要花费大量精力做下去,回头发现很多实践就这么浪费了。我曾经也痴迷于各种优缺点的评价,现在想来,也属于伸手党自以为是的行径,最后当初负重远行,忍受别人对其不成熟的项目指指点点的人最终已成为大神,而那些还纠结于优缺点不知道该选择什么的人最终丢失了学习有价值技术的机会和时间,变得只能继续评价优缺点而已了。

    所以虽然在学习go的路上我遇到了网速问题,代码示例少的问题,以及入手领域的台阶很高的问题,但是一直做下去,从手头上的问题解决起,做到很专业为止。现在我就在用golang+gin重新写登录界面,遇到了很多问题(也不能算问题,应该属于架构上的犹豫,不知道是否该分层等),但是犹豫了良久、又看了很多评价帖子后,决定继续从这件最小的是情商做起。

    相关文章

      网友评论

          本文标题:学习go路上的一点点心得

          本文链接:https://www.haomeiwen.com/subject/wfsufhtx.html