编程技术

UML几种常见用例详解

说先说明下:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。1、包含(include)包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。包含关系对典型的应用就是复用

系统 2019-08-29 22:22:59 2072

编程技术

最好不要用“局部变量”覆盖“字段”

从编码习惯和语法规范上讲,很多程序员喜欢使用一些简单的变量作为字段和局部变量。例如:id等等。这样以来,其实容易让程序显得混乱,特别是当局部变量和字段名称一样的情况下。面对这种问题,像Netbeans这样的IDE提出了警告提示,建议大家采纳。特别要注意:在这个时候IDE可能提示你删除这个局部变量,从大部分的程序逻辑来讲,这种轻率的删除可能会导致大量错误。所以请使用rename等重构方法。最好不要用“局部变量”覆盖“字段”

系统 2019-08-29 22:17:12 2072

编程技术

bootstrap-file-input

github:https://github.com/zhangkaitao/bootstrap-file-input为bootstrap提供统一的文件上传按钮试用了几个类似的,不能满足需求,干脆自己写一个。思路是:利用label完成辅助点击file框,并把file框设置为透明即可,非常简单可完美解决在ie中的“访问限制”问题(即必须是用户点击才能进行文件上传),且无位置偏移问题。使用方式导入js和css即可,会自动查找file标签执行初始化

系统 2019-08-29 22:00:54 2072

编程技术

软件可以这样功能扩展

在所有关于软件维护的故事中,功能的扩展是一个永恒的话题。正因为软件系统需要功能的扩展,需要新功能的加入,才使我们的编程需要那么多的设计。可以说,正是因为新功能的扩展,使得原有的系统质量下降;正是因为软件质量的下降,才使我们需要进行深入的分析与研究,制订设计原则,总结设计模式;正是因为要解决软件质量下降的问题,经过一番艰苦卓绝的摸索过程,我们才认识到系统重构才是解决该问题的最佳方案。然而,事情总是这样的,每个系统当我们进行初次的设计时,设计思路、程序结构总是

系统 2019-08-29 21:59:08 2072

编程技术

Google Analytics 网站分析中的退出率与跳出率

指标的定义:在GoogelAnalytics中征对页面的一个分析有这么两项指标:跳出率(BounceRate)、退出率(ExitRate)如下图所示:该指标都可以用来表示离开网站的访问者数量,但两者的计算方法和征对的页面是完全不同的。跳出是征对访问者来到网站后的第一个页面,即登录页,访问者跳出的动作只有在这个页面上才会出现。退出是在网站上所有页面都可以出现,只要访问者离开网站就算一次退出,页访问者访问的最后一个页面就是退出页面如下图所示:GoogleAna

系统 2019-08-12 09:30:03 2072

编程技术

正则基础之——捕获组(capture group) .

1概述1.1什么是捕获组捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部。捕获组有两种形式,一种是普通捕获组,另一种是命名捕获组,通常所说的捕获组指的是普通捕获组。语法如下:普通捕获组:(Expression)命名捕获组:(?Expression)普通捕获组在大多数支持正则表达式的语言或工具中都是支持的,而命名捕获组目前只有.NET

系统 2019-08-12 09:29:52 2072

Python

Python类与方法的私有化

