0%

反射简介 Go在标准库中提供的reflect包让Go程序具备运行时的反射能力(reflection)。反射是程序在运行时访问、检测和修改它本身状态或行为的一种能力,各种编程语言所实现的反射机制各有不同。 Go语言的interface{} 类型变量具有析出任意类型变量的类型信息(type)和值信息(value)的能力,Go的反射本质上就是利用interface{} 的这种能力在运行时对任意变量的类型和值信息进行检视甚至是对值进行修改的机制。 反射让静态类型语言Go在运行时具备了某种基于类型信息的动态特性。利用这种特性,fmt.Println在无法提前获知传入参数的真正类型的情况下依旧可以对其
阅读全文 »

Go标准库 Go标准库中的unsafe包非常简洁,如下所示 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 // 用于获取一个表达式值的大小 func Sizeof(x ArbitraryType) uintptr // 用于获取结构体中某字段段地址偏移量(相对于结构体变量的地址) // Offsetof函数应用面较窄,仅用于结构体某字段的偏移值 func Offsetof(x ArbitraryType) uintptr // Alignof用于获取一个表达式的内存补齐系数 func Alignof
阅读全文 »

Go code tips 使用 pkg/errors https://pkg.go.dev/github.com/pkg/errors 我们在一个项目中使用错误机制,最核心的几个需求是什么?我觉得主要是这两点: * 附加信息:我们希望错误出现的时候能附带一些描述性的错误信息,甚至这些信息是可以嵌套的 * 附加堆栈:我们希望错误不仅仅打印出错误信息,也能打印出这个错误的堆栈信息,可以知道出错的具体代码。 在 Go 语言的演进过程中,error 传递的信息太少一直是被诟病的一点。使用官方的 error 库,只能打印一条简单的错误信息,而没有更多的信息辅助快速定位错误。所以,推荐在应用层
阅读全文 »

少有人走的路 我们在生活中经常会评价一个人说这个人不成熟像个孩子,那到底什么成熟,一个人成熟与否最重要的是自律性然后是否懂得什么是真正的爱。就是当一个人学会自律,主动的要求自己用积极的心态去面对承受痛苦解决问题的时候那就是距离成熟的距离很近了。而且我们生活中大量的人就宁愿在不成熟当中徘徊宁愿在痛苦当中打转,就是不愿意走上这少有人走的路。走上这条用自律和爱,铸就通向心灵承受的道路。 自律是解决人生问题的最重要的主要工具 全面的自律 不自律的表现 遇到问题拖延着不去主动解决回避问题,假装看不见用药物、酒精等成瘾物麻痹自己,换得一时解脱 实现自律的四个原则 推迟满足感:父母没耐心教孩子,
阅读全文 »

如何判断对象是垃圾 经典判断方法 1:引用计数法 思路很简单,但是如果出现循环引用,即 A 引用 B,B 又引用 A,这种情况下就不好办了。所以一般还使用了另一种称为“可达性分析”的判断方法。 经典判断方法 2:可达性分析 如果 A 引用 B,B 又引用 A(发生了循环引用问题),这 2 个对象是否能被 GC回收? 关键不是在于 A、B 之间是否有引用,而是 A、B 是否可以一直向上追溯到 GC Roots。如果与 GC Roots 没有关联,则会被回收;否则,将继续存活。 上图是一个用“可达性分析”标记垃圾对象的示例图,灰色的对象表示不可达对象,将等待回收 哪些内存
阅读全文 »

雷电模拟器抓包配置 爬虫免不了抓包分析,当然也免不了中间转发相关的便捷操作。如果有一个稳定的、妥善的抓包环境。相信在爬虫开发中一定会事半功倍。 有真机当然是最好的,同时如果爬虫开发者并没有真机。那么模拟器变成为了不二之选。当然如果支持多开的话那就更好了。 业界比较知名的有 MuMu模拟器:https://mumu.163.com/ 雷电模拟器:https://www.ldmnq.com/ 夜神模拟器:https://www.yeshen.com/ 在开发爬虫的时候,我个人使用的比较多的的是雷电模拟器,因为他支持多开(虽然这之间有限制),以及抓包也有些问题。但奈何,它支持多开啊。配合
阅读全文 »

在Linux上有这样一个需求,需要将Python的默认版本设置为python3.8 但由于Linux系统自带的是3.6.那么实现他只需要完成python3.8的安装,以及python命令的指向问题。 python3.8 的安装在此便不再过多赘述,如下命令都可任选其一即可 1 2 3 sudo yum install -y python38 python38-pip sudo dnf install -y python38 python38-pip 修改指向 alternatives 修改 1 alternatives --config python3 此时直接输入1,
阅读全文 »

Sekiro简介 开抄!以下来自sekiro官方文档 https://sekiro.virjar.com/sekiro-doc/index.html SEKIRO 是一个android下的API服务暴露框架,可以用在app逆向、app数据抓取、android群控等场景。同时Sekiro也是目前公开方案唯一稳定的JSRPC框架。 1. 对网络环境要求低,sekiro 使用长链接管理服务(可以理解为每个APP内置内网穿透功能),使得 Android 手机可以分布于全国各地,甚至全球各地。手机掺合在普通用户群体,方便实现反抓突破,更加适合获取下沉数据。 2. 不依赖 hook 框架,
阅读全文 »

GitHub HomeBrew官方地址 docs docs-Formula-Cookbook brew.idayer Homebrew是什么 Homebrew简单来说他是类似于yum、apt,mac的包管理工具,使用它我们可以非常简单、丝滑的下载大部分的包、或者软件 安装 1 2 3 4 # 官方 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # cdn /bin/bash -c "$(curl -fsSL https://cdn
阅读全文 »

虚拟化系统 * 进程虚拟化 * Namespaces 进行虚拟化隔离 * Control Groups 进行对资源的限制, * 联合文件 UFS(Union File Systems)来快速构建(可复用的镜像层) Docker Docker的前世今生 Docker的架构与容器生命周期:created、running、stopped、paused、deleted Docker 环境搭建 Docker 基本操作 Dockerfile 编写与各指令使用 Docker 网络 Docker 存储 Docker 编排:Docker、Docker-compose、Docker-Sw
阅读全文 »