自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rei的博客

Later on, it was going to slow by slowly.

原创 【通俗说设计模式】九、桥接模式 & Python示例

专业介绍: 将 "抽象" 与 "实现" 分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 通俗介绍: 桥接模式的定义看似清晰,实则模糊,因为桥接模式是几十种设计模式中最复杂的模式之一!所以首...

2019-12-05 19:31:07 64 0

原创 【通俗说设计模式】八、适配器模式 & Python示例

专业介绍: 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 通俗介绍: 其实就是在现有组件基础上做适配工作。使用者习惯了/一直/只能调用某一个类A来完成所需要的大部分功能,忽然有个新功能是类A不具备的,但是类B具备,而使用者又因为各...

2019-12-04 14:11:29 43 0

原创 【通俗说设计模式】七、代理模式 & Python示例 (结构型模式开篇)

专业介绍: 为其他对象提供一个代理以控制对这个对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 通俗介绍: 有些情况下,使用者(客户端)不能直接访问某个对象,可能是因为以下几点原因: 1. 需要保护这个对象不被某些客户端/使用...

2019-12-03 15:04:45 33 0

原创 【通俗说设计模式】六、建造者模式 & Python示例

专业介绍: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 通俗介绍: 开发过程中有时需要创建一个比较复杂的对象,这个复杂对象由多种子部件(属性/对象)组合而成,然后这些子部件还不止一种选择,在使用时根据需要选择不同的部件组合出这个复杂对象。 例如,创建一...

2019-12-03 11:54:23 44 0

原创 【通俗说设计模式】三、抽象工厂模式 & Python示例

专业介绍: 抽象工厂模式提供一个 "创建一系列相关或相互依赖对象" 的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。 通俗介绍: 它是工厂方法模式的升级版。工厂方法是一个具体工厂只生产一个种产品,如果要扩展产品,就必须扩展具体工厂。...

2019-12-02 19:00:10 73 0

原创 【通俗说设计模式】五、单例模式 & Python示例

专业介绍: 指一个类只有一个实例,且该类能自行创建这个实例的一种模式。 通俗介绍: 一个类,我们可以反复创建它的实例,但是,创建N次最终得到的也是同一个实例,占用的资源大小是固定的,这就叫单例模式。 例如Windows上很多对象都是单例模式,比如winows的任务管理器,回收站,文件...

2019-12-02 17:42:46 32 0

原创 【通俗说设计模式】四、原型模式 & Python示例

专业介绍: 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。 通俗介绍: 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。 这个模式很简单,没有什么需要过多解释的,上代码。 # 原型模式 import copy clas...

2019-12-02 17:05:00 31 0

原创 【通俗说设计模式】二、工厂方法模式(Factory Method Pattern)& Python实现

专业介绍 工厂方法模式(英语:Factory method pattern)是一种实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法...

2019-12-02 15:42:01 41 0

原创 【架构思考】IM架构

本文将总结关于如何构建一个IM架构相关的知识。 1. 将【接入服务】与【业务处理服务】独立拆分 理由有二,一是任务分工不同,接入服务负责建立并保持与客户端的连接、消息的编解码、协议解析等一些IM前台服务(也可以叫做网关),是最接近用户的服务,而且要在流量高峰期进行快速的性能扩展; 而业务处理...

2019-11-29 18:22:20 94 0

原创 【通俗说设计模式】一、简单工厂模式 & Python示例(创建型模式开篇)

专业介绍: 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同于工厂模式的一个特殊...

2019-10-29 11:29:13 142 2

原创 【爬虫】巧用 js2py (附带bug解决)

项目地址:https://github.com/PiotrDabkowski/Js2Py 项目介绍:(根据github)此项目完全用Python编写,支持Python2/3。可以在Python中执行JS代码,并获取JS对象值。 目前支持ES5,ES6仍在测试中。 一句话解释:一个纯Pytho...

2019-08-29 18:25:22 426 0

原创 [面试] Golang 面试题

本文章收录于:后端工程师面试题目总结(提供参考答案) 目录 1.make与new的区别 2.简要描述go中的main和init函数的区别 3.下面的代码输出什么,若会报错报什么错? 4. 这段代码会输出什么? 5、简述channel和mutex锁机制的原理异同与使用场景 6、sync...

2019-08-27 23:30:31 289 0

原创 【Web安全】文件上传漏洞

前言 上网过程中,我们经常会将一些如图片、压缩包之类的文件上传至文件服务器进行保存。而文件上传攻击指的是攻击者利用一些站点没有对文件的类型做很好的校验,上传了可执行的文件或脚本,并且通过脚本获得服务器上相应的权限,或者是通过诱导外部用户访问下载上传的病毒或木马,达到攻击的目的。 除了上述危害,...

2019-08-25 22:38:19 83 0

原创 【Web安全】SQL注入攻击

前言 引用书中介绍,SQL注入就是通过把SQL命令伪装成正常的HTTP请求参数传递到服务器,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。达到的危害有: 查询非授权信息 修改数据库数据 改变表结构甚至删除表 获取服务器root权限 注入原理 某网站的登录请求如下: url: h...

