- 军军小站|张军博客
搜索到与相关的文章
编程技术

大话重构连载15:采用Mock技术完成测试

第五次重构我们引入了数据库的设计,用户信息要从数据库中读取,问候语库存储在数据库中,并支持添加与更新。数据库的引入使自动化测试变得困难了,因为数据状态总是变化着的,而这种变化使得测试过程不能复现,这是我们不愿看到的。因此,我们在设计时将业务与数据库访问分离,形成了UserDao与GreetingRuleDao。此时,我们的设计应当遵从“依赖反转”原则,即将UserDao与GreetingRuleDao设计成接口,并编写它们的实现UserDaoImpl与Gr

系统 2019-08-29 21:59:03 1832

编程技术

一堂如何提高代码质量的培训课(2)

3.可变更性前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修改就能够适应。但这之所以称之为理想状态,因为客户需求变化是有大有

系统 2019-08-29 21:58:57 1832

Python

filter用法--Python

filter被称为高阶函数是有道理的。filter(self,/,*args,**kwargs)Docstring:filter(functionorNone,iterable)-->filterobjectReturnaniteratoryieldingthoseitemsofiterableforwhichfunction(item)istrue.IffunctionisNone,returntheitemsthataretrue.从Doc的简单描述可

系统 2019-09-27 17:56:08 1831

Python

CentOS7安装python3

一:背景CentOS7里内置了一些应用,比如python2。现在需要在系统中安装python3。二:实验环境CentOS7系统中一个普通用户(root也无所谓,如果你愿意的话三:实验步骤准备工作(1)更新yum源。yum是基于RedHat的Linux系统中常用的包管理工具,可以使用yum安装、更新、移除软件安装包。使用sudoyum-yupdate,-y的主要作用就是省略确认步骤,详情见manyum。(2)安装yum-utils。yum-utils是拓展y

系统 2019-09-27 17:56:06 1831

Python

详解Python用三种方式统计词频的方法

三种方法:①直接使用dict②使用defaultdict③使用Counterps:`int()`函数默认返回0①dicttext="I'mahandsomeboy!"frequency={}forwordintext.split():ifwordnotinfrequency:frequency[word]=1else:frequency[word]+=1②defaultdictimportcollectionsfrequency=collections.d

系统 2019-09-27 17:54:44 1831

Python

Python基础(1)

目录四、Python基础(1)四、Python基础(1)1.什么是变量?一种变化的量,量是记录世界上的状态,变指得是这些状态是会变化的。2.为什么有变量?因为计算机程序的运行就是一系列状态的变化。3.定义变量在Python中定义变量:name='magua'age=24gender='man'height=168weight=2504.变量的组成三部分:1.变量名:变量名用来引用变量值,但凡需要用变量值,都需要通过变量名。2.赋值符号:赋值3.变量值:存放

系统 2019-09-27 17:54:30 1831

Python

使用python爬取微博数据打造一颗“心”

前言一年一度的虐狗节终于过去了,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的。程序员在晒什么,程序员在加班。但是礼物还是少不了的,送什么好?作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“爱心”,我想她一定会感动得哭了吧。哈哈准备工作有了想法之后就开始行动了,自然最先想到的就是用Python了,大体思路就是把微博数据爬下来,数据经过清洗加工后再进行分词处理,处理后的数据交给词云工具,配合科学计算工具和绘图工具制作成图像出来,涉及到的工具包有

系统 2019-09-27 17:53:34 1831

Python

Python可视化数据库Dash

Dash简介Dash是一个用于构建Web应用程序的Python数据可视化库。它基于PythonWeb框架Flask以及Javascript绘图库Plotly.js和用于构建用户界面的Javascript库React.js,所以它非常适合用于构建后端基于Flask,前端数据可视化的Web网页。因为Dash应用程序可以在Web浏览器中显示,所以可以将这些Dash应用程序部署到服务器,通过URL共享。Dash应用程序由两部分组成,第一部分是布局(Layout),

系统 2019-09-27 17:52:31 1831

Python

python基础知识学习——装饰器

**装饰器**1.装饰器的概念装饰器的本质就是一个函数,它的作用是为其他函数添加一个新的功能,但是不改变原函数的源代码和调用方式。装饰器的两大原则:不修改被修饰函数的源代码不修改被修饰函数的调用方式2.装饰器的知识储备(或者我们可以理解成,一个装饰器是由什么组成)装饰器=高阶函数+函数嵌套+闭包3.装饰器的实现首先我们定义一个累加求和的函数importtimedefcal():res=0foriinrange(100):res+=itime.sleep(1

系统 2019-09-27 17:50:53 1831

Python

Python的MRO

Python的MRO即MethodResolutionOrder(方法解析顺序),也就是在Python中的类的继承顺序是怎样的。在Python2.3之前,MRO的实现是基于DFS的,而在Python2.3以后MRO的实现是基于C3算法(我这里两种算法的具体实现都不详述)。C3算法最早被提出是用于Lisp的,应用在Python中是为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性的问题。本地优先级:指声明时父类的顺序,比如C(A,B),如果访问C类对

系统 2019-09-27 17:50:47 1831