0%

前几天有个公众号的小伙伴找到我,问到我大佬大佬,你是怎么学习的啊 ,我的回答是老大哥,俺也不知道啊。应该是先这样在这样然后在这样(男性同胞啊) 。那到底那样啊?说实话我真不知道,我还真的不晓得什么样的学习方法、为人处事,等等是正确的。如果你问我“有没有一招KO所有”,那我只能回答你“想啥呢?如果真的有为什么只能你会,对不对?”。有时候选择比努力更加重要,方法比努力重要。没有方向所有的风都是逆风,一个个的大佬叫着,说真的很多时候我比谁都尴尬,如履薄冰。害怕你问的问题,我也不会。毕竟俺也是挺平凡的一个靓仔( “呸,丑东西~”) 偏了偏了,咱们回到正题上其实说到学习方法、高效率有什么非常非常好的方
阅读全文 »

什么是虚拟环境? * 由百度百科 得知: 以专利的实时动态程序行为修饰与模拟算法,直接利用本机的 OS,模拟出自带与本机相容 OS 的虚拟机(Vista 下可模拟 Vista、XP,Windows 7 下则可模拟 Windows 7、Vista、XP),也称为 “虚拟环境” * 功能: 每一个环境都相当于一个新的 Python 环境。你可以在这个新的环境里安装库,运行代码等 为什么需要使用虚拟环境? * 众所周知 Python 的强大在于其兼容性,其强大的社区等。正因为第三方库多,层次不齐造成了许多的第三方库并不兼容 * 真实环境与虚拟环境二者相对关联,并非绝对关联,可以在虚
阅读全文 »

Scrapy-Splash使用及代理失败处理 在日常做爬虫的时候肯定遇到这么一些问题,网页js渲染,接口加密等,以至于无法有效的获取数据,那么此时若想获取数据大致有两种方向,硬刚加密参数 或使用渲染工具 二者的各有所不同? 刚加密参数: * 优势:爬取速度快,实效性。损耗资源更少 * 劣势:耗费时间长,不懂的完全不会,会的也不一定能完全处理。难以在有效的时间内获取到数据 渲染工具:webdervi,puppeteer,pyppeteer,splash * 优势:见效快、新手友好 * 劣势:爬取速度较慢、数据实效性难以保证、损耗资源多 那么相信
阅读全文 »

Docker swarm部署控制 还记得我之前写过一片文章叫做《Docker快速部署项目,极速搭建分布式》 ,在那里讲述了如何去使用docker swarm,如何构建自己的私人镜像仓库。随着最近的业务量的增长,机子加多。对于docker swarm管理难度有上升的趋势。主要的问题有以下几个 * 物理机配置不同(比如 CPU、内存等) * 部署着不同类型的服务(比如 Web服务、Job服务等) * Swarm 集群中的节点跨机房,为了内部服务间通信更快,该如何分组部署 * 。。。 为了解决以上问题,以求更合理、更科学的管理部署所以有了今天这篇文章。 docker 节点的部署调度一共
阅读全文 »

协程控制需要 重学编程之Golang的plan中的上一篇文章我向大家介绍了,并发编程基础,goroutine的创建,channel ,正由于go语言的简洁性,我们可以简易快速的创建任意个协程。同时也留下了许多隐患,如果没有更加深入的学习,其实很难直接将其运用到实际项目中,实际生活中。为什么呢?并发的场景许许多多,但一味的只知道其创建,是很难有效的解决问题。例如以下场景-资源竞争 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package main import ( "fmt" "time" ) // 公共资源 var sum
阅读全文 »

单个goroutine Go语言中使用goroutine非常简单,只需要在调用函数的时候在前面加上go 关键字,就可以为一个函数创建一个goroutine。 一个goroutine必定对应一个函数,可以创建多个goroutine去执行相同的函数。开启一个goroutine,示例如下 1 go funciton() 是不是很简单呢?那我们在实际中使用一下,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package main import ( "fmt" "time" ) func demo1() { fmt.
阅读全文 »

基本概念了解 并发与并行:(略偏向于多线 / 进程方面) * 并发: 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行 * 并行: 指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的 阻塞与非阻塞:(略偏向于协程 / 异步方向) * 阻塞:阻塞状态指程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续处理其他的事情,则称该程序在该操作上是阻塞的。 * 非阻塞:程序在
阅读全文 »

GoLang内置包之time 一寸光阴一寸金,寸金难买寸光阴 时间离我们仅在咫尺,无论是在编程中时间还是日常生活中对于时间的 记述都是离我们最近的,那么让我们一起来学习一下GoLang中内置包time。 Let’s Go time包源码怎么说 1 2 3 4 5 6 7 8 9 10 11 12 const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 10
阅读全文 »

Golang 文件操作 Os模块的使用与源码研究 文件:计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件。例如咱们常见的文件后缀名.exe,.txt ,‘.word’…等等 文件的基本操作可简单分为增、删两类,也就是咱们所说的CURD(增删改查) ,也是基于此两类操作。可简单理解为打开文件夹、CURD、关闭文件夹。结束~ golang对于文件基本上都是基于Golang的os模块,那让我们一起了解一下,那么Golang是如何对文件进行操作呢。Let’s Go~ 打开文件 Golang中打开文件使用os.Open模块,官方os.open部分源码如下:
阅读全文 »

接口是一种类型 最初的int、string、bool,再到稍微复杂的Array、Map、Slice 。他们都称之为基础数据类型,以及到多维度符合类型的结构体。以及今日咱们所需要学习的接口。 在Go语言编程中,Go(强类型语言),也就是说必须是一种具体的类型,当我们需要只关注能调用它的什么方法,而不关注它是什么类型,该怎么办呢? Go语言中为了解决类似上面的问题,就设计了接口这个概念。接口区别于我们之前所有的具体类型,接口是一种抽象的类型。 当你看到一个接口类型的值时,你不知道它是什么,唯一知道的是通过它的方法能做什么。 疑问:只关心调用的函数,而不关注其类型 1 2 3 4 5 6
阅读全文 »