在所有关于软件维护的故事中,功能的扩展是一个永恒的话题。正因为软件系统需要功能的扩展,需要新功能的加入,才使我们的编程需要那么多的设计。可以说,正是因为新功能的扩展,使得原有的系统质量下降;正是因为软件质量的下降,才使我们需要进行深入的分析与研究,制订设计原则,总结设计模式;正是因为要解决软件质量下降的问题,经过一番艰苦卓绝的摸索过程,我们才认识到系统重构才是解决该问题的最佳方案。然而,事情总是这样的,每个系统当我们进行初次的设计时,设计思路、程序结构总是
系统 2019-08-29 21:59:08 2015
说了那么多理论,我们来看看怎样使用抽取方法来重构遗留系统。如前所述,重构的过程首先是阅读程序代码,边阅读边整理程序。将功能相对独立的代码段放在一起,在前面加上注释。调整一些程序的顺序,将相关的代码尽量放在一起,但要保证程序执行的结果不会发生改变。比较典型的,将变量的定义与使用变量的代码放在一起。这个步骤比较实用,因为许多的遗留系统,其代码都有一个坏毛病,就是在程序开始时定义一大堆变量,但要弄清这些变量都用来做什么,却十分困难。边读边调整,将变量的定义逐渐迁
系统 2019-08-29 21:59:02 2015
“服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语,它的别名叫“Comet”(彗星)。它是继“Ajax”之后又一个倍受追捧的Web技术。“服务器推送技术”最近的流行跟“Ajax”有着密切的关系。随着Web技术的流行,越来越多的应用从原有的C/S的模式下转变为B/S的模式,享受着Web技术所带来的各种优势(例如,跨平台,免客户端维护,跨越防火墙,扩展性好等等)。但是基于浏览器的应用,也有它不足的地方。最主要的地方在于界面的
系统 2019-08-12 09:30:22 2015
1.安装10g:[oracle@styrac1~]$cd$ORACLE_HOME/rdbms/lib/[oracle@styrac1lib]$make-fins_rdbms.mk$ORACLE_HOME/rdbms/lib/bbed11g:拷贝10g的文件[oracle@styrac2lib]$mkdir/tmp/libtmp[oracle@styrac2lib]$mkdir/tmp/msgtmp[oracle@styrac2lib]$cp$ORACLE_
系统 2019-08-12 09:29:46 2015
解题思路:建立输入单词(反向,便于寻找起始点所在的位置)的AC图,然后按照八个方向依次寻找(注意方向也为方向)。例如A是向上方向,我们需要改为反向,向下。那么我们需要将每列--从上到下方向--组成的字符串--共width个--分别到AC图中查找匹配。关键代码已经注释#includeusingnamespacestd;#defineMAX_SIZE1005#defineMAX_LEN1005#defineMAX_NOD1000001#de
系统 2019-08-12 09:27:26 2015
来源:http://www.imooc.com/video/1625在eclipse中,可以输入syso然后敲alt+/来补全,即可变成System.out.println();慕课网-安卓工程师初养成-5-2编程练习解析
系统 2019-08-12 01:33:38 2015
前面的学习中,我们已经知道了两种python的数据类型:int和str。再强调一下对数据类型的理解,这个世界是由数据组成的,数据可能是数字(注意,别搞混了,数字和数据是有区别的),也可能是文字、或者是声音、视频等。在python中(其它高级语言也类似)把状如2,3这样的数字划分为一个类型,把状如“你好”这样的文字划分一个类型,前者是int类型,后者是str类型(这里就不说翻译的名字了,请看官熟悉用英文的名称,对日后编程大有好处,什么好处呢?谁用谁知道!)。
系统 2019-09-27 17:56:59 2014
数据库的安装和连接PyMySQL的安装pipinstallPyMySQLpython连接数据库importpymysqldb=pymysql.connect("数据库ip","用户","密码","数据库")#打开数据库连接cursor.execute("SELECTVERSION()")#使用execute()方法执行SQL查询data=cursor.fetchone()#使用fetchone()方法获取单条数据print("Databaseversion
系统 2019-09-27 17:56:03 2014
导入模块frombs4importBeautifulSoupsoup=BeautifulSoup(html_doc,"html.parser")下面看下常见的用法print(soup.a)#拿到soup中的第一个a标签print(soup.a.name)#获取a标签的名称print(soup.a.string)#获取a标签的文本内容print(soup.a.text)#获取a标签的文本内容print(soup.a["href"])#获取a标签的href属性
系统 2019-09-27 17:55:49 2014
本文实例讲述了python装饰器常见使用方法。分享给大家供大家参考,具体如下:python的装饰器,可以用来实现,类似springAOP类似的功能。一样可以用来记录某个方法执行前做什么,执行后做什么,或者用来记录日志,运行的时间等,更有甚者,用这个来做权限拦截,也未尝不可。从两个方面来描述python的装饰模式:1.对普通方法的装饰2.对在class类中的方法的装饰,不需要给参数的情况3.对在class类中的方法的装饰,需要给参数的情况一,对普通方法的装饰
系统 2019-09-27 17:55:42 2014