2019-08-25 20:29:25 398 0

原创 【Web安全】CSRF 攻击 (最新解决方案)

前言 全称跨站请求伪造(Cross site request forgery), 尽管它听起来与XSS(跨站脚本攻击),但它与XSS非常不同。 然而事实是,CSRF与XSS具有很大的相似性和关联性。 一句话来说,就是可以利用某站点存在的XSS漏洞来进行CSRF攻击。 CSRF的核心过程: ...

2019-08-24 12:53:59 261 0

原创 【Web安全】XSS攻击

XSS攻击 全称跨站脚本攻击(Cross Site Scripting),为了不跟层叠样式表(CSS)重名,所以叫XSS; 它是Web攻击中最常见的攻击手段之一! 危害 攻击者在网站中嵌入恶意脚本(代码),当用户打开该网页时,脚本自动执行,它可以 盗取用户cookie、用户名密码...

2019-07-22 00:22:04 2989 1

原创 【专栏之读Go语言并发之道】第3章 Go语言并发组件

✎说明: 本文章收录于我的博客专栏读Go语言并发之道   前言 本文档是读《Go语言并发之道》一书之后的总结,按照章节进行记录。 任何地方有误,请读者不吝赐教。ℬℯℓℓℯℜ life to you~ 目录前言1. Goroutine2. sync包3. sync.WaitGroup4. ...

2019-06-10 15:03:52 402 0

原创 【专栏之读Go语言并发之道】第1,2章 并发概述以及CSP(顺序通信进程)

本文章收录于我的博客专栏读Go语言并发之道 前言:本文档是读《Go语言并发之道》一书之后的总结,按照章节进行记录。 目录 第一章 并发概述 第二章 对你的代码建模:顺序通信进程(CSP) 第一章 并发概述 1.1 竞争条件 永远不要用time.Sleep来保证你程序运行的逻辑性...

2019-06-10 09:14:06 296 0

原创 [面试] 5. 操作系统相关

本文章收录于:后端工程师面试题目总结(提供参考答案) 目录 1. 进程与线程的区别?(资源、调度、开销、通信 4个方面对比) 2. 进程间通信(python如何实现的) 3. 线程间通信 4. Linux常用的监控资源使用率的命令?(top,free) 5. Linux其他常用命令 ...

2019-05-24 10:43:06 157 0

原创 [面试] 4. 网络协议相关

本文章收录于:后端工程师面试题目总结(提供参考答案) 目录 1. GET和POST区别是什么,HTTP状态码了解哪些? 2. Session和Cookie的区别?Session如何管理? 3. HTTPS的解释?为什么要有HTTPS? 4. 简述HTTPS密钥协商过程? 5. 简述跨域...

2019-05-24 10:43:00 269 0

原创 [面试] 3. 关于mongodb和redis的面试题

本文章收录于:后端工程师面试题目总结(提供参考答案) #MongoDB相关# 1、mongo的适用场景和不适用的场景 适用场景: 1. 存储大量的非结构化和半结构化数据 2. 需要能够迅速水平扩展容量的db 3. 高性能的实时数据插入/更新 不适用: 1. 需要事务...

2019-05-24 10:42:54 948 0

原创 [面试] 2. 关于MySQL的面试题

本文章收录于:后端工程师面试题目总结(提供参考答案) 目录 1. 谈谈mysql字符集和排序规则? 2. varchar 与 char 的区别? 3. primary key 和 unique key区别? 4. 外键有什么用,是否该用外键?外键一定需要索引吗? 5. myisam与i...

2019-05-24 10:42:49 437 0

原创 [面试] 1. 关于Python的基础知识

本文章收录于:后端工程师面试题目总结(提供参考答案) 目录 1. 可变与不可变类型 2. 谈谈浅拷贝与深拷贝 3. __new__和__init__的区别 4. 谈谈设计模式 5. 列表推导式和生成器的优劣 6. 什么是装饰器,想在函数之后进行装饰,怎么做? 7. 使用装饰器的单例...

2019-05-24 10:42:43 459 0

原创 [面试] 0. 导航-初中级后端工程师面试题目总结(提供参考答案)

前言 这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章,感谢~ 本文仅包括目录,查看答案请点击超链接。 每个题目的答案我都会上传文章供各位参考,但完成需要一点时间,请耐心等待。 如出现任何错误之处,请指...

2019-05-24 10:42:30 930 4

原创 [Python] 六种进程间通信方式的Python3.6实现

