摘要: 发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮 2、但是随着交互式Web应 阅读全文
posted @ 2019-05-08 22:02 萤huo虫 阅读(93) 评论(0) 推荐(0)
摘要: 第一:Django 第二:爬虫 第三:MySQL系列 第四:Python 基础 阅读全文
posted @ 2019-05-08 21:25 萤huo虫 阅读(316) 评论(0) 推荐(0)
摘要: 一 Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C 阅读全文
posted @ 2019-05-08 20:48 萤huo虫 阅读(134) 评论(0) 推荐(0)
摘要: 安装: npm install vue-cookies --save 使用: import Vue from 'Vue' import VueCookies from 'vue-cookies' Vue.use(VueCookies) Api: 设置 cookie: this.$cookies.se 阅读全文
posted @ 2019-05-08 20:44 萤huo虫 阅读(94) 评论(0) 推荐(0)
摘要: 1 Vue是什么 1.1 定义 Vue 是一套用于构建用户界面的渐进式框架 使用Vue框架,可以完全在浏览器端渲染页面,服务端只提供数据 使用Vue框架可以非常方便的构建 单页面应用 (SPA) 2 前端框架 2.1 三足鼎立 React Angular Vue 2.2 Angular、Vue、Re 阅读全文
posted @ 2019-05-08 20:42 萤huo虫 阅读(193) 评论(0) 推荐(0)
摘要: 一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存到内存 或者 阅读全文
posted @ 2019-05-08 20:31 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 数据库性能瓶颈 ① 数据库连接 数据库连接是非常稀少的资源,MySQL数据库默认100个连接,单机最大1500连接。如果一个库里既有用户相关的数据又有商品、订单相关的数据,当海量用户同时操作时,数据库连接就很可能成为瓶颈。 ② 数据量 MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会 阅读全文
posted @ 2019-05-08 20:23 萤huo虫 阅读(139) 评论(0) 推荐(0)
摘要: 一 什么是代理 代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。刚开始的时候,代理多数是帮助内网client访问外网server用的后来出现了反向代理,"反向"这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内 二 正向代理 正向代理类似 阅读全文
posted @ 2019-05-08 20:05 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点 阅读全文
posted @ 2019-05-08 20:01 萤huo虫 阅读(90) 评论(0) 推荐(0)
摘要: 1.以系统管理员身份运行cmd. 2.查看mysql是否已经启动,如果已经启动,就停止:net stop mysql. 3.切换到MySQL安装路径下:D:\WAMP\MySQL-5.6.36\bin;如果已经配了环境变量,可以不用切换了。 4.在命令行输入:mysqld -nt --skip-gr 阅读全文
posted @ 2019-05-08 19:59 萤huo虫 阅读(2174) 评论(0) 推荐(0)
摘要: left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: 表A记录如下:aID aNum1 a200501112 a 阅读全文
posted @ 2019-05-08 19:55 萤huo虫 阅读(941) 评论(0) 推荐(0)
摘要: 一 集群与分布式的区别 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配 阅读全文
posted @ 2019-05-08 19:53 萤huo虫 阅读(240) 评论(0) 推荐(0)
摘要: 在django1.4以后,存在两个概念 naive time 与 active time。 简单点讲,naive time就是不带时区的时间,Active time就是带时区的时间。 举例来说,使用datetime.datetime.utcnow()、datetime.datetime.now()输 阅读全文
posted @ 2019-05-08 19:50 萤huo虫 阅读(335) 评论(0) 推荐(0)
摘要: 1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所 阅读全文
posted @ 2019-05-08 19:49 萤huo虫 阅读(164) 评论(0) 推荐(0)
摘要: 一 为什么使用 Redis 在项目中使用 Redis,主要考虑两个角度:性能和并发。如果只是为了分布式锁这些其他功能,还有其他中间件 Zookpeer 等代替,并非一定要使用 Redis。 性能: 如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的 SQL,就特别适合将运行结果放入缓存。这 阅读全文
posted @ 2019-05-08 19:42 萤huo虫 阅读(106) 评论(0) 推荐(0)
摘要: 将redis发布订阅模式用做消息队列和rabbitmq的区别: 可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中;rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条消息将一直 阅读全文
posted @ 2019-05-08 19:41 萤huo虫 阅读(87) 评论(0) 推荐(0)
摘要: 一 什么是发布订阅 发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下 阅读全文
posted @ 2019-05-08 19:40 萤huo虫 阅读(115) 评论(0) 推荐(0)
摘要: 一 什么是 ElasticSearch Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作 阅读全文
posted @ 2019-05-08 19:35 萤huo虫 阅读(89) 评论(0) 推荐(0)
摘要: 一 六大设计原则 在法理学中,法律规则与法律原则都是法律规范的重要构成。但二者也会有些不同:法律规则是指采取一定的结构形式具体规定人们的法律权利、法律义务以及相应的法律后果的行为规范,内容比较明确,比如,交通法规中规定,禁止闯红灯;法律原则是指在一定法律体系中作为法律规则的指导思想,基本或本原的、综 阅读全文
posted @ 2019-05-08 19:33 萤huo虫 阅读(135) 评论(0) 推荐(0)
摘要: 一、电梯控制器 电梯在我们周边随处可见,电梯的控制逻辑中心是由电梯控制器实现的。电梯的控制逻辑,即使简单点设计,把状态分成开门状态,停止状态和运行状态,操作分成开门、关门、运行、停止,那流程也是很复杂的。首先,开门状态不能开门、运行、停止;停止状态不能关门,停止;运行状态不能开门、关门、运行。要用一 阅读全文
posted @ 2019-05-08 19:32 萤huo虫 阅读(144) 评论(0) 推荐(0)
摘要: 一、游戏进度保存 打过游戏的朋友一定知道,大多数游戏都有保存进度的功能,如果一局游戏下来,忘保存了进度,那么下次只能从上次进度点开始重新打了。一般情况下,保存进度是要存在可持久化存储器上,本例中先以保存在内存中来模拟实现该场景的情形。以模拟一个战斗角色为例。首先,创建游戏角色。 GameCharac 阅读全文
posted @ 2019-05-08 19:31 萤huo虫 阅读(168) 评论(0) 推荐(0)
摘要: 一、模拟吉他 要开发一个自动识别谱子的吉他模拟器,达到录入谱即可按照谱发声的效果。除了发声设备外(假设已完成),最重要的就是读谱和译谱能力了。分析其需求,整个过程大致上分可以分为两部分:根据规则翻译谱的内容;根据翻译的内容演奏。我们用一个解释器模型来完成这个功能。 PlayContext类为谱的内容 阅读全文
posted @ 2019-05-08 19:30 萤huo虫 阅读(94) 评论(0) 推荐(0)
摘要: 一、火警报警器 在门面模式中,我们提到过火警报警器。在当时,我们关注的是通过封装减少代码重复。而今天,我们将从业务流程的实现角度,来再次实现该火警报警器。 以上是门面模式中的三个传感器类的结构。仔细分析业务,报警器、洒水器、拨号器都是“观察”烟雾传感器的情况来做反应的。因而,他们三个都是观察者,而烟 阅读全文
posted @ 2019-05-08 19:29 萤huo虫 阅读(143) 评论(0) 推荐(0)
摘要: 一、药房业务系统 假设一个药房,有一些大夫,一个药品划价员和一个药房管理员,它们通过一个药房管理系统组织工作流程。大夫开出药方后,药品划价员确定药品是否正常,价格是否正确;通过后药房管理员进行开药处理。该系统可以如何实现?最简单的想法,是分别用一个一个if…else…把划价员处理流程和药房管理流程实 阅读全文
posted @ 2019-05-08 19:28 萤huo虫 阅读(109) 评论(0) 推荐(0)
摘要: 一、股票查询客户端 投资股票是种常见的理财方式,我国股民越来越多,实时查询股票的需求也越来越大。今天,我们通过一个简单的股票查询客户端来认识一种简单的设计模式:模板模式。根据股票代码来查询股价分为如下几个步骤:登录、设置股票代码、查询、展示。构造如下的虚拟股票查询器: 现在查询机构很多,我们可以根据 阅读全文
posted @ 2019-05-08 19:26 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 一、迭代器与生成器 今天的主角是迭代器模式。在python中,迭代器并不用举太多的例子,因为python中的迭代器应用实在太多了(不管是python还是其它很多的编程语言中,实际上迭代器都已经纳入到了常用的库或者包中)。而且在当前,也几乎没有人专门去开发一个迭代器,而是直接去使用list、strin 阅读全文
posted @ 2019-05-08 19:26 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 一、仓储管理系统 有一个手机仓储管理系统,使用者有三方:销售、仓库管理员、采购。需求是:销售一旦达成订单,销售人员会通过系统的销售子系统部分通知仓储子系统,仓储子系统会将可出仓手机数量减少,同时通知采购管理子系统当前销售订单;仓储子系统的库存到达阈值以下,会通知销售子系统和采购子系统,并督促采购子系 阅读全文
posted @ 2019-05-08 19:24 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 一、饭店点餐系统 又是一个点餐系统(原谅作者的吃货属性)。不过这次的点餐系统是个饭店的点餐系统。饭店的点餐系统有什么不同嘛?大伙想想看,在大多数饭店中,当服务员已经接到顾客的点单,录入到系统中后,根据不同的菜品,会有不同的后台反应。比如,饭店有凉菜间、热菜间、主食间,那当服务员将菜品录入到系统中后, 阅读全文
posted @ 2019-05-08 19:23 萤huo虫 阅读(216) 评论(0) 推荐(0)
摘要: 一、请假系统 假设有这么一个请假系统:员工若想要请3天以内(包括3天的假),只需要直属经理批准就可以了;如果想请3-7天,不仅需要直属经理批准,部门经理需要最终批准;如果请假大于7天,不光要前两个经理批准,也需要总经理最终批准。类似的系统相信大家都遇到过,那么该如何实现呢?首先想到的当然是if…el 阅读全文
posted @ 2019-05-08 19:22 萤huo虫 阅读(158) 评论(0) 推荐(0)
摘要: 一、客户消息通知 假设某司维护着一些客户资料,需要在该司有新产品上市或者举行新活动时通知客户。现通知客户的方式有两种:短信通知、邮件通知。应如何设计该系统的客户通知部分?为解决该问题,我们先构造客户类,包括客户常用的联系方式和基本信息,同时也包括要发送的内容。 snd_way向客户发送信息的方式,该 阅读全文
posted @ 2019-05-08 19:21 萤huo虫 阅读(130) 评论(0) 推荐(0)
摘要: 一、画笔与形状 在介绍原型模式的一节中,我们举了个图层的例子,这一小节内容,我们同样以类似画图的例子,说明一种结构类设计模式:桥梁模式。在一个画图程序中,常会见到这样的情况:有一些预设的图形,如矩形、圆形等,还有一个对象-画笔,调节画笔的类型(如画笔还是画刷,还是毛笔效果等)并设定参数(如颜色、线宽 阅读全文
posted @ 2019-05-08 19:20 萤huo虫 阅读(170) 评论(0) 推荐(0)
摘要: 一、网上咖啡选购平台 假设有一个网上咖啡选购平台,客户可以在该平台上下订单订购咖啡,平台会根据用户位置进行线下配送。假设其咖啡对象构造如下: 其对应的顾客类如下: 按照一般的处理流程,用户在网上预订咖啡,其代表用户的Customer类中生成一个Coffee类,直到交易流程结束。整个流程是没有问题的。 阅读全文
posted @ 2019-05-08 19:19 萤huo虫 阅读(132) 评论(0) 推荐(0)
摘要: 一、公司结构组织 每一个公司都有自己的组织结构,越是大型的企业,其组织结构就会越复杂。大多数情况下,公司喜欢用“树形”结构来组织复杂的公司人事关系和公司间的结构关系。一般情况下,根结点代表公司的最高行政权利单位,分支节点表示一个个部门,而叶子结点则会用来代表每一个员工。每一个结点的子树,表示该结点代 阅读全文
posted @ 2019-05-08 19:18 萤huo虫 阅读(123) 评论(0) 推荐(0)
摘要: 一、火警报警器(1) 假设有一组火警报警系统,由三个子元件构成:一个警报器,一个喷水器,一个自动拨打电话的装置。其抽象如下: 在业务中如果需要将三个部件启动,例如,如果有一个烟雾传感器,检测到了烟雾。在业务环境中需要做如下操作: 但如果在多个业务场景中需要启动三个部件,怎么办?Ctrl+C加上Ctr 阅读全文
posted @ 2019-05-08 19:16 萤huo虫 阅读(111) 评论(0) 推荐(0)
摘要: 一、外包人员系统兼容 假设某公司A与某公司B需要合作,公司A需要访问公司B的人员信息,但公司A与公司B协议接口不同,该如何处理?先将公司A和公司B针对各自的人员信息访问系统封装了对象接口。 为在A公司平台复用B公司接口,直接调用B公司人员接口是个办法,但会对现在业务流程造成不确定的风险。为减少耦合, 阅读全文
posted @ 2019-05-08 19:15 萤huo虫 阅读(103) 评论(0) 推荐(0)
摘要: 一、快餐点餐系统 又提到了那个快餐点餐系统,不过今天我们只以其中的一个类作为主角:饮料类。首先,回忆下饮料类: 除了基本配置,快餐店卖可乐时,可以选择加冰,如果加冰的话,要在原价上加0.3元;卖牛奶时,可以选择加糖,如果加糖的话,要原价上加0.5元。怎么解决这样的问题?可以选择装饰器模式来解决这一类 阅读全文
posted @ 2019-05-08 19:13 萤huo虫 阅读(110) 评论(0) 推荐(0)
摘要: 一、网络服务器配置白名单 代理模式是一种使用频率非常高的模式,在多个著名的开源软件和当前多个著名的互联网产品后台程序中都有所应用。下面我们用一个抽象化的简单例子,来说明代理模式。首先,构造一个网络服务器: #该服务器接受如下格式数据,addr代表地址,content代表接收的信息内容 info_st 阅读全文
posted @ 2019-05-08 19:12 萤huo虫 阅读(121) 评论(0) 推荐(0)
摘要: 一、图层 大家如果用过类似于Photoshop的平面设计软件,一定都知道图层的概念。图层概念的提出,使得设计、图形修改等操作更加便利。设计师既可以修改和绘制当前图像对象,又可以保留其它图像对象,逻辑清晰,且可以及时得到反馈。本节内容,将以图层为主角,介绍原型模式。首先,设计一个图层对象。 在实际的实 阅读全文
posted @ 2019-05-08 19:10 萤huo虫 阅读(157) 评论(0) 推荐(0)
摘要: 一、快餐点餐系统 今天的例子,还是上一次谈到的快餐点餐系统。只不过,今天我们从订单的角度来构造这个系统。最先还是有请上次的主角们:主餐: 小食: 饮料: 最终,我们是要建造一个订单,因而,需要一个订单类。假设,一个订单,包括一份主食,一份小食,一种饮料。(省去一些异常判断) 代码中的orderBui 阅读全文
posted @ 2019-05-08 19:09 萤huo虫 阅读(112) 评论(0) 推荐(0)
摘要: 一、快餐点餐系统 想必大家一定见过类似于麦当劳自助点餐台一类的点餐系统吧。在一个大的触摸显示屏上,有三类可以选择的上餐品:汉堡等主餐、小食、饮料。当我们选择好自己需要的食物,支付完成后,订单就生成了。下面,我们用今天的主角--工厂模式--来生成这些食物的逻辑主体。首先,来看主餐的生成(仅以两种汉堡为 阅读全文
posted @ 2019-05-08 19:07 萤huo虫 阅读(126) 评论(0) 推荐(0)
摘要: 一、总线 总线是计算机各种功能部件或者设备之间传送数据、控制信号等信息的公共通信解决方案之一。现假设有如下场景:某中央处理器(CPU)通过某种协议总线与一个信号灯相连,信号灯有64种颜色可以设置,中央处理器上运行着三个线程,都可以对这个信号灯进行控制,并且可以独立设置该信号灯的颜色。抽象掉协议细节( 阅读全文
posted @ 2019-05-08 19:05 萤huo虫 阅读(187) 评论(0) 推荐(0)
摘要: 一 什么是设计模式 设计模式是面对各种问题进行提炼和抽象而形成的解决方案。这些设计方案是前人不断试验,考虑了封装性、复用性、效率、可修改、可移植等各种因素的高度总结。它不限于一种特定的语言,它是一种解决问题的思想和方法 二 为什么要有设计模式 公司人事会有变动,程序员也会成长。不管是哪种情况,代码非 阅读全文
posted @ 2019-05-08 19:04 萤huo虫 阅读(101) 评论(0) 推荐(0)
摘要: 第一篇 Python与设计模式:前言 第二篇(23种设计模式) 创建类设计模式(5种) 单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式 结构类设计模式(7种) 代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式 行为类设计模式(11种) 策略模式、责任链模 阅读全文
posted @ 2019-05-08 19:02 萤huo虫 阅读(151) 评论(0) 推荐(0)