持续的思考

写了两天golang的感觉

     有个新项目,做移动端的push系统,在接到这个需求的时候,我第一反应是swoole正好合适干这个事情,但上面要求用golang,没办法只能硬着头皮接下来了。


    上一周,跟同事们把需求给确定下来了,这周一,正式开始写代码了,到目前写了两天golang, 总体来讲,golang的入门还相对比较简单,熟悉了一下语法之后就开始干了,有什么问题,也是直接查线上的文档。所以到今天,完全了基础的tcp服务,广播,私有协议的解析等工作,进展还算比较顺利。

 

     golang,一开始上来就提供了高大上的gorouting, channel,可以很方便的提供高并发,非阻塞的读写。看起来很美。其实,一个最直观的感觉,是因为有了一定c的基础,可以很快的进入角色,但我反过来思考了一个问题,golang屏蔽了这些底层的细节,到底好不好呢?很多人可能只是会停留在用的阶段,举一个例子,我们建立一个socket连接,系统层面会创建一个fd, 然后我们的读写操作都是基于这个fd来进行的,golang里面与之对应的就是net.Conn的interface,里面封装了read,write等方法,把这些底层的细节进行屏蔽,这样好像不利于一些更深度的学习。

 

    对于golang,我完全是一个才写了几天代码的新手,上面只是我的一些片面之词和感受,对于一个新语言来讲,其实这些个高并发,非阻塞都不是什么高大上,大多数常用语言都能达到,主要是带来了新的思路,而对于开发者是跟风式的学还是知根知底的学,这是关键。但目前往往是很多人没有修练好内功,一但碰到问题,可能就会转向那些可以直接补坑的新事物上, 却不去理解这门语言,可以预料到的是,一但在新的语言上碰到坑,又会转向另一个,周而复始,对于自己,基本没有提高。   

      

    修炼内功,是学习新事物的前提。

    

   
评论