摘要:ricky的编码风格镇宅神兽 15:51:19你们的代码里没有assert么SH_漫总#MM 15:51:27从来没有这玩意SH_漫总#MM 15:51:36这东西对我们来讲除了误导人以外,没有任何用处镇宅神兽 15:51:54assert 就是让系统直接崩溃SH_漫总#MM 15:51:55嗯,我们百万行代码没有一个assert镇宅神兽 15:52:22哪指针为NULL了咋处理SH_漫总#MM 15:52:32记录log并返回错误SH_漫总#MM 15:52:58任何一层产生的任何一个不确定值的指针,都必须判断是否为空镇宅神兽 15:53:10你们这是在打破我的世界观啊SH_漫总#MM 15
阅读全文
摘要:我觉得算是python里相对比较高级的一个用法吧,不知道C里有没有,这里的特殊之处是,由于一个接口已经对外公开了,所以我不能修改函数原型,但是另一个接受了一段参数的函数又需要把它接受到的参数传进已经公开的函数(当然,数据是没有问题的)因此就需要这样做#!/usr/bin/env python# -*- coding: utf-8 -*-'''python里一个很高级的用法:applyapply接受两个参数:函数指针和元组(貌似还有其他更高级的用法)apply调用函数指针执行的函数时,把元组拆成参数列表传递进函数'''import weburls
阅读全文
摘要:昨天重构了OPEN-API模块,挺高兴,觉得自己做的不错,结果昨天把程序重构完,除了挑出来作为测试接口的代码其他代码都没有测试,今天上午要做其他的维护工作,觉得还是先跑一次测试再说,测试程序并不是特地为这个接口进行开发,当时为这个OPEN-API写了一个SDK,这个程序其实是为了SDK开发的测试程序,且写的并不完善,但即使是这样,测试程序的断言(assert)仍然报告执行出了问题,因此我又去排查程序,发现有几个接口,它的函数参数不只一个参数(self参数),而我的几类再调具体子类的时,就没有提供其他的参数,因此产生运行时错误,了解到这一点,就翻了手上的《python学习手册》花了一个小时解决问
阅读全文
摘要:最初的测试代码还是比较能清晰的反映出代码的意图文件: code.py启动: python code.py查看:http://127.0.0.1:8080/app1http://127.0.0.1:8080/app1?id=100import weburls = ( '/app1', 'App1', '/app2', 'App2',)web.config.debug = Falseapp = web.application(urls, globals())class PageBase: def __init__(self): sel
阅读全文
摘要:先描述一下场景:我们的web项目提供了若干个基于HTTP协议的POST接口,用于给第三方的用户写入数据,为了验证写入数据者的身份,这样的接口肯定会要求对方传递身份标识,接口得到标识以后会验证写入者的标识,正确就执行请求,错误就返回失败信息,由于是基于同样的检测身份的机制,每个接口都做了同样的事情,体现在代码里就有大量的冗余代码,如果要消除冗余代码,我可以把冗余代码写成一个函数,在每一个接口里调用,这样的话,也会有大量重复的调用语句,感觉还是不完美,于是思考之后还是借助OO来做这个事情,需要说明的是,我们的语言是python,web项目采用的框架是webpy重构之前的代码class Apply:
阅读全文
摘要:1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import json 5 6 7 SRC_TABLE = { 8 "装修快帐":{"transType":"交易类型", 9 "transDate":"交易日期",10 "currency ":"交易币种",11 "inAcct":u"资金流入帐户",12 "inAmount":"
阅读全文
摘要:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。实用命令实例默认启动tcpdump普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。监视指定网络接口的数据包tcpd
阅读全文
摘要:select * from TableName limit PageSize * PageNo , PageSize #MYSQL数据库分页,可自动计算删记录的情况#PageSize * PageNo指的是偏离记录集第一条记录的记录数好吧,我要承认,这是从一场并不愉快的争论里发现的,结果是,我是错的,MYSQL里可以通过这样的SQL语句简单的实现分页,我对limit的理解是等价于top,然而top的用法只能指定一个数,它是从记录集里取N条记录,从语义上讲并不能帮助构建记录集。而MYSQL的limit语义上讲,limit直接参与了记录集的构建最后:知之为知之,不知为不知,是知也
阅读全文
摘要:ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127Unicode分为UTF-8和UTF-16。UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换,函数 encode( char_set )实现 Unicode 到其它编码方式的转换。比如 ("你好").d
阅读全文
摘要:通过阅读~/thrift-0.8.0/tutorial/java/README,知道需要首先安装ant,这是一种java的编译部署工具,类似C里的makesudo apt-get install ant提示警告:warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds ,网上的解决方案说需要修改build.xml,为javac节点添加属性includeantruntime="on"<
阅读全文
摘要:启动服务器和客户端cd ~/thrift-0.8.0/thrift -r --gen py tutorial.thrift #生成代码cd py./PythonServer.py #启动服务器cd ~/thrift-0.8.0/py./PythonClient.py #在另一个shell窗口启动客户端结果启动服务器的时候产生一个错误shujunli@mysvr1:~/thrift-0.8.0/tutorial/py$ ./PythonServer.py Starting the server...Traceback (most recent call last): File "./P
阅读全文
摘要:Thrift是Facebook开发出的一个软件库和一组代码生成工具,以加快高效率、可扩展的后端服务的开发与实现的速度。它通过对各语言最常用的部分加以抽象,把它们放进一个通用库里,再用各个语言实现,来实现跨编程语言的高效而可靠的通信。亦即,Thrift允许开发者在一个单独的语言无关的文件里,定义数据类型和服务接口,然后生成用来构建RPC客户和服务器所需的全部代码。从官方网站(http://thrift.apache.org/download/)上下载最新安装包cd ~wget http://www.us.apache.org/dist/thrift/0.8.0/thrift-0.8.0.tar.
阅读全文
摘要:common/config.php 常量模块<?php//常量定义define ("SERVER_ADDR","http://127.0.0.1");define ("REGISTER_ADDR",SERVER_ADDR."/open/register");define ("LOGIN_ADDR",SERVER_ADDR."/open/login");define ("APPLY_ADDR",SERVER_ADDR."/open/apply
阅读全文
摘要:环境:ubuntu10.10百度来的例子大多是这样的<?php //test.php 编写了测试用例的PHP文件 require_once('TestCase.php'); class OpenTestCase extends PHPUnit_Framework_TestCase { public function testRegister() { //... } }?>可以通过这样来执行自动化测试$ phpunit test.php报错,提示找不到PHPUnit_Framework_TestCase...
阅读全文
摘要:什么是PHPUnit?PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植,是xUnit测试框架家族的一员(它们都基于模式先锋KentBeck的设计)Ubuntu上安装sudoapt-getinstallphpunit验证PHPUnit安装成功,命令行输入phpunit$ phpunit安装成功打印:PHPUnit 3.6.11 by Sebastian Bergmann.Usage: phpunit [switches] UnitTest [UnitTest.php] phpunit [switches] <directory>如果出现如
阅读全文
摘要:#测试内存泄露#import gc#gc.enable()#gc.set_debug(gc.DEBUG_LEAK)#gc.collect()#start = len(gc.garbage)#print aDict[CMD]self._funcmap[ aDict[CMD] ]( aCur, self, aDict )#gc.collect()#end = len(gc.garbage)#if start != end:# print "************************* %d - %d" % (start, end)
阅读全文