3.可变更性前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修改就能够适应。但这之所以称之为理想状态,因为客户需求变化是有大有
系统 2019-08-29 21:58:57 2111
学习各种开源项目,已经成为很多朋友不可回避的工作内容了。笔者本人也是如此。在接触并学习了若干个开源项目之后,笔者试图对自己工作过程中的若干体会加以总结,以期对一些希望借鉴的朋友有所裨益。需要说明的是,笔者本人接触的开源项目大多属于计算机系统领域,例如Linuxkernel,KVM,QEMU,OpenStack等。因此,此处介绍的经验必定也有些局限。请读者们自行分辨,区别对待。1.学习分层和目标管理对于一个开源项目,可以将与之相关的各种知识和技能的学习大致划
系统 2019-08-12 09:27:24 2111
什么是自动化测试:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动化测试常见的误区:1.认为录制回放就是自动化测试(自动化测试的不同层次)2.只验证界面上的信息3.让测试相关的材料自由组织,应妥善管理测试相关的文档和输出4.过早或过多的自动化自
系统 2019-08-12 09:27:14 2111
在一个页面中有多个checkbox并且id是不同的,要一次性选择所有的checkboxcheckboxes=dr.find_elements_by_css_selector('input[type=checkbox]')forcheckboxincheckboxes:checkbox.click()time.sleep(10)引用:http://www.cnblogs.com/paisen/p/3310395.htmlhttp://www.cnblogs.
系统 2019-08-12 09:27:05 2111
1,实现random_shuffle:random_shuffle是STL中的一个模板算法,作用是随机重排列一对randomaccessiterator之间的元素。基本思想是:假设序列有n个元素,先从所有元素中选一个放到位置1(即与位置1的元素交换),然后再从剩下的n-1个元素中选择一个放到位置2,以此类推。2,qsort:partition之后双向递归。qsort的实现:ViewCode1#include/*memcpy*/23#de
系统 2019-08-12 01:33:02 2111
题目https://leetcode-cn.com/problems/power-of-two/comments/给定一个整数,编写一个函数来判断它是否是2的幂次方。示例1:输入:1输出:true解释:20=1示例2:输入:16输出:true解释:24=16示例3:输入:218输出:false思路代码classSolution:defisPowerOfTwo(self,n):""":typen:int:rtype:bool"""returnn>0andno
系统 2019-09-27 17:56:23 2110
Python设计模式设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。所有的设计模式示例都是来源于菜鸟教程,每个设计模式的UML都可以在菜鸟教程中找到相应的示例github地址:Python设计模式以工厂模式为例:工厂模式在菜鸟教程中的UML图为工厂
系统 2019-09-27 17:55:33 2110
一、进程和线程进程假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。是不是在程序A读取数据的过程中,让程序B去执行,当程序A读取完数据之后,让程序B暂停,然后让程序A继续执行?当然没问题,但这里有一个关键词:切换既然是切换,那么这就涉及到了状态的保存,状态的恢复,加上程序A与程序B所需要的系统资源(内存,硬盘,键盘等等)是不一样的。自然
系统 2019-09-27 17:55:24 2110
最近的django开发中用到了有序字典,所以研究了一下,以下。示例:有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。普通字典:由上面的结果可以看出对普通字典进行遍历,输出结果是无序的。下面是有序字典(需要导入collections包):对比两种输出结果,不难发现,有序字典可以按字典中元素的插入顺序来输出。上面两个例子之所以字典中插入元素,而不是一开始就将字典中的元素定义好,是因为有序字典的作用只是记住元素插入顺序
系统 2019-09-27 17:55:00 2110
字符串,列表,元组等都可以支持切片截取的操作切片:A【start:end:step】start(默认为0)切片起始位置end(默认为字符长度)切片结束位置,不包括endstep(默认为1),切片的步长,即每几个取第一个,负号表示倒序字符串的第1个字符索引为0A="abcdefg"print(A[0])#取索引0的值,结果为:aprint(A[2:4])#取索引2到4,结果为:cdprint(A[::-1])#取倒序步长1,结果为:gfedcba列表的切片列
系统 2019-09-27 17:53:02 2110