0%

网络爬虫 网络爬虫的定义 爬虫又称为网络蜘蛛、网页追逐者。是一种按照一定的规则,自动地抓取万维网信息的程序或脚本 同时还有很多种说法,但我个人认为最通俗的理解就是,模拟用户访问的程序或脚本。 网络爬虫实现的核心步骤 无论多么复杂的爬虫都离不开以下核心的四步,当然极少数特例除外。 * 确定数据URL * 发送请求,获取响应 * 解析响应,获取数据 * 数据持久化 网络爬虫优化 无论是何种方向,我们都希望以更少的代价获取更大的收益,相信优化这一个话题一直是大家所探讨的。 决定网络爬虫性能的指标有很多,在不考虑特
阅读全文 »

HomeBrew HomeBrew官方地址 brew.idayer 简单来说他是类似于yum、apt,mac的包管理工具,使用它我们可以非常简单、丝滑的下载大部分的包、或者软件 第一次可以尝试使用如下命令进行安装 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 由于种种原因,如果安装不上,可以使用华科大的源进行安装 1 /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh
阅读全文 »

在了解golang的测试之前,先了解一下go语言自带的测试工具-go test go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go 为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。 在*_test.go文件中有三种类型的函数,单元测试函数、基准测试函数和示例函数。 类型格式作用测试函数函数名前缀为Test测试程序的一些逻辑行为是否正确基准函数函数
阅读全文 »

发布golang第三方包 事情是这样的,随着公司的业务的增长。各种重复的工作越来约多。CV久了就想在进一步的那啥,毕竟我懒,不是。我就想着能不能把那些重复cv的干脆写成一个第三方包,进行调用。咱不谈那些啥封装啥的,我也想过,我也做过。但无论咋封装,总不可能跨项目吧,还是需要。。。 所幸,还是有方法的,来吧,让我们发表第一个golang工具包 创建项目仓库 1. 首先输入仓库的名字,我这里输入simpleExample,用来做演示 2. 这里选择public,公开。要不并不好拉 3. 选择需要添加的文件(可选) 4. 鼠标左键点击create repository创建此仓库
阅读全文 »

进制与位运算 在我们编程的领域,进制的重要性不言而喻。为什么我的世界只有0与1,这之间到底有什么不可不知的秘密 为什么旁边的“高级工程师”,天天学框架、学架构,反而给他学废了。这一切的一切究竟是计算机的计算扭曲,还是计算机的道德沦丧。今天让我们进入哪个传说中只有0与1的世界。 进制介绍 进制是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。 是逢十进一,是逢十六进一,就是逢二进一,以此类推,x进制就是逢x进位。 常见进制表示
阅读全文 »

并发模式并不是一种函数的运用、亦或者实际存在的东西。他是前人对于并发场景的运用总结与经验。他与23中设计模式一样。好啦,话不多说。开干 无论是如何厉害的架构还是编程方式,我始终相信都是从零开始,不断的抽象,不断的迭代的。抽象思维对于我们尤为重要。那么我们也带着这样的一个疑问。思考到底什么是抽象 首先我们将要学习的是work pool模式 work pool 不知道大家是否在go并发的时候遇见过以下几个问题或者想法 * goroutine的数量控制可能并不是那么称心如意 * goroutine,创造过多,造成资源浪费。且并发效果也并非那么好。他正如正态分布那样。到达某个极点所带来的收
阅读全文 »

在本文中,我首先会介绍context是什么,它有什么作用,以及如何使用,其中还会参杂一点个人的理解,以及部分源码的了解。What are you waiting for? Context 来自官方文档 Context包定义了上下文类型,该类型在API边界之间以及进程之间传递截止日期,取消信号和其他请求范围的值 对服务器的传入请求应创建一个Context,而对服务器的传出调用应接受一个Context。 它们之间的函数调用链必须传播Context,可以选择将其替换为使用WithCancel,WithDeadline,WithTimeout或WithValue创建的派生Context。取消
阅读全文 »

其实本节的文章我在很久之前就已经发过了一次,但不够详细,层次不轻。我今天部署的时候看的够呛( 虽然也是部署成功了) ,也算是对以前的坑,做个忏悔吧。本文可能会比较boring,但请相信这并不是我的本意。这一定是最精简的笔记之一,相信我这绝对不是混水。 本文主要分三大部分,他们分别是系统初始化、安装docker、安装Kubernetes,测试验证与删库跑路 系统初始化 请注意后面的单词all,代表所有(master、node) Master:仅在master上 node: 仅在node上 关闭防火墙(all) 1 2 3 4 5 6 ## 临时关闭 systemctl stop
阅读全文 »

盘点Golang并发那些事儿之二 上一节提到,golang中直接使用关键字go创建goroutine,无法满足我们的需求。主要问题如下 * 无法有效的并发执行完成 * 无法有效的控制并发 首先我们再来看看下面这个栗子,代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // example-goroutine anonymous package main import ( "fmt" "time" ) func anonymous1() { startTime
阅读全文 »

盘点Golang并发那些事儿之一 一生很短,Let’s Go 人生苦短,我用Python Golang、Golang、Golang 真的够浪,今天我们一起盘点一下Golang并发那些事儿,准确来说是goroutine ,关于多线程并发,咱们暂时先放一放(主要是俺现在还不太会,不敢出来瞎搞)。关于golang 优点如何,咱们也不扯那些虚的。反正都是大佬在说,俺只是个吃瓜群众,偶尔打打酱油,逃~。 说到并发,等等一系列的骚概念就出来了,为了做个照顾一下自己的菜,顺便复习一下 基础概念 进程 进程的定义 进程(英语:process),是指计算机中已运行的程序。进程曾经是`` 分时系统的
阅读全文 »