《设计模式之禅》之——六大设计原则解读

一、单一职责原则(Single Responsibility Principle,SRP) 1. 单一职责原则定义 应该有且仅有一个原因引起类的变更。 2. 单一职责原则好处 类的复杂性降低,实现什么职责都有清晰明确的定义; 可读性提高,复杂性降低,那当然可读性提高了; 可维护性提高,可读性提高,那当然更容易维护了; 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。 3. 单一职责
分类: 其他 发布时间: 08-16 23:11 阅读次数: 0

Python算法(一)冒泡排序

3  5  1  6  2 1)第一次:找到这些数中最大的一个,并把它放最后。 3、5找到大的数放到第二个位置 5、1找到大的数放到第三个位置 5、6找到大的数放到第四个位置 2、6找到大的数放大第五个位置 第五个位置就是最大的 a= [3,5,1,6,2] for i in range(len(a)-1): if a[i]>a[i+1]: a[i],a[i+1] = a[i+1],a[i] print(a[-1]) 2)找到最大值了,现在找次大值,次大值放在倒数第二的位置 a= [3, 1,
分类: 其他 发布时间: 08-16 23:11 阅读次数: 0

(译)JavaScript 中的正则表达式(RegEx)实操——快速掌握正则表达式,伴有随手可练的例子————(翻译未完待续)

(原文:https://blog.bitsrc.io/a-beginners-guide-to-regular-expressions-regex-in-javascript-9c58feb27eb4) 当你第一次看到正则,它们就像随意堆放的字符,看起来毫无意义。不过尽管他们看起来很棘手(因为复杂的语法规则),他们却极其有用。 事实是,正确地理解了正则表达式,能让你成为一个更加高明的程序员。为了完全了解正则表达式的世界,你需要先学习一些基本概念,在此基础上才能有所作为。 废话不多说,让我们开始
分类: 其他 发布时间: 08-16 23:11 阅读次数: 0

Wiki平台:confluence6.7.1安装与破解

1.1硬件需求建议: CPU:32/64 bit 2.27GHz双核心以上之CPU; 内存:8GB以上; 硬盘:300GB,7200转以上; 建议数据库、Confluence等各自独立一台服务器。 1.2软件需求建议 推荐Windows Server 2012 R2操作系统,或者其他支持JAVA的Windows操作系统 特别申明:本文提供的破解工具,来源于互联网并非本人所写,仅供安装测试研究,如需使用请购买正版授权。由于使用破解工具带来的一切法律风险,由使用人自行承担。 1.3. 安装包下载
分类: 其他 发布时间: 08-16 23:11 阅读次数: 0

h5之video 标签的 bug

最近使用到video标签做移动端视频播放,然而测试时发现视频的层级默认为最大,z-index无效 查了资料,说是早andriod qq浏览器或者微信自带浏览器中才会有这个问,iOS则表现完美, 解决方案:在video标签上添加属性 x5-video-player-type="h5"
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

SQL注入--显注和盲注中过滤逗号绕过

SQL注入逗号绕过 1.联合查询显注绕过逗号 在联合查询时使用 UNION SELECT 1,2,3,4,5,6,7..n 这样的格式爆显示位,语句中包含了多个逗号,如果有WAF拦截了逗号时,我们的联合查询不能用了。 绕过 在显示位上替换为常见的注入变量或其它语句 union select 1,2,3; union select * from ((select 1)A join (select 2)B join (select 3)C); union select * from ((sel
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

1028: [JSOI2007]麻将

Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2696 Solved: 1205 [Submit][Status][Discuss] Description   麻将是中国传统的娱乐工具之一。麻将牌的牌可以分为字牌(共有东、南、西、北、中、发、白七种)和序数 牌(分为条子、饼子、万子三种花色,每种花色各有一到九的九种牌),每种牌各四张。在麻将中,通常情况下一 组和了的牌(即完成的牌)由十四张牌组成。十四张牌中的两张组成对子(即完全相同的两张牌),
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

Confluence 6 为搜索引擎隐藏外部链接

为搜索引擎隐藏外部链接能够避免向你的站点添加垃圾信息。如果你启用了这个选项的话,任何插入到页面中的 URLs 和评论将会赋予 'nofollow' 属性,这个属性将会禁止搜索引擎进行索引。 快捷链接(例如,CONF-2622@JIRA)和 Confluence 中的内部链接将不会受这个配置的影响。 为搜索引擎隐藏外部链接: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接。 在左侧面板中选择 安全配置(Security Configuration)。
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

<< PT1>>

首先介绍什么是STA:静态时序分析。所谓静态,就是指非动态仿真;不用仿真pattern就能分析时序信息。 它贯穿于后端P&R阶段,是检查时序是否满足的方法。 steps: (1) 把整个设计打散成N多的timing-path,主要依据就是 DFF---DFF,input---DFF、DFF--->output input ----> output这四大类。 ( 2) 根据实际的布局布线情况,提取准确的RC参数、delay信息、clock uncertainty、lattency等,用最坏的情况
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

JavaScript 框架(库)

JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常很困难也很耗时。 为了应对这些调整,许多的 JavaScript (helper) 库应运而生。 这些 JavaScript 库常被称为 JavaScript 框架。 我们将了解到一些广受欢迎的 JavaScript 框架: jQuery Prototype MooTools 所有这些框架都提供针对常见 JavaScript 任务的函数,包括动画、DOM 操作以及 Ajax 处理。 在本教程中,您将学习到如何开始使用它们,
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

计算机组成原理之计算机概论和数据表示

1.1 概论的点 1、 1945年 ENIAC(埃尼阿克) 第一台电子数字计算机 2、冯·诺依曼(计算机之父) 二进制思想+程序内存思想 3、现代计算机结构框图 软件 = 系统软件 + 应用软件 系统软件 = 操作系统 + 数据库管理系统(DBMS) + 服务性程序 应用软件 = 通用软件 + 用户软件 1.2 二进制思想 采用有限个状态(用 0 和 1)来表示、处理、储存和传输数据的技术 计算机中一切内容都是数字 0 , 1 1.3 计算机如何执行我们的程序? 1、程序和数据装入到主储存器中
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

python学习感悟第8节

面向对象 世界万物,皆可分类 世界万物,皆为对象 特性(class、object) 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性。 封装、继承、多态 类变量——大家公用的属性 析构函数:在实例释放、销毁的时候执行,通常用于做一些收尾工作,如关闭一些数据库链接打开的临时文件。 构造:__init__ 析构:__del__ 继承:节省代码 广度优先:python3开始均广度优先 深度优先:python2经典是按深度优先来继承的,python2新式是按广度优先来继承的。 多态:一种接口,多
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

Day2.基本条件语句

Day2.了解两种条件语句 if语句与while语句 一.代码块 1 .if 条件语句格式 if: 内部代码块 else: 内部代码块 2. if 语句可以进行嵌套 如: 3. pass的使用 在 if 条件语句中,if 与 else 下的内部代码块是必须要写的。 但如果不需要或者想跳过内部代码块的话,我们则需要 pass 操作 如: 由于定义变量 S = 1 且在 if 条件中 S == 1 条件成立 但内部代码块为pass 所以print后的无输出结果 如果将变量 s = 2 则会输出 “
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

六、数组类的创建

1、一些问题 顺序存储结构的线性表存在着两个方面的问题: 功能方面:数组操作符的重载,线性表有可能被误用为数组使用 效率方面:在一些场合中,效率上是有隐患的 解决方案:当前的库中没有可以代替原生数组的实现,所以有可能会被误用,需要创建一个数组类代替原生数组。 2、数组类抽象类模板的创建 需求分析:创建数组类代替原生数组的使用 如何通过类的对象来模拟数组的行为? 原生数组使用过程中存在的问题: 数组类长度信息丢失:定义一个数组,长度信息必须指定,但是指定之后,长度信息不能在数组本身中找到,需要用
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

Loj 6036 「雅礼集训 2017 Day4」编码 - 2-sat

题目传送门   唯一的传送门 题目大意   给定$n$个串,每个串只包含 '0','1','?' ,其中 '?' 至多在每个串中出现1次,它可以被替换为 '0' 或 '1' 。问是否可能任意两个不同的串不满足一个是另一个的前缀。   2-sat的是显然的。   枚举每个通配符填0还是1,然后插入Trie树。   对于Trie的每个点在2-sat中建点。   如果其中一个点被选择,那么它祖先和所有后继的结束点都不能选。(然后逆否命题连边)   对于一个包含通配符的串,通配符替换为0以及通配符替换
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

实现MySQL数据库主从服务器热备份

原理: Mysql热备份有三个步骤: 作为主服务器的Master,会把数据库每一次的变动(每条sql语句)都记录到二进制日志Binarylog中。 作为从服务器Slave, 使用master上的用户登陆到 master上,读取master的Binarylog,写入到自己的中继日志 Relaylog。 然后从服务器自己的sql线程会负责读取这个中继日志,并执行一遍 说明:在两台MySQL服务器172.18.34.161和172.18.133.123上分别进行如下操作 一、主从服务器分别作以下操作
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

【leetcode 简单】第三十五题 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

scrapy+redis去重实现增量抓取

class ProjectnameDownloaderMiddleware(object): # Not all methods need to be defined. If a method is not defined, # scrapy acts as if the downloader middleware does not modify the # passed objects. def __init__(self): self.Cli
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

js随笔05

041、在js中如何用方法将10进制的字符转换成16进制和8进制 数字.toString(16) 数字.toString(8) 042、如何创建时间对象 new Date() 043、如何创建未来或者过去的时间对象 var d = new Date('2017-10-20 22:22:22') var d = new Date('2017/10/20 11:11:11') 044、如何获取时间戳 getTime(); 045、常用的时间API set/getFullYear()====获取年份
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0

Python(五) 包、模块、函数与变量作用域

一、while循环与使用场景 二、for与for-else循环 三、for 与 range 四、新篇章导言 五、Python工程的组织结构:包、模块儿、类 六、Python包与模块的名字 七、import导入模块 八、from import 导入变量 九、__init__.py 的用法 十、 包与模块的几个常见错误_ 十一、模块内置变量 十二、入口文件和普通模块内置变量的区别 十三、__name__的经典应用 十四、相对导入和绝对导入 一 十五、相对导入和绝对导入 二
分类: 其他 发布时间: 08-16 22:54 阅读次数: 0