自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(384)
  • 收藏
  • 关注

原创 用 pprint 代替 print 更友好的打印调试信息

用 pprint 代替 print 更友好的打印调试信息pprint 是 “pretty printer” 的简写,“pretty” 的含义是 “漂亮的、美观的”,因此 pprint 的含义便是:漂亮的打印。这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。先看看 print() 打印的一个例子:mylist = ["Beautiful is better than ugly.", "Explicit is better than implici

2021-01-15 14:30:51 397

原创 使用协程快速获得一个代理池

使用协程快速获得一个代理池前言在执行 I/O 密集型任务的时候,程序会因为等待 I/O 而阻塞。比如我们使用 requests 库来进行网络爬虫请求的话,如果网站响应速度过慢,程序会一直等待网站响应,最终导致其爬取效率十分低下。本文以爬取 IP 代理池为例,演示 Python 中如何利用异步协程来加速网络爬虫。协程协程(Coroutine),又称微线程,纤程,协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存,在调度回来的时候,恢复先前保

2021-01-15 14:29:44 390

原创 爬虫到底违法吗?你离违法还有多远?

最近,国家依法查处了部分编写爬虫程序,盗取其他公司数据的不良企业。一时间风声鹤唳,关于爬虫程序是否违法的讨论遍布程序员圈子。那么到底编写爬虫程序是否违法呢?其爬虫下载数据,一般而言都不违法,因为爬虫爬取的数据同行也是网站上用户打开页面能够看到的数据,但是如果符合下列条件的网站进行强行数据采集时,会具有法律风险。采集的站点有声明禁止爬虫采集时。2. 网站通过Robots协议拒绝采集时。Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion

2021-01-15 14:29:10 4318

原创 一个小例子助你彻底理解协程

一个小例子助你彻底理解协程协程,可能是Python中最让初学者困惑的知识点之一,它也是Python中实现并发编程的一种重要方式。Python中可以使用多线程和多进程来实现并发,这两种方式相对来说是大家比较熟悉的。事实上,还有一种实现并发的方式叫做异步编程,而协程就是实现异步编程的必要方式。所谓协程,可以简单的理解为多个相互协作的子程序。在同一个线程中,当一个子程序阻塞时,我们可以让程序马上从一个子程序切换到另一个子程序,从而避免CPU因程序阻塞而闲置,这样就可以提升CPU的利用率,相当于用一种协作的

2021-01-15 14:28:57 191

原创 Python中格式化字符串更酷的方式

Python中格式化字符串更酷的方式在 Python 中,大家都习惯使用 %s 或 format 来格式化字符串,在 Python 3.6 中,有了一个新的选择 f-string。使用对比我们先来看下 Python 中已经存在的这几种格式化字符串的使用比较。# %susername = 'tom'action = 'payment'message = 'User %s has logged in and did an action %s.' % (username, action)

2021-01-15 14:28:35 160

转载 教你用Python实现自动扫雷,你就是最亮的仔~

扫雷,相信80、90后的小伙伴肯定不陌生,在电脑还没有彻底普及的年代,能够玩上扫雷和纸牌就已经非常不容易了,今天小千就来给大家分享一期使用Python代码实现自动扫雷的教程,代码都在文章中,同学们可以学习和参考一下。自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。一、准备工作我的版本是 python 3.6.1python的第三方库:win32api win32gui win32con Pillow num

2021-01-07 16:33:53 334

转载 从零开始学Python - 第030课:用Python获取网络数据

对于Python语言来说,一个较为擅长的领域就是网络数据采集,实现网络数据采集的程序通常称之为网络爬虫或蜘蛛程序。即便是在大数据时代,数据对于中小企业来说仍然是硬伤和短板,有些数据需要通过开放或付费的数据接口来获得,其他的行业数据则必须要通过网络数据采集的方式来获得。不管使用哪种方式获取网络数据资源,Python语言都是非常好的选择,因为Python的标准库和三方库都对获取网络数据提供了良好的支持。HTTP和requests库要使用Python获取网络数据,我们可以先安装一个名为requests的.

2020-12-11 15:45:18 280

转载 从零开始学Python - 第029课:用Python操作PDF文件

PDF是Portable Document Format的缩写,这类文件通常使用.pdf作为其扩展名。在日常开发工作中,最容易遇到的就是从PDF中读取文本内容以及用已有的内容生成PDF文档这两个任务。从PDF中提取文本在Python中,可以使用名为PyPDF2的三方库来读取PDF文件,可以使用下面的命令来安装它。pip install PyPDF2 -i https://pypi.doubanio.com/simplePyPDF2没有办法从PDF文档中提取图像、图表或其他媒体,但它可以提取

2020-12-11 14:12:19 267

转载 从零开始学Python - 第028课:用Python读写Excel文件

Excel简介Excel是Microsoft(微软)为使用Windows和macOS操作系统开发的一款电子表格软件。Excel凭借其直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,一直以来都是最为流行的个人计算机数据处理软件。当然,Excel也有很多竞品,例如Google Sheets、LibreOffice Calc、Numbers等,这些竞品基本上也能够兼容Excel,至少能够读写较新版本的Excel文件,当然这些不是我们讨论的重点。掌握用Python程序操作Excel文件,可以让日常办

2020-12-11 14:11:29 231

转载 从零开始学Python - 第031课:用Python解析HTML页面

在上一课中我们讲到了使用Python获取网络资源,如果我们获取到一个或多个页面,需要从页面中提取出指定的信息,首先得掌握解析HTML页面的技术。上一课中我们把整个HTML页面当成一个字符串,使用正则表达式的捕获组提取出了需要的内容。但是,写出一个正确的正则表达式经常也是一件让人头疼的事情。为此,我们可以先了解HTML页面的结构,在此基础上就可以掌握其他的解析HTML页面的方法。HTML页面的结构我们在浏览器中打开任意一个网站,然后通过鼠标右键菜单,选择“显示网页源代码”菜单项,就可以看到网页对应的H

2020-12-11 14:11:16 356

原创 自动化测试十大你必备(背)的面试题

第一个就刷掉一大批人有很多“会自动化”的同学来咨询技术问题,他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。一般我都会问:你是定位不到吗?通常结果都是说确实定位不到。做自动化,首先你得保证一点,没有你定位不到的元素,这个你才能做UI自动化。如果有些元素都定位不到,你说你拿什么去点?就好像你的手你的鼠标点不到需要的元素,就没法去操作。第一个,自动化分为UI自动化与接口自动化UI自动化又包括APP自动化、H5、小程序等接口自动化也包括很多,你用什么类型的工具做自动化?

2020-10-26 13:27:47 588

原创 世界正在狠狠惩罚不愿改变的人

近日,日本零售巨头,无印良品(MUJI)美国子公司申请破产。作为行业中的翘楚,居然也快不行了,真的让人感叹世事难料。2006年无印良品进驻美国,至今在美国开了18家门店,光在纽约就开了9家,现在申请破产后全部关门。在过去3年里,无印良品一直处于亏损状态,至今负债超过6400万美元。到了今年终于顶不住压力,主动宣布申请破产保护了。曾经的巨头倒下,背后的原因,值得深思。美国作家约翰逊曾说:“这个世界上唯一不变的,就是变化本身。”今天的这篇文章,希望带给所有的...

2020-10-26 11:44:10 428

原创 web基础教程:随笔

一、用自己的语言描述get、post、Accept、Referer、User-Agent、host、cookie、X_Forwarded_for、Location各请求头的含义1. GEThttp请求方法,从浏览器获取一个资源2. POST提交数据、账号密码等,加密传输3. Accept支持的语言程序、接收的文件类型等等…4. Referer起过渡作用,从一个页面转到另一个页面5. User-Agent显示浏览器的指纹信息6. host主机7. cookie记录并

2020-10-26 10:32:34 156

原创 基于业务场景下的图片/文件上传方案总结

图片/文件上传组是企业项目开发中必不可少的环节之一, 但凡涉及到用户模块的都会有图片/文件上传需求, 在很多第三方组件库(ant desigin,element ui)中它也是基础组件之一. 接下来笔者就来带大家从零实现一款图片/文件上传组件以及扩展出更强大的上传组件.你将收获常用的图片上传功能实现方案 手写一个图片/文件上传组件 如何将裁剪功能集成到上传组件中 内容平台/可视化平台下的图片自治方案 如何扩展出更强大的图片上传方案正文作为一名前端工程师, 解决项目问题是我们的基本职责.

2020-10-26 10:28:28 331

原创 React Ref 其实是这样的

ref 的由来在典型的 React 数据流中,props 是父组件与子组件交互的唯一方式。要修改一个子组件,你需要使用新的 props 来重新渲染它。但是,在某些情况下,你需要在典型数据流之外强制修改子组件/元素。适合使用 refs 的情况:管理焦点,文本选择或媒体播放。 触发强制动画。 集成第三方 DOM 库。ref 的四种方式在 React v16.3 之前,ref 通过字符串(string ref)或者回调函数(callback ref)的形式进行获取。ref 通过字符获取:

2020-10-26 10:17:17 184

原创 几个例子理解不同数据类型的堆栈内存处理

js代码的运行环境浏览器 内核(引擎) node webview(hybrid,嵌入到手机app里面,在app里面运行) …下面通过几个例子理解不同数据类型的堆栈内存处理js如何运行(示例1)var a = 12;var b = a;b = 13;console.log(a);浏览器能够运行js代码,是因为浏览器会在计算机内存中分配出一块内存,用来供代码执行,这块内存叫栈内存,也叫Stack,或者ECStack(Execution Context Stack)执行环境栈。

2020-10-26 10:12:31 205

原创 7个前端新手常见误区,千万要避开

越来越多的开发者加入前端开发队伍。但前端知识在不断更新着,大家对它的认识也各不相同,今天就为您解读,学习web前端都有哪七大误区。误区一:前端只是JavaScript但我要说的是:前端不只是JS。何谓前端开发?我认为,一切以展现为目标的工作,都是前端开发工作。在前端开发中,除了JS,还有很多需要去掌握的,比如浏览器原理,html5,css3等。之前在面试别人时,问他,怎么做一个触摸屏上的转盘。他摇头。我退了一步,和他说谈谈你的想法也可。他想了一下,还是不会。做转盘,看似简单,但代表了前端知识的综合应用

2020-10-26 10:05:20 210

转载 排序算法入门:选择排序

选择排序选择排序也是利用了“挡板法”这个经典思想。挡板左边是已排序区间,右边是未排序区间,那么每次的“选择”是去找右边未排序区间的最小值,找到之后和挡板后面的第一个值换一下,然后再把挡板往右移动一位,保证排好序的这些元素在挡板的左边。比如例子:{5, 2, 0, 1}我们用一个挡板来分隔数组是否排好序,用指针 j 来寻找未排序区间的最小值;第一轮 j 最初指向 5,然后遍历整个未排序区间,最终指向 0,那么 0 就和挡板后的第一个元素换一下,也就是和 5 交换一下位置,挡板向.

2020-10-21 17:17:33 167 1

原创 如何高效定义和验证restful请求的参数

go-zero针对文本的序列化和反序列化主要在三个地方使用:http api请求体的反序列化 http api返回体的序列化 配置文件的反序列化1. http api请求体的反序列化在反序列化的过程中的针对请求数据的数据格式以及数据校验需求,go-zero实现了自己的一套反序列化机制1.1 数据格式以订单order.api文件为例type ( createOrderReq struct { token string `path:"token"` // .

2020-10-21 15:28:26 190

原创 如何使用 CatBoost 进行快速梯度提升

我们将仔细研究一个名为CatBoost的梯度增强库。在梯度提升中,预测是由一群弱学习者做出的。与为每个样本创建决策树的随机森林不同,在梯度增强中,树是一个接一个地创建的。模型中的先前树不会更改。前一棵树的结果用于改进下一棵树。在本文中,我们将仔细研究一个名为CatBoost的梯度增强库。CatBoost 是Yandex开发的深度方向梯度增强库 。它使用遗忘的决策树来生成平衡树。相同的功能用于对树的每个级别进行左右拆分。(CatBoost官方链接:https://github.

2020-10-21 14:20:35 377

原创 Linux系统编程:信号捕捉

前面我们学习了信号产生的几种方式,而对于信号的处理有如下几种方式:默认处理方式; 忽略; 捕捉。信号的捕捉,说白了就是抓到一个信号后,执行我们指定的函数,或者执行我们指定的动作。下面详细介绍两个信号捕捉操作参数:signal和sigaction。##signal函数函数原型:sighandler_t signal(int signum, sighandler_t handler);其中,sighandler定义是这样的:typedef void (*sighandler_t)(in

2020-10-21 14:03:51 119

原创 我为什么建议软件测试工程师一定要懂数据库

我们为什么要去懂数据库呢?首先,我想从我们软件测试工程师最基本的两个技能来说。第一个是熟悉业务第二个是分析定位问题不管你到哪一家公司,你接手什么样的项目,熟悉业务的话,一定是你进公司要做的第一件事情。分析定位问题是你作为软件测试人员一定要具备的。试想一下,你如果去提交一个bug,我只能说这个页面、这个数据显示错了。但另外同事B他说,这个数据它错误的原因是什么,是某个模块,或者某个开发人员的代码有问题。他如果能准确的定位到这个问题,不说他会更受公司重要之类的。但是他会让开发更喜欢和他合

2020-10-21 11:44:22 1260

原创 HTML5教程:精讲__init__、__new__、__call__方法(可面试用)

任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。在面试的时候,问到面向对象免不了会问__init__、__new__、__call__ 方法这几个最常用的魔术方法。在这里为大家厘清这几个方法的用法:1. __init__方法__init__方法负责对象的初始化,系统执行该方法前,其实该对象已经存在了,要不然初始化什么东西呢?先看例子:class Dog: d.

2020-06-11 17:08:16 251

原创 Python经典面试宝典之基础篇-03

如果你正在找工作,我的Python面试宝典几期教程,你一定得花时间看完了!题目011:Python中为什么没有函数重载?点评:C++、Java、C#等诸多编程语言都支持函数重载,所谓函数重载指的是在同一个作用域中有多个同名函数,它们拥有不同的参数列表(参数个数不同或参数类型不同或二者皆不同),可以相互区分。重载也是一种多态性,因为通常是在编译时通过参数的个数和类型来确定到底调用哪个重载函数,所以也被称为编译时多态性或者叫前绑定。这个问题的潜台词其实是问面试者是否有其他编程语言的经验,是否.

2020-06-11 16:57:22 276

原创 Python面试宝典之基础篇-02

我觉得你如果正在找工作,我的Python面试宝典几期教程,你一定得花时间看完了!题目006:说说Python中的浅拷贝和深拷贝。点评:这个题目本身出现的频率非常高,但是就题论题而言没有什么技术含量。对于这种面试题,在回答的时候一定要让你的答案能够超出面试官的预期,这样才能获得更好的印象分。所以回答这个题目的要点不仅仅是能够说出浅拷贝和深拷贝的区别,深拷贝的时候可能遇到的两大问题,还要说出Python标准库对浅拷贝和深拷贝的支持,然后可以说说列表、字典如何实现拷贝操作以及如何通过序列化和反.

2020-06-11 15:06:20 312

原创 Python面试宝典之基础篇-01

题目001: 在Python中如何实现单例模式。点评:这个题目在面试中出现的频率极高,因为它考察的不仅仅是单例模式,更是对Python语言到底掌握到何种程度,建议大家用装饰器和元类这两种方式来实现单例模式,因为这两种方式的通用性最强,而且也可以顺便展示自己对装饰器和元类中两个关键知识点的理解。方法一:使用装饰器实现单例模式。from functools import wrapsdef singleton(cls): """单例类装饰器""" instance.

2020-06-11 14:33:44 407

原创 Python教程:Numpy的安装

一、numpy简介NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。这类数值计算广泛用于以下任务:机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等。NumPy提供了一个非常好的库,用于简单(在编写代码方面)和快速(在速度方面)计算。NumPy数组用于存储训练数据和机器学习模型的参数。 图像处理和..

2020-06-10 16:08:03 36847

原创 Nginx 的请求处理流程你了解多少

之前我们已经讲解了 Nginx 的基础内容,接下来我们开始介绍 Nginx 的架构基础。为什么我们要讨论 Nginx 的架构基础?因为 Nginx 运行在企业内网的最外层也就是边缘节点,那么他处理的的流量是其他应用服务器处理流量的数倍,甚至几个数量级,我们知道任何一种问题在不同的数量级下,他的解决方案是完全不同的,所以在 Nginx 它所处理的应用场景中,所有的问题都会被放大,所以我们必须要去理解,为什么 Nginx 采用 master-worker 这样的一种架构模型,为什么 worker 进程的

2020-06-10 15:29:14 200

原创 Selenium爬虫登录生成Cookie

Selenium爬虫登录生成Cookie网站登录,本质上就是登录完成之后服务器给客户端一个凭据,这个凭据可以存在cookie里,也可以存在别的地方,客户端下次请求网页的时候带上这个凭据,服务端就会认为这个客户端是登录过的。所以对于爬虫来说,生成cookies是代理使用成为了一个必须要做的事情。示例安装chrome和对应driver下载chrome对应版本的chrome deriver下载对应版本 driverhttps://chromedriver.chromium.org/down.

2020-06-10 15:28:46 457

原创 实战教程:使用 Nginx 搭建静态资源 web 服务器

在搭建网站的时候,往往会加载很多的图片,如果都从 Tomcat 服务器来获取静态资源,这样会增加服务器的负载,使得服务器运行 速度非常慢,这时可以使用 Nginx 服务器来加载这些静态资源,这样就可以实现负载均衡,为 Tomcat 服务器减压了。这篇文章,我们将一起去使用 Nginx 去搭建静态资源 web 服务器。我把构建的 hexo 博客文件放在 Nginx 目录下了。再修改 Nginx 配置文件 nginx.conf 中的 server:server { listen 8

2020-06-06 15:24:33 203

原创 H5企业面试题二

小Q是一个专业的射击运动员,有一天他像往常一样进行n次射击训练,每次射击他都会取最高的四次得分作为最终得分来衡量他的射击状态,但是今天他制定了一个奇怪的规则:在n次射击得分中取出四次得分a,b,c,d,并且满足a*b*c=d作为最终得分来衡量他的射击状态。 但是小Q发现满足这个条件的(a,b,c,d)可能不止一个,小Q需要你来帮助他计算一共有多少个这种(a,b,c,d)如样例所示:有两种满足条件的(a,b,c,d)分别是(10,2,2,40)和(2,2,40,160)。输入:输入包括两行,第

2020-06-06 15:20:40 850

原创 H5企业面试题一

输入一个或多个车牌号码,多个以逗号分割开,再输入想查询的日期(数字,周几),输出该日期限行的车牌号. 车牌号码有以下要求,如:AD123,12101,车牌号不能全是字母。* 现在对尾号进行限制:尾号为1,9则周一限行,尾号为2,8则周二限行,尾号为3,7则周三限行 尾号为4,6则周四限行,尾号为5,0的周五限行,周六周日不限行。*尾号不为数字,则看第4位是否是数字,如果第4位还不是 数字,继续看第3位,以此下去,直到找到有数字的时候止.* 由于用户不熟悉系统,有可能输入错误车牌,如车牌不.

2020-06-06 15:19:18 216

原创 Python中 and 和 or 运算短路逻辑

短路逻辑规则如下:表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 。若 or 的左侧逻辑值为 False ,则输出or右侧的表达式,不论其后表达式是真是假,整个表达式结果即为其后表达式的结果。表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算。若 and 的左侧逻辑值为.

2020-06-06 15:17:27 1064

原创 测试的价值和目的

这个角色类似于软件开发-测试工程师(SDET),但是有更大的责任来分享他们所引入的学科的知识和热情。虽然SDET往往一次驻留在一个团队中,但是测试教练的角色可以跨多个团队。测试教练在原则上类似于Scrum大师或敏捷教练,但不一定是专家。他们只是拥护这一事业的人,如果需要,在底层工作以帮助在开发人员之间灌输文化变化,与产品所有者、领域专家和管理人员一起工作,以帮助将故事扩展到“轻度结构化”的场景中,并在开发工作和测试编写方面进行协作。测试教练还会听取每个团队的意见,并在测试无效时调整测试过程。

2020-06-06 15:12:28 889

原创 实战教程:VScode中误报(import-error)解决方案

VScode中误报Unable to import 'xxx' pylint(import-error)的解决方案在vscode中进行同级目录调用模块时(在test_case/veryInfoUpload.py中引用public/Loginmodel.py中的方法),会出现如下现象:1、 在public中添加__init__.py文件,使其成为包,使用包的特性,在public同级的模块maintest.py中直接带包导入是没有问题的:from public.Loginmodel impo.

2020-06-06 15:09:23 6917 1

原创 教程:mysql数据库规范详解

基础规范【建议】使用InnoDB存储引擎【强制】无特殊要求必须使用UTF8字符集【强制】数据表、数据字段必须加入中文注释【强制】禁止使用存储过程、视图、触发器、Event。特殊情况申请评审【强制】不在数据库做运算,cpu计算务必移至业务层命名规范【建议】 命名使用具有实际意义的英文词汇、词汇缩写,词汇之间使用下划线分隔;【强制】 命名只能使用小写英文字母、数字、下划线,且必须英文字母开头,下划线为分割符,不能超过32个字符,数据库对象名尽可能简短。避免使用MySQL的保留字

2020-06-06 14:50:42 118

原创 Java教程:Spring Boot+CAS 单点登录,如何对接数据库?

1.整体思路先来看整体思路。我们用 CAS Server 做单点登录,CAS Server 主要是负责认证的,也就是它主要解决登录问题。登录成功之后,还有一个权限处理的问题,权限的问题则交由各个 CAS Client 自行处理,并不在 CAS Server 中完成。文末有给大家出视频教程!@Component@Primarypublic class UserDetailsServiceImpl implements UserDetailsService{ @Override

2020-06-06 14:47:57 207

原创 如何一句话激怒你公司的前端开发程序员!

后端开发:前端比较简单,我也会写,只是我比较喜欢搞逻辑复杂的后端工作。后端眼里,前端就是把后端数据渲染出来,写个页面就ok了,可能前后端分离之前他自己也写过,而自认为后端庞大,各种框架,各种技术都得会,殊不知其实自己也就是一个写入数据与读取数据的普通程序员。而前端js的复杂性,html,css一直在更新的新特性,浏览器兼容性,web端,移动端的适配性,层出不穷的新框架,其实前端也不容易。产品经理:这个需求我没描述清楚,这里少写了一句可能产品文档里面少写的一句话,导致整个实现逻辑得重来,而他

2020-06-06 14:41:36 275

原创 Java基础教程:希望你看完后也能成为合格的Java工程师

技术点本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情。讲述方向由于一直从事移动互联网相关工作,java开发中经常和移动端打交道或者做一些后端的工作,所以本篇文章更可能涉及和移动端的交互或者与后端的交互方式,笔者希望以自身的一些学习经验或者开发经验,可以带动认真阅读本篇文章的伙伴们,让大家对java有一个更好的态度去学习它,它不只是一个赚钱的工具而已。身边有很多与

2020-06-06 14:36:34 332

原创 Pods组件化手动集成第三方(swift)

使用组件化也有一段时间了,碰到不少问题,但也算是给解决了,总结一下手动引入第三方组件的一些问题,个人是用Swift,OC的解决方式就没有实践过。.podspec 中以 subspec 的方式 为主,主要包含微信、支付宝、微博、极光推送、友盟这几种微信微信需要引入 .a 和 .h 文件.h文件使用 source_files.a文件使用vendored_libraries原目录如下Pod::Spec.new do |s| s.name = 'xxx.

2020-05-23 17:29:55 1177 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除