1.创建自己的类学习面向对象的第一步,就是创建一个类。因为类是面向对象的基石。Python类和其他编程语言(Java、C#等)的类差不多,也需要使用class关键字。下面通过一个实际的例子来看一下Python类是如何创建的。本例会创建一个类,以及利用这个类创建两个对象,并调用其中的方法。程序运行结果如下图所示。从上面的代码我们可以了解到Python类的如下知识点。Python类使用class关键字定义,类名直接跟在class关键字的后面。类也是一个代码块,

系统 2019-09-27 17:57:05 2071

Python

python django 原生sql 获取数据的例子

如下所示:node2:/django/mysite/blog#catviews.py1,#-*-coding:utf-8-*-from__future__importunicode_literals#fromdjango.shortcutsimportrender,render_to_responsefrom.modelsimport*#Createyourviewshere.fromdjango.httpimportHttpResponsefromdja

系统 2019-09-27 17:56:26 2071

Python

跟老齐学Python之有容乃大的list(4)

list的话题的确不少,而且,在编程中,用途也非常多。有看官可能要问了,如果要生成一个list,除了要把元素一个一个写上之外,有没有能够让计算机自己按照某个规律生成list的方法呢?如果你提出了这个问题,充分说明你是一个“懒人”,不过这不是什么坏事情,这个世界就是因为“懒人”的存在而进步。“懒人”其实不懒。对list的操作range(start,stop)生成数字listrange(start,stop[,step])是一个内置函数。要研究清楚一些函数特别

系统 2019-09-27 17:56:07 2071

Python

详解Python self 参数

1、概述1.1场景我们在使用Python中的方法method时,经常会看到参数中带有self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢?2、知识点2.1成员函数(m)和普通方法(f)Python中的"类方法"必须有一个额外的第一个参数名称(名称任意,不过推荐self),而"普通方法"则不需要。m、f、c都是代码自动提示时的左边字母(method、function、class)#-*-coding:utf-8-*-classTest(obj

系统 2019-09-27 17:56:05 2071

Python

Python 入门之 内置模块 -- hashlib模块

Python入门之内置模块--hashlib模块1、hashlib摘要算法,加密算法(1)主要用途:<1>加密:md5sha1sha256sha512md5,加密速度快,安全系数低sha512加密速度慢,安全系数高<2>校验:md5sha1sha256sha512值importhashlib(2)hashlib的特征以及使用要点:<1>bytes类型数据--->通过hashlib算法--->固定长度的字符串<2>当要加密的内容相同时,得到的密文一定是一样的

系统 2019-09-27 17:54:48 2071

Python

python自定义时钟类、定时任务类

这是我使用python写的第一个类(也算是学习面向对象语言以来正式写的第一个解耦的类),记录下改进的过程。分析需求最初,因为使用time模块显示日期时,每次都要设置时间字符串的格式,挺麻烦,但还是忍了。后来,在处理多线程任务时需要实现定时控制的功能,更麻烦,终于决定自己做一个解决这些问题的通用代码(虽然网上有现成的模块,但亲手编写这部分代码正好能锻炼一下我的面向对象编程)。分析框架刚开始,我计划做一个模仿时钟的抽象类,让它独立运行在一个线程中,让它提供显示

系统 2019-09-27 17:54:34 2071

Python

Python3之数据指纹MD5校验与对比

MD5消息摘要算法(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(RonaldLinnRivest)设计,于1992年公开,用以取代MD4算法。概述MD5校验码通过散列函数计算而成,可以生成任何数据的数据“指纹”,即我们可以利用MD5将消息或者数据压缩成摘要,是的数据量变小,便于比较

系统 2019-09-27 17:54:19 2071

Python

python itchat给指定联系人发消息的方法

itchat模块官方参考文档:https://itchat.readthedocs.io/zh/latest/安装pipinstallitchat/pip3installitchat原理Python模仿网页版微信登陆,并且现有一套操作网页版微信的API,可以将你使用微信中产生的数据爬下来,并做出相应的处理。操作1.导入这套微信API的包itchatimportitchat2.模仿网页版微信登陆itchat.auto_login()3.使用相关函数找到相关微

系统 2019-09-27 17:54:06 2071

Python

当一个学了20分钟python turtle 的人画滑稽会怎样

python3.7链接:https://pan.baidu.com/s/1Lob447oqCgD6nb39sB9cig提取码:vn0apycharm链接:https://pan.baidu.com/s/1BndDvTG1hPnBmq5leu3gDQ提取码:3jus#huajiimportturtleast#-------------脸t.setup(960,959,0,0)t.color("orange")t.pensize("25")t.penup()t

系统 2019-09-27 17:53:49 2071