正文: 进程间通信方式有六种,如下 msg_queue (消息队列) pipeline for single duplex (单工管道) pipeline for half duplex (半双工管道) name pipeline (命名管道) share memory (共享...

2019-05-06 17:36:18 4020 8

原创 [Python3] 如何装饰类中的类方法或静态方法

Talk is cheap Code is here: #普通装饰器(装饰函数和类) def deco111(func_or_cls): def wrap(*args, **kwargs): print(type(func_or_cls)) re...

2019-03-15 11:55:08 258 0

原创 [Python] 3.7中的dataclasses

简介: 这个dataclasses是当做装饰器来用,作用是在我们定义数据class对象时减少我们的代码量。 文章主要是用IDE写的,还请见谅。   正文: from dataclasses import dataclass #带上这个装饰器帽子,相当于它的init,repr,eq等...

2018-12-26 16:52:04 463 0

原创 [Golang] struct配合slice实现循环队列

循环队列 特征   使用的头尾索引永远都在底层数组长度下标范围内,如队列长度为10,那么底层数组长度为11,index范围[0,10] 解决的问题   用非循环数组实现的队列在底层数组满的时候...

2018-11-21 15:00:07 963 1

原创 [Golang] 谈Go中的继承

  继承,这个概念来自于OOP思想。 所谓继承,是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。  继承的关键词:“获得”,“代码复用”。 先来看看典型的O...

2018-10-26 17:10:53 4225 1

原创 [Golang] 实现一个通用的排序方式(对任意数据类型构成的slice排序)

前言: Go 语言中排序主要使用的sort库,对于常见数据类型string, int ,float构成的Slice,可以使用sort库对应的sort.Strings() /sort.Ints() / sort.Float64s()直接排序,但是对于复杂类型struct构成的Slice,要对其排序...

2018-10-22 17:54:41 912 0

原创 [Python3] RSA的加解密和签名/验签实现 -- 使用Crypto

前言 关于非对称加密算法我就不过多介绍了,本文着重于python3对RSA算法的实现。 正文 from Crypto.PublicKey import RSA import Crypto.Signature.PKCS1_v1_5 as sign_PKCS1_v1_5 #用于签名/验签 fr...

2018-10-12 15:30:17 3289 1

原创 [生的感触] 故事摘录

  父亲和哥哥的墓地位于一座山上,俯瞰华盛顿湖,环境很幽雅。7月20日那天人们一定处处能感觉到父亲留下的斗志,也正是这种精神使我们35年后仍紧系在一起。我希望不管你在何处,你能在每年的7月20日哀思李小龙,因为不论是一篇文章,一张照片,或一部像《李小龙传奇》似的电视剧,一个人的一次挂念,都有助于...

2018-08-20 13:01:12 153 1

转载 [Golang] 关于Sync.Map的使用

简介: sync.Map这个数据结构是线程安全的(基本类型Map结构体在并发读写时会panic严重错误),它填补了Map线程不安全的缺陷,不过最好只在需要的情况下使用。它一般用于并发模型中对同一类map结构体的读写,或其他适用于sync.Map的情况。 关于sync.Map的源码解析文章:Go...

2018-08-03 16:41:32 12839 0

原创 [Scrapy使用技巧] 如何在scrapy中捕获并处理各种异常

前言 使用scrapy进行大型爬取任务的时候(爬取耗时以天为单位),无论主机网速多好,爬完之后总会发现scrapy日志中“item_scraped_count”不等于预先的种子数量,总有一部分种子爬取失败,失败的类型可能有如下图两种(下图为scrapy爬取结束完成时的日志): scra...

2018-06-15 16:29:50 19863 31

原创 [开源库学习] Numpy日记 Section.2

前言   最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here   备注:        我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念...

2018-06-13 17:54:46 131 0

原创 [开源库学习] Numpy日记 Section.1

前言   最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here   备注:        我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念...

2018-06-13 17:48:00 128 0

原创 [巩固基础]总结Python基础知识的14张思维导图

闲聊    有时候总感觉自己的代码太low,却又没有什么办法去改善,就很气!    不知道作为看官的你是否由此感受呢,不过最近我找到办法解决这个问题了,那就是巩固基础--系统的学习python初级、高级语法,一段时间后,我明显感觉到自己的代码变得更简洁、优美,coding的心情也变的舒畅~    ...

2018-06-06 14:42:26 669 0

原创 [Python小记] 装饰器怎么用 ?

装饰器的含义和作用:        装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。    它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰...

2018-05-27 17:10:44 552 1

原创 [Python小记] 通俗的理解闭包 闭包能帮我们做什么?

热身 首先给出闭包函数的必要条件: 闭包函数必须返回一个函数对象 闭包函数返回的那个函数必须引用外部变量(一般不能是全局变量),而返回的那个函数内部不一定要return 几个典型的闭包例子: # ENV>>> Python 3.6 # NO.1 def ...

2018-05-27 00:20:41 15911 26

原创 [后端开发]支付宝支付接口调试 (Python v3.6)

写在前面:     讲真,一开始接到这个任务我是拒绝的。因为支付宝官方没有提供Python的SDK环境,只有JAVA/PHP/.NET三种语言的SDK,这意味着签名&验签、HTTP接口请求等操作全都要自己手动实现,就算支付宝提供了签名、验签的算法说明,但仅靠它的文字描述就写出一个...

2018-05-25 14:48:33 7442 4

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