缘起

本章仅讲述文档创建动机,及个人学习golang的一些经历,让新同学少走弯路,避免犯下常识性错误

为什么用go

半路php出家,虽然出道之初也学过一些C,VB之类,但真心没整明白,至今对指针仍心有余悸。学php是因为它好学,学python只是因为它是胶水,老想用它粘住一切。学java只是因为,当初在了解php设计模式时,搜索到的相关资料出来的都是java,心想语言都是相通的,曲线救国也是可以。然后发现java与python,php 这类完全不同,需要很强的类型意识,而且它涉及到网络编程及桌面应用,是一个大体系,当初装环境就费了老鼻子劲,总觉得不如php方便,太麻烦,直到出来个spring,用了maven,但说实话spring文档至今未读完,只过了个大概,里面的道道太深,本人道行太浅,目前也只是了解常用的编程思维,比如面向切面,ioc,动态代理,动态性不足注解来补,然后搞出一堆标签,各种协议等等。

扯远了,只是想说为什么用go。为什么?一直认为编程思维是相同的,语言语法只是术,学习的应该是道。前期至少得会一两门术,熟悉之后,再谈道的问题。用go只是为了高效安全使用高并发,术的不习惯,多练习就好。就因为老看go不顺眼,刻意地回炉了好几次C语言基础。go看似简单,但背后的思想不简单,python,php,java或多或少的也有类似概念,但并没有显式地将语言的真谛表露出来。goroutine +channel 这种形式在没有了解进程线程模型的情况下,简直抓瞎。虽然python,php,nodejs都有类似上下文切换yield这玩意儿,但可操作性太差,用相关库又得了解一堆api。go胜在简洁,但不简单。

起始点

在学习的路上,总有会让你觉得无法入手的时候,从哪儿开始是一个问题。个人觉得抛开场景谈问题是扯淡,换句话而言,问题的本身就是你学习的起始点。因为解决问题,往往会产生一个新问题,或者会碰到超出你能力范围的问题。要么学习,要么求助。最好学习指引,通常来自官方文档,官方会汇集一大堆资源,像python及php都有自己的中文语言参考,常查阅你会发现一些隐藏在水面之下的黑科技,然后指向语言的本质。Iris在文档这方面做的相当不错,唯一的麻烦可能就是英文,但这也不是问题,多用用字典。而在golang上中文资料更少,其实它的源码内有许多说明示例,而且大都短小精悍,值得一读。

问题搜集

通常的应用性问题,比如出现一堆你不明觉厉的报错,贴上百度一下,九成会找到答案,虽然你暂时不了解为什么这么解决。推荐最好是在社区自行搜索,如若没有找到请附上问题产生的场景,以及自己尝试及产生的效果。切忌不要自己什么都没思考没行动,张口就要答案,而且提出的问题明明是前人已经解决的那种。

文档创建

社区文档中除了视频教程没学习外(太费时间),其它的基本上都过一遍。总体上感觉,对新手不是太友好。而社区内的Iris文档可操作性太差,主要是官方更新快,示例多,不是一篇两篇文章可讲清,而且有些内容玄之又玄,你没用过,或者没有类似的编程使用经验,直译过来会丢失许多有效信息,而意译又难以把握。

阅读官方文档后,觉得写的简直不是太好。觉得不译过来,真真罪过。

补充

文档查阅只是术的延伸,合理的技巧有助于道行的提升。

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
pardon110
讨论数量: 0
发起讨论 只看当前版本


暂无话题~