Turling Blog

To Be A Lean Developer!

Go基础系列:深入理解 channel

前言Golang在并发编程上有两大利器,分别是channel和goroutine,这篇文章我们先聊聊channel。熟悉Golang的人都知道一句名言:“使用通信来共享内存,而不是通过共享内存来通信”。这句话有两层意思,Go语言确实在sync包中提供了传统的锁机制,但更推荐使用channel来解决并发问题。这篇文章会先从channel的用法、channel的原理两部分对channel做一个较......

Go基础系列:深入理解 http server

前言对于Golang来说,实现一个简单的http server非常容易,只需要短短几行代码。同时有了协程的加持,Go实现的http server能够取得非常优秀的性能。这篇文章将会对go标准库net/http实现http服务的原理进行较为深入的探究,以此来学习了解网络编程的常见范式以及设计思路。 HTTP服务基于HTTP构建的网络应用包括两个端,即客户端(Client)和服务端(Server......

Go基础系列:深入理解 interface和reflect

前言interface(即接口),是Go语言中一个重要的概念和知识点,而功能强大的reflect正是基于interface。本文即是对Go语言中的interface和reflect基础概念和用法的一次梳理,也算是我阶段学习的总结,以期温故而知新。 interface(接口)定义在Go语言中,如果自定义类型(比如struct)实现了某个interface中的所有方法,那么就可以说这个类型实现了......

理解Redux中间件,这一篇就够了

掘金地址 前言最近对项目中使用的Redux中间件进行了梳理,在此过程中对Redux中间件的原理也有了较为深刻的理解。所以抽空总结了一下,也希望能给读者们带来一些启发。 这篇文章会介绍Redux中间件的工作机制,并通过源码分析来了解其原理,最后会通过一个例子介绍如何编写Redux中间件。 Redux中间件工作机制用过Redux中间件的朋友都知道redux给我们带来了强大的数据管理功能,然而Re......

深入Babel,这一篇就够了

前言既然标题说了是深入Babel,那我们就不说Babel各种用法了,什么babel-core,babel-runtime,babel-loader……如果你想了解这一部分内容,这类文章很多,推荐最近看到的一篇:一口(很长的)气了解 babel,可以说是相当详实完备了。 言归正传,这篇文章主要是去了解一下Babel是怎么工作的,Babel插件是怎么工作的,以及怎么去写Babel插件,相信你看完......

Node.js爬取科技新闻网站cnBeta

前言一直很喜欢看科技新闻,多年来一直混迹于cnBeta,以前西贝的评论区是匿名的,所以评论区非常活跃,各种喷子和段子,不过也确实很欢乐,可以说那是西贝人气最旺的时候。然而自从去年网信办出台了《互联网跟帖评论服务管理规定》,要求只有实名认证的用户,才能进行留言、评论之后,往日的活跃的的评论区瞬间沦陷,人气大跌。其实说到底,还是西贝没有跟上移动互联网的潮流,至今还止步于PC互联网时代,网页广告太......